public override IEnumerable<string> Process(string fileName) { Dictionary<string, string> genenames = File.Exists(this.affyAnnotationFile) ? AnnotationFile.GetGeneSymbolDescriptionMap(this.affyAnnotationFile) : new Dictionary<string, string>(); var items = new AnnovarGenomeSummaryItemReader().ReadFromFile(fileName); var shFile = this.targetDir + "/" + suffix + ".sh"; using (StreamWriter sw = new StreamWriter(shFile)) { foreach (var item in items) { var targetFile = string.Format("{0}/{1}_{2}-{3}_{4}_{5}", this.targetDir, item.Seqname, item.Start, item.End, (from g in item.Genes select g.Name).Merge("_"), this.suffix); sw.WriteLine("echo \"{0}.bam\"", Path.GetFileName(targetFile)); sw.WriteLine("samtools view -b {0} {1}:{2}-{3} | samtools sort - {4}", this.bamFile, item.Seqname, item.Start, item.End, targetFile); sw.WriteLine("samtools index {0}.bam", targetFile); } } return new string[] { shFile }; }
public void TestTsv() { var items = new AnnovarGenomeSummaryItemReader().ReadFromFile("../../../data/annovar.snp.tsv"); Assert.AreEqual(3, items.Count); Assert.AreEqual("ncRNA_intronic", items[0].Func); Assert.AreEqual("WASH7P", items[0].GeneString); Assert.AreEqual(string.Empty, items[0].ExonicFunc); Assert.AreEqual("1", items[0].Seqname); Assert.AreEqual(14907, items[0].Start); Assert.AreEqual(14907, items[0].End); Assert.AreEqual("GT:AD:DP:GQ:PL", items[0].Format); Assert.AreEqual("0/1:1,4:5:24:84,0,24", items[0].Samples["IG-003"]); }
public void TestCsv() { var items = new AnnovarGenomeSummaryItemReader().ReadFromFile("../../../data/annovar.genome_summary.csv"); Assert.AreEqual(9, items.Count); Assert.AreEqual("intergenic", items[0].Func); Assert.AreEqual("OR4F3(dist=196024),OR4F29(dist=56475)", items[0].GeneString); Assert.AreEqual(string.Empty, items[0].ExonicFunc); Assert.AreEqual("1", items[0].Seqname); Assert.AreEqual(564621, items[0].Start); Assert.AreEqual(564621, items[0].End); Assert.AreEqual("exonic", items[8].Func); Assert.AreEqual("KIAA1324", items[8].GeneString); Assert.AreEqual("synonymous SNV", items[8].ExonicFunc); Assert.AreEqual("1", items[8].Seqname); Assert.AreEqual(109737132, items[8].Start); Assert.AreEqual(109737132, items[8].End); }