示例#1
0
        protected string GetRatioFile(IQuantificationSummaryOption option, IIdentifiedSpectrum mph)
        {
            var    o18option = option as O18QuantificationSummaryViewerOptions;
            string ratioFile = (string)mph.Annotations[o18option.RatioFileKey];

            if (ratioFile.Equals("-"))
            {
                return(null);
            }

            FileInfo fi = new FileInfo(SummaryFilename);
            string   result;

            if (IsRelativeDir(ratioFile))
            {
                result = fi.DirectoryName + "/" + ratioFile;
            }
            else
            {
                result = fi.DirectoryName + "/" + DefaultDetailDirectory + "/" + ratioFile;
            }

            result = new FileInfo(result).FullName;

            if (!File.Exists(result))
            {
                return(null);
            }

            return(result);
        }
示例#2
0
        public override void Update(object sender, UpdateQuantificationItemEventArgs e)
        {
            IQuantificationSummaryOption option = e.Option as IQuantificationSummaryOption;
            IIdentifiedResult            mr     = e.Item as IIdentifiedResult;

            string xTitle = MyConvert.Format("(Log({0}) + Log({1})) / 2", option.Func.ReferenceKey, option.Func.SampleKey);
            string yTitle = MyConvert.Format("Log(Ratio)");

            panel.InitGraphPane(title, xTitle, yTitle, true, 0.0);

            try
            {
                HashSet <IIdentifiedSpectrum> spectra = new HashSet <IIdentifiedSpectrum>();

                var groups = from g in mr
                             where g[0].IsEnabled(true) && option.IsProteinRatioValid(g[0])
                             select g;

                foreach (var mpg in groups)
                {
                    var peptides = from p in mpg.GetPeptides()
                                   where p.IsEnabled(true) && option.IsPeptideRatioValid(p)
                                   select p;

                    spectra.UnionWith(peptides);
                }

                List <LSPADItem> items = new List <LSPADItem>();
                foreach (var pep in spectra)
                {
                    double refIntensity    = Math.Log(option.Func.GetReferenceIntensity(pep));
                    double sampleIntensity = Math.Log(option.Func.GetSampleIntensity(pep));

                    double A     = (refIntensity + sampleIntensity) / 2;
                    double ratio = Math.Log(option.GetPeptideRatio(pep));

                    items.Add(new LSPADItem()
                    {
                        LogRatio  = ratio,
                        Intensity = A,
                        Tag       = pep
                    });
                }

                LSPADItem.CalculatePValue(items);



                //this.panel.DrawProbabilityRange(maxX, ratios);

                //this.panel.AddPoints(pplSelected, SelectedColor, "Current Peptide");
                //this.panel.AddPoints(pplGroup, GroupColor, "Current Protein");
                //this.panel.AddPoints(pplOutlier, OutlierColor, "Outlier");
                //this.panel.AddPoints(pplNormal, NormalColor, "Other");
            }
            finally
            {
                ZedGraphicExtension.UpdateGraph(this.zgcGraph);
            }
        }
        protected string GetRatioFile(IQuantificationSummaryOption option, IIdentifiedSpectrum mph)
        {
            string ratioFile = mph.GetQuantificationItem().Filename;

            if (ratioFile.Equals("-"))
            {
                return(null);
            }

            FileInfo fi = new FileInfo(SummaryFilename);
            string   result;

            if (IsRelativeDir(ratioFile))
            {
                result = fi.DirectoryName + "/" + ratioFile;
            }
            else
            {
                result = fi.DirectoryName + "/" + DefaultDetailDirectory + "/" + ratioFile;
            }

            result = new FileInfo(result).FullName;

            if (!File.Exists(result))
            {
                return(null);
            }

            return(result);
        }
