コード例 #1
0
        private ResultCorrelationItem BuildResult(IIdentifiedResult ir)
        {
            var result = new ResultCorrelationItem();

            result.ClassificationTitles = ClassificationSet.Keys.ToArray();
            foreach (var g in ir)
            {
                var pro     = g[0];
                var protein = new ProteinCorrelationItem();
                result.Add(protein);

                protein.Index        = g.Index;
                protein.Protein      = ParseItem(pro.Peptides, result.ClassificationTitles);
                protein.Protein.Name = pro.Name;

                var peps = pro.Peptides.GroupBy(m => PeptideUtils.GetMatchedSequence(m.Sequence));
                foreach (var pep in peps)
                {
                    var pepitem = ParseItem(pep.ToList(), result.ClassificationTitles);
                    protein.Peptides.Add(pepitem);

                    pepitem.Name        = pep.Key;
                    pepitem.Correlation = Correlation.Pearson(pepitem.Values, protein.Protein.Values);
                }
            }

            result.ForEach(m =>
            {
                m.Peptides.Sort((m1, m2) => m2.Correlation.CompareTo(m1.Correlation));
            });
            return(result);
        }
コード例 #2
0
        public override IEnumerable <string> Process(string fileName)
        {
            var ir = new MascotResultTextFormat().ReadFromFile(fileName);

            ResultCorrelationItem rci = BuildResult(ir);

            var result = fileName + ".corr";

            using (StreamWriter sw = new StreamWriter(result))
            {
                sw.Write("Index\tName");
                foreach (var title in rci.ClassificationTitles)
                {
                    sw.Write("\t" + title);
                }
                sw.WriteLine("\tCorrelation");

                foreach (var pro in rci)
                {
                    sw.Write("{0}\t", pro.Index);
                    PrintCorrelationItem(sw, pro.Protein);
                    foreach (var pep in pro.Peptides)
                    {
                        sw.Write("\t");
                        PrintCorrelationItem(sw, pep);
                    }
                }
            }

            return(new string[] { result });
        }