Esempio n. 1
0
    def test_dbxref_feature_mapper():
        'It tests the dbxref feature mapper'

        database = 'database'
        relations = {'ctg0': 'acc1'}
        feature = {'end': 140722177, 'name': 'ctg0', 'start': 1,
                   'source': 'F=PC', 'seqid': 'Chrctg0', 'phase': '.',
                   'attributes': {'ID': 'ctg0', 'Name': 'ctg,0'},
                   'score': '.', 'type': 'contig', 'id':'ctg0', 'strand': '.'}
        mapper = create_dbxref_adder(database, relations)
        mapper((FEATURE, feature))

        # add an already given database
        mapper((FEATURE, feature))
        assert feature['attributes']['Dbxref'] == ['database:acc1']

        # add a second dbxref
        mapper = create_dbxref_adder('database2', relations)
        mapper((FEATURE, feature))
        assert feature['attributes']['Dbxref'] == ['database2:acc1', 'database:acc1']


        feature = {'end': 140722177, 'name': 'test', 'start': 1,
                   'source': 'F=PC', 'seqid': 'Chrctg0', 'phase': '.',
                   'attributes': {'ID': 'test', 'Name': 'test'},
                   'score': '.', 'type': 'contig', 'id':'test', 'strand': '.'}
        mapper = create_dbxref_adder('database2', relations)
        mapper((FEATURE, feature))
        assert 'Dbxref' not in feature['attributes']
def main():
    'It runs the script'
    ingff3_fpath, outgff3_fpath, rels_fhand, database = get_parameters()

    relations = _get_relations(rels_fhand)
    mappers = []
    mappers.append(create_dbxref_adder(database, relations))

    modify_gff3(ingff3_fpath, outgff3_fpath, mappers=mappers)