Beispiel #1
0
 def test_N_id(self):
     self.tra.id = 'N'
     bpp_list = _convert_tool_row(_parse_vcf_record(self.tra)[0], SUPPORTED_TOOL.VCF, False)
     self.assertEqual(1, len(bpp_list))
     bpp = bpp_list[0]
     self.assertTrue(bpp.data[COLUMNS.tracking_id])
     self.assertNotEqual('N', bpp.data[COLUMNS.tracking_id])
Beispiel #2
0
 def test_non_trans_bnd_from_mate(self):
     row = Mock(
         chrom='chr1',
         pos=234912188,
         id='MantaBND:207:0:1:0:0:0:1',
         info=dict(
             SVTYPE='BND',
             MATEID='MantaBND:207:0:1:0:0:0:0',
             SVINSLEN=7,
             SVINSSEQ='ATGGGGC',
             BND_DEPTH=5,
             MATE_BND_DEPTH=4,
         ),
         ref='A',
         alts=['[chr1:17051724[ATGGGGCA'],
     )
     vcf_list = _parse_vcf_record(row)
     bpp_list = _convert_tool_row(vcf_list[0], SUPPORTED_TOOL.MANTA, False)
     self.assertEqual(1, len(bpp_list))
     bpp = bpp_list[0]
     self.assertEqual('1', bpp.break1.chr)
     self.assertEqual('1', bpp.break2.chr)
     self.assertEqual(17051724, bpp.break1.start)
     self.assertEqual(234912188, bpp.break2.start)
     self.assertEqual('R', bpp.break1.orient)
     self.assertEqual('R', bpp.break2.orient)
     self.assertEqual('manta-MantaBND:207:0:1:0:0:0:1', bpp.tracking_id)
     self.assertEqual(1, len(bpp_list))
Beispiel #3
0
 def test_no_ci(self):
     bpp_list = _convert_tool_row(_parse_vcf_record(self.tra)[0], SUPPORTED_TOOL.VCF, False)
     self.assertEqual(1, len(bpp_list))
     bpp = bpp_list[0]
     self.assertEqual(21673582, bpp.break1.start)
     self.assertEqual(21673582, bpp.break1.end)
     self.assertEqual(58921502, bpp.break2.start)
     self.assertEqual(58921502, bpp.break2.end)
Beispiel #4
0
 def test_precise_flag_ignores_ci(self):
     self.tra.info.update({'CIEND': [-700, 700], 'CIPOS': [-700, 700], 'PRECISE': True})
     bpp_list = _convert_tool_row(_parse_vcf_record(self.tra)[0], SUPPORTED_TOOL.VCF, False)
     self.assertEqual(1, len(bpp_list))
     bpp = bpp_list[0]
     self.assertEqual(21673582, bpp.break1.start)
     self.assertEqual(21673582, bpp.break1.end)
     self.assertEqual(58921502, bpp.break2.start)
     self.assertEqual(58921502, bpp.break2.end)
Beispiel #5
0
 def test_ci(self):
     self.tra.info.update({'CIEND': [-700, 700], 'CIPOS': [-700, 700]})
     bpp_list = _convert_tool_row(_parse_vcf_record(self.tra)[0], SUPPORTED_TOOL.VCF, False)
     self.assertEqual(1, len(bpp_list))
     bpp = bpp_list[0]
     print(bpp)
     self.assertEqual(21673582 - 700, bpp.break1.start)
     self.assertEqual(21673582 + 700, bpp.break1.end)
     self.assertEqual(58921502 - 700, bpp.break2.start)
     self.assertEqual(58921502 + 700, bpp.break2.end)
Beispiel #6
0
 def testMalformated(self):
     event = Mock(
         chrom='1',
         pos=53678660,
         id=None,
         info={'SVTYPE': 'BND'},
         ref='C',
         alts=('CTTTTAAATGTAACATGACATAATATATTTCCTAAATAATTTAAAATAATC.',),
         stop=53678660,
     )
     with self.assertRaises(NotImplementedError):
         _convert_tool_row(_parse_vcf_record(event)[0], SUPPORTED_TOOL.STRELKA, False)
