bio-metagenomics-amr-detection — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited bio-metagenomics-amr-detection (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Reference examples tested with: AMRFinderPlus 3.12+, pandas 2.2+
Before using code patterns, verify installed versions match. If versions differ:
pip show <package> then help(module.function) to check signatures<tool> --version then <tool> --help to confirm flagsIf code throws ImportError, AttributeError, or TypeError, introspect the installed package and adapt the example to match the actual API rather than retrying.
"Screen my isolates for antibiotic resistance genes" → Identify antimicrobial resistance determinants in bacterial genomes or metagenomes by searching against curated resistance gene databases.
amrfinder -n assembly.fasta --organism Escherichia (AMRFinderPlus)Identify antimicrobial resistance (AMR) genes in bacterial genomes and metagenomes.
| Tool | Database | Best For |
|---|---|---|
| AMRFinderPlus | NCBI | Comprehensive, curated |
| ResFinder | CGE | Clinical isolates |
| CARD/RGI | CARD | Detailed resistance mechanisms |
| ABRicate | Multiple | Quick screening |
conda install -c bioconda ncbi-amrfinderplus
amrfinder -u # Update database# 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# 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| 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 |
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
doneconda install -c bioconda resfinder
# Or use web: https://cge.food.dtu.dk/services/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" -acqpython -m resfinder -ifq reads_1.fq reads_2.fq -o resfinder_output \
-db_res /path/to/resfinder_db -acqResistance Gene Identifier with detailed mechanism annotations.
conda install -c bioconda rgi
rgi load --card_json /path/to/card.json --local# 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# Main results
cat rgi_output.txt
# JSON with full details
cat rgi_output.jsonconda install -c bioconda abricate
abricate --setupdb # Update databasesabricate --list
# ncbi, card, resfinder, argannot, megares, ecoh, ecoli_vf, plasmidfinder, vfdb# 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# Run on multiple samples
abricate assemblies/*.fasta > all_results.tsv
# Generate summary matrix
abricate --summary all_results.tsv > summary_matrix.tsv# 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# 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.tsvGoal: 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/"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'])~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.