| name | bio-metagenomics-amr-detection |
| description | Detect antimicrobial resistance genes using AMRFinderPlus, ResFinder, and CARD. Screen isolates and metagenomes for resistance determinants. Use when characterizing resistance profiles in clinical isolates, surveillance samples, or metagenomic data. |
| tool_type | cli |
| primary_tool | AMRFinderPlus |
Version Compatibility
Reference examples tested with: AMRFinderPlus 3.12+, pandas 2.2+
Before using code patterns, verify installed versions match. If versions differ:
- Python:
pip show <package> then help(module.function) to check signatures
- CLI:
<tool> --version then <tool> --help to confirm flags
If code throws ImportError, AttributeError, or TypeError, introspect the installed
package and adapt the example to match the actual API rather than retrying.
AMR Detection
"Screen my isolates for antibiotic resistance genes" → Identify antimicrobial resistance determinants in bacterial genomes or metagenomes by searching against curated resistance gene databases.
- CLI:
amrfinder -n assembly.fasta --organism Escherichia (AMRFinderPlus)
- CLI: ResFinder, CARD/RGI for alternative database searches
Identify antimicrobial resistance (AMR) genes in bacterial genomes and metagenomes.
Tool Comparison
| Tool | Database | Best For |
|---|
| AMRFinderPlus | NCBI | Comprehensive, curated |
| ResFinder | CGE | Clinical isolates |
| CARD/RGI | CARD | Detailed resistance mechanisms |
| ABRicate | Multiple | Quick screening |
AMRFinderPlus (NCBI)
Installation
conda install -c bioconda ncbi-amrfinderplus
amrfinder -u
From Nucleotide Sequences
amrfinder -n contigs.fasta -o amr_results.tsv --threads 8
amrfinder -n contigs.fasta -O Escherichia -o amr_results.tsv
amrfinder -n contigs.fasta -O Salmonella --plus -o amr_results.tsv
From Protein Sequences
amrfinder -p proteins.faa -o amr_results.tsv
amrfinder -n contigs.fasta -p proteins.faa -g gff_annotation.gff \
-O Escherichia -o amr_results.tsv
Output Fields
| Column | Description |
|---|
| Gene symbol | AMR gene name |
| Sequence name | Contig/protein ID |
| Element type | AMR, STRESS, VIRULENCE |
| Element subtype | Specific class |
| Class | Drug class |
| Subclass | Specific drug |
| % Coverage | Query coverage |
| % Identity | Sequence identity |
Batch Processing
for fasta in assemblies/*.fasta; do
sample=$(basename $fasta .fasta)
amrfinder -n $fasta -O Escherichia --plus \
-o results/${sample}_amr.tsv --threads 4
done
head -1 results/sample1_amr.tsv > combined_amr.tsv
for f in results/*_amr.tsv; do
tail -n+2 $f >> combined_amr.tsv
done
ResFinder
Installation
conda install -c bioconda resfinder
Run ResFinder
python -m resfinder -ifa contigs.fasta -o resfinder_output \
-db_res /path/to/resfinder_db -acq
python -m resfinder -ifa contigs.fasta -o resfinder_output \
-db_res /path/to/resfinder_db \
-db_point /path/to/pointfinder_db \
-s "Escherichia coli" -acq
From Raw Reads (KMA)
python -m resfinder -ifq reads_1.fq reads_2.fq -o resfinder_output \
-db_res /path/to/resfinder_db -acq
CARD/RGI
Resistance Gene Identifier with detailed mechanism annotations.
Installation
conda install -c bioconda rgi
rgi load --card_json /path/to/card.json --local
Run RGI
rgi main --input_sequence contigs.fasta --output_file rgi_output \
--input_type contig --local --clean
rgi main --input_sequence proteins.faa --output_file rgi_output \
--input_type protein --local
rgi main --input_sequence contigs.fasta --output_file rgi_output \
--input_type contig --include_loose --local
RGI Output
cat rgi_output.txt
cat rgi_output.json
ABRicate (Quick Screening)
Installation
conda install -c bioconda abricate
abricate --setupdb
Available Databases
abricate --list
Run ABRicate
abricate contigs.fasta > abricate_results.tsv
abricate --db resfinder contigs.fasta > resfinder_results.tsv
abricate --db card contigs.fasta > card_results.tsv
for db in ncbi card resfinder; do
abricate --db $db contigs.fasta > ${db}_results.tsv
done
Batch Summary
abricate assemblies/*.fasta > all_results.tsv
abricate --summary all_results.tsv > summary_matrix.tsv
Metagenome AMR Profiling
Using ShortBRED
shortbred_quantify.py --markers amr_markers.faa \
--wgs reads_1.fq reads_2.fq \
--results amr_abundance.tsv \
--threads 8
Using GROOT
groot index -m card.90 -i groot_index -p 8
groot align -i groot_index -f reads_1.fq,reads_2.fq -p 8 | \
groot report > amr_report.tsv
Complete Workflow
Goal: Screen a bacterial assembly for antimicrobial resistance genes using multiple databases for comprehensive resistance profiling.
Approach: Run AMRFinderPlus with organism-specific point mutation detection, then ABRicate against NCBI/CARD/ResFinder databases, and summarize drug class counts.
#!/bin/bash
set -euo pipefail
ASSEMBLY=$1
ORGANISM=$2
OUTPUT_DIR=$3
mkdir -p $OUTPUT_DIR
echo "=== AMRFinderPlus ==="
amrfinder -n $ASSEMBLY -O $ORGANISM --plus \
-o $OUTPUT_DIR/amrfinder.tsv --threads 8
echo "=== ABRicate (multiple databases) ==="
for db in ncbi card resfinder; do
abricate --db $db $ASSEMBLY > $OUTPUT_DIR/abricate_${db}.tsv
done
echo "=== Summary ==="
echo "AMR genes found:"
cut -f6 $OUTPUT_DIR/amrfinder.tsv | sort | uniq -c | sort -rn | head -20
echo "=== Complete ==="
echo "Results in $OUTPUT_DIR/"
Summarize Results
import pandas as pd
amr = pd.read_csv('amrfinder.tsv', sep='\t')
class_counts = amr['Class'].value_counts()
print(class_counts)
import glob
results = []
for f in glob.glob('results/*_amr.tsv'):
sample = f.split('/')[-1].replace('_amr.tsv', '')
df = pd.read_csv(f, sep='\t')
df['Sample'] = sample
results.append(df)
combined = pd.concat(results)
matrix = pd.crosstab(combined['Sample'], combined['Gene symbol'])
Related Skills
- metagenomics/kraken-classification - Taxonomic context
- metagenomics/functional-profiling - Functional pathways
- genome-assembly/contamination-detection - Sample QC
- workflows/metagenomics-pipeline - Full metagenomics workflow