private FlankingMassMatch GetBestMatchInTheGraph(ShiftedSequenceGraph seqGraph, ProductSpectrum spec, double?featureMass) { FlankingMassMatch match = null; var bestScore = double.NegativeInfinity; var protCompositions = seqGraph.GetSequenceCompositions(); for (var modIndex = 0; modIndex < protCompositions.Length; modIndex++) { seqGraph.SetSink(modIndex); var protCompositionWithH2O = seqGraph.GetSinkSequenceCompositionWithH2O(); var sequenceMass = protCompositionWithH2O.Mass; if (featureMass != null && !_tolerance.IsWithin(sequenceMass, (double)featureMass)) { continue; } var charge = (int) Math.Round(sequenceMass / (spec.IsolationWindow.IsolationWindowTargetMz - Constants.Proton)); var mostAbundantIsotopeMz = Ion.GetIsotopeMz(sequenceMass, charge, Averagine.GetIsotopomerEnvelope(sequenceMass).MostAbundantIsotopeIndex); if (!spec.IsolationWindow.Contains(mostAbundantIsotopeMz)) { continue; } //var feature = new TargetFeature(sequenceMass, charge, spec.ScanNum); if (_featureFinder != null) { var ms1Corr = _featureFinder.GetMs1EvidenceScore(spec.ScanNum, sequenceMass, charge); if (ms1Corr < Ms1CorrThreshold) { continue; } } var curScoreAndModifications = seqGraph.GetScoreAndModifications(_ms2Scorer); var curScore = curScoreAndModifications.Item1; // var curScore = seqGraph.GetFragmentScore(_ms2Scorer); if (curScore > bestScore) { match = new FlankingMassMatch(curScore, sequenceMass - Composition.H2O.Mass - seqGraph.ShiftMass, charge, curScoreAndModifications.Item2); //match = new FlankingMassMatch(curScore, // sequenceMass - Composition.H2O.Mass - seqGraph.ShiftMass, charge, new ModificationInstance[0]); bestScore = curScore; } } return(match); }
public void TestMs1EvidenceScore() { var methodName = MethodBase.GetCurrentMethod().Name; TestUtils.ShowStarting(methodName); const string TestRawFile = @"\\protoapps\UserData\Jungkap\Lewy\Lewy_intact_01.pbf"; if (!File.Exists(TestRawFile)) { Assert.Ignore(@"Skipping test {0} since file not found: {1}", methodName, TestRawFile); } const string TestResultFile = @"\\protoapps\UserData\Jungkap\Lewy\Lewy_intact_01_IcTda.tsv"; if (!File.Exists(TestResultFile)) { Assert.Ignore(@"Skipping test {0} since file not found: {1}", methodName, TestResultFile); } var run = PbfLcMsRun.GetLcMsRun(TestRawFile); var tsvParser = new TsvFileParser(TestResultFile); var featureFinder = new LcMsPeakMatrix(run); for (var i = 0; i < tsvParser.NumData; i++) { var scan = int.Parse(tsvParser.GetData("Scan")[i]); var charge = int.Parse(tsvParser.GetData("Charge")[i]); var mass = double.Parse(tsvParser.GetData("Mass")[i]); var qvalue = double.Parse(tsvParser.GetData("QValue")[i]); //var targetFeature = new TargetFeature(mass, charge, scan); var score = featureFinder.GetMs1EvidenceScore(scan, mass, charge); Console.WriteLine("{0}\t{1}\t{2}\t{3}\t{4}", scan, mass, charge, qvalue, score); } }
public void TestMs1EvidenceScore() { var methodName = MethodBase.GetCurrentMethod().Name; Utils.ShowStarting(methodName); var testRawFile = Path.Combine(Utils.DEFAULT_TEST_FILE_FOLDER, @"TopDown\Lewy_ManyMods\Lewy_intact_01.pbf"); if (!File.Exists(testRawFile)) { Assert.Ignore(@"Skipping test {0} since file not found: {1}", methodName, testRawFile); } var testResultFile = Path.Combine(Utils.DEFAULT_TEST_FILE_FOLDER, @"TopDown\Lewy_ManyMods\TestOutput\Lewy_intact_01_IcTda.tsv"); if (!File.Exists(testResultFile)) { Assert.Ignore(@"Skipping test {0} since file not found: {1}", methodName, testResultFile); } var run = PbfLcMsRun.GetLcMsRun(testRawFile); var tsvParser = new TsvFileParser(testResultFile); var featureFinder = new LcMsPeakMatrix(run); for (var i = 0; i < tsvParser.NumData; i++) { var scan = int.Parse(tsvParser.GetData("Scan")[i]); var charge = int.Parse(tsvParser.GetData("Charge")[i]); var mass = double.Parse(tsvParser.GetData("Mass")[i]); var qvalue = double.Parse(tsvParser.GetData("QValue")[i]); //var targetFeature = new TargetFeature(mass, charge, scan); var score = featureFinder.GetMs1EvidenceScore(scan, mass, charge); Console.WriteLine("{0}\t{1}\t{2}\t{3}\t{4}", scan, mass, charge, qvalue, score); } }