示例#4
0
        public void SetSummaryFilename(string o18SummaryFilename, IAnnotation parentObj)
        {
            if (this.o18SummaryFilename.Equals(o18SummaryFilename))
            {
                return;
            }

            this.parentObj = parentObj;

            if (this.summary != null)
            {
                ClearAllData();
            }

            this.fileFormat = new O18QuantificationSummaryItemXmlFormat();
            this.summary    = this.fileFormat.ReadFromFile(o18SummaryFilename);

            this.o18SummaryFilename = o18SummaryFilename;
            Text = o18SummaryFilename;

            this.calc    = this.summary.GetCalculator();
            this.options = new O18QuantificationSummaryViewerOptions(o18SummaryFilename);

            ShowSummary(false);

            this.btnSave.Enabled = false;
        }
示例#5
0
        public override void Update(object sender, UpdateQuantificationItemEventArgs e)
        {
            IQuantificationSummaryOption option = e.Option as IQuantificationSummaryOption;

            panel.InitGraphPane(title, option.Func.ReferenceKey, option.Func.SampleKey, true, 0.0);

            IIdentifiedProteinGroup group = e.Item as IIdentifiedProteinGroup;

            try
            {
                var pplNormal   = new PointPairList();
                var pplSelected = new PointPairList();

                var spectra = group.GetPeptides();

                var format = new O18QuantificationSummaryItemXmlFormat();

                foreach (var pep in spectra)
                {
                    if (pep.IsEnabled(true) && option.IsPeptideRatioValid(pep))
                    {
                        string ratioFile = GetRatioFile(option, pep);
                        if (ratioFile == null)
                        {
                            continue;
                        }

                        O18QuantificationSummaryItem item = new O18QuantificationSummaryItemXmlFormat().ReadFromFile(ratioFile);
                        item.CalculateIndividualAbundance();

                        PointPairList ppl;
                        if (pep.Selected)
                        {
                            ppl = pplSelected;
                        }
                        else
                        {
                            ppl = pplNormal;
                        }

                        foreach (var envelope in item.ObservedEnvelopes)
                        {
                            if (!envelope.Enabled)
                            {
                                continue;
                            }

                            double refIntensity    = envelope.SampleAbundance.O16;
                            double sampleIntensity = envelope.SampleAbundance.O18;

                            if (refIntensity == 0.0 || sampleIntensity == 0.0)
                            {
                                continue;
                            }

                            ppl.Add(refIntensity, sampleIntensity);
                            ppl[ppl.Count - 1].Tag = pep;

                            Debug.Assert(ppl[ppl.Count - 1].Tag == pep);
                        }
                    }
                }
                this.panel.ClearData();

                this.panel.AddPoints(pplSelected, SelectedColor);

                this.panel.AddPoints(pplNormal, NormalColor);

                var pplTotal = new PointPairList();
                pplTotal.AddRange(pplSelected);
                pplTotal.AddRange(pplNormal);

                if (pplTotal.Count > 0)
                {
                    var maxValue = (from p in pplTotal
                                    select Math.Max(p.X, p.Y)).Max() * 1.1;

                    this.panel.XAxis.Scale.Max = maxValue;
                    this.panel.YAxis.Scale.Max = maxValue;

                    var ratio = option.GetProteinRatio(group[0]);

                    PointPairList line = pplTotal.GetRegressionLine(ratio);

                    var lineItem = this.panel.AddCurve(option.GetProteinRatioDescription(group[0]), line, RegressionLineColor, SymbolType.None);
                    lineItem.Label.FontSpec = new FontSpec()
                    {
                        Size = 15, Border = new Border()
                        {
                            IsVisible = false
                        }
                    };
                }
            }
            finally
            {
                ZedGraphicExtension.UpdateGraph(this.zgcGraph);
            }
        }
        public override void Update(object sender, UpdateQuantificationItemEventArgs e)
        {
            IQuantificationSummaryOption option = e.Option as IQuantificationSummaryOption;
            IIdentifiedResult            mr     = e.Item as IIdentifiedResult;

            panel.InitGraphPane(title, option.Func.ReferenceKey, option.Func.SampleKey, true, 0.0);
            try
            {
                var pplNormal   = new PointPairList();
                var pplSelected = new PointPairList();
                var pplOutlier  = new PointPairList();

                var groups = (from g in mr
                              where option.IsProteinRatioValid(g[0])
                              select g).ToList();

                foreach (var group in groups)
                {
                    PointPairList ppl;
                    if (group.Selected)
                    {
                        ppl = pplSelected;
                    }
                    else if (option.IsProteinOutlier(group[0]))
                    {
                        ppl = pplOutlier;
                    }
                    else
                    {
                        ppl = pplNormal;
                    }

                    double sampleIntensity = option.Func.GetSampleIntensity(group[0]);
                    double refIntensity    = option.Func.GetReferenceIntensity(group[0]);
                    ppl.Add(refIntensity, sampleIntensity);
                    ppl[ppl.Count - 1].Tag = group;

                    Debug.Assert(ppl[ppl.Count - 1].Tag == group);
                }

                this.panel.ClearData();

                this.panel.AddPoints(pplOutlier, OutlierColor, "Outlier");

                this.panel.AddPoints(pplSelected, GroupColor, "Current Protein");

                this.panel.AddPoints(pplNormal, NormalColor, "Other");

                var pplTotal = new PointPairList();
                pplTotal.AddRange(pplSelected);
                pplTotal.AddRange(pplNormal);
                pplTotal.AddRange(pplOutlier);

                if (pplTotal.Count > 0)
                {
                    var maxValue = (from p in pplTotal
                                    select Math.Max(p.X, p.Y)).Max() * 1.1;

                    this.panel.XAxis.Scale.Max = maxValue;
                    this.panel.YAxis.Scale.Max = maxValue;

                    var lrrr = pplTotal.GetRegression();

                    PointPairList line = pplTotal.GetRegressionLine(lrrr.Ratio);

                    var lineItem = this.panel.AddCurve(MyConvert.Format("Ratio={0:0.0000}", lrrr.Ratio), line, Color.Red, SymbolType.None);
                }
            }
            finally
            {
                ZedGraphicExtension.UpdateGraph(this.zgcGraph);
            }
        }