Beispiel #7
0
 def testInsertion(self):
     event = Mock(
         chrom='1', pos=724986, id=None, info={}, ref='G', stop=724986, alts=('GGAATT',)
     )
     bpp_list = _convert_tool_row(_parse_vcf_record(event)[0], SUPPORTED_TOOL.STRELKA, False)
     self.assertEqual(1, len(bpp_list))
     bpp = bpp_list[0]
     self.assertEqual(724986, bpp.break1.start)
     self.assertEqual(724986, bpp.break1.end)
     self.assertEqual(724986, bpp.break2.start)
     self.assertEqual(724986, bpp.break2.end)
     self.assertEqual(SVTYPE.INS, bpp.event_type)
Beispiel #8
0
    def test_convert_insertion(self):
        row = Mock(
            chrom='1',
            pos=247760043,
            id='1DEL00000330',
            info={
                'SVTYPE': 'INS',
                'CT': 'NtoN',
                'CHR2': '1',
                'CIEND': [-10, 10],
                'CIPOS': [-10, 10],
            },
            stop=247760044,
            alts=[],
        )
        bpp_list = _convert_tool_row(_parse_vcf_record(row)[0], SUPPORTED_TOOL.DELLY, False)
        self.assertEqual(1, len(bpp_list))
        bpp = bpp_list[0]
        self.assertEqual('1', bpp.break1.chr)
        self.assertEqual(247760043 - 10, bpp.break1.start)
        self.assertEqual(247760043 + 10, bpp.break1.end)
        self.assertEqual(ORIENT.LEFT, bpp.break1.orient)
        self.assertEqual(STRAND.NS, bpp.break1.strand)
        self.assertEqual(247760044 - 10, bpp.break2.start)
        self.assertEqual(247760044 + 10, bpp.break2.end)
        self.assertEqual(ORIENT.RIGHT, bpp.break2.orient)
        self.assertEqual(STRAND.NS, bpp.break2.strand)
        self.assertEqual('1', bpp.break2.chr)
        self.assertEqual(SVTYPE.INS, bpp.event_type)
        self.assertEqual(None, bpp.untemplated_seq)

        bpp_list = _convert_tool_row(
            _parse_vcf_record(row)[0], SUPPORTED_TOOL.DELLY, False, assume_no_untemplated=True
        )
        self.assertEqual(1, len(bpp_list))
        bpp = bpp_list[0]
        self.assertEqual(None, bpp.untemplated_seq)
        self.assertNotEqual('', bpp.untemplated_seq)
Beispiel #9
0
 def test_convert_convert_translocation(self):
     row = Mock(
         chrom='7',
         pos=21673582,
         id='TRA00016056',
         info={
             'SVTYPE': 'TRA',
             'CT': '5to5',
             'CIEND': [-700, 700],
             'CIPOS': [-700, 700],
             'CHR2': '2',
         },
         stop=58921502,
         alts=[],
     )
     bpp_list = _convert_tool_row(_parse_vcf_record(row)[0], SUPPORTED_TOOL.DELLY, False)
     for b in bpp_list:
         print(b)
     self.assertEqual(1, len(bpp_list))
     row.info['CT'] = 'NtoN'
     bpp_list = _convert_tool_row(_parse_vcf_record(row)[0], SUPPORTED_TOOL.DELLY, False)
     for b in bpp_list:
         print(b)
     self.assertEqual(4, len(bpp_list))
Beispiel #10
0
 def test_convert_duplication(self):
     row = Mock(
         chrom='1',
         pos=224646602,
         id='MantaDUP:TANDEM:22477:0:1:0:9:0',
         info={'SVTYPE': 'DUP', 'SVINSSEQ': 'CAAAACTTACTATAGCAGTTCTGTGAGCTGCTCTAGC'},
         stop=224800120,
         alts=[],
     )
     bpp_list = _convert_tool_row(_parse_vcf_record(row)[0], SUPPORTED_TOOL.MANTA, False)
     self.assertEqual(1, len(bpp_list))
     bpp = bpp_list[0]
     self.assertEqual('1', bpp.break1.chr)
     self.assertEqual('1', bpp.break2.chr)
     self.assertEqual('manta-MantaDUP:TANDEM:22477:0:1:0:9:0', bpp.tracking_id)
Beispiel #11
0
 def testDeletion(self):
     event = Mock(
         chrom='1',
         pos=1265353,
         id=None,
         info={},
         ref='GCGTGTGCCATGCA',
         stop=1265366,
         alts=('G',),
     )
     bpp_list = _convert_tool_row(_parse_vcf_record(event)[0], SUPPORTED_TOOL.STRELKA, False)
     self.assertEqual(1, len(bpp_list))
     bpp = bpp_list[0]
     self.assertEqual(1265353, bpp.break1.start)
     self.assertEqual(1265353, bpp.break1.end)
     self.assertEqual(1265366, bpp.break2.start)
     self.assertEqual(1265366, bpp.break2.end)
     self.assertEqual(SVTYPE.DEL, bpp.event_type)
