Esempio n. 1
0
    public override IEnumerable<string> Process()
    {
      var reader = new SamToolsStatItemReader();

      var items = (from file in options.GetStatisticFiles()
                   let filename = Path.GetFileNameWithoutExtension(file)
                   let shortname = filename.ToLower().EndsWith(".bam") ? Path.GetFileNameWithoutExtension(filename) : filename
                   select new
                   {
                     FileName = shortname,
                     Data = reader.ReadFromFile(file)
                   }).ToList();

      using (var sw = new StreamWriter(options.OutputFile))
      {
        sw.WriteLine("Sample\tTotalReads\tMappedReads\tMappedReadPercentage\tMappedPairs");
        foreach (var item in items)
        {
          sw.WriteLine("{0}\t{1}\t{2}\t{3:0.00}%\t{4}",
            item.FileName,
            item.Data.Total,
            item.Data.Mapped,
            item.Data.Mapped * 100.0 / item.Data.Total,
            item.Data.WithItselfAndMateMapped);
        }
      }

      return new string[] { options.OutputFile };
    }
 public void TestMethod()
 {
   var item = new SamToolsStatItemReader().ReadFromFile(@"../../../data/2476-JP-01.bam.stat");
   Assert.AreEqual(122383979, item.Total);
   Assert.AreEqual(0, item.Duplicates);
   Assert.AreEqual(122092264, item.Mapped);
   Assert.AreEqual(122383979, item.PairedInSequencing);
   Assert.AreEqual(61183108, item.Read1);
   Assert.AreEqual(61200871, item.Read2);
   Assert.AreEqual(121137215, item.ProperlyPaired);
   Assert.AreEqual(121839842, item.WithItselfAndMateMapped);
   Assert.AreEqual(252422, item.Singletons);
   Assert.AreEqual(482135, item.WithMateMappedToADifferentChr);
   Assert.AreEqual(375411, item.WithMateMappedToADifferentChrMapQ);
 }