Skip to main content

Normalize antibiotic resistance genes (ARGs) results by using the ARO ontology (developed by CARD).

Project description

argNorm

Python package Downloads install with bioconda Anaconda-Server Badge Anaconda-Server Badge

What is argNorm?

argNorm is a tool to normalize antibiotic resistance genes (ARGs) by mapping them to the antibiotic resistance ontology (ARO) by CARD. It also provides drug categorization of drugs that antibiotic resistance genes confer resistance to.

argNorm Workflow

Why argNorm?

Right now, many tools exist for annotating ARGs in genomes and metagenomes. However, each tool will have distinct output formats.

The hAMRonization package can normalize file formats, but each tool will use different names/identifiers (e.g., TetA or TETA or tet(A) or tet-A are all different ways to spell the same gene name).

For a small number of isolate genomes, a human user can still quickly evaluate the outputs. However, for metagenomics, especially for large-scale projects, this becomes infeasible. Thus, argNorm normalizes the output vocabulary of these tools by mapping all tools to the same ontology (ARO).

Note:

This is a beta-quality implementation (subject to changes and some bugs may remain), but you're welcomed to try it and provide feedback.

We welcome your feedback on the Issues Page.

Tutorial Video

argNorm Tutorial

Installation

argNorm can be installed using pip:

pip install argnorm

argNorm can also be installed through conda:

conda install bioconda::argnorm

Supported tools

Note that CARD RGI already uses ARO, thus there is no need to use argNorm.

Basic usage

The only positional argument required is tool which can be:

  • deeparg
  • argsoap
  • abricate
  • resfinder
  • amrfinderplus

The available options are:

  • -h or --help: shows available options and exits.
  • --db: database used to perform ARG annotation. Supported databases are:
    • SARG (sarg)
    • NCBI (ncbi)
    • ResFinder (resfinder)
    • DeepARG (deeparg)
    • MEGARes (megares)
    • ARG-ANNOT (argannot)
  • --hamronized: use this if the input is hamronized by hAMRonization
  • -i or --input: path to the annotation result
  • -o or --output: the file to save normalization results

Use argnorm -h or argnorm --help to see available options.

>argnorm -h
usage: argnorm [-h] [--db {sarg,ncbi,resfinder,deeparg,megares,argannot}] [--hamronized] [-i INPUT] [-o OUTPUT] {argsoap,abricate,deeparg,resfinder,amrfinderplus}

argNorm normalizes ARG annotation results from different tools and databases to the same ontology, namely ARO (Antibiotic Resistance Ontology).

positional arguments:
  {argsoap,abricate,deeparg,resfinder,amrfinderplus}
                        The tool you used to do ARG annotation.

options:
  -h, --help            show this help message and exit
  --db {sarg,ncbi,resfinder,deeparg,megares,argannot}
                        The database you used to do ARG annotation.
  --hamronized          Use this if the input is hamronized (processed using the hAMRonization tool)
  -i INPUT, --input INPUT
                        The annotation result you have
  -o OUTPUT, --output OUTPUT
                        The file to save normalization results

Here is a basic outline of calling argNorm.

argnorm [tool] -i [original_annotation.tsv] -o [annotation_result_with_aro.tsv]

Examples

ARGs-OAP

argnorm argsoap -i examples/raw/args-oap.sarg.reads.tsv -o outputs/raw/args-oap.sarg.reads.tsv

argnorm argsoap -i examples/hamronized/args-oap.sarg.reads.tsv -o outputs/hamronized/args-oap.sarg.reads.tsv --hamronized

DeepARG

argnorm deeparg -i examples/raw/deeparg.deeparg.orfs.tsv -o outputs/raw/deeparg.deeparg.orfs.tsv

argnorm deeparg -i examples/hamronized/deeparg.deeparg.orfs.tsv -o outputs/hamronized/deeparg.deeparg.orfs.tsv --hamronized

ABRicate

When using abricate, it is necessary to specify the database used:

Hamronized

