Capybara is a Core-snp Assignment PYthon tool for Acinetobacter baumannii. It screens either raw reads or assemblies for :
- Identifying whether a query belongs to the epidemic super-lineage (ESL), a super-set of two predominant international clones: IC1 and IC2.
- Assignment of query strain into one of the lineages, clusters, and clades in the ESL based on a pre-curated set of SNPs.
Shengkai Li, Heng Li, Guilai Jiang, Shengke Wang, Min Wang, Yilei Wu, Xiao Liu, Ling Zhong, Shichang Xie, Yi Ren, Yongliang Lou, Jimei Du, Zhemin Zhou, 2024, Emergence and Global Spread of a Dominant Multidrug-Resistant Variant in Acinetobacter baumannii, https://www.nature.com/articles/s41467-025-58106-9
Capybara was devoloped and tested in Python 3.9.0, and requires several modules:
minimap2
mash
samtools
bcftools
You can easily install these packages using command below:
conda install -c bioconda samtools bcftools minimap2 mash
Then you can use git to clone Capybara into your PC.
git clone git@github.com:Zhou-lab-SUDA/CAPYBARA.git
$ cd /path/to/Capybara/
$ python capy.py -i examples/2.5.6.fa
It will generate a report file for Examples/2.5.6.fa about its population.
A single run for an assembled genome will finish <3 minutes for a 4 CPUs laptop (>10 minutes for short reads).
$ Usage: capy.py [OPTIONS]
Options:
-i, --input TEXT [Required] Input data, both assembled genome or short reads are acceptable.
-o, --output TEXT [Optional] Prefix for output file. Default as Capy.
-t, --threads INTEGER [Optional] Number of process to use. default: 4.
-m, --metagenomic Metagenomic mode, skip CC assignment.
--subsample SUBSAMPLE [0-1] Subsample proportion when handling short reads.
--min-snp-depth MIN_SNP_DEPTH
--min-allele-frac MIN_ALLELE_FRAC
--help Show this message and exit.
Capybara generates three report files:
[Output].summary.tsv (Metagenomic version will NOT show the lineage/sublineage assignment):
| sample | mode | lineage | sublineage | GC1_votes | GC2_votes | reads_total | reads_mapped | best_score | variant_total |
|---|---|---|---|---|---|---|---|---|---|
| 2.5.6.fa | metagenomic | NA | NA | NA | NA | 1472092 | 12905 | 0 | 0 |
[Output].summary.tsv (Isolate version)
| sample | mode | lineage | sublineage | GC1_votes | GC2_votes | reads_total | reads_mapped | best_score | variant_total |
|---|---|---|---|---|---|---|---|---|---|
| 2.5.6.fa | isolate | 2.5 | 2.5.6 | 0 | 7 | 107 | 103 | 1.0 | 50 |
[Output].markers.tsv:
Detailed calling description for each SNP barcode. Lineage/sublineage assignment for metagenomic samples can be found here.
[Output].summary.tsv:
Json format SNP coverage summary.
A basic run for Capybara is as follows:
- ESL identification:
- We pre-sketched all 5,824 representative genomes. Genetic distance between query data and pre-sketched data will be evaluated to find the most closed genomes.
- If query data does not contains any sequential information related to ESL genomes, it will be classified as non-ESL. Otherwise, it will be analyzed as follows.
- Sequential alignment:
- Query data will be aligned onto ESL's reference genome (MDR-TJ:GCF_000187205.2) to generate a BAM file.
- SNP calling:
- A series SNPs will be called from BAM and then generate an VCF file.
- Population assignment:
- Using a pre-built SNP scheme to assign hierarchical population of query data.
Workflow chart:
All data required for reproduction of the analysis were distributed in this repository under CAPYBARA/capydb/
which included:
- esl/esl.fna
Reference genome for ESL.
- msh/*.msh
5,824 pre-sketched files by Mash sketch.
You may also be interested KleTy, a pipeline for analysis of Klebsiella and can also genotype plasmids from short-reads file.
