Giter VIP home page Giter VIP logo

pandora's Introduction

Branch Status
master Travis (.com) branch
dev Travis (.com) branch

Pandora

Table of Contents

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

Introduction

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.

Quick Start

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>

Hands-on toy example

You can test pandora on a toy example following this link. There is no need to have pandora installed.

Installation

No installation needed - precompiled portable binary

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;

Conda

To install pandora through conda, run:

conda install -c bioconda pandora

Containers

Docker Repository on Quay

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

Installation from source

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 and wget.

  • Download and install pandora as follows (this example is using 4 threads, change 4 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 the cmake must receive this additional parameter: -DPRINT_STACKTRACE=True.

Usage

See Usage.

pandora's People

Contributors

leoisl avatar mbhall88 avatar ffranr avatar iqbal-lab avatar rmcolq avatar rob-p avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.