Beispiel #1
0
        public void ProduceResult(IDataPoints data, ISpectrum spectrum, IGlycoPeptide glycoPeptide)
        {
            ITableNGlycan glycan                      = glycoPeptide.GetGlycan() as ITableNGlycan;
            Dictionary <string, IPeak> peaks          = new Dictionary <string, IPeak>();
            List <IAnnotatedPeak>      annotatedPeaks = new List <IAnnotatedPeak>();

            foreach (PeakPoint pt in data.GetPoints())
            {
                if (!peaks.ContainsKey(pt.GetID()))
                {
                    double mass = Double.Parse(pt.GetID());
                    peaks[pt.GetID()] = new GeneralPeak(mass, pt.GetIntensity());
                }

                List <IGlycoPeptide> glycoPeptides = new List <IGlycoPeptide>();

                foreach (NGlycoPeptideNode node in pt.GetMaxNode())
                {
                    if (IsGlycanMatch(node.GetNGlycan(), glycan))
                    {
                        glycoPeptides.Add(new GeneralGlycoPeptide(node.GetPeptide(), node.GetNGlycan(), -1));
                    }
                }

                if (glycoPeptides.Count > 0)
                {
                    IAnnotatedPeak p = new GeneralAnnotatedSpectrumPeak(peaks[pt.GetID()], glycoPeptides);
                    annotatedPeaks.Add(p);
                }
            }

            result = new GeneralAnnotatedSpectrumPeakResultProduct(spectrum,
                                                                   annotatedPeaks.OrderBy(x => x.GetMZ()).ToList());
        }
Beispiel #2
0
        public void ReportLines(ISpectrum spectrum, List <IScore> scores)
        {
            HashSet <string> seen = new HashSet <string>();


            Tuple <List <double[]>, double[]> predict = Predicting(scores);
            int idx = 0;

            foreach (IScore score in scores)
            {
                if (0 >= 0)
                {
                    // get glycan
                    IGlycoPeptide glycoPeptide = score.GetGlycoPeptide();

                    // remove redudant
                    string structure = string.Join("_", glycoPeptide.GetGlycan().GetStructure());
                    string seq       = glycoPeptide.GetPeptide().GetSequence();
                    if (!seen.Contains(structure + seq))
                    {
                        seen.Add(structure + seq);
                    }
                    else
                    {
                        continue;
                    }

                    writer.Write(spectrum.GetScanNum().ToString() + ", ");
                    writer.Write(seq + ", ");
                    writer.Write(structure + ", ");
                    writer.Write(score.GetScore(MassType.Core).ToString() + ", ");
                    writer.Write(score.GetScore(MassType.Branch).ToString() + ", ");
                    writer.Write(score.GetScore(MassType.Glycan).ToString() + ", ");
                    writer.Write(score.GetScore(MassType.Peptide).ToString() + ", ");
                    writer.Write((spectrum as ISpectrumMSn).GetParentMZ().ToString() + ", ");
                    writer.Write((spectrum as ISpectrumMSn).GetParentCharge().ToString() + ", ");
                    writer.Write(string.Join(".", predict.Item1[idx]) + ", ");
                    writer.Write(predict.Item2[idx].ToString() + ", ");
                    writer.WriteLine();
                }
                idx++;
            }
        }
