def test_two_regions(self): prelim_csv = StringIO("""\ qname,flag,rname,pos,mapq,cigar,rnext,pnext,tlen,seq,qual example1,89,R1-seed,1,0,9M,=,1,0,AAACCCTTT,BBBBBBBBB example2,89,R2-seed,1,0,9M,=,1,0,AAAACCTTT,BBBBBBBBB example3,89,R2-seed,1,0,9M,=,1,0,AAAAACTTT,BBBBBBBBB """) count_threshold = 2 expected_sam_file = """\ @HD VN:1.0 SO:unsorted @SQ SN:R1-seed LN:9 @SQ SN:R2-seed LN:12 @PG ID:bowtie2 PN:bowtie2 VN:2.2.3 CL:"" example1\t89\tR1-seed\t1\t0\t9M\t=\t1\t0\tAAACCCTTT\tBBBBBBBBB example2\t89\tR2-seed\t1\t0\t9M\t=\t1\t0\tAAAACCTTT\tBBBBBBBBB example3\t89\tR2-seed\t1\t0\t9M\t=\t1\t0\tAAAAACTTT\tBBBBBBBBB """ expected_remap_counts = """\ type,filtered_count,count prelim R1-seed,0,1 prelim R2-seed,0,2 """ expected_seed_counts = {} seed_counts = convert_prelim(prelim_csv, self.sam_file, self.remap_counts_writer, count_threshold, self.projects) self.assertEqual(expected_sam_file, self.sam_file.getvalue()) self.assertEqual(expected_remap_counts, self.remap_counts.getvalue()) self.assertEqual(expected_seed_counts, seed_counts)
def test_best_in_group(self): self.maxDiff = None prelim_csv = StringIO("""\ qname,flag,rname,pos,mapq,cigar,rnext,pnext,tlen,seq,qual example1,89,R1-seed,1,0,54M,=,1,0,\ AAACCCTTTAAACCCTTTAAACCCTTTAAACCCTTTAAACCCTTTAAACCCTTT,\ BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB example2,89,R2-seed,1,0,54M,=,1,0,\ AAAACCTTTAAAACCTTTAAAACCTTTAAAACCTTTAAAACCTTTAAAACCTTT,\ BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB example3,89,R1-seed,1,0,54M,=,1,0,\ AAAAAATTTAAAACCTTTAAAACCTTTAAAACCTTTAAAACCTTTAAAACCTTT,\ BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB example4,89,R2-seed,1,0,54M,=,1,0,\ AAAAAAAATAAAACCTTTAAAACCTTTAAAACCTTTAAAACCTTTAAAACCTTT,\ BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB example5,89,R2-seed,1,0,54M,=,1,0,\ AAAAAAAAAAAAACCTTTAAAACCTTTAAAACCTTTAAAACCTTTAAAACCTTT,\ BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB """) count_threshold = 2 expected_sam_file = """\ @HD VN:1.0 SO:unsorted @SQ SN:R1-seed LN:9 @SQ SN:R2-seed LN:12 @PG ID:bowtie2 PN:bowtie2 VN:2.2.3 CL:"" example1\t89\tR1-seed\t1\t0\t54M\t=\t1\t0\t\ AAACCCTTTAAACCCTTTAAACCCTTTAAACCCTTTAAACCCTTTAAACCCTTT\t\ BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB example2\t89\tR2-seed\t1\t0\t54M\t=\t1\t0\t\ AAAACCTTTAAAACCTTTAAAACCTTTAAAACCTTTAAAACCTTTAAAACCTTT\t\ BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB example3\t89\tR1-seed\t1\t0\t54M\t=\t1\t0\t\ AAAAAATTTAAAACCTTTAAAACCTTTAAAACCTTTAAAACCTTTAAAACCTTT\t\ BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB example4\t89\tR2-seed\t1\t0\t54M\t=\t1\t0\t\ AAAAAAAATAAAACCTTTAAAACCTTTAAAACCTTTAAAACCTTTAAAACCTTT\t\ BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB example5\t89\tR2-seed\t1\t0\t54M\t=\t1\t0\t\ AAAAAAAAAAAAACCTTTAAAACCTTTAAAACCTTTAAAACCTTTAAAACCTTT\t\ BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB """ expected_remap_counts = """\ type,filtered_count,count prelim R1-seed,2,2 prelim R2-seed,3,3 """ expected_seed_counts = {'R2-seed': 3} seed_counts = convert_prelim(prelim_csv, self.sam_file, self.remap_counts_writer, count_threshold, self.projects) self.assertEqual(expected_sam_file, self.sam_file.getvalue()) self.assertEqual(expected_remap_counts, self.remap_counts.getvalue()) self.assertEqual(expected_seed_counts, seed_counts)