Beispiel #1
0
 def test_no_id(self, vcf_translocation):
     bpp_list = _convert_tool_row(
         _parse_vcf_record(vcf_translocation)[0], SUPPORTED_TOOL.VCF, False
     )
     assert len(bpp_list) == 1
     bpp = bpp_list[0]
     assert 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)
     assert len(bpp_list) == 1
     bpp = bpp_list[0]
     assert bpp.break1.chr == '1'
     assert bpp.break2.chr == '1'
     assert bpp.break1.start == 17051724
     assert bpp.break2.start == 234912188
     assert bpp.break1.orient == 'R'
     assert bpp.break2.orient == 'R'
     assert bpp.data['tracking_id'] == 'manta-MantaBND:207:0:1:0:0:0:1'
     assert len(bpp_list) == 1
Beispiel #3
0
 def test_id_given(self, vcf_translocation):
     vcf_translocation.id = 'thing-1'
     bpp_list = _convert_tool_row(
         _parse_vcf_record(vcf_translocation)[0], SUPPORTED_TOOL.VCF, False
     )
     assert len(bpp_list) == 1
     bpp = bpp_list[0]
     assert bpp.data[COLUMNS.tracking_id] == 'vcf-thing-1'
Beispiel #4
0
 def test_no_ci(self, vcf_translocation):
     bpp_list = _convert_tool_row(
         _parse_vcf_record(vcf_translocation)[0], SUPPORTED_TOOL.VCF, False
     )
     assert len(bpp_list) == 1
     bpp = bpp_list[0]
     assert bpp.break1.start == 21673582
     assert bpp.break1.end == 21673582
     assert bpp.break2.start == 58921502
     assert bpp.break2.end == 58921502
Beispiel #5
0
 def test_precise_flag_ignores_ci(self, vcf_translocation):
     vcf_translocation.info.update({'CIEND': [-700, 700], 'CIPOS': [-700, 700], 'PRECISE': True})
     bpp_list = _convert_tool_row(
         _parse_vcf_record(vcf_translocation)[0], SUPPORTED_TOOL.VCF, False
     )
     assert len(bpp_list) == 1
     bpp = bpp_list[0]
     assert bpp.break1.start == 21673582
     assert bpp.break1.end == 21673582
     assert bpp.break2.start == 58921502
     assert bpp.break2.end == 58921502
Beispiel #6
0
 def test_ci(self, vcf_translocation):
     vcf_translocation.info.update({'CIEND': [-700, 700], 'CIPOS': [-700, 700]})
     bpp_list = _convert_tool_row(
         _parse_vcf_record(vcf_translocation)[0], SUPPORTED_TOOL.VCF, False
     )
     assert len(bpp_list) == 1
     bpp = bpp_list[0]
     print(bpp)
     assert bpp.break1.start == 21673582 - 700
     assert bpp.break1.end == 21673582 + 700
     assert bpp.break2.start == 58921502 - 700
     assert bpp.break2.end == 58921502 + 700
Beispiel #7
0
 def testMalformated(self):
     event = Mock(
         chrom='1',
         pos=53678660,
         id=None,
         info={'SVTYPE': 'BND'},
         ref='C',
         alts=('CTTTTAAATGTAACATGACATAATATATTTCCTAAATAATTTAAAATAATC.',),
         stop=53678660,
     )
     with pytest.raises(NotImplementedError):
         _convert_tool_row(_parse_vcf_record(event)[0], SUPPORTED_TOOL.STRELKA, False)
Beispiel #8
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)
     assert len(bpp_list) == 1
     bpp = bpp_list[0]
     assert bpp.break1.start == 724986
     assert bpp.break1.end == 724986
     assert bpp.break2.start == 724986
     assert bpp.break2.end == 724986
     assert bpp.event_type == SVTYPE.INS
Beispiel #9
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)
        assert len(bpp_list) == 1
        bpp = bpp_list[0]
        assert bpp.break1.chr == '1'
        assert bpp.break1.start == 247760043 - 10
        assert bpp.break1.end == 247760043 + 10
        assert bpp.break1.orient == ORIENT.LEFT
        assert bpp.break1.strand == STRAND.NS
        assert bpp.break2.start == 247760044 - 10
        assert bpp.break2.end == 247760044 + 10
        assert bpp.break2.orient == ORIENT.RIGHT
        assert bpp.break2.strand == STRAND.NS
        assert bpp.break2.chr == '1'
        assert bpp.event_type == SVTYPE.INS
        assert bpp.untemplated_seq is None

        bpp_list = _convert_tool_row(
            _parse_vcf_record(row)[0], SUPPORTED_TOOL.DELLY, False, assume_no_untemplated=True
        )
        assert len(bpp_list) == 1
        bpp = bpp_list[0]
        assert bpp.untemplated_seq is None
        assert bpp.untemplated_seq != ''
Beispiel #10
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)
     assert len(bpp_list) == 1
     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)
     assert len(bpp_list) == 4
Beispiel #11
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)
     assert len(bpp_list) == 1
     bpp = bpp_list[0]
     assert bpp.break1.chr == '1'
     assert bpp.break2.chr == '1'
     assert bpp.data['tracking_id'] == 'manta-MantaDUP:TANDEM:22477:0:1:0:9:0'
Beispiel #12
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)
     assert len(bpp_list) == 1
     bpp = bpp_list[0]
     assert bpp.break1.start == 1265353
     assert bpp.break1.end == 1265353
     assert bpp.break2.start == 1265366
     assert bpp.break2.end == 1265366
     assert bpp.event_type == SVTYPE.DEL
Beispiel #13
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)
     assert len(bpp_list) == 2
     bpp = sorted(bpp_list, key=lambda x: x.break1)[0]
     assert bpp.break1.chr == '21'
     assert bpp.break2.chr == '21'
     assert bpp.event_type == SVTYPE.INV
     assert bpp.break1.start == row.pos
     assert bpp.break1.end == row.pos
     assert bpp.break2.start == row.stop
     assert bpp.break2.end == row.stop
     assert bpp.break1.orient == ORIENT.LEFT
     assert bpp.break1.strand == STRAND.NS
     assert bpp.break2.orient == ORIENT.LEFT
     assert bpp.break2.strand == STRAND.NS
     assert bpp.stranded is False
     assert bpp.opposing_strands is True
Beispiel #14
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)
     assert len(bpp_list) == 1
     bpp = bpp_list[0]
     assert bpp.break1.chr == '21'
     assert bpp.break2.chr == '21'
     assert bpp.event_type == SVTYPE.DEL
     assert bpp.break1.start == row.pos
     assert bpp.break1.end == row.pos
     assert bpp.break2.start == row.stop
     assert bpp.break2.end == row.stop
     assert bpp.break1.orient == ORIENT.LEFT
     assert bpp.break1.strand == STRAND.NS
     assert bpp.break2.orient == ORIENT.RIGHT
     assert bpp.break2.strand == STRAND.NS
     assert bpp.stranded is False
     assert bpp.opposing_strands is False
Beispiel #15
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)
     assert len(bpp_list) == 1
     bpp = bpp_list[0]
     assert bpp.break1.chr == '21'
     assert bpp.break1.start == 9412306
     assert bpp.break1.end == 9412310
     assert bpp.break2.start == 9412400
     assert bpp.break2.end == 9412404
     assert bpp.break2.chr == '21'
     print(bpp, bpp.data['tracking_id'])
     assert bpp.data['tracking_id'] == 'manta-MantaDEL:20644:0:2:0:0:0'