Claude-skill-registry bio-metagenomics-amr-detection
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.
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/amr-detection" ~/.claude/skills/majiayu000-claude-skill-registry-bio-metagenomics-amr-detection && rm -rf "$T"
manifest:
skills/data/amr-detection/SKILL.mdsource content
AMR Detection
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 # Update database
From Nucleotide Sequences
# Assembled contigs amrfinder -n contigs.fasta -o amr_results.tsv --threads 8 # With organism for point mutations amrfinder -n contigs.fasta -O Escherichia -o amr_results.tsv # Include stress/virulence genes amrfinder -n contigs.fasta -O Salmonella --plus -o amr_results.tsv
From Protein Sequences
# If you have predicted proteins amrfinder -p proteins.faa -o amr_results.tsv # Combined nucleotide and protein 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 # Combine results 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 # Or use web: https://cge.food.dtu.dk/services/ResFinder/
Run ResFinder
# Assembled genome python -m resfinder -ifa contigs.fasta -o resfinder_output \ -db_res /path/to/resfinder_db -acq # With species for point mutations 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
# From contigs rgi main --input_sequence contigs.fasta --output_file rgi_output \ --input_type contig --local --clean # From protein rgi main --input_sequence proteins.faa --output_file rgi_output \ --input_type protein --local # Include loose hits (more sensitive) rgi main --input_sequence contigs.fasta --output_file rgi_output \ --input_type contig --include_loose --local
RGI Output
# Main results cat rgi_output.txt # JSON with full details cat rgi_output.json
ABRicate (Quick Screening)
Installation
conda install -c bioconda abricate abricate --setupdb # Update databases
Available Databases
abricate --list # ncbi, card, resfinder, argannot, megares, ecoh, ecoli_vf, plasmidfinder, vfdb
Run ABRicate
# Default (ncbi) abricate contigs.fasta > abricate_results.tsv # Specific database abricate --db resfinder contigs.fasta > resfinder_results.tsv abricate --db card contigs.fasta > card_results.tsv # Multiple databases for db in ncbi card resfinder; do abricate --db $db contigs.fasta > ${db}_results.tsv done
Batch Summary
# Run on multiple samples abricate assemblies/*.fasta > all_results.tsv # Generate summary matrix abricate --summary all_results.tsv > summary_matrix.tsv
Metagenome AMR Profiling
Using ShortBRED
# Map reads to AMR markers shortbred_quantify.py --markers amr_markers.faa \ --wgs reads_1.fq reads_2.fq \ --results amr_abundance.tsv \ --threads 8
Using GROOT
# Index database groot index -m card.90 -i groot_index -p 8 # Align and report groot align -i groot_index -f reads_1.fq,reads_2.fq -p 8 | \ groot report > amr_report.tsv
Complete Workflow
#!/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 # Load AMRFinderPlus results amr = pd.read_csv('amrfinder.tsv', sep='\t') # Count by drug class class_counts = amr['Class'].value_counts() print(class_counts) # Pivot for heatmap (multiple samples) 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