install
source · Clone the upstream repo
git clone https://github.com/mdbabumiamssm/LLMs-Universal-Life-Science-and-Clinical-Skills-
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/mdbabumiamssm/LLMs-Universal-Life-Science-and-Clinical-Skills- "$T" && mkdir -p ~/.claude/skills && cp -r "$T/Skills/Genomics/Metagenomics/bioSkills/amr-detection" ~/.claude/skills/mdbabumiamssm-llms-universal-life-science-and-clinical-skills-amr-detection && rm -rf "$T"
manifest:
Skills/Genomics/Metagenomics/bioSkills/amr-detection/SKILL.mdsource content
<!--
# COPYRIGHT NOTICE
# This file is part of the "Universal Biomedical Skills" project.
# Copyright (c) 2026 MD BABU MIA, PhD <md.babu.mia@mssm.edu>
# All Rights Reserved.
#
# This code is proprietary and confidential.
# Unauthorized copying of this file, via any medium is strictly prohibited.
#
# Provenance: Authenticated by MD BABU MIA
-->
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 measurable_outcome: Execute skill workflow successfully with valid output within 15 minutes. allowed-tools:
- read_file
- run_shell_command
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