argnorm abricate --db ncbi -i examples/hamronized/abricate.ncbi.tsv -o outputs/hamronized/abricate.ncbi.tsv --hamronized
argnorm abricate --db megares -i examples/hamronized/abricate.megares.tsv -o outputs/hamronized/abricate.megares.tsv --hamronized
argnorm abricate --db argannot -i examples/hamronized/abricate.argannot.tsv -o outputs/hamronized/abricate.argannot.tsv --hamronized
argnorm abricate --db resfinder -i examples/hamronized/abricate.resfinder.tsv -o outputs/hamronized/abricate.resfinder.tsv --hamronized

Raw

argnorm abricate --db ncbi -i examples/raw/abricate.ncbi.tsv -o outputs/raw/abricate.ncbi.tsv
argnorm abricate --db megares -i examples/raw/abricate.megares.tsv -o outputs/raw/abricate.megarest.tsv
argnorm abricate --db argannot -i examples/raw/abricate.argannot.tsv -o outputs/raw/abricate.argannot.tsv

ResFinder

Hamronized

argnorm resfinder -i examples/hamronized/resfinder.resfinder.orfs.tsv -o outputs/hamronized/resfinder.resfinder.orfs.tsv --hamronized
argnorm resfinder -i examples/hamronized/resfinder.resfinder.reads.tsv -o outputs/hamronized/resfinder.resfinder.reads.tsv --hamronized

Raw

argnorm resfinder -i examples/raw/resfinder.resfinder.orfs.tsv -o outputs/raw/resfinder.resfinder.orfs.tsv
argnorm resfinder -i examples/raw/resfinder.resfinder.reads.tsv -o outputs/raw/resfinder.resfinder.reads.tsv

AMRFinderPlus

argnorm amrfinderplus -i examples/raw/amrfinderplus.ncbi.orfs.tsv -o outputs/raw/amrfinderplus.ncbi.orfs.tsv

argnorm amrfinderplus -i examples/hamronized/amrfinderplus.ncbi.orfs.tsv -o outputs/hamronized/amrfinderplus.ncbi.orfs.tsv

Drug Categorization

Besides performing normalization, argNorm also provides drug categorization of drugs that antibiotic resistance genes confer resistance to.

For example, the PBP2b (ARO:3003042) gene confers resistance to the drug class amoxicillin. amoxicillin is then categorized into a broader category of beta lactam antibiotic.

argNorm provides support for this, and adds the confers_resistance_to and resistance_to_drug_classes columns to ARG annotations.

The confers_resistance_to column will contain ARO numbers of all the drug classes that a gene provides resistance to (ARO:0000064 for amoxicillin in the previous example).

The resistance_to_drug_classes column will contain ARO numbers of the broader categories of the drug classes in the confers_resistance_to column (ARO:3000007 for beta lactam antibiotic in the previous example).

Authors

*: current maintainer

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

argnorm-0.3.0.tar.gz (716.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

argnorm-0.3.0-py3-none-any.whl (736.8 kB view details)

Uploaded Python 3

File details

Details for the file argnorm-0.3.0.tar.gz.

File metadata

  • Download URL: argnorm-0.3.0.tar.gz
  • Upload date:
  • Size: 716.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.4

File hashes

Hashes for argnorm-0.3.0.tar.gz
Algorithm Hash digest
SHA256 32ae41d1c099558b3257f88dd5ff34e70614646dec5bbf6fd7e0b30f816a5f57
MD5 0daddbf8d0c360a1d54554fd87450ed4
BLAKE2b-256 da9485776710f1ce0874d1539216602ba050513bd3563270ee490748e025488a

See more details on using hashes here.

File details

Details for the file argnorm-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: argnorm-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 736.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.4

File hashes

Hashes for argnorm-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 cc1d44806068dfd30f60365e78842a16a85eea4e095483d068071905b93f9e0a
MD5 baf245877977431c5d9fd9290b7a70d6
BLAKE2b-256 1476d2834e0c0542f7beb479ba120731839d1866710a2fc2650703ea61fdd4ee

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page