Skip to content

Add an informative error message when "--download-resources" has not yet been run #22

@evolarjun

Description

@evolarjun

Right now it just returns a stack trace e.g.:

$ amrrules --input tests/data/input/test_ecoli_wildtype.tsv --output-prefix test_ecoli_wildtype --organism 's__Escherichia coli'

Traceback (most recent call last):
  File "/netmnt/vast01/gp/home/aprasad/micromamba/envs/amrrules_beta/bin/amrrules", line 7, in <module>
    sys.exit(main())
             ^^^^^^
  File "/netmnt/vast01/gp/home/aprasad/src/AMRrules/src/amrrules/cli.py", line 62, in main
    rules_engine.run(args)
  File "/netmnt/vast01/gp/home/aprasad/src/AMRrules/src/amrrules/rules_engine.py", line 32, in run
    card_drug_map = rm().get_card_drug_class_map() # get CARD drugs and their associated classes
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/netmnt/vast01/gp/home/aprasad/src/AMRrules/src/amrrules/resources.py", line 312, in get_card_drug_class_map
    self._card_drug_map = self._extract_card_drugs(str(obo_file), str(categories_file))
                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/netmnt/vast01/gp/home/aprasad/src/AMRrules/src/amrrules/resources.py", line 259, in _extract_card_drugs
    card_ontology = obonet.read_obo(obo_file_path)
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/netmnt/vast01/gp/home/aprasad/micromamba/envs/amrrules_beta/lib/python3.12/site-packages/obonet/read.py", line 37, in read_obo
    with open_read_file(path_or_file, encoding=encoding) as obo_file:
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/netmnt/vast01/gp/home/aprasad/micromamba/envs/amrrules_beta/lib/python3.12/site-packages/obonet/io.py", line 49, in open_read_file
    return opener(path, "rt", encoding=encoding)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
FileNotFoundError: [Errno 2] No such file or directory: '/netmnt/vast01/gp/home/aprasad/src/AMRrules/src/amrrules/resources/aro.obo'
$ amrrules --download-resources
Downloading ReferenceGeneHierarchy.txt from https://ftp.ncbi.nlm.nih.gov/pathogen/Antimicrobial_resistance/AMRFinderPlus/database/latest/ReferenceGeneHierarchy.txt...
Successfully downloaded ReferenceGeneHierarchy.txt
Downloading version.txt from https://ftp.ncbi.nlm.nih.gov/pathogen/Antimicrobial_resistance/AMRFinderPlus/database/latest/version.txt...
Successfully downloaded version.txt
AMRFinderPlus database version: 2026-01-21.1
AMRFinderPlus database files downloaded successfully.
Downloading https://card.mcmaster.ca/download/5/ontology-v4.0.1.tar.bz2...
Extracting ./aro.obo as aro.obo...
Extracting ./ncbi_taxonomy.tsv as ncbi_taxonomy.tsv...
Downloading https://card.mcmaster.ca/download/0/broadstreet-v4.0.1.tar.bz2...
Extracting ./aro_categories.tsv as aro_categories.tsv...
CARD archives downloaded and extracted successfully.
All required files are present in the resources directory.
All resources have been successfully set up.
Resource download complete.
$ amrrules --input tests/data/input/test_ecoli_wildtype.tsv --output-prefix test_ecoli_wildtype --organism 's__Escherichia coli'
3 hits matched a rule and 2 hits did not match a rule.
Output written to /netmnt/vast01/gp/home/aprasad/src/AMRrules/test_ecoli_wildtype_interpreted.tsv.
Summary output written to /netmnt/vast01/gp/home/aprasad/src/AMRrules/test_ecoli_wildtype_genome_summary.tsv.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions