Exemplo n.º 1
0
        private Task Process()
        {
            Counter readerCounter = new Counter();
            Counter searchCounter = new Counter();

            readerCounter.progressChange += ReadProgressChanged;
            searchCounter.progressChange += SearchProgressChanged;

            // build pepeptides
            Peptide.To.SetCysteine(ConfigureParameters.Access.Cysteine);
            IProteinReader  proteinReader = new FastaReader();
            List <IProtein> proteins      = proteinReader.Read(SearchingParameters.Access.FastaFile);
            List <IProtein> decoyProteins = new List <IProtein>();

            foreach (IProtein protein in proteins)
            {
                IProtein p = new BaseProtein();
                p.SetSequence(MultiThreadingSearchHelper.Reverse(protein.Sequence()));
                decoyProteins.Add(p);
            }
            List <string> peptides =
                MultiThreadingSearchHelper.GeneratePeptides(proteins);
            List <string> decoyPeptides =
                MultiThreadingSearchHelper.GeneratePeptides(decoyProteins);


            // build glycans
            GlycanBuilder glycanBuilder = new GlycanBuilder(
                SearchingParameters.Access.HexNAc,
                SearchingParameters.Access.Hex,
                SearchingParameters.Access.Fuc,
                SearchingParameters.Access.NeuAc,
                SearchingParameters.Access.NeuGc,
                SearchingParameters.Access.ComplexInclude,
                SearchingParameters.Access.HybridInclude,
                SearchingParameters.Access.MannoseInclude);

            glycanBuilder.Build();

            int index = 1;

            foreach (string file in SearchingParameters.Access.MSMSFiles)
            {
                ReadingCounter  = 0;
                ProgressCounter = 0;
                UpdateProgress(100);
                Readingprogress(100);
                UpdateSignal($"Searching...({index++}/{SearchingParameters.Access.MSMSFiles.Count})");
                MultiThreadingSearch search =
                    new MultiThreadingSearch(file, readerCounter, searchCounter,
                                             peptides, decoyPeptides, glycanBuilder);
                search.Run();
                UpdateSignal("Analyzing...");
                Analyze(file, search.Target(), search.Decoy(), glycanBuilder);
            }

            UpdateSignal("Done");
            return(Task.CompletedTask);
        }
Exemplo n.º 2
0
        private void Analyze(string msPath, List <SearchResult> targets, List <SearchResult> decoys,
                             GlycanBuilder glycanBuilder)
        {
            FDRFilter filter = new FDRFilter(SearchingParameters.Access.FDRValue);

            filter.set_data(targets, decoys);
            filter.Init();
            List <SearchResult> results = filter.Filter();
            string path = System.IO.Path.Combine(System.IO.Path.GetDirectoryName(msPath),
                                                 System.IO.Path.GetFileNameWithoutExtension(msPath) + ".csv");

            MultiThreadingSearchHelper.ReportResults(path, results, glycanBuilder.GlycanMaps());
        }