public ViewLibraryPepInfo AssociateMatchingPeptide(ViewLibraryPepInfo pepInfo, Adduct charge, SrmSettingsDiff settingsDiff) { var key = pepInfo.Key; if (key.IsPrecursorKey) { return(pepInfo); } var settings = _chargeSettingsMap[charge]; // Change current document settings to match the current library and change the charge filter to // match the current peptide. if (settings == null) { settings = _document.Settings; var rankId = settings.PeptideSettings.Libraries.RankId; if (rankId != null && !_selectedSpec.PeptideRankIds.Contains(rankId)) { settings = settings.ChangePeptideLibraries(lib => lib.ChangeRankId(null)); } var isProteomic = pepInfo.Target.IsProteomic; settings = settings.ChangePeptideLibraries( lib => lib.ChangeLibraries(new[] { _selectedSpec }, new[] { _selectedLibrary }) .ChangePick(PeptidePick.library)) .ChangeTransitionFilter( filter => (isProteomic ? filter.ChangePeptidePrecursorCharges(new[] { charge }) : filter.ChangeSmallMoleculePrecursorAdducts(new[] { charge })) .ChangeAutoSelect(true)) .ChangeMeasuredResults(null); var staticMods = settings.PeptideSettings.Modifications.StaticModifications.ToList(); foreach (var crosslinkMod in Properties.Settings.Default.StaticModList.Where(mod => null != mod.CrosslinkerSettings)) { if (!staticMods.Any(mod => mod.Name == crosslinkMod.Name)) { staticMods.Add(crosslinkMod); } } settings = settings.ChangePeptideSettings( settings.PeptideSettings.ChangeModifications( settings.PeptideSettings.Modifications.ChangeStaticModifications(staticMods))); _chargeSettingsMap[charge] = settings; } var nodePep = _matcher.GetModifiedNode(key, settings, settingsDiff); if (nodePep != null) { pepInfo = pepInfo.ChangePeptideNode(nodePep); } return(pepInfo); }
public ViewLibraryPepInfo AssociateMatchingPeptide(ViewLibraryPepInfo pepInfo, Adduct charge, SrmSettingsDiff settingsDiff) { var key = pepInfo.Key; if (key.IsPrecursorKey) { return(pepInfo); } var settings = _chargeSettingsMap[charge]; // Change current document settings to match the current library and change the charge filter to // match the current peptide. if (settings == null) { settings = _document.Settings; var rankId = settings.PeptideSettings.Libraries.RankId; if (rankId != null && !_selectedSpec.PeptideRankIds.Contains(rankId)) { settings = settings.ChangePeptideLibraries(lib => lib.ChangeRankId(null)); } var isProteomic = pepInfo.Target.IsProteomic; settings = settings.ChangePeptideLibraries( lib => lib.ChangeLibraries(new[] { _selectedSpec }, new[] { _selectedLibrary }) .ChangePick(PeptidePick.library)) .ChangeTransitionFilter( filter => (isProteomic ? filter.ChangePeptidePrecursorCharges(new[] { charge }) : filter.ChangeSmallMoleculePrecursorAdducts(new[] { charge })) .ChangeAutoSelect(true)) .ChangeMeasuredResults(null); _chargeSettingsMap[charge] = settings; } var nodePep = _matcher.GetModifiedNode(key, settings, settingsDiff); if (nodePep != null) { pepInfo = pepInfo.ChangePeptideNode(nodePep); } return(pepInfo); }