public void FeatureFind(List<ProteinSpectrumMatch> prsms, LcMsRun run, string outTsvFilePath) { var featureFinder = new LcMsPeakMatrix(run, new LcMsFeatureLikelihood()); // write result files var tsvWriter = new StreamWriter(outTsvFilePath); tsvWriter.WriteLine(LcMsFeatureFinderLauncher.GetHeaderString(false)); var featureId = 1; foreach (var match in prsms) { var minScan = run.GetPrevScanNum(match.ScanNum, 1); var maxScan = run.GetNextScanNum(match.ScanNum, 1); var feature = featureFinder.GetLcMsPeakCluster(match.Mass, match.Charge, minScan, maxScan); if (feature == null) continue; tsvWriter.WriteLine("{0}\t{1}", featureId, LcMsFeatureFinderLauncher.GetString(feature, false)); featureId++; } tsvWriter.Close(); }
public void TestLcMsFeatureXic() { var methodName = MethodBase.GetCurrentMethod().Name; TestUtils.ShowStarting(methodName); const string rawFile = @"\\proto-11\MSXML_Cache\PBF_Gen_1_193\2015_1\CPTAC_Intact_rep2_15Jan15_Bane_C2-14-08-02RZ.pbf"; //const string rawFile = @"D:\MassSpecFiles\training\raw\QC_Shew_Intact_26Sep14_Bane_C2Column3.pbf"; if (!File.Exists(rawFile)) { Assert.Ignore(@"Skipping test {0} since file not found: {1}", methodName, rawFile); } var run = PbfLcMsRun.GetLcMsRun(rawFile); var scorer = new LcMsFeatureLikelihood(); var featureFinder = new LcMsPeakMatrix(run, scorer); var feature = featureFinder.GetLcMsPeakCluster(2388.278, 4, 3774, 3907); //feature = featureFinder.GetLcMsPeakCluster(8151.3706, 7, 13, 4201, 4266); //feature = featureFinder.GetLcMsPeakCluster(8151.41789, 7, 13, 2861, 2941); var ms1ScanToIndex = run.GetMs1ScanNumToIndex(); var minCol = ms1ScanToIndex[feature.MinScanNum]; var maxCol = ms1ScanToIndex[feature.MaxScanNum]; //var minRow = feature.MinCharge - LcMsPeakMatrix.MinScanCharge; //var maxRow = feature.MaxCharge - LcMsPeakMatrix.MinScanCharge; Console.WriteLine("---------------------------------------------------------------"); for (var i = 0; i < feature.Envelopes.Length; i++) { for (var j = 0; j < feature.Envelopes[i].Length; j++) { Console.Write(feature.Envelopes[i][j] != null ? feature.Envelopes[i][j].PearsonCorrelation : 0); Console.Write("\t"); } Console.Write("\n"); } Console.WriteLine("---------------------------------------------------------------"); for (var i = 0; i < feature.Envelopes.Length; i++) { for (var j = 0; j < feature.Envelopes[i].Length; j++) { Console.Write(feature.Envelopes[i][j] != null ? feature.Envelopes[i][j].BhattacharyyaDistance : 0); Console.Write("\t"); } Console.Write("\n"); } Console.WriteLine("---------------------------------------------------------------"); for (var i = 0; i < feature.Envelopes.Length; i++) { for (var j = 0; j < feature.Envelopes[i].Length; j++) { Console.Write(feature.Envelopes[i][j] != null ? feature.Envelopes[i][j].Abundance : 0); Console.Write("\t"); } Console.Write("\n"); } }
public void TestFeatureExampleForFigure() { var methodName = MethodBase.GetCurrentMethod().Name; TestUtils.ShowStarting(methodName); const string rawFile = @"\\proto-11\MSXML_Cache\PBF_Gen_1_193\2015_1\CPTAC_Intact_rep6_15Jan15_Bane_C2-14-08-02RZ.pbf"; //const string rawFile = @"D:\MassSpecFiles\training\raw\QC_Shew_Intact_26Sep14_Bane_C2Column3.pbf"; if (!File.Exists(rawFile)) { Assert.Ignore(@"Skipping test {0} since file not found: {1}", methodName, rawFile); } var run = PbfLcMsRun.GetLcMsRun(rawFile); var scorer = new LcMsFeatureLikelihood(); var featureFinder = new LcMsPeakMatrix(run, scorer); var feature = featureFinder.GetLcMsPeakCluster(28061.6177, 20, 34, 7624, 7736); var writer = new StreamWriter(@"D:\MassSpecFiles\CPTAC_rep10\example\peaks.txt"); var envelope = feature.TheoreticalEnvelope; foreach (var e in envelope.Isotopes) Console.WriteLine(e.Ratio); foreach (var env in feature.EnumerateEnvelopes()) { var corr = env.PearsonCorrelation; for(var i = 0; i < envelope.Size; i++) { var peak = env.Peaks[i]; if (peak == null) continue; writer.Write("{0}\t{1}\t{2}\t{3}\t{4}\t{5}\t{6}\n", env.ScanNum, run.GetElutionTime(env.ScanNum), env.Charge, i, peak.Mz, peak.Intensity, corr); } } writer.Close(); }