Exemple #1
0
        /// <summary>
        /// Process Analysis Job Items according to their individual file types
        /// </summary>
        /// <param name="analysisJobItems">Analysis Job Items</param>
        /// <param name="bWorker"></param>
        /// <returns>Processed Analysis Job Items</returns>
        public IEnumerable <AnalysisJobItem> Process(IEnumerable <AnalysisJobItem> analysisJobItems, BackgroundWorker bWorker)
        {
            // analysisJobItems should have LcmsDataSet field be null
            m_abortRequested = false;

            m_currentItem = 0;
            m_totalItems  = analysisJobItems.Count();

            foreach (var jobItem in analysisJobItems)
            {
                if (bWorker.CancellationPending || m_abortRequested)
                {
                    break;
                }

                OnProgressChanged(new MtdbProgressChangedEventArgs(m_currentItem, m_totalItems, jobItem));
                m_currentJob = jobItem;

                m_analysisReader = PhrpReaderFactory.Create(jobItem.FilePath, ProcessorOptions);

                m_analysisReader.ProgressChanged += analysisReader_ProgressChanged;

                // Reads the jobItem using the reader returned by the Reader Factory
                jobItem.DataSet = m_analysisReader.Read(jobItem.FilePath);

                m_currentItem++;
            }

            return(analysisJobItems);
        }
        /// <summary>
        /// Entry point for creating an LCMS Dataset using the PHRP Reader.
        /// </summary>
        /// <remarks>
        /// If the path ends with "msgfplus.mzid" or "mzid.gz" then it's an MZIdentML file, but if it's not, then
        /// it determines the type of reader to return based on the extension of the file, using that to
        /// determine if it is a Sequest, XTandem, MSAlign or MSGF+ file
        /// The if statement is due to the PHRP Reader not meaning to be used on .mzid files
        /// </remarks>
        /// <param name="path">File to be read</param>
        /// <param name="options">Reader options</param>
        /// <returns>An appropriate reader for the file</returns>
        public static PHRPReaderBase Create(string path, Options options)
        {
            PHRPReaderBase reader     = null;
            var            resultType = clsPHRPReader.AutoDetermineResultType(path);

            if (path.EndsWith("mzid") || path.EndsWith("mzid.gz"))
            {
                reader = new MzIdentMlReader(options);
                return(reader);
            }

            switch (resultType)
            {
            case clsPHRPReader.ePeptideHitResultType.XTandem:
                reader = new XTandemPhrpReader(options);
                break;

            case clsPHRPReader.ePeptideHitResultType.Sequest:
                reader = new SequestPhrpReader(options);
                break;

            case clsPHRPReader.ePeptideHitResultType.MSGFDB:
                reader = new MsgfPlusPhrpReader(options);
                break;

            case clsPHRPReader.ePeptideHitResultType.MSAlign:
                reader = new MsAlignPhrpReader(options);
                break;

            default:
                //Unsupported format!! Oh no!!
                reader = null;
                break;
            }
            return(reader);
        }