Beispiel #12
0
 def test_convert_inversion(self):
     row = Mock(chrom='21', pos=9412306, info={'SVTYPE': 'INV'}, stop=9412400, id=None, alts=[])
     bpp_list = _convert_tool_row(_parse_vcf_record(row)[0], SUPPORTED_TOOL.PINDEL, False)
     self.assertEqual(2, len(bpp_list))
     bpp = sorted(bpp_list, key=lambda x: x.break1)[0]
     self.assertEqual('21', bpp.break1.chr)
     self.assertEqual('21', bpp.break2.chr)
     self.assertEqual(SVTYPE.INV, bpp.event_type)
     self.assertEqual(row.pos, bpp.break1.start)
     self.assertEqual(row.pos, bpp.break1.end)
     self.assertEqual(row.stop, bpp.break2.start)
     self.assertEqual(row.stop, bpp.break2.end)
     self.assertEqual(ORIENT.LEFT, bpp.break1.orient)
     self.assertEqual(STRAND.NS, bpp.break1.strand)
     self.assertEqual(ORIENT.LEFT, bpp.break2.orient)
     self.assertEqual(STRAND.NS, bpp.break2.strand)
     self.assertEqual(False, bpp.stranded)
     self.assertEqual(True, bpp.opposing_strands)
Beispiel #13
0
 def test_convert_deletion(self):
     row = Mock(chrom='21', pos=9412306, info={'SVTYPE': 'DEL'}, stop=9412400, id=None, alts=[])
     bpp_list = _convert_tool_row(_parse_vcf_record(row)[0], SUPPORTED_TOOL.PINDEL, False)
     self.assertEqual(1, len(bpp_list))
     bpp = bpp_list[0]
     self.assertEqual('21', bpp.break1.chr)
     self.assertEqual('21', bpp.break2.chr)
     self.assertEqual(SVTYPE.DEL, bpp.event_type)
     self.assertEqual(row.pos, bpp.break1.start)
     self.assertEqual(row.pos, bpp.break1.end)
     self.assertEqual(row.stop, bpp.break2.start)
     self.assertEqual(row.stop, bpp.break2.end)
     self.assertEqual(ORIENT.LEFT, bpp.break1.orient)
     self.assertEqual(STRAND.NS, bpp.break1.strand)
     self.assertEqual(ORIENT.RIGHT, bpp.break2.orient)
     self.assertEqual(STRAND.NS, bpp.break2.strand)
     self.assertEqual(False, bpp.stranded)
     self.assertEqual(False, bpp.opposing_strands)
Beispiel #14
0
 def test_convert_deletion(self):
     row = Mock(
         chrom='21',
         pos=9412306,
         id='MantaDEL:20644:0:2:0:0:0',
         info={'SVTYPE': 'DEL', 'CIPOS': [0, 4], 'CIEND': [0, 4]},
         stop=9412400,
         alts=[],
     )
     bpp_list = _convert_tool_row(_parse_vcf_record(row)[0], SUPPORTED_TOOL.MANTA, False)
     self.assertEqual(1, len(bpp_list))
     bpp = bpp_list[0]
     self.assertEqual('21', bpp.break1.chr)
     self.assertEqual(9412306, bpp.break1.start)
     self.assertEqual(9412310, bpp.break1.end)
     self.assertEqual(9412400, bpp.break2.start)
     self.assertEqual(9412404, bpp.break2.end)
     self.assertEqual('21', bpp.break2.chr)
     print(bpp, bpp.tracking_id)
     self.assertEqual('manta-MantaDEL:20644:0:2:0:0:0', bpp.tracking_id)
Beispiel #15
0
 def test_id_given(self):
     self.tra.id = 'thing-1'
     bpp_list = _convert_tool_row(_parse_vcf_record(self.tra)[0], SUPPORTED_TOOL.VCF, False)
     self.assertEqual(1, len(bpp_list))
     bpp = bpp_list[0]
     self.assertEqual('vcf-thing-1', bpp.data[COLUMNS.tracking_id])