public static void ExampleDigestion() { const string fastaFilePath = "Resources/yeast_uniprot_120226.fasta"; IProtease trypsin = Protease.GetProtease("Trypsin"); const int maxMissedCleavages = 3; const int minPeptideLength = 5; const int maxPeptideLength = 50; List <double> masses = new List <double>(); Stopwatch watch = new Stopwatch(); watch.Start(); using (FastaReader reader = new FastaReader(fastaFilePath)) { foreach (Protein protein in reader.ReadNextProtein()) { foreach (Peptide peptide in protein.Digest(trypsin, maxMissedCleavages, minPeptideLength, maxPeptideLength)) { masses.Add(peptide.MonoisotopicMass); } } } //Console.WriteLine("Average Peptide Mass = {0:F4}", masses.Average()); watch.Stop(); Console.WriteLine("Time elapsed: {0}", watch.Elapsed); }
public void TestGetNumProteaseTermini() { Protease trypsin = new Protease("Trypsin", true, "KR", "P"); Assert.AreEqual(0, trypsin.GetNumProteaseTermini('M', "ABCDE", 'N', '-', 3)); Assert.AreEqual(1, trypsin.GetNumProteaseTermini('M', "ABCDE", 'N', '-', 2)); Assert.AreEqual(2, trypsin.GetNumProteaseTermini('M', "ABCDR", 'N', '-', 2)); }
public void InitiatorMethonineCleaved() { List <Peptide> peptides = _proteinA.Digest(Protease.GetProtease("LysC"), 1, initiatorMethonine: true).ToList(); Assert.Contains(new Peptide("MRGFK"), peptides); Assert.Contains(new Peptide("MMRGFK"), peptides); }
public static void AddCompIonsCommonParams() { CommonParameters cp = new CommonParameters(null, DissociationType.HCD, DissociationType.Unknown, true, true, 3, 12, true, true, 1, 5, 200, 0.01, null, null, false, false, true, false, null, null, null, -1, null, null, null, 1, true, 4, 1); var myMsDataFile = new TestDataFile(); var variableModifications = new List <Modification>(); var fixedModifications = new List <Modification>(); var localizeableModifications = new List <Modification>(); Dictionary <Modification, ushort> modsDictionary = new Dictionary <Modification, ushort>(); foreach (var mod in fixedModifications) { modsDictionary.Add(mod, 0); } int ii = 1; foreach (var mod in variableModifications) { modsDictionary.Add(mod, (ushort)ii); ii++; } foreach (var mod in localizeableModifications) { modsDictionary.Add(mod, (ushort)ii); ii++; } var proteinList = new List <Protein> { new Protein("MNNNKQQQ", null) }; SearchParameters SearchParameters = new SearchParameters { MassDiffAcceptorType = MassDiffAcceptorType.Exact, SearchTarget = true, }; List <DigestionMotif> motifs = new List <DigestionMotif> { new DigestionMotif("K", null, 1, null) }; Protease protease = new Protease("Test", CleavageSpecificity.Full, null, null, motifs); ProteaseDictionary.Dictionary.Add(protease.Name, protease); var indexEngine = new IndexingEngine(proteinList, variableModifications, fixedModifications, new List <SilacLabel>(), null, null, 1, DecoyType.Reverse, cp, SearchParameters.MaxFragmentSize, false, new List <FileInfo>(), new List <string>()); var indexResults = (IndexingResults)indexEngine.Run(); Tolerance DeconvolutionMassTolerance = new PpmTolerance(5); var listOfSortedms2Scans = MetaMorpheusTask.GetMs2Scans(myMsDataFile, null, new CommonParameters()).OrderBy(b => b.PrecursorMass).ToArray(); MassDiffAcceptor massDiffAcceptor = SearchTask.GetMassDiffAcceptor(cp.PrecursorMassTolerance, SearchParameters.MassDiffAcceptorType, SearchParameters.CustomMdac); // without complementary ions PeptideSpectralMatch[] allPsmsArray = new PeptideSpectralMatch[listOfSortedms2Scans.Length]; var mse = new ModernSearchEngine(allPsmsArray, listOfSortedms2Scans, indexResults.PeptideIndex, indexResults.FragmentIndex, 0, cp, massDiffAcceptor, SearchParameters.MaximumMassThatFragmentIonScoreIsDoubled, new List <string>()).Run(); }
public static void ReadPepXml() { WritePepXml(); //string filePath = Path.Combine(Examples.BASE_DIRECTORY, "example.pepXML"); string filePath = @"E:\Desktop\test\27Nov2013_CEM_WellsProtein_CAD_filter.pep.xml"; Console.WriteLine("Reading from " + filePath); using (PepXmlReader reader = new PepXmlReader(filePath)) { Protease protease = reader.GetSampleProtease(); Console.WriteLine("Protease: " + protease); Console.WriteLine(); List <Modification> fixedMods = reader.GetFixedModifications(); Console.WriteLine("==Fixed Modifications=="); foreach (Modification mod in fixedMods) { Console.WriteLine("\t" + mod); } Console.WriteLine(); List <Modification> varMods = reader.GetVariableModifications(); Console.WriteLine("==Variable Modifications=="); foreach (Modification mod in varMods) { Console.WriteLine("\t" + mod); } } }
public static void WritePepXml() { string filePath = Path.Combine(Examples.BASE_DIRECTORY, "example.pepXML"); Console.WriteLine("Writting to " + filePath); using (PepXmlWriter writer = new PepXmlWriter(filePath)) { writer.WriteSampleProtease(Protease.GetProtease("Trypsin")); writer.StartSearchSummary("OMSSA", true, true); writer.WriteProteinDatabase("Resources/yeast_uniprot_120226.fasta"); writer.WriteSearchProtease(Protease.GetProtease("Trypsin"), 3); writer.WriteModification(ModificationDictionary.GetModification("Acetyl"), ModificationSites.K | ModificationSites.NPep); writer.WriteModification(ModificationDictionary.GetModification("CAM"), ModificationSites.C); writer.WriteModification(ModificationDictionary.GetModification("Phospho"), ModificationSites.S | ModificationSites.T | ModificationSites.Y, false); writer.SetCurrentStage(PepXmlWriter.Stage.Spectra, true); writer.StartSpectrum(15, 1.234, 523.4324, 3); PeptideSpectralMatch psm = new PeptideSpectralMatch(PeptideSpectralMatchScoreType.OmssaEvalue); psm.Score = 1.5e-5; Protein protein = new Protein("", "Test Protein"); psm.Peptide = new Peptide("DEREK", protein); psm.Charge = 3; writer.WritePSM(psm); writer.EndSpectrum(); } }
public void TrypsinDigestion() { List <Peptide> peptides = _proteinA.Digest(Protease.GetProtease("Trypsin")).ToList(); Peptide pepA = new Peptide("TTGSSSSSSSK"); Assert.Contains(pepA, peptides); }
private void PopulateChoices() { foreach (Protease protease in ProteaseDictionary.Dictionary.Values) { proteaseComboBox.Items.Add(protease); } Protease trypsin = ProteaseDictionary.Dictionary["trypsin"]; proteaseComboBox.SelectedItem = trypsin; foreach (string initiatior_methionine_behavior in Enum.GetNames(typeof(InitiatorMethionineBehavior))) { initiatorMethionineBehaviorComboBox.Items.Add(initiatior_methionine_behavior); } foreach (string dissassociationType in GlobalVariables.AllSupportedDissociationTypes.Keys) { dissociationTypeComboBox.Items.Add(dissassociationType); } productMassToleranceComboBox.Items.Add("Da"); productMassToleranceComboBox.Items.Add("ppm"); precursorMassToleranceComboBox.Items.Add("Da"); precursorMassToleranceComboBox.Items.Add("ppm"); foreach (var hm in GlobalVariables.AllModsKnown.Where(b => b.ValidModification == true).GroupBy(b => b.ModificationType)) { var theModType = new ModTypeForGrid(hm.Key); ModSelectionGridItems.Add(theModType); } ModSelectionGrid.ItemsSource = ModSelectionGridItems; foreach (var hm in GlobalVariables.AllModsKnown.Where(b => b.ValidModification == true).GroupBy(b => b.ModificationType)) { var theModType = new ModTypeForTreeView(hm.Key, false); FixedModTypeForTreeViewObservableCollection.Add(theModType); foreach (var uah in hm) { theModType.Children.Add(new ModForTreeView(uah.ToString(), false, uah.IdWithMotif, false, theModType)); } } fixedModsTreeView.DataContext = FixedModTypeForTreeViewObservableCollection; foreach (var hm in GlobalVariables.AllModsKnown.Where(b => b.ValidModification == true).GroupBy(b => b.ModificationType)) { var theModType = new ModTypeForTreeView(hm.Key, false); VariableModTypeForTreeViewObservableCollection.Add(theModType); foreach (var uah in hm) { theModType.Children.Add(new ModForTreeView(uah.ToString(), false, uah.IdWithMotif, false, theModType)); } } variableModsTreeView.DataContext = VariableModTypeForTreeViewObservableCollection; foreach (var hm in GlobalVariables.AllModsKnown.Where(b => b.ValidModification == true).GroupBy(b => b.ModificationType)) { LocalizeModTypeForTreeViewObservableCollection.Add(new ModTypeForLoc(hm.Key)); } }
public static void ParsimonyLocalizeableTreatAsUnique() { bool modPeptidesAreUnique = true; // set up mods var modDictionary = new Dictionary <int, List <Modification> >(); ModificationMotif.TryGetMotif("M", out ModificationMotif motif1); var mod = new ModificationWithMass("Oxidation of M", "Common Variable", motif1, TerminusLocalization.Any, 15.99491461957); TerminusType terminusType = ProductTypeMethod.IdentifyTerminusType(new List <ProductType> { ProductType.B, ProductType.Y }); var protease = new Protease("kprotease", new List <string> { "K" }, new List <string>(), TerminusType.C, CleavageSpecificity.Full, null, null, null); // modified version of protein var protein1 = new Protein("PEPTIDEM", "accession1"); // unmodified version of protein var protein2 = new Protein("YYYKPEPTIDEM", "accession2"); var pep1 = protein1.Digest(new DigestionParams { MinPeptideLength = null, Protease = protease }, new List <ModificationWithMass> { mod }, new List <ModificationWithMass>()).First(); var pep2 = protein2.Digest(new DigestionParams { MinPeptideLength = null, Protease = protease }, new List <ModificationWithMass>(), new List <ModificationWithMass>()).ToList()[1]; // check to make sure mod is present Assert.That(pep1.Sequence != pep2.Sequence); Assert.That(pep1.NumMods == 1); Assert.That(pep2.NumMods == 0); // build the dictionary for input to parsimony var compactPeptideToProteinPeptideMatching = new Dictionary <CompactPeptideBase, HashSet <PeptideWithSetModifications> >(); compactPeptideToProteinPeptideMatching.Add(pep1.CompactPeptide(terminusType), new HashSet <PeptideWithSetModifications> { pep1 }); compactPeptideToProteinPeptideMatching.Add(pep2.CompactPeptide(terminusType), new HashSet <PeptideWithSetModifications> { pep2 }); // apply parsimony ProteinParsimonyEngine pae = new ProteinParsimonyEngine(compactPeptideToProteinPeptideMatching, modPeptidesAreUnique, new List <string>()); pae.Run(); // check to make sure both peptides are NOT associated with both proteins Assert.That(compactPeptideToProteinPeptideMatching.Count == 2); foreach (var kvp in compactPeptideToProteinPeptideMatching) { Assert.That(kvp.Value.Count == 1); } }
public static void TestResolveAmbiguities() { Protease protease = new Protease("Custom Protease4", CleavageSpecificity.Full, null, null, new List <DigestionMotif> { new DigestionMotif("K", null, 1, "") }); ProteaseDictionary.Dictionary.Add(protease.Name, protease); CommonParameters CommonParameters_t = new CommonParameters( dissociationType: MassSpectrometry.DissociationType.HCD, digestionParams: new DigestionParams( protease: protease.Name, minPeptideLength: 1), scoreCutoff: 1, reportAllAmbiguity: true); var fsp_t = new List <(string fileName, CommonParameters fileSpecificParameters)>(); fsp_t.Add(("", CommonParameters_t)); CommonParameters CommonParameters_f = new CommonParameters( dissociationType: MassSpectrometry.DissociationType.HCD, digestionParams: new DigestionParams( protease: protease.Name, minPeptideLength: 1), scoreCutoff: 1, reportAllAmbiguity: false); var fsp_f = new List <(string fileName, CommonParameters fileSpecificParameters)>(); fsp_f.Add(("", CommonParameters_t)); var myMsDataFile = new TestDataFile(); var variableModifications = new List <Modification>(); var fixedModifications = new List <Modification>(); var proteinList = new List <Protein> { new Protein("MNNKNKNKQQQ", "Prot1"), new Protein("MNNNKQQQ", "Prot2") }; var searchModes = new SinglePpmAroundZeroSearchMode(5); Tolerance DeconvolutionMassTolerance = new PpmTolerance(5); var listOfSortedms2Scans = MetaMorpheusTask.GetMs2Scans(myMsDataFile, null, new CommonParameters()).OrderBy(b => b.PrecursorMass).ToArray(); PeptideSpectralMatch[] allPsmsArray_withAmbiguity = new PeptideSpectralMatch[listOfSortedms2Scans.Length]; PeptideSpectralMatch[] allPsmsArray_withOutAmbiguity = new PeptideSpectralMatch[listOfSortedms2Scans.Length]; bool writeSpectralLibrary = false; new ClassicSearchEngine(allPsmsArray_withAmbiguity, listOfSortedms2Scans, variableModifications, fixedModifications, null, null, null, proteinList, searchModes, CommonParameters_t, fsp_t, null, new List <string>(), writeSpectralLibrary).Run(); //report all ambiguity TRUE new ClassicSearchEngine(allPsmsArray_withOutAmbiguity, listOfSortedms2Scans, variableModifications, fixedModifications, null, null, null, proteinList, searchModes, CommonParameters_f, fsp_f, null, new List <string>(), writeSpectralLibrary).Run(); //report all ambiguity FALSE Assert.AreEqual("QQQ", allPsmsArray_withAmbiguity[0].BaseSequence); Assert.AreEqual("QQQ", allPsmsArray_withOutAmbiguity[0].BaseSequence); Assert.IsTrue(allPsmsArray_withAmbiguity[0].ProteinLength == null); Assert.IsTrue(allPsmsArray_withOutAmbiguity[0].ProteinLength != null); Assert.IsTrue(allPsmsArray_withAmbiguity[0].OneBasedStartResidueInProtein == null); Assert.IsTrue(allPsmsArray_withOutAmbiguity[0].OneBasedStartResidueInProtein != null); }
public static void TestFragments() { // creates some test proteins, digest, and fragment string[] sequences = { "GLSDGEWQQVLNVWGK" }; // just one peptide var protease = new Protease("tryp", new List <string> { "K" }, new List <string>(), TerminusType.C, CleavageSpecificity.Full, null, null, null); var peptides = new HashSet <PeptideWithSetModifications>(); var p = new List <Protein>(); for (int i = 0; i < sequences.Length; i++) { p.Add(new Protein(sequences[i], (i + 1).ToString())); } DigestionParams digestionParams = new DigestionParams(); foreach (var protein in p) { foreach (var peptide in protein.Digest(digestionParams, new List <ModificationWithMass>(), new List <ModificationWithMass>())) { peptides.Add(peptide); } } var CfragmentMasses = new Dictionary <PeptideWithSetModifications, double[]>(); var ZdotfragmentMasses = new Dictionary <PeptideWithSetModifications, double[]>(); var BfragmentMasses = new Dictionary <PeptideWithSetModifications, double[]>(); var YfragmentMasses = new Dictionary <PeptideWithSetModifications, double[]>(); var BYfragmentMasses = new Dictionary <PeptideWithSetModifications, double[]>(); foreach (var peptide in peptides) { CfragmentMasses.Add(peptide, peptide.CompactPeptide(TerminusType.None).ProductMassesMightHaveDuplicatesAndNaNs(new List <ProductType> { ProductType.C })); ZdotfragmentMasses.Add(peptide, peptide.CompactPeptide(TerminusType.None).ProductMassesMightHaveDuplicatesAndNaNs(new List <ProductType> { ProductType.Zdot })); BfragmentMasses.Add(peptide, peptide.CompactPeptide(TerminusType.None).ProductMassesMightHaveDuplicatesAndNaNs(new List <ProductType> { ProductType.B })); YfragmentMasses.Add(peptide, peptide.CompactPeptide(TerminusType.None).ProductMassesMightHaveDuplicatesAndNaNs(new List <ProductType> { ProductType.Y })); BYfragmentMasses.Add(peptide, peptide.CompactPeptide(TerminusType.None).ProductMassesMightHaveDuplicatesAndNaNs(new List <ProductType> { ProductType.B, ProductType.Y })); } Assert.That(BfragmentMasses.TryGetValue(peptides.First(), out double[] testB)); Assert.That(YfragmentMasses.TryGetValue(peptides.First(), out double[] testY)); Assert.That(CfragmentMasses.TryGetValue(peptides.First(), out double[] testC)); Assert.That(ZdotfragmentMasses.TryGetValue(peptides.First(), out double[] testZ)); }
public static void TestCombos() { List <PeptideSpectralMatch> allIdentifications = null; ModificationMotif.TryGetMotif("N", out ModificationMotif motifN); ModificationMotif.TryGetMotif("P", out ModificationMotif motifP); var gptmdModifications = new List <ModificationWithMass> { new ModificationWithMass("21", "mt", motifN, TerminusLocalization.Any, 21.981943, null), new ModificationWithMass("16", "mt", motifP, TerminusLocalization.Any, 15.994915, null) }; IEnumerable <Tuple <double, double> > combos = new List <Tuple <double, double> > { new Tuple <double, double>(21.981943, 15.994915) }; Tolerance precursorMassTolerance = new PpmTolerance(10); var protease = new Protease("Custom Protease", new List <string> { "K" }, new List <string>(), TerminusType.C, CleavageSpecificity.Full, null, null, null); IMsDataScanWithPrecursor <IMzSpectrum <IMzPeak> > dfd = new MzmlScanWithPrecursor(0, new MzmlMzSpectrum(new double[] { 1 }, new double[] { 1 }, false), 1, true, Polarity.Positive, double.NaN, null, null, MZAnalyzerType.Orbitrap, double.NaN, double.NaN, null, null, double.NaN, null, DissociationType.AnyActivationType, 0, null, null, "scan=1"); Ms2ScanWithSpecificMass scan = new Ms2ScanWithSpecificMass(dfd, (651.297638557 + 21.981943 + 15.994915).ToMz(1), 1, null); var parentProtein = new Protein("NNNPPP", "accession"); DigestionParams digestionParams = new DigestionParams(); List <ModificationWithMass> variableModifications = new List <ModificationWithMass>(); var modPep = parentProtein.Digest(digestionParams, new List <ModificationWithMass>(), variableModifications).First(); var peptidesWithSetModifications = new List <PeptideWithSetModifications> { modPep }; PeptideSpectralMatch match = new PeptideSpectralMatch(peptidesWithSetModifications.First().CompactPeptide(TerminusType.None), 0, 0, 0, scan); PeptideSpectralMatch newPsm = new PeptideSpectralMatch(peptidesWithSetModifications.First().CompactPeptide(TerminusType.None), 0, 0, 0, scan); Dictionary <ModificationWithMass, ushort> modsDictionary = new Dictionary <ModificationWithMass, ushort>(); Dictionary <CompactPeptideBase, HashSet <PeptideWithSetModifications> > matching = new Dictionary <CompactPeptideBase, HashSet <PeptideWithSetModifications> > { { peptidesWithSetModifications.First().CompactPeptide(TerminusType.None), new HashSet <PeptideWithSetModifications> { peptidesWithSetModifications.First() } } }; List <ProductType> lp = new List <ProductType> { ProductType.B, ProductType.Y }; Tolerance fragmentTolerance = new AbsoluteTolerance(0.01); match.MatchToProteinLinkedPeptides(matching); match.SetFdrValues(1, 0, 0, 1, 0, 0, 0, 0, 0, false); allIdentifications = new List <PeptideSpectralMatch> { match }; var engine = new GptmdEngine(allIdentifications, gptmdModifications, combos, precursorMassTolerance, new List <string>()); var res = (GptmdResults)engine.Run(); Assert.AreEqual(1, res.Mods.Count); Assert.AreEqual(6, res.Mods["accession"].Count); Assert.AreEqual(3, res.Mods["accession"].Where(b => b.Item2.id.Equals("21")).Count()); Assert.AreEqual(3, res.Mods["accession"].Where(b => b.Item2.id.Equals("16")).Count()); }
public void DuplicatePeptidesReturn() { Protein prot = new Protein("DEREKDEREK"); var peptides = prot.Digest(Protease.GetProtease("LysC"), 0).ToList(); Assert.AreEqual(peptides.Count, 2); }
private void ParseProtease(XmlNode parameters) { XmlNode node = xmlHelper.GetFirstChildByNameAndAttribute(parameters, "note", "label", "protein, cleavage site"); Match m = Regex.Match(node.InnerText, @"\[(.+)\]\|\{(.+)\}"); protease = ProteaseManager.FindOrCreateProtease("XTANDEM_PROTEASE", true, m.Groups[1].Value, m.Groups[2].Value); }
public void SemiTrypiticDigestion() { Protein prot = new Protein("MMRGFKQRLIKKTTGSSSSSSSKKKDKEKEKEKSSTTSSTSKKPASASSSSHGTTHSSASSTGSKSTTEKGKQSGSVPSQ"); var peptides = prot.Digest(Protease.GetProtease("Trypsin"), 0, 5, 10, semiDigestion: true).ToList(); Assert.AreEqual(17, peptides.Count); }
public void DuplicatePeptidesAreEqualivant() { Protein prot = new Protein("DEREKDEREK"); var peptides = prot.Digest(Protease.GetProtease("LysC"), 0).ToList(); Assert.AreEqual(peptides[0], peptides[1]); }
public static void TestCoIsolation() { List <DigestionMotif> motifs = new List <DigestionMotif> { new DigestionMotif("K", null, 1, null) }; Protease protease = new Protease("CustProtease", CleavageSpecificity.Full, null, null, motifs); ProteaseDictionary.Dictionary.Add(protease.Name, protease); CommonParameters CommonParameters = new CommonParameters(scoreCutoff: 1, deconvolutionIntensityRatio: 50, digestionParams: new DigestionParams(protease.Name, minPeptideLength: 1)); var variableModifications = new List <Modification>(); var fixedModifications = new List <Modification>(); var proteinList = new List <Protein> { new Protein("MNNNKNDNK", null) }; var searchModes = new SinglePpmAroundZeroSearchMode(5); Proteomics.AminoAcidPolymer.Peptide pep1 = new Proteomics.AminoAcidPolymer.Peptide("NNNK"); Proteomics.AminoAcidPolymer.Peptide pep2 = new Proteomics.AminoAcidPolymer.Peptide("NDNK"); var dist1 = IsotopicDistribution.GetDistribution(pep1.GetChemicalFormula(), 0.1, 0.01); var dist2 = IsotopicDistribution.GetDistribution(pep2.GetChemicalFormula(), 0.1, 0.01); MsDataScan[] Scans = new MsDataScan[2]; double[] ms1intensities = new double[] { 0.8, 0.8, 0.2, 0.02, 0.2, 0.02 }; double[] ms1mzs = dist1.Masses.Concat(dist2.Masses).OrderBy(b => b).Select(b => b.ToMz(1)).ToArray(); double selectedIonMz = ms1mzs[1]; MzSpectrum MS1 = new MzSpectrum(ms1mzs, ms1intensities, false); Scans[0] = new MsDataScan(MS1, 1, 1, false, Polarity.Positive, 1.0, new MzRange(300, 2000), "first spectrum", MZAnalyzerType.Unknown, MS1.SumOfAllY, null, null, "scan=1"); double[] ms2intensities = new double[] { 1, 1, 1, 1, 1 }; double[] ms2mzs = new double[] { 146.106.ToMz(1), 228.086.ToMz(1), 229.07.ToMz(1), 260.148.ToMz(1), 342.129.ToMz(1) }; MzSpectrum MS2 = new MzSpectrum(ms2mzs, ms2intensities, false); double isolationMZ = selectedIonMz; Scans[1] = new MsDataScan(MS2, 2, 2, false, Polarity.Positive, 2.0, new MzRange(100, 1500), "second spectrum", MZAnalyzerType.Unknown, MS2.SumOfAllY, null, null, "scan=2", selectedIonMz, null, null, isolationMZ, 2.5, DissociationType.HCD, 1, null); var myMsDataFile = new MsDataFile(Scans, null); var listOfSortedms2Scans = MetaMorpheusTask.GetMs2Scans(myMsDataFile, null, new CommonParameters(deconvolutionIntensityRatio: 50)).OrderBy(b => b.PrecursorMass).ToArray(); PeptideSpectralMatch[] allPsmsArray = new PeptideSpectralMatch[listOfSortedms2Scans.Length];; new ClassicSearchEngine(allPsmsArray, listOfSortedms2Scans, variableModifications, fixedModifications, null, null, null, proteinList, searchModes, CommonParameters, new List <string>()).Run(); // Two matches for this single scan! Corresponding to two co-isolated masses Assert.AreEqual(2, allPsmsArray.Length); Assert.IsTrue(allPsmsArray[0].Score > 1); Assert.AreEqual(2, allPsmsArray[0].ScanNumber); Assert.AreEqual("NNNK", allPsmsArray[0].BaseSequence); Assert.AreEqual("NDNK", allPsmsArray[1].BaseSequence); }
public static void TestAddCompIonsClassic() { var myMsDataFile = new TestDataFile(); var variableModifications = new List <Modification>(); var fixedModifications = new List <Modification>(); var proteinList = new List <Protein> { new Protein("QXQ", null) }; var productMassTolerance = new AbsoluteTolerance(0.01); var searchModes = new OpenSearchMode(); Tolerance DeconvolutionMassTolerance = new PpmTolerance(5); var listOfSortedms2Scans = MetaMorpheusTask.GetMs2Scans(myMsDataFile, null, new CommonParameters()).OrderBy(b => b.PrecursorMass).ToArray(); List <DigestionMotif> motifs = new List <DigestionMotif> { new DigestionMotif("K", null, 1, null) }; Protease protease = new Protease("Custom Protease3", CleavageSpecificity.Full, null, null, motifs); ProteaseDictionary.Dictionary.Add(protease.Name, protease); CommonParameters CommonParameters = new CommonParameters( digestionParams: new DigestionParams(protease: protease.Name, maxMissedCleavages: 0, minPeptideLength: 1), scoreCutoff: 1, addCompIons: false); var fsp = new List <(string fileName, CommonParameters fileSpecificParameters)>(); fsp.Add(("", CommonParameters)); PeptideSpectralMatch[] allPsmsArray = new PeptideSpectralMatch[listOfSortedms2Scans.Length]; new ClassicSearchEngine(allPsmsArray, listOfSortedms2Scans, variableModifications, fixedModifications, null, null, null, proteinList, searchModes, CommonParameters, fsp, new List <string>()).Run(); CommonParameters CommonParameters2 = new CommonParameters( digestionParams: new DigestionParams(protease: protease.Name, maxMissedCleavages: 0, minPeptideLength: 1), scoreCutoff: 1, addCompIons: true); var fsp2 = new List <(string fileName, CommonParameters fileSpecificParameters)>(); fsp2.Add(("", CommonParameters2)); PeptideSpectralMatch[] allPsmsArray2 = new PeptideSpectralMatch[listOfSortedms2Scans.Length]; new ClassicSearchEngine(allPsmsArray2, listOfSortedms2Scans, variableModifications, fixedModifications, null, null, null, proteinList, searchModes, CommonParameters2, fsp2, new List <string>()).Run(); double scoreT = allPsmsArray2[0].Score; double scoreF = allPsmsArray[0].Score; // Single search mode Assert.AreEqual(allPsmsArray.Length, allPsmsArray2.Length); // Single ms2 scan Assert.AreEqual(allPsmsArray.Length, allPsmsArray2.Length); Assert.IsTrue(scoreT > 1); Assert.AreEqual(allPsmsArray[0].ScanNumber, allPsmsArray2[0].ScanNumber); Assert.IsTrue(scoreT == scoreF * 3 && scoreT > scoreF + 2); }
public static void TestNonSpecific() { Protease p = ProteaseDictionary.Dictionary["non-specific"]; Protein prot = new Protein("MABCDEFGH", null); DigestionParams digestionParams = new DigestionParams(protease: p.Name, maxMissedCleavages: 8, minPeptideLength: 1, maxPeptideLength: 9, initiatorMethionineBehavior: InitiatorMethionineBehavior.Retain); Assert.AreEqual(1 + 2 + 3 + 4 + 5 + 6 + 7 + 8, prot.Digest(digestionParams, new List <ModificationWithMass>(), new List <ModificationWithMass>()).Count()); }
public static void TestLocalization() { var protease = new Protease("Custom Protease", new List <string> { "K" }, new List <string>(), TerminusType.C, CleavageSpecificity.Full, null, null, null); Protein parentProteinForMatch = new Protein("MEK", null); DigestionParams digestionParams = new DigestionParams { MinPeptideLength = 1, }; ModificationMotif.TryGetMotif("E", out ModificationMotif motif); List <ModificationWithMass> variableModifications = new List <ModificationWithMass> { new ModificationWithMass("21", null, motif, TerminusLocalization.Any, 21.981943) }; List <PeptideWithSetModifications> allPeptidesWithSetModifications = parentProteinForMatch.Digest(digestionParams, new List <ModificationWithMass>(), variableModifications).ToList(); Assert.AreEqual(4, allPeptidesWithSetModifications.Count()); PeptideWithSetModifications ps = allPeptidesWithSetModifications.First(); List <ProductType> lp = new List <ProductType> { ProductType.BnoB1ions, ProductType.Y }; PeptideWithSetModifications pepWithSetModsForSpectrum = allPeptidesWithSetModifications[1]; IMsDataFile <IMsDataScan <IMzSpectrum <IMzPeak> > > myMsDataFile = new TestDataFile(new List <PeptideWithSetModifications> { pepWithSetModsForSpectrum }); Tolerance fragmentTolerance = new AbsoluteTolerance(0.01); Ms2ScanWithSpecificMass scan = new Ms2ScanWithSpecificMass(myMsDataFile.Last() as IMsDataScanWithPrecursor <IMzSpectrum <IMzPeak> >, pepWithSetModsForSpectrum.MonoisotopicMass.ToMz(1), 1, null); PeptideSpectralMatch newPsm = new PeptideSpectralMatch(ps.CompactPeptide(TerminusType.None), 0, 0, 2, scan); Dictionary <ModificationWithMass, ushort> modsDictionary = new Dictionary <ModificationWithMass, ushort>(); Dictionary <CompactPeptideBase, HashSet <PeptideWithSetModifications> > matching = new Dictionary <CompactPeptideBase, HashSet <PeptideWithSetModifications> > { { ps.CompactPeptide(TerminusType.None), new HashSet <PeptideWithSetModifications> { ps } } }; newPsm.MatchToProteinLinkedPeptides(matching); LocalizationEngine f = new LocalizationEngine(new List <PeptideSpectralMatch> { newPsm }, lp, myMsDataFile, fragmentTolerance, new List <string>(), false); f.Run(); // Was single peak!!! Assert.AreEqual(0, newPsm.MatchedIonDictOnlyMatches[ProductType.BnoB1ions].Count(b => b > 0)); Assert.AreEqual(1, newPsm.MatchedIonDictOnlyMatches[ProductType.Y].Count(b => b > 0)); // If localizing, three match!!! Assert.IsTrue(newPsm.LocalizedScores[1] > 3 && newPsm.LocalizedScores[1] < 4); }
public static void TestGptmdEngine() { List <PeptideSpectralMatch> allResultingIdentifications = null; ModificationMotif.TryGetMotif("N", out ModificationMotif motifN); var gptmdModifications = new List <ModificationWithMass> { new ModificationWithMass("21", "mt", motifN, TerminusLocalization.Any, 21.981943) }; IEnumerable <Tuple <double, double> > combos = new List <Tuple <double, double> >(); Tolerance precursorMassTolerance = new PpmTolerance(10); allResultingIdentifications = new List <PeptideSpectralMatch>(); var engine = new GptmdEngine(allResultingIdentifications, gptmdModifications, combos, precursorMassTolerance, new List <string>()); var res = (GptmdResults)engine.Run(); Assert.AreEqual(0, res.Mods.Count); //PsmParent newPsm = new TestParentSpectrumMatch(588.22520189093 + 21.981943); Ms2ScanWithSpecificMass scan = new Ms2ScanWithSpecificMass(new MzmlScanWithPrecursor(0, new MzmlMzSpectrum(new double[] { 1 }, new double[] { 1 }, false), 1, true, Polarity.Positive, double.NaN, null, null, MZAnalyzerType.Orbitrap, double.NaN, double.NaN, null, null, double.NaN, null, DissociationType.AnyActivationType, 0, null, null, "scan=1"), (588.22520189093 + 21.981943).ToMz(1), 1, null); var parentProtein = new Protein("NNNNN", "accession"); var protease = new Protease("Custom Protease", new List <string> { "K" }, new List <string>(), TerminusType.C, CleavageSpecificity.Full, null, null, null); DigestionParams digestionParams = new DigestionParams(); List <ModificationWithMass> variableModifications = new List <ModificationWithMass>(); var modPep = parentProtein.Digest(digestionParams, new List <ModificationWithMass>(), variableModifications).First(); var peptidesWithSetModifications = new List <PeptideWithSetModifications> { modPep }; PeptideSpectralMatch newPsm = new PeptideSpectralMatch(peptidesWithSetModifications.First().CompactPeptide(TerminusType.None), 0, 0, 0, scan); Dictionary <ModificationWithMass, ushort> modsDictionary = new Dictionary <ModificationWithMass, ushort>(); Dictionary <CompactPeptideBase, HashSet <PeptideWithSetModifications> > matching = new Dictionary <CompactPeptideBase, HashSet <PeptideWithSetModifications> > { { peptidesWithSetModifications.First().CompactPeptide(TerminusType.None), new HashSet <PeptideWithSetModifications> { peptidesWithSetModifications.First() } } }; List <ProductType> lp = new List <ProductType> { ProductType.B, ProductType.Y }; Tolerance fragmentTolerance = new AbsoluteTolerance(0.01); newPsm.MatchToProteinLinkedPeptides(matching); newPsm.SetFdrValues(1, 0, 0, 1, 0, 0, 0, 0, 0, false); allResultingIdentifications.Add(newPsm); engine = new GptmdEngine(allResultingIdentifications, gptmdModifications, combos, precursorMassTolerance, new List <string>()); res = (GptmdResults)engine.Run(); Assert.AreEqual(1, res.Mods.Count); Assert.AreEqual(5, res.Mods["accession"].Count); }
private void PopulateChoices() { foreach (var crosslinker in GlobalVariables.Crosslinkers) { cbCrosslinkers.Items.Add(crosslinker); } Crosslinker DSSO = GlobalVariables.Crosslinkers.First(); cbCrosslinkers.SelectedItem = DSSO; foreach (string dissassociationType in GlobalVariables.AllSupportedDissociationTypes.Keys) { DissociationTypeComboBox.Items.Add(dissassociationType); ChildScanDissociationTypeComboBox.Items.Add(dissassociationType); } cbbXLprecusorMsTl.Items.Add("Da"); cbbXLprecusorMsTl.Items.Add("ppm"); foreach (Protease protease in ProteaseDictionary.Dictionary.Values) { proteaseComboBox.Items.Add(protease); } Protease trypsin = ProteaseDictionary.Dictionary["trypsin"]; proteaseComboBox.SelectedItem = trypsin; foreach (string initiatior_methionine_behavior in Enum.GetNames(typeof(InitiatorMethionineBehavior))) { initiatorMethionineBehaviorComboBox.Items.Add(initiatior_methionine_behavior); } productMassToleranceComboBox.Items.Add("Da"); productMassToleranceComboBox.Items.Add("ppm"); foreach (var hm in GlobalVariables.AllModsKnown.GroupBy(b => b.ModificationType)) { var theModType = new ModTypeForTreeView(hm.Key, false); FixedModTypeForTreeViewObservableCollection.Add(theModType); foreach (var uah in hm) { theModType.Children.Add(new ModForTreeView(uah.ToString(), false, uah.IdWithMotif, false, theModType)); } } fixedModsTreeView.DataContext = FixedModTypeForTreeViewObservableCollection; foreach (var hm in GlobalVariables.AllModsKnown.GroupBy(b => b.ModificationType)) { var theModType = new ModTypeForTreeView(hm.Key, false); VariableModTypeForTreeViewObservableCollection.Add(theModType); foreach (var uah in hm) { theModType.Children.Add(new ModForTreeView(uah.ToString(), false, uah.IdWithMotif, false, theModType)); } } variableModsTreeView.DataContext = VariableModTypeForTreeViewObservableCollection; }
public List<string> CreateCleavedPeptides(int argAllowMissCleavage, Protease.Type argProteaseType) { _misscleavaged = argAllowMissCleavage; List<string> peptides = new List<string>(); foreach (ProteinInfo prot in _proteinInfo) { peptides.AddRange(prot.CreateCleavage(_misscleavaged, argProteaseType)); } return peptides; }
public static void XlTestXlPosCal() { var prot = new Protein("MNNNKQQQQ", null); Protease protease = new Protease("New Custom Protease", new List <Tuple <string, TerminusType> > { new Tuple <string, TerminusType>("K", TerminusType.C) }, new List <Tuple <string, TerminusType> >(), CleavageSpecificity.Full, null, null, null); ProteaseDictionary.Dictionary.Add(protease.Name, protease); DigestionParams digestionParams = new DigestionParams(protease: protease.Name, minPeptideLength: 1, initiatorMethionineBehavior: InitiatorMethionineBehavior.Retain); List <ModificationWithMass> variableModifications = new List <ModificationWithMass>(); var ye = prot.Digest(digestionParams, new List <ModificationWithMass>(), variableModifications).ToList(); var pep = ye[0]; Assert.AreEqual(pep.BaseSequence, "MNNNK"); CrosslinkerTypeClass crosslinker = new CrosslinkerTypeClass(); crosslinker.SelectCrosslinker(CrosslinkerType.DSS); Assert.AreEqual(crosslinker.CrosslinkerModSites, "K"); Assert.AreEqual(Residue.GetResidue(crosslinker.CrosslinkerModSites).MonoisotopicMass, 128.09496301518999, 1e-9); var n = pep.CompactPeptide(TerminusType.None).NTerminalMasses; var c = pep.CompactPeptide(TerminusType.None).CTerminalMasses; Assert.AreEqual(n.Count(), 4); Assert.AreEqual(c.Count(), 4); Assert.AreEqual(c[0], 128.09496301518999, 1e-6); var x = PsmCross.XlPosCal(pep.CompactPeptide(TerminusType.None), crosslinker.CrosslinkerModSites).ToArray(); Assert.AreEqual(x[0], 4); var pep2 = ye[2]; Assert.AreEqual("MNNNKQQQQ", pep2.BaseSequence); var n2 = pep2.CompactPeptide(TerminusType.None).NTerminalMasses; var c2 = pep2.CompactPeptide(TerminusType.None).CTerminalMasses; Assert.AreEqual(n2.Count(), 8); Assert.AreEqual(c2.Count(), 8); Assert.AreEqual(n2[4] - n2[3], 128.09496301518999, 1e-6); var x2 = PsmCross.XlPosCal(pep2.CompactPeptide(TerminusType.None), crosslinker.CrosslinkerModSites).ToArray(); Assert.AreEqual(x2[0], 4); //Test crosslinker with multiple types of mod var protSTC = new Protein("GASTACK", null); var peps = protSTC.Digest(digestionParams, new List <ModificationWithMass>(), variableModifications).ToList(); var pepSTC = peps[0]; Assert.AreEqual(pepSTC.BaseSequence, "GASTACK"); CrosslinkerTypeClass crosslinker2 = new CrosslinkerTypeClass("ST", "C", "crosslinkerSTC", false, -18.01056, 0, 0, 0, 0, 0, 0); string crosslinkerModSitesAll = new string((crosslinker2.CrosslinkerModSites + crosslinker2.CrosslinkerModSites2).ToCharArray().Distinct().ToArray()); Assert.AreEqual(crosslinkerModSitesAll, "STC"); }
public void TestIsCleavageSite() { Protease trypsin = new Protease("Trypsin", true, "KR", "P"); Assert.AreEqual(true, trypsin.IsCleavageSite('K', 'A', '-')); Assert.AreEqual(true, trypsin.IsCleavageSite('R', 'A', '-')); Assert.AreEqual(true, trypsin.IsCleavageSite('K', '-', '-')); Assert.AreEqual(true, trypsin.IsCleavageSite('R', '-', '-')); Assert.AreEqual(false, trypsin.IsCleavageSite('K', 'P', '-')); Assert.AreEqual(false, trypsin.IsCleavageSite('R', 'P', '-')); Assert.AreEqual(false, trypsin.IsCleavageSite('N', 'A', '-')); }
public static void XlTestXlPosCal() { var prot = new Protein("MNNNKQQQQ", null); List <DigestionMotif> motifs = new List <DigestionMotif> { new DigestionMotif("K", null, 1, null) }; Protease protease = new Protease("New Custom Protease", CleavageSpecificity.Full, null, null, motifs); ProteaseDictionary.Dictionary.Add(protease.Name, protease); DigestionParams digestionParams = new DigestionParams(protease: protease.Name, minPeptideLength: 1, initiatorMethionineBehavior: InitiatorMethionineBehavior.Retain); List <Modification> variableModifications = new List <Modification>(); var ye = prot.Digest(digestionParams, new List <Modification>(), variableModifications).ToList(); var pep = ye[0]; Assert.AreEqual(pep.BaseSequence, "MNNNK"); Crosslinker crosslinker = GlobalVariables.Crosslinkers.Where(p => p.CrosslinkerName == "DSS").First(); Assert.AreEqual(crosslinker.CrosslinkerModSites, "K"); Assert.AreEqual(Residue.GetResidue(crosslinker.CrosslinkerModSites).MonoisotopicMass, 128.09496301518999, 1e-9); var n = pep.Fragment(DissociationType.HCD, FragmentationTerminus.N); var c = pep.Fragment(DissociationType.HCD, FragmentationTerminus.C); Assert.AreEqual(n.Count(), 4); Assert.AreEqual(c.Count(), 4); Assert.AreEqual(c.First().NeutralMass, 146.10552769899999, 1e-6); var x = CrosslinkSpectralMatch.GetPossibleCrosslinkerModSites(crosslinker.CrosslinkerModSites.ToCharArray(), pep).ToArray(); Assert.AreEqual(x[0], 5); var pep2 = ye[2]; Assert.AreEqual("MNNNKQQQQ", pep2.BaseSequence); var n2 = pep2.Fragment(DissociationType.HCD, FragmentationTerminus.N); var c2 = pep2.Fragment(DissociationType.HCD, FragmentationTerminus.C); Assert.AreEqual(n2.Count(), 8); Assert.AreEqual(c2.Count(), 8); var x2 = CrosslinkSpectralMatch.GetPossibleCrosslinkerModSites(crosslinker.CrosslinkerModSites.ToCharArray(), pep2).ToArray(); Assert.AreEqual(x2[0], 5); //Test crosslinker with multiple types of mod var protSTC = new Protein("GASTACK", null); var peps = protSTC.Digest(digestionParams, new List <Modification>(), variableModifications).ToList(); var pepSTC = peps[0]; Assert.AreEqual(pepSTC.BaseSequence, "GASTACK"); Crosslinker crosslinker2 = new Crosslinker("ST", "C", "crosslinkerSTC", false, -18.01056, 0, 0, 0, 0, 0, 0); string crosslinkerModSitesAll = new string((crosslinker2.CrosslinkerModSites + crosslinker2.CrosslinkerModSites2).ToCharArray().Distinct().ToArray()); Assert.AreEqual(crosslinkerModSitesAll, "STC"); }
public void MultipleProteaseDigestion() { List <IProtease> proteases = new List <IProtease> { Protease.GetProtease("Trypsin"), Protease.GetProtease("GluC") }; List <Peptide> peptides = _proteinA.Digest(proteases, maxMissedCleavages: 1, maxLength: 5).ToList(); Assert.Contains(new Peptide("NWSK"), peptides); Assert.Contains(new Peptide("ENWSK"), peptides); }
public void TestParseProtease() { using (var sr = new StreamReader(@TestContext.CurrentContext.TestDirectory + "/../../../data//F001264.dat")) { Protease p = ParseEnzyme(sr); Assert.AreEqual("semiTrypsin", p.Name); Assert.AreEqual("KR", p.CleaveageResidues); Assert.AreEqual("P", p.NotCleaveResidues); Assert.AreEqual(true, p.IsEndoProtease); } }
public static void TestIndexEngine() { var proteinList = new List <Protein> { new Protein("MNNNKQQQ", null) }; var variableModifications = new List <ModificationWithMass>(); var fixedModifications = new List <ModificationWithMass>(); var localizeableModifications = new List <ModificationWithMass>(); Dictionary <ModificationWithMass, ushort> modsDictionary = new Dictionary <ModificationWithMass, ushort>(); foreach (var mod in fixedModifications) { modsDictionary.Add(mod, 0); } int i = 1; foreach (var mod in variableModifications) { modsDictionary.Add(mod, (ushort)i); i++; } foreach (var mod in localizeableModifications) { modsDictionary.Add(mod, (ushort)i); i++; } Protease p = new Protease("Custom Protease2", new List <Tuple <string, TerminusType> > { new Tuple <string, TerminusType>("K", TerminusType.C) }, new List <Tuple <string, TerminusType> >(), CleavageSpecificity.Full, null, null, null); ProteaseDictionary.Dictionary.Add(p.Name, p); CommonParameters CommonParameters = new CommonParameters(scoreCutoff: 1, digestionParams: new DigestionParams(protease: p.Name, minPeptideLength: 1)); var engine = new IndexingEngine(proteinList, variableModifications, fixedModifications, new List <ProductType> { ProductType.B, ProductType.Y }, 1, DecoyType.Reverse, new List <DigestionParams> { CommonParameters.DigestionParams }, CommonParameters, 30000, new List <string>()); var results = (IndexingResults)engine.Run(); Assert.AreEqual(5, results.PeptideIndex.Count); var digestedList = proteinList[0].Digest(CommonParameters.DigestionParams, new List <ModificationWithMass>(), variableModifications).ToList(); Assert.AreEqual(5, digestedList.Count); foreach (var fdfd in digestedList) { Assert.Contains(fdfd.CompactPeptide(TerminusType.None), results.PeptideIndex); } }
public static void TestIndexEngineWithWeirdSeq() { var proteinList = new List <Protein> { new Protein("MQXQ", null) }; var variableModifications = new List <ModificationWithMass>(); var fixedModifications = new List <ModificationWithMass>(); var localizeableModifications = new List <ModificationWithMass>(); Dictionary <ModificationWithMass, ushort> modsDictionary = new Dictionary <ModificationWithMass, ushort>(); foreach (var mod in fixedModifications) { modsDictionary.Add(mod, 0); } int i = 1; foreach (var mod in variableModifications) { modsDictionary.Add(mod, (ushort)i); i++; } foreach (var mod in localizeableModifications) { modsDictionary.Add(mod, (ushort)i); i++; } Protease protease = new Protease("Custom Protease", new List <Tuple <string, TerminusType> > { new Tuple <string, TerminusType>("K", TerminusType.C) }, new List <Tuple <string, TerminusType> >(), CleavageSpecificity.Full, null, null, null); ProteaseDictionary.Dictionary.Add(protease.Name, protease); CommonParameters CommonParameters = new CommonParameters( digestionParams: new DigestionParams( protease: protease.Name, minPeptideLength: 1, initiatorMethionineBehavior: InitiatorMethionineBehavior.Retain), scoreCutoff: 1); var engine = new IndexingEngine(proteinList, variableModifications, fixedModifications, new List <ProductType> { ProductType.B, ProductType.Y }, 1, DecoyType.Reverse, new List <DigestionParams> { CommonParameters.DigestionParams }, CommonParameters, 30000, new List <string>()); var results = (IndexingResults)engine.Run(); Assert.AreEqual(1, results.PeptideIndex.Count); Assert.IsNaN(results.PeptideIndex[0].MonoisotopicMassIncludingFixedMods); Assert.AreEqual(30000000 + 1, results.FragmentIndex.Length); }
public static void TestIndexEngineWithWeirdSeq() { var proteinList = new List <Protein> { new Protein("MQXQ", null) }; var variableModifications = new List <Modification>(); var fixedModifications = new List <Modification>(); var localizeableModifications = new List <Modification>(); Dictionary <Modification, ushort> modsDictionary = new Dictionary <Modification, ushort>(); foreach (var mod in fixedModifications) { modsDictionary.Add(mod, 0); } int i = 1; foreach (var mod in variableModifications) { modsDictionary.Add(mod, (ushort)i); i++; } foreach (var mod in localizeableModifications) { modsDictionary.Add(mod, (ushort)i); i++; } List <DigestionMotif> motifs = new List <DigestionMotif> { new DigestionMotif("K", null, 1, null) }; Protease protease = new Protease("Custom Protease", CleavageSpecificity.Full, null, null, motifs); ProteaseDictionary.Dictionary.Add(protease.Name, protease); CommonParameters CommonParameters = new CommonParameters( digestionParams: new DigestionParams( protease: protease.Name, minPeptideLength: 1, initiatorMethionineBehavior: InitiatorMethionineBehavior.Retain), scoreCutoff: 1); var fsp = new List <(string fileName, CommonParameters fileSpecificParameters)>(); fsp.Add(("", CommonParameters)); var engine = new IndexingEngine(proteinList, variableModifications, fixedModifications, null, null, null, 1, DecoyType.Reverse, CommonParameters, fsp, 30000, false, new List <FileInfo>(), TargetContaminantAmbiguity.RemoveContaminant, new List <string>()); var results = (IndexingResults)engine.Run(); Assert.AreEqual(1, results.PeptideIndex.Count); Assert.IsNaN(results.PeptideIndex[0].MonoisotopicMass); Assert.AreEqual(30000000 + 1, results.FragmentIndex.Length); }
private void PopulateChoices() { ChildScanDissociationTypeComboBox.Items.Add("Null"); foreach (var dissassociationType in GlobalVariables.AllSupportedDissociationTypes.Where(p => p.Value != DissociationType.Autodetect)) { DissociationTypeComboBox.Items.Add(dissassociationType.Key); ChildScanDissociationTypeComboBox.Items.Add(dissassociationType.Key); } cbbPrecusorMsTl.Items.Add("Da"); cbbPrecusorMsTl.Items.Add("ppm"); CmbOGlycanDatabase.ItemsSource = GlobalVariables.OGlycanLocations.Select(p => Path.GetFileName(p)); CmbNGlycanDatabase.ItemsSource = GlobalVariables.NGlycanLocations.Select(p => Path.GetFileName(p)); foreach (Protease protease in ProteaseDictionary.Dictionary.Values) { proteaseComboBox.Items.Add(protease); } Protease trypsin = ProteaseDictionary.Dictionary["trypsin"]; proteaseComboBox.SelectedItem = trypsin; foreach (string initiatior_methionine_behavior in Enum.GetNames(typeof(InitiatorMethionineBehavior))) { initiatorMethionineBehaviorComboBox.Items.Add(initiatior_methionine_behavior); } productMassToleranceComboBox.Items.Add("Da"); productMassToleranceComboBox.Items.Add("ppm"); foreach (var hm in GlobalVariables.AllModsKnown.GroupBy(b => b.ModificationType)) { var theModType = new ModTypeForTreeView(hm.Key, false); FixedModTypeForTreeViewObservableCollection.Add(theModType); foreach (var uah in hm) { theModType.Children.Add(new ModForTreeView(uah.ToString(), false, uah.IdWithMotif, false, theModType)); } } fixedModsTreeView.DataContext = FixedModTypeForTreeViewObservableCollection; foreach (var hm in GlobalVariables.AllModsKnown.GroupBy(b => b.ModificationType)) { var theModType = new ModTypeForTreeView(hm.Key, false); VariableModTypeForTreeViewObservableCollection.Add(theModType); foreach (var uah in hm) { theModType.Children.Add(new ModForTreeView(uah.ToString(), false, uah.IdWithMotif, false, theModType)); } } variableModsTreeView.DataContext = VariableModTypeForTreeViewObservableCollection; }
public void WriteSearchProtease(Protease protease, int maxMissedClevages, bool semiDigested = false) { if (CurrentStage != Stage.SearchSummary) { throw new ArgumentException("You must be in the Search Summary stage to write modifications"); } _writer.WriteStartElement("enzymatic_search_constraint"); _writer.WriteAttributeString("enzyme", protease.Name); _writer.WriteAttributeString("max_num_internal_clevages", maxMissedClevages.ToString()); _writer.WriteAttributeString("min_number_termini", (semiDigested) ? "1" : "2"); _writer.WriteEndElement(); }
public void TestGetMissCleavageSiteCount() { Protease trypsin = new Protease("Trypsin", true, "KR", "P"); Assert.AreEqual(0, trypsin.GetMissCleavageSiteCount("EGEABDR")); Assert.AreEqual(0, trypsin.GetMissCleavageSiteCount("EGEKPABDR")); Assert.AreEqual(0, trypsin.GetMissCleavageSiteCount("EGERPABDR")); Assert.AreEqual(1, trypsin.GetMissCleavageSiteCount("EGEKABDR")); Assert.AreEqual(1, trypsin.GetMissCleavageSiteCount("EGERABDR")); Assert.AreEqual(2, trypsin.GetMissCleavageSiteCount("EGEKARBDR")); Protease noenzyme = new Protease("Noenzyme", true, "", ""); Assert.AreEqual(0, noenzyme.GetMissCleavageSiteCount("EGEABDR")); }
public List<string> CreateCleavage(int argAllowMissCleavage, Protease.Type argProteaseType) { return CreateCleavage(_sequence,argAllowMissCleavage, new List<Protease.Type>() { argProteaseType }); }