public GlycoSearchTask() : base(MyTask.GlycoSearch) { //Default parameter setting which is different from SearchTask, can be overwriten var digestPara = new DigestionParams( minPeptideLength: 5, maxPeptideLength: 60 ); CommonParameters = new CommonParameters( precursorMassTolerance: new PpmTolerance(10), ms2childScanDissociationType: DissociationType.EThcD, scoreCutoff: 3, trimMsMsPeaks: false, numberOfPeaksToKeepPerWindow: 1000, minimumAllowedIntensityRatioToBasePeak: 0.01, digestionParams: digestPara ); _glycoSearchParameters = new GlycoSearchParameters(); }
public MyTaskResults Run(string OutputFolder, List <DbForTask> dbFilenameList, List <string> currentRawFileList, string taskId, FileSpecificParameters[] fileSettingsList, List <GlycoSpectralMatch> allPsms, CommonParameters commonParameters, GlycoSearchParameters glycoSearchParameters, List <Protein> proteinList, List <Modification> variableModifications, List <Modification> fixedModifications, List <string> localizeableModificationTypes, MyTaskResults MyTaskResults) { if (glycoSearchParameters.GlycoSearchType == GlycoSearchType.NGlycanSearch) { var allPsmsSingle = allPsms.Where(p => p.NGlycan == null).OrderByDescending(p => p.Score).ToList(); SingleFDRAnalysis(allPsmsSingle, commonParameters, new List <string> { taskId }); var writtenFileSingle = Path.Combine(OutputFolder, "single" + ".psmtsv"); WriteFile.WritePsmGlycoToTsv(allPsmsSingle, writtenFileSingle, 1); FinishedWritingFile(writtenFileSingle, new List <string> { taskId }); var allPsmsGly = allPsms.Where(p => p.NGlycan != null).OrderByDescending(p => p.Score).ToList(); SingleFDRAnalysis(allPsmsGly, commonParameters, new List <string> { taskId }); var writtenFileNGlyco = Path.Combine(OutputFolder, "nglyco" + ".psmtsv"); WriteFile.WritePsmGlycoToTsv(allPsmsGly, writtenFileNGlyco, 3); FinishedWritingFile(writtenFileNGlyco, new List <string> { taskId }); return(MyTaskResults); } else if (glycoSearchParameters.GlycoSearchType == GlycoSearchType.OGlycanSearch) { var allPsmsSingle = allPsms.Where(p => p.Routes == null).OrderByDescending(p => p.Score).ToList(); SingleFDRAnalysis(allPsmsSingle, commonParameters, new List <string> { taskId }); var writtenFileSingle = Path.Combine(OutputFolder, "single" + ".psmtsv"); WriteFile.WritePsmGlycoToTsv(allPsmsSingle, writtenFileSingle, 1); FinishedWritingFile(writtenFileSingle, new List <string> { taskId }); var allPsmsGly = allPsms.Where(p => p.Routes != null).OrderByDescending(p => p.Score).ToList(); SingleFDRAnalysis(allPsmsGly, commonParameters, new List <string> { taskId }); var writtenFileOGlyco = Path.Combine(OutputFolder, "oglyco" + ".psmtsv"); WriteFile.WritePsmGlycoToTsv(allPsmsGly, writtenFileOGlyco, 2); FinishedWritingFile(writtenFileOGlyco, new List <string> { taskId }); var ProteinLevelLocalization = GlycoProteinParsimony.ProteinLevelGlycoParsimony(allPsmsGly.Where(p => p.ProteinAccession != null && p.OneBasedStartResidueInProtein.HasValue).ToList()); var seen_oglyco_localization_file = Path.Combine(OutputFolder, "seen_oglyco_localization" + ".tsv"); WriteFile.WriteSeenProteinGlycoLocalization(ProteinLevelLocalization, seen_oglyco_localization_file); FinishedWritingFile(seen_oglyco_localization_file, new List <string> { taskId }); var protein_oglyco_localization_file = Path.Combine(OutputFolder, "protein_oglyco_localization" + ".tsv"); WriteFile.WriteProteinGlycoLocalization(ProteinLevelLocalization, protein_oglyco_localization_file); FinishedWritingFile(protein_oglyco_localization_file, new List <string> { taskId }); return(MyTaskResults); } else { var allPsmsSingle = allPsms.Where(p => p.NGlycan == null && p.Routes == null).OrderByDescending(p => p.Score).ToList(); SingleFDRAnalysis(allPsmsSingle, commonParameters, new List <string> { taskId }); var writtenFileSingle = Path.Combine(OutputFolder, "single" + ".psmtsv"); WriteFile.WritePsmGlycoToTsv(allPsmsSingle, writtenFileSingle, 1); FinishedWritingFile(writtenFileSingle, new List <string> { taskId }); var allPsmsNGly = allPsms.Where(p => p.NGlycan != null).OrderByDescending(p => p.Score).ToList(); SingleFDRAnalysis(allPsmsNGly, commonParameters, new List <string> { taskId }); var writtenFileNGlyco = Path.Combine(OutputFolder, "nglyco" + ".psmtsv"); WriteFile.WritePsmGlycoToTsv(allPsmsNGly, writtenFileNGlyco, 3); FinishedWritingFile(writtenFileNGlyco, new List <string> { taskId }); var allPsmsOGly = allPsms.Where(p => p.Routes != null).OrderByDescending(p => p.Score).ToList(); SingleFDRAnalysis(allPsmsOGly, commonParameters, new List <string> { taskId }); var writtenFileOGlyco = Path.Combine(OutputFolder, "oglyco" + ".psmtsv"); WriteFile.WritePsmGlycoToTsv(allPsmsOGly, writtenFileOGlyco, 2); FinishedWritingFile(writtenFileOGlyco, new List <string> { taskId }); return(MyTaskResults); } }