示例#7
0
        public override void Update(object sender, UpdateQuantificationItemEventArgs e)
        {
            IQuantificationSummaryOption option = e.Option as IQuantificationSummaryOption;

            panel.InitGraphPane(title, option.Func.ReferenceKey, option.Func.SampleKey, true, 0.0);

            IIdentifiedProteinGroup group = e.Item as IIdentifiedProteinGroup;

            try
            {
                var pplNormal   = new PointPairList();
                var pplSelected = new PointPairList();
                var pplOutlier  = new PointPairList();

                var spectra = group.GetPeptides();

                foreach (var pep in spectra)
                {
                    if (option.IsPeptideRatioValid(pep))
                    {
                        PointPairList ppl;
                        if (pep.Selected)
                        {
                            ppl = pplSelected;
                        }
                        else if (option.IsPeptideOutlier(pep))
                        {
                            ppl = pplOutlier;
                        }
                        else
                        {
                            ppl = pplNormal;
                        }

                        double sampleIntensity = option.Func.GetSampleIntensity(pep);
                        double refIntensity    = option.Func.GetReferenceIntensity(pep);
                        ppl.Add(refIntensity, sampleIntensity);
                        ppl[ppl.Count - 1].Tag = pep;

                        Debug.Assert(ppl[ppl.Count - 1].Tag == pep);
                    }
                }

                this.panel.ClearData();

                this.panel.AddPoints(pplSelected, SelectedColor);

                this.panel.AddPoints(pplNormal, NormalColor);

                this.panel.AddPoints(pplOutlier, OutlierColor);

                var pplTotal = new PointPairList();
                pplTotal.AddRange(pplSelected);
                pplTotal.AddRange(pplNormal);
                pplTotal.AddRange(pplOutlier);

                if (pplTotal.Count > 0)
                {
                    var maxValue = (from p in pplTotal
                                    select Math.Max(p.X, p.Y)).Max() * 1.1;

                    this.panel.XAxis.Scale.Max = maxValue;
                    this.panel.YAxis.Scale.Max = maxValue;

                    var ratio = option.GetProteinRatio(group[0]);

                    PointPairList line = pplTotal.GetRegressionLine(ratio);

                    var lineItem = this.panel.AddCurve(option.GetProteinRatioDescription(group[0]), line, RegressionLineColor, SymbolType.None);
                    lineItem.Label.FontSpec = new FontSpec()
                    {
                        Size = 15, Border = new Border()
                        {
                            IsVisible = false
                        }
                    };
                }
            }
            finally
            {
                ZedGraphicExtension.UpdateGraph(this.zgcGraph);
            }
        }
        public override void Update(object sender, UpdateQuantificationItemEventArgs e)
        {
            IQuantificationSummaryOption option = e.Option as IQuantificationSummaryOption;
            IIdentifiedResult            mr     = e.Item as IIdentifiedResult;

            panel.InitGraphPane(title, option.Func.ReferenceKey, option.Func.SampleKey, true, 0.0);

            try
            {
                var pplNormal   = new PointPairList();
                var pplSelected = new PointPairList();
                var pplOutlier  = new PointPairList();
                var pplGroup    = new PointPairList();

                var groups = from g in mr
                             where option.IsProteinRatioValid(g[0])
                             select g;

                HashSet <IIdentifiedSpectrum> spectra = new HashSet <IIdentifiedSpectrum>();

                double        maxX = 0.0;
                PointPairList ppl;
                foreach (var mpg in groups)
                {
                    var peptides = from p in mpg.GetPeptides()
                                   where option.IsPeptideRatioValid(p)
                                   select p;

                    spectra.UnionWith(peptides);

                    foreach (var pep in peptides)
                    {
                        if (pep.Selected)
                        {
                            ppl = pplSelected;
                        }
                        else if (mpg.Selected)
                        {
                            ppl = pplGroup;
                        }
                        else if (option.IsPeptideOutlier(pep))
                        {
                            ppl = pplOutlier;
                        }
                        else
                        {
                            ppl = pplNormal;
                        }

                        double refIntensity = option.Func.GetReferenceIntensity(pep);
                        double samIntensity = option.Func.GetSampleIntensity(pep);

                        ppl.Add(refIntensity, samIntensity);
                        ppl[ppl.Count - 1].Tag = new Pair <IIdentifiedProteinGroup, IIdentifiedSpectrum>(mpg, pep);

                        maxX = Math.Max(refIntensity, maxX);
                    }
                }

                this.panel.ClearData();

                this.panel.AddPoints(pplSelected, SelectedColor, "Current Peptide");
                this.panel.AddPoints(pplGroup, GroupColor, "Current Protein");
                this.panel.AddPoints(pplOutlier, OutlierColor, "Outlier");
                this.panel.AddPoints(pplNormal, NormalColor, "Other");

                var pplTotal = new PointPairList();
                pplTotal.AddRange(pplSelected);
                pplTotal.AddRange(pplNormal);
                pplTotal.AddRange(pplOutlier);

                if (pplTotal.Count > 0)
                {
                    var maxValue = (from p in pplTotal
                                    select Math.Max(p.X, p.Y)).Max() * 1.1;

                    this.panel.XAxis.Scale.Max = maxValue;
                    this.panel.YAxis.Scale.Max = maxValue;

                    var lrrr = pplTotal.GetRegression();

                    PointPairList line = pplTotal.GetRegressionLine(lrrr.Ratio);

                    var lineItem = this.panel.AddCurve(MyConvert.Format("Ratio={0:0.0000}, R2={1:0.0000}", lrrr.Ratio, lrrr.RSquare), line, Color.Red, SymbolType.None);
                }
            }
            finally
            {
                ZedGraphicExtension.UpdateGraph(this.zgcGraph);
            }
        }
        public override void Update(object sender, UpdateQuantificationItemEventArgs e)
        {
            IIdentifiedResult            mr     = e.Item as IIdentifiedResult;
            IQuantificationSummaryOption option = e.Option as IQuantificationSummaryOption;

            string xTitle = MyConvert.Format("(Log({0}) + Log({1})) / 2", option.Func.ReferenceKey, option.Func.SampleKey);
            string yTitle = MyConvert.Format("Log(Ratio)");

            panel.InitGraphPane(title, xTitle, yTitle, true, 0.0);

            var groups = from g in mr
                         where option.IsProteinRatioValid(g[0])
                         select g;

            try
            {
                var pplNormal   = new PointPairList();
                var pplSelected = new PointPairList();
                var pplOutlier  = new PointPairList();

                double maxX = 0.0;
                foreach (var group in groups)
                {
                    PointPairList ppl;
                    if (group.Selected)
                    {
                        ppl = pplSelected;
                    }
                    else if (option.IsProteinOutlier(group[0]))
                    {
                        ppl = pplOutlier;
                    }
                    else
                    {
                        ppl = pplNormal;
                    }

                    double int1 = Math.Log(option.Func.GetReferenceIntensity(group[0]));
                    double int2 = Math.Log(option.Func.GetSampleIntensity(group[0]));

                    double A     = (int1 + int2) / 2;
                    double ratio = Math.Log(option.GetProteinRatio(group[0]));
                    ppl.Add(A, ratio);
                    ppl[ppl.Count - 1].Tag = group;

                    Debug.Assert(ppl[ppl.Count - 1].Tag == group);

                    maxX = Math.Max(A, maxX);
                }

                this.panel.ClearData();

                var ratios = (from mpg in groups
                              let ratio = Math.Log(option.GetProteinRatio(mpg[0]))
                                          orderby ratio
                                          select ratio).ToList();

                panel.DrawProbabilityRange(maxX, ratios);

                this.panel.AddPoints(pplOutlier, OutlierColor, "Outlier");

                this.panel.AddPoints(pplSelected, GroupColor, "Current Protein");

                this.panel.AddPoints(pplNormal, NormalColor, "Other");
            }
            finally
            {
                ZedGraphicExtension.UpdateGraph(this.zgcGraph);
            }
        }
        public override void Update(object sender, UpdateQuantificationItemEventArgs e)
        {
            IQuantificationSummaryOption option = e.Option as IQuantificationSummaryOption;

            panel.InitGraphPane(this.title, option.Func.ReferenceKey, option.Func.SampleKey, true, 0.0);

            IIdentifiedProteinGroup group = e.Item as IIdentifiedProteinGroup;

            try
            {
                var pplNormal   = new PointPairList();
                var pplSelected = new PointPairList();

                var spectra = group.GetPeptides();

                var format = new SilacQuantificationSummaryItemXmlFormat();

                foreach (var pep in spectra)
                {
                    if (option.IsPeptideRatioValid(pep))
                    {
                        string ratioFile = GetRatioFile(option, pep);
                        if (ratioFile == null)
                        {
                            continue;
                        }

                        var item = format.ReadFromFile(ratioFile);

                        Func <SilacPeakListPair, double> getSamIntensity;
                        Func <SilacPeakListPair, double> getRefIntensity;

                        if (item.SampleIsLight)
                        {
                            getSamIntensity = m => m.LightIntensity;
                            getRefIntensity = m => m.HeavyIntensity;
                        }
                        else
                        {
                            getSamIntensity = m => m.HeavyIntensity;
                            getRefIntensity = m => m.LightIntensity;
                        }

                        PointPairList ppl;
                        if (pep.Selected)
                        {
                            ppl = pplSelected;
                        }
                        else
                        {
                            ppl = pplNormal;
                        }

                        foreach (var envelope in item.ObservedEnvelopes)
                        {
                            if (!envelope.Enabled)
                            {
                                continue;
                            }

                            double refIntensity    = getRefIntensity(envelope);
                            double sampleIntensity = getSamIntensity(envelope);

                            if (refIntensity == 0.0 || sampleIntensity == 0.0)
                            {
                                continue;
                            }

                            ppl.Add(refIntensity, sampleIntensity);
                            ppl[ppl.Count - 1].Tag = pep;

                            Debug.Assert(ppl[ppl.Count - 1].Tag == pep);
                        }
                    }
                }
                this.panel.ClearData();

                this.panel.AddPoints(pplSelected, SelectedColor);

                this.panel.AddPoints(pplNormal, NormalColor);

                var pplTotal = new PointPairList();
                pplTotal.AddRange(pplSelected);
                pplTotal.AddRange(pplNormal);

                if (pplTotal.Count > 0)
                {
                    var           lr      = pplTotal.GetRegression();
                    var           lr_text = MyConvert.Format("Ratio={0:0.00}, Correl={1:0.00}, FValue={2:0.00}, FProb={3:E4}", lr.Ratio, lr.RSquare, lr.TValue, lr.PValue);
                    PointPairList line    = pplTotal.GetRegressionLine();

                    var lineItem = this.panel.AddCurve(lr_text, line, RegressionLineColor, SymbolType.None);
                    lineItem.Label.FontSpec = new FontSpec()
                    {
                        Size = 15, Border = new Border()
                        {
                            IsVisible = false
                        }
                    };
                }
            }
            finally
            {
                ZedGraphicExtension.UpdateGraph(this.zgcGraph);
            }
        }
        public override void Update(object sender, UpdateQuantificationItemEventArgs e)
        {
            IQuantificationSummaryOption option = e.Option as IQuantificationSummaryOption;
            IIdentifiedResult            mr     = e.Item as IIdentifiedResult;

            string xTitle = MyConvert.Format("(Log({0}) + Log({1})) / 2", option.Func.ReferenceKey, option.Func.SampleKey);
            string yTitle = MyConvert.Format("Log(Ratio)");

            panel.InitGraphPane(title, xTitle, yTitle, true, 0.0);

            try
            {
                var pplNormal   = new PointPairList();
                var pplSelected = new PointPairList();
                var pplOutlier  = new PointPairList();
                var pplGroup    = new PointPairList();

                var groups = from g in mr
                             where g[0].IsEnabled(true) && option.IsProteinRatioValid(g[0])
                             select g;

                HashSet <IIdentifiedSpectrum> spectra = new HashSet <IIdentifiedSpectrum>();

                double        maxX = 0.0;
                PointPairList ppl;
                foreach (var mpg in groups)
                {
                    var peptides = from p in mpg.GetPeptides()
                                   where p.IsEnabled(true) && option.IsPeptideRatioValid(p)
                                   select p;

                    spectra.UnionWith(peptides);

                    foreach (var pep in peptides)
                    {
                        if (pep.Selected)
                        {
                            ppl = pplSelected;
                        }
                        else if (mpg.Selected)
                        {
                            ppl = pplGroup;
                        }
                        else if (option.IsPeptideOutlier(pep))
                        {
                            ppl = pplOutlier;
                        }
                        else
                        {
                            ppl = pplNormal;
                        }

                        double refIntensity    = Math.Log(option.Func.GetReferenceIntensity(pep));
                        double sampleIntensity = Math.Log(option.Func.GetSampleIntensity(pep));

                        double A     = (refIntensity + sampleIntensity) / 2;
                        double ratio = Math.Log(option.GetPeptideRatio(pep));
                        ppl.Add(A, ratio);
                        ppl[ppl.Count - 1].Tag = new Pair <IIdentifiedProteinGroup, IIdentifiedSpectrum>(mpg, pep);

                        maxX = Math.Max(A, maxX);
                    }
                }

                this.panel.ClearData();

                var ratios = (from pep in spectra
                              let ratio = Math.Log(option.GetPeptideRatio(pep))
                                          orderby ratio
                                          select ratio).ToList();

                this.panel.DrawProbabilityRange(maxX, ratios);

                this.panel.AddPoints(pplSelected, SelectedColor, "Current Peptide");
                this.panel.AddPoints(pplGroup, GroupColor, "Current Protein");
                this.panel.AddPoints(pplOutlier, OutlierColor, "Outlier");
                this.panel.AddPoints(pplNormal, NormalColor, "Other");
            }
            finally
            {
                ZedGraphicExtension.UpdateGraph(this.zgcGraph);
            }
        }