Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 10 additions & 2 deletions src/amrrules/genotype_parser.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
from typing import Any, Optional
import re
import warnings
from amrrules import __version__
from amrrules.utils import aa_conversion, minimal_columns, full_columns

Expand Down Expand Up @@ -397,8 +398,15 @@ def _assign_drug_from_rule(self, card_drug_map):
self.drug_class = 'penicillin beta-lactam'

def _assign_drug_from_amrfp(self, card_amrfp_conversion):
self.drug = card_amrfp_conversion.get(self.amrfp_subclass).get('drug', '-')
self.drug_class = card_amrfp_conversion.get(self.amrfp_subclass).get('class', '-')
conversion = card_amrfp_conversion.get(self.amrfp_subclass)
if conversion is None:
# the amrfp_to_card_drugs_classes.txt lookup table is maintained by hand and can
# lag behind the AMRFinderPlus/NCBI database, so an unmapped subclass shouldn't crash the run
warnings.warn(f"AMRFinderPlus subclass '{self.amrfp_subclass}' was not found in the AMRFP-to-CARD "
f"conversion table. Falling back to 'unassigned markers' for this marker.")
conversion = {}
self.drug = conversion.get('drug', '-')
self.drug_class = conversion.get('class', '-')
# if the drug_class is '-', set to 'unassigned markers'
if self.drug_class == '-':
self.drug_class = 'unassigned markers'
Expand Down