private static List <MeasuredPeptide> FindBestPeptides(SrmDocument doc, int peptideCount, ICollection <PeptideDocNode> exclude) { var docPeptides = new List <MeasuredPeptide>(); var cirtPeptides = new List <MeasuredPeptide>(); foreach (var pep in doc.Molecules) { if (pep.PercentileMeasuredRetentionTime.HasValue && !pep.IsDecoy && (exclude == null || !exclude.Contains(pep))) { var seq = doc.Settings.GetModifiedSequence(pep); var time = pep.PercentileMeasuredRetentionTime.Value; var measuredPeptide = new MeasuredPeptide(seq, time); if (!IrtStandard.CIRT.Contains(seq)) { docPeptides.Add(measuredPeptide); } else { cirtPeptides.Add(measuredPeptide); } } } if (cirtPeptides.Count >= peptideCount) { return(IrtPeptidePicker.Filter(cirtPeptides, peptideCount).ToList()); } docPeptides.AddRange(cirtPeptides); return(FindEvenlySpacedPeptides(docPeptides, peptideCount)); }
private static List <MeasuredPeptide> FindBestPeptides(SrmDocument doc, int peptideCount) { var docPeptides = new List <MeasuredPeptide>(); var cirtPeptides = new List <MeasuredPeptide>(); foreach (var pep in doc.Peptides) { if (pep.SchedulingTime.HasValue && !pep.IsDecoy) { var seq = doc.Settings.GetModifiedSequence(pep); var schedulingTime = pep.SchedulingTime.Value; var measuredPeptide = new MeasuredPeptide(seq, schedulingTime); if (!IrtStandard.CIRT.Contains(seq)) { docPeptides.Add(measuredPeptide); } else { cirtPeptides.Add(measuredPeptide); } } } if (cirtPeptides.Count >= peptideCount) { return(IrtPeptidePicker.Filter(cirtPeptides, peptideCount).ToList()); } docPeptides.AddRange(cirtPeptides); return(FindEvenlySpacedPeptides(docPeptides, peptideCount)); }
public Target TryResolveTarget(string text, out string errorMessage) { errorMessage = null; if (string.IsNullOrEmpty(text)) { return(null); } var matches = _targetsByName[text].ToArray(); if (matches.Length == 1) { return(matches.First()); } if (matches.Length > 1) { errorMessage = string.Format(Resources.TargetResolver_TryResolveTarget_Unable_to_resolve_molecule_from___0____could_be_any_of__1_, text, string.Join(@", ", matches.Select(t => t.InvariantName))); return(null); } Target target; try { target = Target.FromSerializableString(text); errorMessage = MeasuredPeptide.ValidateSequence(target); if (errorMessage != null) { return(null); } } catch (Exception) { target = null; } if (target == null) { errorMessage = string.Format(Resources.TargetResolver_TryResolveTarget_Unable_to_resolve_molecule_from___0___, text); } return(target); }