public void TestPromexClustering() { var provider = new ScanSummaryProviderCache(); var reader1 = provider.GetScanSummaryProvider(pbf1, 0) as InformedProteomicsReader; var reader2 = provider.GetScanSummaryProvider(pbf2, 1) as InformedProteomicsReader; var reader3 = provider.GetScanSummaryProvider(pbf3, 2) as InformedProteomicsReader; var promexFileReader1 = new PromexFileReader(reader1, 0); var features1 = promexFileReader1.ReadFile(ms1ft1); var promexFileReader2 = new PromexFileReader(reader2, 1); var features2 = promexFileReader2.ReadFile(ms1ft2); var promexFileReader3 = new PromexFileReader(reader3, 2); var features3 = promexFileReader3.ReadFile(ms1ft3); var features = new List <UMCLight>(); features.AddRange(features1); features.AddRange(features2); features.AddRange(features3); var clusterer = new PromexClusterer { Readers = provider, }; var clusters = clusterer.Cluster(features); Console.WriteLine(clusters.Count(c => c.Features.Count > 1)); }
public void TestPromexFileReading() { const int datasetId = 0; var reader = new InformedProteomicsReader(datasetId, pbf1); var promexFileReader = new PromexFileReader(reader, datasetId); var features = promexFileReader.ReadFile(ms1ft1); Console.WriteLine(features.Count()); }
/// <summary> /// Loads feature data from the files provided. /// </summary> /// <returns></returns> public static IList <UMCLight> LoadUmcFeatureData(DatasetInformation dataset, IUmcDAO featureCache, IScanSummaryProvider provider = null) { var features = new List <UMCLight>(); var extension = Path.GetExtension(dataset.Features.Path); if (extension == null) { return(features); } extension = extension.ToUpper(); switch (extension) { case ".TXT": if (dataset.Features.Path.EndsWith("_LCMSFeatures.txt")) { var reader = new LcImsFeatureFileReader(provider, dataset.DatasetId); features = reader.ReadFile(dataset.Features.Path).ToList(); } else { var umcReader = new LCMSFeatureFileReader(dataset.Features.Path); features = umcReader.GetUmcList(); } break; case ".DB3": features = featureCache.FindByDatasetId(dataset.DatasetId); break; case ".MS1FT": if (provider != null && provider is InformedProteomicsReader) { var promexReader = new PromexFileReader(provider as InformedProteomicsReader, dataset.DatasetId); features = promexReader.ReadFile(dataset.Features.Path).ToList(); } break; default: //Was reconstructing features from scratch even when they were already cached because the file extention was ".csv" not ".db3" features = featureCache.FindByDatasetId(dataset.DatasetId); break; } if (features != null && provider is ISpectraProvider) { var spectraProvider = provider as ISpectraProvider; LoadMsMs(features, spectraProvider); } return(features); }
public void CompareClustering() { // Cluster using MultiAlign to Promex adapters var provider = new ScanSummaryProviderCache(); var reader1 = provider.GetScanSummaryProvider(pbf1, 0) as InformedProteomicsReader; var reader2 = provider.GetScanSummaryProvider(pbf2, 1) as InformedProteomicsReader; var promexFileReader1 = new PromexFileReader(reader1, 0); var features1 = promexFileReader1.ReadFile(ms1ft1); var promexFileReader2 = new PromexFileReader(reader2, 1); var features2 = promexFileReader2.ReadFile(ms1ft2); var features = new List <UMCLight>(); features.AddRange(features1); features.AddRange(features2); var clusterer = new PromexClusterer { Readers = provider, }; var clusters = clusterer.Cluster(features); var clusterCount = clusters.Count(c => c.UmcList.Count > 1); // Cluster using only ProMex var lcmsRun1 = PbfLcMsRun.GetLcMsRun(pbf1); var lcmsRun2 = PbfLcMsRun.GetLcMsRun(pbf2); var aligner = new LcMsFeatureAlignment(new LcMsFeatureAlignComparer(new Tolerance(10, ToleranceUnit.Ppm))); var promexFeatures1 = LcMsFeatureAlignment.LoadProMexResult(0, ms1ft1, lcmsRun1); aligner.AddDataSet(0, promexFeatures1, lcmsRun1); var promexFeatures2 = LcMsFeatureAlignment.LoadProMexResult(1, ms1ft2, lcmsRun2); aligner.AddDataSet(1, promexFeatures2, lcmsRun2); aligner.AlignFeatures(); var promexClusters = aligner.GetAlignedFeatures(); var promexClusterCount = promexClusters.Count(c => c.Count(f => f != null) > 1); Assert.AreEqual(clusters.Count, promexClusters.Count); Assert.AreEqual(clusterCount, promexClusterCount); }
public void CompareFileReading() { // Read using MultiAlign to Promex adapters var provider = new ScanSummaryProviderCache(); var reader1 = provider.GetScanSummaryProvider(pbf1, 0) as InformedProteomicsReader; var promexFileReader = new PromexFileReader(reader1, 0); var features = promexFileReader.ReadFile(ms1ft1).ToList(); var lcmsRun = PbfLcMsRun.GetLcMsRun(pbf1); var promexFeatures = LcMsFeatureAlignment.LoadProMexResult(0, ms1ft1, lcmsRun).ToList(); Assert.AreEqual(features.Count, promexFeatures.Count); for (int i = 0; i < features.Count; i++) { Assert.AreEqual(features[i].MassMonoisotopic, promexFeatures[i].Mass); ////Assert.AreEqual(features[i].Mz, promexFeatures[i].RepresentativeMz); Assert.AreEqual(features[i].Net, promexFeatures[i].Net); Assert.AreEqual(features[i].ScanStart, promexFeatures[i].MinScanNum); Assert.AreEqual(features[i].ScanEnd, promexFeatures[i].MaxScanNum); Assert.AreEqual(features[i].Abundance, promexFeatures[i].Abundance); } }