Branch | Status |
---|---|
master |
|
dev |
Colquhoun, R.M., Hall, M.B., Lima, L. et al. Pandora: nucleotide-resolution bacterial pan-genomics with reference graphs. Genome Biol 22, 267 (2021). https://doi.org/10.1186/s13059-021-02473-1
Pandora is a tool for bacterial genome analysis using a pangenome reference graph (PanRG). It allows gene presence/absence detection and genotyping of SNPs, indels and longer variants in one or a number of samples. Pandora works with Illumina or Nanopore data. For more details, see our paper.
The PanRG is a collection of 'floating' local graphs (PRGs), each representing some orthologous region of interest (e.g. genes, mobile elements or intergenic regions). See https://github.com/leoisl/make_prg for a tool which can construct these PanRGs from a set of aligned sequence files.
Pandora can do the following for a single sample (read dataset):
- Output inferred mosaic of reference sequences for loci (eg genes) from the PRGs which are present in the PanRG;
- Output a VCF showing the variation found within these loci, with respect to any reference path in the PRGs;
- Discovery of new variation not in the PanRG.
For a collection of samples, it can:
- Output a matrix showing inferred presence-absence of each locus in each sample genome;
- Output a multisample pangenome VCF including genotype calls for each sample in each of the loci. Variation is shown with respect to the most informative recombinant path in the PRGs (see our paper).
Warning -
pandora
is not yet a production-ready tool.
Index PanRG file:
pandora index -t 8 <panrg.fa>
Compare first 30X of each Illumina sample to get pangenome matrix and VCF
pandora compare --genotype --illumina --max-covg 30 <panrg.fa> <read_index.tab>
Map Nanopore reads from a single sample to get approximate sequence for genes present
pandora map <panrg.fa> <reads.fq>
You can test pandora
on a toy example following this link.
There is no need to have pandora
installed.
You can use pandora
with no installation at all by simply downloading the precompiled binary, and running it.
In this binary, all libraries are linked statically.
-
Download:
wget https://github.com/rmcolq/pandora/releases/download/0.9.1/pandora-linux-precompiled-v0.9.1
-
Running:
chmod +x pandora-linux-precompiled-v0.9.1
./pandora-linux-precompiled-v0.9.1 -h
- Notes:
- We provide precompiled binaries for Linux OS only;
To install pandora
through conda
, run:
conda install -c bioconda pandora
You can also download a containerized image of Pandora. Pandora is hosted on Quay and images can be downloaded with the command:
URI="quay.io/rmcolq/pandora"
docker pull "$URI"
docker run -it "$URI" pandora --help
Alternatively, using singularity:
URI="docker://quay.io/rmcolq/pandora"
singularity exec "$URI" pandora --help
This is the hardest way to install pandora
, but that yields the most optimised binary.
Requirements:
-
A Unix or Mac OS, with a C++11 compiler toolset (e.g.
g++
,ld
,make
,ctest
, etc),cmake
,git
andwget
. -
Download and install
pandora
as follows (this example is using4
threads, change4
to how many threads you want):
git clone --single-branch https://github.com/rmcolq/pandora.git --recursive
cd pandora
mkdir -p build
cd build
cmake -DHUNTER_JOBS_NUMBER=4 -DCMAKE_BUILD_TYPE=Release ..
make -j4
ctest -VV
- If you want to produce meaningful stack traces in case
pandora
errors out,binutils-dev
must be installed and thecmake
must receive this additional parameter:-DPRINT_STACKTRACE=True
.
See Usage.