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); }