示例#1
0
        public InfoContainer(bool common, Spectra spec)
        {
            table = new Dictionary <string, string>();

            String msLevel = "MS";

            if (spec.getMSLevel() == 2)
            {
                msLevel = "MS2";
            }

            if (common)
            {
                table.Add(GlobalVar.MSLevelHeader, msLevel);
                table.Add(GlobalVar.PrecursorChargeHeader, spec.getPrecursorCharge().ToString());
                table.Add(GlobalVar.PrecursorMZHeader, spec.getPrecursorMz().ToString());
                table.Add(GlobalVar.ScanNumHeader, spec.getScanNum().ToString());
                table.Add(GlobalVar.ScanTimeHeader, spec.getStartTime().ToString());
            }
            else
            {
                table.Add("specificInfo1", "aa");
                table.Add("specificInfo2", "pp");
            }

            Names = table.Keys;
        }
示例#2
0
        //Called by DataProcessor, entry point to Alex's program
        public bool evaluate(Spectra spec)
        {
            currentTime = spec.getStartTime();
            updateExclusionList(spec);
            if (spec.getMSLevel() == 1)
            {
                log.Debug("Evaluating ms1 scan");
                processMS1(spec);
            }
            else if (spec.getMSLevel() == 2)
            {
                log.Debug("evaluating ms2 scan");
                if (spec.getIndex() % GlobalVar.ScansPerOutput == 0)
                {
#if SIMULATION
                    double progressPercent = spec.getIndex() / GlobalVar.ExperimentTotalScans * 100;
                    log.Info("Progress: {0:F2}% Processing ID: {1}\t ScanNum: {2} \t Excluded: {3}", progressPercent, spec.getIndex(), spec.getScanNum(),
                             excludedSpectra.Count);
#else
                    log.Info("Progress: {0}\t{1} excluded------------------------", spec.getIndex(), excludedSpectra.Count);
                    log.Info("ExclusionListSize: {0}\tRTOffset: {1}", exclusionList.getExclusionList().Count, RetentionTime.getRetentionTimeOffset());
#endif
                }

                return(processMS2(spec));
            }
            else
            {
                log.Debug("unrecognized msScan");
            }
            return(true);
        }
示例#3
0
        protected bool processMS2(Spectra spec)
        {
            performanceEvaluator.countMS2();

            log.Debug(spec);
            IDs id = performDatabaseSearch(spec);

            // check if mass is on exclusion list

            Boolean isExcluded = false;

            if (id != null)
            {
                Peptide pep = getPeptideFromIdentification(id);
                isExcluded = exclusionList.containsPeptide(pep);                  //checks if the mass should've been excluded,
                //in a real experiment, this should never equal to true
                //since the mass should not have been scanned in the first place
                //if MS exclusion table was updated correctly through API
                if (!peptideRT.Keys.Contains(pep.getSequence()))
                {
                    peptideRT.Add(pep.getSequence(), spec.getStartTime());
                }
            }



            if (isExcluded)
            {
#if SIMULATION
                //log.Debug("Mass " + spectraMass + " is on the exclusion list. Scan " + spec.getScanNum() + " excluded.");
                evaluateExclusion(id);
                WriterClass.LogScanTime("Excluded", (int)spec.getIndex());
#endif
                performanceEvaluator.countExcludedSpectra();
                excludedSpectra.Add(spec.getScanNum());
                return(false);
            }
            else
            {
                performanceEvaluator.countAnalyzedSpectra();
                //log.Debug("Mass " + spectraMass + " was not on the exclusion list. Scan " + spec.getScanNum() + " analyzed.");
                evaluateIdentification(id);
                includedSpectra.Add(spec.getScanNum());
                // calibrate peptide if the observed retention time doesn't match the predicted
                //WriterClass.LogScanTime("Processed", (int)spec.getIndex());
                return(true);
            }
        }
        public static void CometSingleSearchTest()
        {
            String idx = "C:\\Coding\\2019LavalleeLab\\GitProjectRealTimeMS\\TestData\\PreComputedFiles\\uniprot_SwissProt_Human_1_11_2017_decoyConcacenated.fasta.idx";
            //String idx = "C:\\temp\\comet_2019015\\comet_source_2019015\\IDXMake\\uniprot_SwissProt_Human_1_11_2017_decoyConcacenated.fasta.idx";
            String param = "C:\\Coding\\2019LavalleeLab\\temp2\\ExampleDataSet\\2019.comet.params";

            CometSingleSearch.InitializeComet(idx, param);
            CometSingleSearch.QualityCheck();
            Program.ExitProgram(1);
            String dataRoot   = "C:\\Users\\LavalleeLab\\Documents\\JoshTemp\\MealTimeMS_APITestRun\\Data\\";
            String outputRoot = "C:\\Users\\LavalleeLab\\Documents\\JoshTemp\\MealTimeMS_APITestRun\\Output\\";
            //String mzmlPath = dataRoot+"60minMZMLShrink.csv";
            String   mzmlPath   = dataRoot + "8001.ms2.txt";
            String   dbPath     = dataRoot + "tinyDB.fasta.idx"; //
            String   outputPath = outputRoot + "output.txt";
            String   paramsPath = dataRoot + "comet.params";
            MZMLFile mzml       = Loader.parseMS2File(mzmlPath);

            //MZMLFile mzml = null;
            CometSingleSearch.InitializeComet(dbPath, paramsPath);
            var watch   = System.Diagnostics.Stopwatch.StartNew();
            int counter = 0;

            Console.WriteLine("Starting comet search");
            WriterClass.initiateWriter(outputPath);

            for (int i = 0; i < 1; i++)
            {
                if (i % 1 == 0)
                {
                    Spectra spec = mzml.getSpectraArray()[i];
                    if (spec.getMSLevel() != 2)
                    {
                        continue;
                    }
                    Console.WriteLine("scanNum {0} RT {2} Mass {2} MSLevel {3}", spec.getScanNum(), spec.getStartTime(),
                                      spec.getCalculatedPrecursorMass(), spec.getMSLevel());
                    IDs id = null;
                    if (CometSingleSearch.Search(spec, out id))
                    {
                        String outLine = String.Format("{0}\t{1}\txcorr\t{2}\tdcn\t{3}", id.getScanNum(), id.getPeptideSequence(), id.getXCorr(), id.getDeltaCN());
                        Console.WriteLine(outLine);
                        WriterClass.writeln(outLine);
                    }
                    else
                    {
                        Console.WriteLine("Spectrum cannot be matched\n");
                    }
                    counter++;
                }
            }
            watch.Stop();
            Console.WriteLine("Comet search of " + counter + " spectra took " + watch.ElapsedMilliseconds + " milliseconds");
            WriterClass.CloseWriter();
        }
示例#5
0
 private void updateExclusionList(Spectra spec)
 {
     currentTime = spec.getStartTime(); // in minutes
     exclusionList.setCurrentTime(currentTime);
     performanceEvaluator.countSpectra();
 }
示例#6
0
        public static void parseMZML()
        {
            String   mzmlPath = "/Users/lavalleelab/Desktop/JoshLab/Temp/60minMZML.csv";
            MZMLFile mzml     = Loader.parseMZMLCSV(mzmlPath);

            for (int i = 0; i < 7000; i++)
            {
                if (i % 500 == 0)
                {
                    Spectra spec = mzml.getSpectraArray()[i];
                    Console.WriteLine("ID {0} scanNum{1} RT{2} Mass{3} MSLevel{4}", spec.getIndex(), spec.getScanNum(), spec.getStartTime(),
                                      spec.getCalculatedPrecursorMass(), spec.getMSLevel());
                }
            }
        }