Skip to content

Commit

Permalink
Adding ppanggolin (#821)
Browse files Browse the repository at this point in the history
* adding ppanggolin

* changed to mamba and added tests

* added usage
  • Loading branch information
erinyoung authored Dec 27, 2023
1 parent f17108d commit 9bf1f9a
Show file tree
Hide file tree
Showing 4 changed files with 96 additions and 0 deletions.
1 change: 1 addition & 0 deletions Program_Licenses.md
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,7 @@ The licenses of the open-source software that is contained in these Docker image
| polypolish | GNU GPLv3 | https://github.com/rrwick/Polypolish/blob/main/LICENSE |
| PopPUNK | Apache 2.0 | https://github.com/bacpop/PopPUNK/blob/master/LICENSE |
| Porechop | GNU GPLv3 | https://github.com/rrwick/Porechop/blob/master/LICENSE |
| PPanGGOLiN | CeCILL 2.1 | https://github.com/labgem/PPanGGOLiN/blob/master/LICENSE.txt |
| Prokka | GNU GPLv3 | https://raw.githubusercontent.com/tseemann/prokka/master/doc/LICENSE.Prokka |
| pyCirclize | MIT | https://github.com/moshi4/pyCirclize/blob/main/LICENSE |
| pyGenomeViz | MIT | https://github.com/moshi4/pyGenomeViz/blob/main/LICENSE |
Expand Down
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -216,6 +216,7 @@ To learn more about the docker pull rate limits and the open source software pro
| [polypolish](https://hub.docker.com/r/staphb/polypolish/) <br/> [![docker pulls](https://badgen.net/docker/pulls/staphb/polypolish)](https://hub.docker.com/r/staphb/polypolish) | <ul><li>0.5.0</li></ul> | https://github.com/rrwick/Polypolish |
| [PopPUNK](https://hub.docker.com/r/staphb/poppunk/) <br/> [![docker pulls](https://badgen.net/docker/pulls/staphb/poppunk)](https://hub.docker.com/r/staphb/poppunk) | <ul><li>[2.4.0](./poppunk/2.4.0/)</li><li>[2.5.0](./poppunk/2.5.0/)</li><li>[2.6.0](./poppunk/2.6.0/)</li><li>[2.6.2](./poppunk/2.6.2/)</li></ul> | https://github.com/bacpop/PopPUNK |
| [Porechop](https://hub.docker.com/r/staphb/porechop/) <br/> [![docker pulls](https://badgen.net/docker/pulls/staphb/porechop)](https://hub.docker.com/r/staphb/porechop) | <ul><li>0.2.4</li></ul> | https://github.com/rrwick/Porechop |
| [PPanGGOLiN](https://hub.docker.com/r/staphb/ppanggolin/) <br/> [![docker pulls](https://badgen.net/docker/pulls/staphb/ppanggolin)](https://hub.docker.com/r/staphb/ppanggolin) | <ul><li>0.2.4</li></ul> | https://github.com/labgem/PPanGGOLiN |
| [Prokka](https://hub.docker.com/r/staphb/prokka/) <br/> [![docker pulls](https://badgen.net/docker/pulls/staphb/prokka)](https://hub.docker.com/r/staphb/prokka) | <ul><li>1.13.4</li><li>1.14.0</li><li>1.14.5</li><li>1.14.6</li></ul> | https://github.com/tseemann/prokka |
| [pyCirclize](https://hub.docker.com/r/staphb/pycirclize/) <br/> [![docker pulls](https://badgen.net/docker/pulls/staphb/pycirclize)](https://hub.docker.com/r/staphb/pycirclize) | <ul><li>[1.0.0](pycirclize/1.0.0/)</li></ul> | https://github.com/moshi4/pyCirclize |
| [pyGenomeViz](https://hub.docker.com/r/staphb/pygenomeviz/) <br/> [![docker pulls](https://badgen.net/docker/pulls/staphb/pygenomeviz)](https://hub.docker.com/r/staphb/pygenomeviz) | <ul><li>0.2.2</li><li>0.3.2</li><li>[0.4.2](pygenomeviz/0.4.2/)</li><li>[0.4.3](pygenomeviz/0.4.3/)</li></ul> | https://github.com/moshi4/pyGenomeViz |
Expand Down
61 changes: 61 additions & 0 deletions ppanggolin/1.2.105/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
ARG PPANGGOLIN_VER="1.2.105"

FROM mambaorg/micromamba:1.4.9 as app

ARG PPANGGOLIN_VER

# 'LABEL' instructions tag the image with metadata that might be important to the user
LABEL base.image="mambaorg/micromamba:1.4.9"
LABEL dockerfile.version="1"
LABEL software="PPanGGOLiN"
LABEL software.version="${PPANGGOLIN_VER}"
LABEL description="Depicting microbial species diversity via a Partitioned PanGenome Graph Of Linked Neighbors"
LABEL website="https://github.com/labgem/PPanGGOLiN"
LABEL license="https://github.com/labgem/PPanGGOLiN/blob/master/LICENSE.txt"
LABEL maintainer="Erin Young"
LABEL maintainer.email="[email protected]"

USER root

RUN apt-get update && apt-get install -y --no-install-recommends \
ca-certificates \
procps \
wget && \
apt-get autoclean && rm -rf /var/lib/apt/lists/*

ENV PATH="/opt/conda/envs/base/bin/:/opt/conda/bin/:$PATH" LC_ALL=C

RUN micromamba install --name base -c conda-forge -c bioconda -c defaults ppanggolin=${PPANGGOLIN_VER} && \
micromamba clean -a -y && \
ppanggolin -h && \
mkdir /data

# 'CMD' instructions set a default command when the container is run. This is typically 'tool --help.'
CMD ppanggolin -h

# 'WORKDIR' sets working directory
WORKDIR /data

FROM app as test

ARG PPANGGOLIN_VER

WORKDIR /test

RUN ppanggolin --help && \
ppanggolin --version

# getting test files from github repo
RUN wget -q https://github.com/labgem/PPanGGOLiN/archive/refs/tags/${PPANGGOLIN_VER}.tar.gz && \
tar -xvf ${PPANGGOLIN_VER}.tar.gz

RUN cd PPanGGOLiN-${PPANGGOLIN_VER}/testingDataset && \
ppanggolin annotate --fasta organisms.fasta.list --output output && cp output/pangenome.h5 output/pangenome.1.h5 && \
ppanggolin cluster -p output/pangenome.h5 && cp output/pangenome.h5 output/pangenome.2.h5 && \
ppanggolin graph -p output/pangenome.h5 && cp output/pangenome.h5 output/pangenome.3.h5 && \
ppanggolin partition -p output/pangenome.h5 && cp output/pangenome.h5 output/pangenome.4.h5 && \
ppanggolin draw -p output/pangenome.h5 --ucurve && \
ppanggolin write -p output/pangenome.h5 --stats --output output_stats && \
md5sum output/pangenome*.h5 && \
head output_stats/*

33 changes: 33 additions & 0 deletions ppanggolin/1.2.105/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# PPanGGOLiN container

Main tool: [PPanGGOLiN](https://github.com/labgem/PPanGGOLiN)

Code repository: https://github.com/labgem/PPanGGOLiN

Basic information on how to use this tool:
- executable: ppanggolin
- help: --help
- version: --version
- description: |
> PPanGGOLiN builds pangenomes through a graphical model and a statistical method to partition gene families in persistent, shell and cloud genomes.
Additional information:

PPanGGOLiN only creates the pangenome graphs. It is recommended to use another tool to visualize them. Please read https://github.com/labgem/PPanGGOLiN/wiki for more information.

Full documentation: https://github.com/labgem/PPanGGOLiN/wiki

## Example Usage

```bash
ppanggolin annotate --fasta organisms.fasta.list --output output

# many of the commands manipulate the 'pangenome.h5' file in place
ppanggolin cluster -p pangenome.h5
ppanggolin graph -p pangenome.h5
ppanggolin partition -p pangenome.h5
ppanggolin draw -p pangenome.h5 --ucurve

# there are some human-readable files that can be generated as well
ppanggolin write -p pangenome.h5 --stats --output stats
```

0 comments on commit 9bf1f9a

Please sign in to comment.