Пример #1
0
        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));
        }
Пример #2
0
        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());
        }
Пример #3
0
        /// <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);
        }
Пример #4
0
        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);
        }
Пример #5
0
        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);
            }
        }