def test_write_sam_pairs_skipsIfWrongPosition(self): writer = MockWriter() leftA = SplitRead(**initParams({'name':'readA', 'side':"L", 'position': 10})) rightA = SplitRead(**initParams({'name':'readA', 'side':"R", 'position': 5})) read_group_key = leftA.key() read_group_pairs = {read_group_key:[(leftA, rightA, 5)]} split_read_from_file = SplitRead(**initParams({'name':'readA', 'side':"L", 'position': 999})) split_read_from_file.write_sam_pairs(read_group_pairs, "line\t"*12, writer) self.assertEqual(0, len(writer.lines()))
def test_write_sam_pairs_writesLineForEachPairParticipation(self): writer = MockWriter() stub_line = "readA|"*12 leftA5 = SplitRead(**initParams({'name':'readA', 'side':"L", 'position': 5})) rightA10 = SplitRead(**initParams({'name':'readA', 'side':"R", 'position': 10})) rightA15 = SplitRead(**initParams({'name':'readA', 'side':"R", 'position': 15})) read_group_key = leftA5.key() read_group_pairs = {read_group_key:[(leftA5, rightA10), (leftA5, rightA15)]} split_read_from_file = SplitRead(**initParams({'name':'readA', 'side':"L", 'position': 5})) split_read_from_file.write_sam_pairs(read_group_pairs, stub_line+"\n", writer, "|") actual_lines = writer.lines() self.assertEqual(2, len(actual_lines))
def test_write_sam_pairs_writesNegativeStrandSamLines(self): writer = MockWriter() input_line = "readA|147|chr12|5|255|42M|*|0|0|TCACC|DDDDD|XA:i:0" left_read = SplitRead(**initParams({'name':'readA', 'side':"L", 'position': 5200, 'split_len':15, 'original_read_len':100})) right_read = SplitRead(**initParams({'name':'readA', 'side':"R", 'position': 5000, 'split_len':85, 'original_read_len':100})) read_group_key = left_read.key() read_group_pairs = {read_group_key:[(left_read, right_read)]} first_split_read_from_file = SplitRead(**initParams({'name':'readA', 'side':"L", 'position': 5200, 'split_len':15, 'original_read_len':100})) first_split_read_from_file.write_sam_pairs(read_group_pairs, input_line+"\n", writer,"|") second_split_read_from_file = SplitRead(**initParams({'name':'readA', 'side':"R", 'position': 5000, 'split_len':85, 'original_read_len':100})) second_split_read_from_file.write_sam_pairs(read_group_pairs, input_line+"\n", writer,"|") actual_lines = writer.lines() self.assertEqual(2, len(actual_lines)) self.assertEqual("readA-L-15|115|chr12|5200|255|42M|=|5000|-200|TCACC|DDDDD|XA:i:0", actual_lines[0]) self.assertEqual("readA-L-15|147|chr12|5000|255|42M|=|5200|200|TCACC|DDDDD|XA:i:0", actual_lines[1])