Beispiel #1
0
        public override IEnumerable <string> Process()
        {
            var conf = CountMappingSummaryBuilderConfiguration.Read(options.InputFile);

            var data = (from a in conf.SampleFiles
                        select new
            {
                Sample = a.Item1,
                Data = (from b in a.Item2
                        let map = File.ReadAllLines(b).Where(m => !m.StartsWith("#")).ToDictionary(m => m.StringBefore("\t"), m => m.StringAfter("\t"))
                                  let totalreads = map.ContainsKey("TotalReads") ? map["TotalReads"] : map["Total reads"]
                                                   let mappedreads = map.ContainsKey("MappedReads") ? map["MappedReads"] : map["Mapped reads"]
                                                                     let featurereads = map.ContainsKey("FeatureReads") ? map["FeatureReads"] : map["Feature reads"]
                                                                                        select new { TotalReads = totalreads, MappedReads = mappedreads, FeatureReads = featurereads }).ToList()
            }).ToList();

            using (var sw = new StreamWriter(options.OutputFile))
            {
                sw.WriteLine("Sample\t" + (from s in conf.SearchTypes
                                           let ss = new[] { s + "_TotalReads", s + "_MappedReads", s + "_FeatureReads" }
                                           from sss in ss
                                           select sss).Merge("\t"));
                foreach (var d in data)
                {
                    sw.Write(d.Sample);
                    foreach (var dd in d.Data)
                    {
                        sw.Write("\t{0}\t{1}\t{2}", dd.TotalReads, dd.MappedReads, dd.FeatureReads);
                    }
                    sw.WriteLine();
                }
            }

            return(new[] { options.OutputFile });
        }
    public static CountMappingSummaryBuilderConfiguration Read(string fileName)
    {
      var result = new CountMappingSummaryBuilderConfiguration();
      
      var lines = File.ReadAllLines(fileName).Where(m => !string.IsNullOrWhiteSpace(m)).ToArray();

      result.SearchTypes = lines[0].Split('\t').Skip(1).ToList();

      result.SampleFiles = (from l in lines.Skip(1)
                            let parts = l.Split('\t')
                            let sample = parts[0]
                            let files = parts.Skip(1).ToList()
                            select new Tuple<string, List<string>>(sample, files)).ToList();

      return result;
    }
Beispiel #3
0
        public static CountMappingSummaryBuilderConfiguration Read(string fileName)
        {
            var result = new CountMappingSummaryBuilderConfiguration();

            var lines = File.ReadAllLines(fileName).Where(m => !string.IsNullOrWhiteSpace(m)).ToArray();

            result.SearchTypes = lines[0].Split('\t').Skip(1).ToList();

            result.SampleFiles = (from l in lines.Skip(1)
                                  let parts = l.Split('\t')
                                              let sample = parts[0]
                                                           let files = parts.Skip(1).ToList()
                                                                       select new Tuple <string, List <string> >(sample, files)).ToList();

            return(result);
        }