Beispiel #1
0
            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));
            }
Beispiel #2
0
            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));
            }
Beispiel #3
0
        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);
        }