Coon.Compass.ProteinHoarder.ProteinHoarder.WriteSummary C# (CSharp) Метод

WriteSummary() приватный Метод

private WriteSummary ( ExperimentGroup>.Dictionary expgroups, string outputDirectory ) : void
expgroups ExperimentGroup>.Dictionary
outputDirectory string
Результат void
        private void WriteSummary(Dictionary<string, ExperimentGroup> expgroups, string outputDirectory)
        {
            string filePath = Path.Combine(outputDirectory, "Protein_summary.csv");
            Log("Writing file " + filePath);

            List<ExperimentGroup> experiments = expgroups.Values.ToList();

            using (StreamWriter writer = new StreamWriter(filePath))
            {
                // Header info
                writer.Write("Protein Group,Representative Protein Description");
                if (AnnotationType == AnnotationType.SGD)
                {
                    writer.Write(",SGD Ids,Gene Names");
                } else if (AnnotationType == AnnotationType.UniProt)
                {
                    writer.Write(",UniProt Ids,Gene Names");
                }
                foreach (ExperimentGroup exp in experiments)
                {
                    writer.Write("," + exp.Name + " (log2)");
                }
                writer.WriteLine();

                // Iterate over all protein groups
                foreach(ProteinGroup pg in _proteinGroups.Where(pg => pg.PassesFDR))
                {
                    writer.Write(pg.Name);
                    writer.Write(',');
                    writer.Write(pg.RepresentativeProtein.Description);
                    if (AnnotationType != AnnotationType.None)
                    {
                        writer.Write(',');
                        writer.Write(pg.ProteinIdsString());
                        writer.Write(',');
                        writer.Write(pg.GeneNamesString());
                    }

                    foreach (ExperimentGroup exp in experiments)
                    {
                        writer.Write(',');
                        double log2Ratio = 0;
                        if (exp.ProteinGroups.Contains(pg) && pg.TryGetLog2Ratio(exp, out log2Ratio, UseOnlyCompleteSets))
                        {
                            log2Ratio -= exp.MeidanLog2Ratio;
                            writer.Write(log2Ratio.ToString("G4"));
                        }
                        else
                        {
                            writer.Write("n/a");
                        }
                    }
                    writer.WriteLine();
                }
            }
        }