Source code for wub.tests.test_bam_read_counter

import unittest

import tempfile
import os

from wub.bam import read_counter

error_rate = 0.1
ref_length = 5000


[docs]class TestBamReadCounter(unittest.TestCase): """Test BAM read counter wrapper.""" def _generate_test_data(self): """Generate test data for dnadiff test.""" fh_sam = tempfile.NamedTemporaryFile(suffix=".sam", delete=False, mode='w') self.sam = fh_sam.name data = """@SQ SN:chr0 LN:827 @SQ SN:chr1 LN:6379 @PG ID:bwa PN:bwa VN:0.7.15-r1142-dirty CL:bwa mem genome.fas reads.fq r0_chr1_4118_4168_+/q17/s0/d0/i1 0 chr1 4119 60 8M1I42M * 0 0 CATTTGGTACCATTGTGATCCGCTCTTAGAAACTTTTGGCACTTTATCGCG IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII NM:i:1 MD:Z:50 AS:i:43 XS:i:0 r1_chr1_72_122_+/q12/s0/d2/i1 4 * 0 0 * * 0 0 AGCGCAGTGGTCGACTTAGCTTATTCACGAGAGCCTTCCAACTGGCCAG IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII AS:i:0 XS:i:0 r2_chr0_279_329_-/q17/s0/d1/i0 16 chr0 280 60 16M1D33M * 0 0 AGAACTTGCAAGCGCGGCTCCAGCCTTTCAGGACGAGACCCTCCAAGAC IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII NM:i:1 MD:Z:16^C33 AS:i:42 XS:i:0 r3_chr1_60_110_+/q14/s1/d1/i0 0 chr1 61 51 36M1D13M * 0 0 GGTGTTTTATATAGCGCAGTGTCGACTTAGCTTATTGCGACGAGCCTTC IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII NM:i:2 MD:Z:36^C0A12 AS:i:37 XS:i:0 r4_chr1_1268_1318_+/q12/s1/d2/i0 0 chr1 1269 28 19M1D23M1D6M * 0 0 GTATTCCATCGAGCTGGATCAGTTTAGGAGTGTGCCTAGGTATATCCC IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII NM:i:3 MD:Z:19^G5G17^C6 AS:i:30 XS:i:0 r5_chr0_576_626_-/q12/s1/d2/i0 4 * 0 0 * * 0 0 GCAAATTTTACAGATGATAAAACACCGAATATTCAGACCGTGTAAATA IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII AS:i:0 XS:i:0 r6_chr0_509_559_-/q12/s0/d3/i0 16 chr0 510 60 20M1D27M * 0 0 TGTGGTAGGAGCGGAGCGGGCCCACACCCCCATCCCCCGCGAAATAA IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII NM:i:1 MD:Z:20^A27 AS:i:40 XS:i:0 r7_chr1_2417_2467_-/q12/s1/d1/i1 16 chr1 2418 41 6M1D37M1I6M * 0 0 AGCCGATCATCCCGTCCCTGTTCACTCCTACGTCTTGGCTTGGAAAGTGT IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII NM:i:3 MD:Z:6^G27G15 AS:i:34 XS:i:0 r8_chr0_661_711_-/q11/s0/d3/i1 4 * 0 0 * * 0 0 GTCTGAGGCGCCATATTAGGCGGGCAAAATGGACTATGACTGTGGCAG IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII AS:i:0 XS:i:0 r9_chr0_523_573_-/q14/s0/d1/i1 16 chr0 524 59 3M1I25M1D21M * 0 0 AGCGGGGACCCACACCCCCATCCCCCGCGAATAATTCAACGTTCGCATTA IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII NM:i:2 MD:Z:28^A21 AS:i:39 XS:i:0 """ fh_sam.write(data) fh_sam.flush() fh_sam.close() def _cleanup_test_data(self): """Cleanup test dataset.""" os.unlink(self.sam)
[docs] def test_bam_read_counter(self): """Test read_counter wrapper.""" self._generate_test_data() res = read_counter.count_reads(self.sam, in_format='SAM') self.assertEqual(res[0]['chr0'], 3) self.assertEqual(res[0]['chr1'], 4) self._cleanup_test_data()