Beispiel #3
0
        public void ReportLines(List <IProbScoreProxy> scores, double cutoff)
        {
            HashSet <string> seen = new HashSet <string>();


            int idx = 0;

            foreach (IProbScoreProxy score in scores)
            {
                if (score.GetProbability() > cutoff)
                {
                    // get glycan
                    IGlycoPeptide glycoPeptide = score.GetGlycoPeptide();

                    // remove redudant
                    string structure = string.Join("_", glycoPeptide.GetGlycan().GetStructure());
                    string seq       = glycoPeptide.GetPeptide().GetSequence();
                    if (!seen.Contains(structure + seq))
                    {
                        seen.Add(structure + seq);
                    }
                    else
                    {
                        continue;
                    }

                    writer.Write(score.GetSpectrum().GetScanNum().ToString() + ", ");
                    writer.Write(seq + ", ");
                    writer.Write(structure + ", ");
                    writer.Write(score.GetScore(MassType.Core).ToString() + ", ");
                    writer.Write(score.GetScore(MassType.Branch).ToString() + ", ");
                    writer.Write(score.GetScore(MassType.Glycan).ToString() + ", ");
                    writer.Write(score.GetScore(MassType.Peptide).ToString() + ", ");
                    writer.Write((score.GetSpectrum() as ISpectrumMSn).GetParentMZ().ToString() + ", ");
                    writer.Write((score.GetSpectrum() as ISpectrumMSn).GetParentCharge().ToString() + ", ");
                    writer.Write(score.GetProbability().ToString() + ", ");
                    writer.Write(cutoff + ", ");
                    writer.Write(score.IsDecoy() + ", ");
                    writer.WriteLine();
                }
                idx++;
            }
        }
        protected void ReportLines(ISpectrum spectrum, List <IScore> scores, double cutoff)
        {
            HashSet <string> seen = new HashSet <string>();

            foreach (IScore score in scores)
            {
                if (score.GetScore() > cutoff)
                {
                    // get glycan
                    IGlycoPeptide glycoPeptide = score.GetGlycoPeptide();

                    // remove redudant
                    string structure = string.Join("_", glycoPeptide.GetGlycan().GetStructure());
                    string seq       = glycoPeptide.GetPeptide().GetSequence();
                    if (!seen.Contains(structure + seq))
                    {
                        seen.Add(structure + seq);
                    }
                    else
                    {
                        continue;
                    }

                    writer.Write(spectrum.GetScanNum().ToString() + ", ");
                    writer.Write(seq + ", ");
                    writer.Write(structure + ", ");
                    writer.Write(score.GetScore(MassType.Branch).ToString() + ", ");
                    writer.Write(score.GetScore(MassType.Core).ToString() + ", ");
                    writer.Write(score.GetScore(MassType.Glycan).ToString() + ", ");
                    writer.Write(score.GetScore(MassType.Peptide).ToString() + ", ");
                    writer.Write((spectrum as ISpectrumMSn).GetParentMZ().ToString() + ", ");
                    writer.Write((spectrum as ISpectrumMSn).GetParentCharge().ToString() + ", ");

                    if (score is IFDRScoreProxy)
                    {
                        writer.Write((score as IFDRScoreProxy).IsDecoy());
                        writer.Write(", ");
                    }
                    writer.WriteLine();
                }
            }
        }
Beispiel #5
0
 public GeneralGlycoPeptideScore(IGlycoPeptide glycoPeptide, double score) :
     base(glycoPeptide.GetPeptide(), glycoPeptide.GetGlycan(), glycoPeptide.GetPosition())
 {
     this.glycoPeptide = glycoPeptide;
     this.score        = score;
 }
 public IGlycan GetGlycan()
 {
     return(glycoPeptide.GetGlycan());
 }
        protected void InitMatcher(IGlycoPeptide glycoPeptide)
        {
            List <Point>         points  = new List <Point>();
            List <ITableNGlycan> glycans = glycansTable[
                glycoPeptide.GetGlycan().GetName()];
            IPeptide peptide = glycoPeptide.GetPeptide();
            string   seq     = peptide.GetSequence();
            int      pos     = glycoPeptide.GetPosition();
            Dictionary <double, BinSearchAnnotatedPoint> seen =
                new Dictionary <double, BinSearchAnnotatedPoint>();

            //glycanfrag
            foreach (ITableNGlycan g in glycans)
            {
                double glycanMass = calculator.CalcGlycanMass(g, option);
                double mass       = calculator.CalcPeptideMass(seq, option) + glycanMass;
                if (!seen.ContainsKey(mass))
                {
                    BinSearchAnnotatedPoint p = new BinSearchAnnotatedPoint(mass);
                    seen[mass] = p;
                    points.Add(p);
                }
                seen[mass].AddGlycoPeptide(
                    new GeneralPeptide(peptide.GetID(), seq), g, pos);


                //n-peptidefrag
                for (int i = 0; i < pos; i++)
                {
                    mass = calculator.CalcPeptideIonMass(
                        seq.Substring(0, i + 1), IonType.cIon, option) + glycanMass;
                    if (!seen.ContainsKey(mass))
                    {
                        BinSearchAnnotatedPoint p = new BinSearchAnnotatedPoint(mass);
                        seen[mass] = p;
                        points.Add(p);
                    }

                    seen[mass].AddGlycoPeptide(
                        new GeneralPeptide(peptide.GetID(), seq.Substring(0, i + 1)),
                        g, pos);
                }
                //c-peptidefrag
                for (int i = pos + 1; i < seq.Length; i++)
                {
                    mass = calculator.CalcPeptideIonMass(
                        seq.Substring(i, seq.Length - i), IonType.zIon, option) + glycanMass;
                    if (!seen.ContainsKey(mass))
                    {
                        BinSearchAnnotatedPoint p = new BinSearchAnnotatedPoint(mass);
                        seen[mass] = p;
                        points.Add(p);
                    }

                    seen[mass].AddGlycoPeptide(
                        new GeneralPeptide(peptide.GetID(), seq.Substring(i, seq.Length - i)),
                        g, pos);
                }
            }
            points.Sort();
            matcher.SetPoints(points);
        }