From c5e914e88311334a08bbc3a9669c3ff9bbda3111 Mon Sep 17 00:00:00 2001 From: Martin Hunt Date: Wed, 24 May 2017 09:04:06 +0100 Subject: [PATCH 1/2] Bug fix parsing card 1.1.8 json --- ariba/card_record.py | 9 ++++++++- ariba/tests/card_record_test.py | 3 +++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/ariba/card_record.py b/ariba/card_record.py index f1a1f495..20d977cb 100644 --- a/ariba/card_record.py +++ b/ariba/card_record.py @@ -61,10 +61,17 @@ def _dna_seqs_and_genbank_ids(gene_dict): genbank_id = seq_dict['dna_sequence']['accession'] start = seq_dict['dna_sequence']['fmin'] end = seq_dict['dna_sequence']['fmax'] - gi = seq_dict['protein_sequence']['GI'] + + # Card version <=1.1.7 has 'GI', but 1.1.8 has 'accession' instead + if 'GI' in seq_dict['protein_sequence']: + gi = seq_dict['protein_sequence']['GI'] + else: + gi = seq_dict['protein_sequence']['accession'] + protein_seq = seq_dict['protein_sequence']['sequence'] except: print('Missing data from', key, file=sys.stderr) + pprint.pprint(seq_dict) continue assert gi != 'NA' diff --git a/ariba/tests/card_record_test.py b/ariba/tests/card_record_test.py index 6058eac3..58d75467 100644 --- a/ariba/tests/card_record_test.py +++ b/ariba/tests/card_record_test.py @@ -81,6 +81,9 @@ def test_dna_seqs_and_genbank_ids(self): d['model_sequences']['sequence']['foo']['protein_sequence']['sequence'] = 'III' expected = [('foo', '123456789', 'ABC123', '42', '4242', 'ACGT', 'III')] self.assertEqual(expected, card_record.CardRecord._dna_seqs_and_genbank_ids(d)) + del d['model_sequences']['sequence']['foo']['protein_sequence']['GI'] + d['model_sequences']['sequence']['foo']['protein_sequence']['accession'] = '123456789' + self.assertEqual(expected, card_record.CardRecord._dna_seqs_and_genbank_ids(d)) d['model_sequences']['sequence']['bar'] = { 'dna_sequence': { From e1c24ff3a56c43d5fd9099f95e2ee9035268535b Mon Sep 17 00:00:00 2001 From: Martin Hunt Date: Wed, 24 May 2017 09:04:41 +0100 Subject: [PATCH 2/2] Version bump 2.9.4 --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 1f1d3908..f391e555 100644 --- a/setup.py +++ b/setup.py @@ -55,7 +55,7 @@ setup( ext_modules=[minimap_mod, fermilite_mod, vcfcall_mod], name='ariba', - version='2.9.3', + version='2.9.4', description='ARIBA: Antibiotic Resistance Identification By Assembly', packages = find_packages(), package_data={'ariba': ['test_run_data/*']},