Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add pasty 1.0.3 #794

Merged
merged 5 commits into from
Nov 14, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -195,7 +195,7 @@ To learn more about the docker pull rate limits and the open source software pro
| [Panaroo](https://hub.docker.com/r/staphb/panaroo) <br/> [![docker pulls](https://badgen.net/docker/pulls/staphb/panaroo)](https://hub.docker.com/r/staphb/panaroo) | <ul><li>1.2.10</li></ul> | https://github.com/gtonkinhill/panaroo |
| [Pangolin](https://hub.docker.com/r/staphb/pangolin) <br/> [![docker pulls](https://badgen.net/docker/pulls/staphb/pangolin)](https://hub.docker.com/r/staphb/pangolin) | <details><summary> Click to see Pangolin v4.2 and older versions! </summary> **Pangolin version & pangoLEARN data release date** <ul><li>1.1.14</li><li>2.0.4 & 2020-07-20</li><li>2.0.5 & 2020-07-20</li><li>2.1.1 & 2020-12-17</li><li>2.1.3 & 2020-12-17</li><li>2.1.6 & 2021-01-06</li><li>2.1.7 & 2021-01-11</li><li>2.1.7 & 2021-01-20</li><li>2.1.8 & 2021-01-22</li><li>2.1.10 & 2021-02-01</li><li>2.1.11 & 2021-02-01</li><li>2.1.11 & 2021-02-05</li><li>2.2.1 & 2021-02-06</li><li>2.2.2 & 2021-02-06</li><li>2.2.2 & 2021-02-11</li><li>2.2.2 & 2021-02-12</li><li>2.3.0 & 2021-02-12</li><li>2.3.0 & 2021-02-18</li><li>2.3.0 & 2021-02-21</li><li>2.3.2 & 2021-02-21</li><li>2.3.3 & 2021-03-16</li><li>2.3.4 & 2021-03-16</li><li>2.3.5 & 2021-03-16</li><li>2.3.6 & 2021-03-16</li><li>2.3.6 & 2021-03-29</li><li>2.3.8 & 2021-04-01</li><li>2.3.8 & 2021-04-14</li><li>2.3.8 & 2021-04-21</li><li>2.3.8 & 2021-04-23</li><li>2.4 & 2021-04-28</li><li>2.4.1 & 2021-04-28</li><li>2.4.2 & 2021-04-28</li><li>2.4.2 & 2021-05-10</li><li>2.4.2 & 2021-05-11</li><li>2.4.2 & 2021-05-19</li><li>3.0.5 & 2021-06-05</li><li>3.1.3 & 2021-06-15</li><li>3.1.5 & 2021-06-15</li><li>3.1.5 & 2021-07-07-2</li><li>3.1.7 & 2021-07-09</li><li>3.1.8 & 2021-07-28</li><li>3.1.10 & 2021-07-28</li><li>3.1.11 & 2021-08-09</li><li>3.1.11 & 2021-08-24</li><li>3.1.11 & 2021-09-17</li><li>3.1.14 & 2021-09-28</li><li>3.1.14 & 2021-10-13</li><li>3.1.16 & 2021-10-18</li><li>3.1.16 & 2021-11-04</li><li>3.1.16 & 2021-11-09</li><li>3.1.16 & 2021-11-18</li><li>3.1.16 & 2021-11-25</li><li>3.1.17 & 2021-11-25</li><li>3.1.17 & 2021-12-06</li><li>3.1.17 & 2022-01-05</li><li>3.1.18 & 2022-01-20</li><li>3.1.19 & 2022-01-20</li><li>3.1.20 & 2022-02-02</li><li>3.1.20 & 2022-02-28</li></ul> **Pangolin version & pangolin-data version** <ul><li>4.0 & 1.2.133</li><li>4.0.1 & 1.2.133</li><li>4.0.2 & 1.2.133</li><li>4.0.3 & 1.2.133</li><li>4.0.4 & 1.2.133</li><li>4.0.5 & 1.3</li><li>4.0.6 & 1.6</li><li>4.0.6 & 1.8</li><li>4.0.6 & 1.9</li><li>4.1.1 & 1.11</li><li>4.1.2 & 1.12</li><li>4.1.2 & 1.13</li><li>4.1.2 & 1.14</li><li>4.1.3 & 1.15.1</li><li>4.1.3 & 1.16</li><li>4.1.3 & 1.17</li><li>4.2 & 1.18</li><li>4.2 & 1.18.1</li><li>4.2 & 1.18.1.1</li><li>4.2 & 1.19</li></ul> </details> **Pangolin version & pangolin-data version** <ul><li>[4.3 & 1.20](pangolin/4.3-pdata-1.20/)</li><li>[4.3 & 1.21](pangolin/4.3-pdata-1.21/)</li><li>[4.3.1 & 1.22](pangolin/4.3.1-pdata-1.22/)</li><li>[4.3.1 & 1.23](pangolin/4.3.1-pdata-1.23/)</li><li>[4.3.1 & 1.23.1](pangolin/4.3.1-pdata-1.23.1/)</li></ul> | https://github.com/cov-lineages/pangolin<br/>https://github.com/cov-lineages/pangoLEARN<br/>https://github.com/cov-lineages/pango-designation<br/>https://github.com/cov-lineages/scorpio<br/>https://github.com/cov-lineages/constellations<br/>https://github.com/cov-lineages/lineages (archived)<br/>https://github.com/hCoV-2019/pangolin (archived) |
| [parallel-perl](https://hub.docker.com/r/staphb/parallel-perl) <br/> [![docker pulls](https://badgen.net/docker/pulls/staphb/parallel-perl)](https://hub.docker.com/r/staphb/parallel-perl) | <ul><li>20200722</li></ul> | https://www.gnu.org/software/parallel |
| [pasty](https://hub.docker.com/r/staphb/pasty) <br/> [![docker pulls](https://badgen.net/docker/pulls/staphb/pasty)](https://hub.docker.com/r/staphb/pasty) | <ul><li>1.0.2</li></ul> | https://github.com/rpetit3/pasty |
| [pasty](https://hub.docker.com/r/staphb/pasty) <br/> [![docker pulls](https://badgen.net/docker/pulls/staphb/pasty)](https://hub.docker.com/r/staphb/pasty) | <ul><li>1.0.2</li><li>[1.0.3](pasty/1.0.3/)</li></ul> | https://github.com/rpetit3/pasty |
| [Pavian](https://hub.docker.com/r/staphb/pavian) <br/> [![docker pulls](https://badgen.net/docker/pulls/staphb/pavian)](https://hub.docker.com/r/staphb/pavian) | <ul><li>[1.2.1](pavian/1.2.1/)</li></ul> | https://github.com/fbreitwieser/pavian |
| [pbptyper](https://hub.docker.com/r/staphb/pbptyper) <br/> [![docker pulls](https://badgen.net/docker/pulls/staphb/pbptyper)](https://hub.docker.com/r/staphb/pbptyper) | <ul><li>1.0.0</li><li>1.0.1</li><li>1.0.4</li></ul> | https://github.com/rpetit3/pbptyper |
| [Phyml](https://hub.docker.com/r/staphb/phyml) <br/> [![docker pulls](https://badgen.net/docker/pulls/staphb/phyml)](https://hub.docker.com/r/staphb/phyml) | <ul><li>3.3.20220408</li></ul> | https://github.com/stephaneguindon/phyml |
Expand Down
125 changes: 125 additions & 0 deletions pasty/1.0.3/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,125 @@
ARG PASTY_VERSION="1.0.3"
# formatted for apt version syntax
ARG BLAST_VERSION="2.12.0+ds-3build1"

FROM ubuntu:jammy as app

# have to re-instatiate these variables
ARG PASTY_VERSION
ARG BLAST_VERSION

LABEL base.image="ubuntu:jammy"
LABEL dockerfile.version="1"
LABEL software="pasty"
LABEL software.version="${PASTY_VERSION}"
LABEL description="In silico serogrouping of Pseudomonas aeruginosa isolates from genome assemblies"
LABEL website="https://github.com/rpetit3/pasty"
LABEL license="https://github.com/rpetit3/pasty/blob/main/LICENSE"
LABEL maintainer="Curtis Kapsak"
LABEL maintainer.email="[email protected]"

# install dependencies
# ncbi-blast+ version in apt for ubuntu:jammy = v2.12.0
# python v3.10.6
RUN apt-get update && apt-get install -y --no-install-recommends \
python3 \
python3-pip \
ncbi-blast+=${BLAST_VERSION} \
wget \
ca-certificates \
procps && \
apt-get autoclean && rm -rf /var/lib/apt/lists/*

# install python deps
RUN pip3 install executor rich-click

# download pasty; make /data
RUN echo "downloading pasty source code..." && \
wget -q https://github.com/rpetit3/pasty/archive/refs/tags/v${PASTY_VERSION}.tar.gz && \
tar -zxf v${PASTY_VERSION}.tar.gz && \
rm -rf v${PASTY_VERSION}.tar.gz && \
mkdir /data

# set $PATH
# set perl locale settings for singularity compatibility
ENV PATH="${PATH}:/pasty-${PASTY_VERSION}/bin"\
LC_ALL=C.UTF-8

# final working directory is /data
WORKDIR /data

# testing layer starts here
FROM app as test

# re-instatiate for use below in test layer
ARG PASTY_VERSION

# running the below test commands from the root pasty directory
WORKDIR /pasty-${PASTY_VERSION}

# shamelessly stolen and modified from https://github.com/rpetit3/pasty/blob/main/.github/workflows/test-pasty.yml
RUN echo "O1-GCF_000504045" && \
pasty --assembly test/O1-GCF_000504045.fna.gz --prefix O1-GCF_000504045 && \
cat O1-GCF_000504045.tsv && \
cat O1-GCF_000504045.details.tsv && \
echo "O2-GCF_000006765" && \
pasty --assembly test/O2-GCF_000006765.fna.gz --prefix O2-GCF_000006765 --outdir O2 && \
cat O2/O2-GCF_000006765.tsv && \
cat O2/O2-GCF_000006765.details.tsv && \
echo "O3-GCF_000271365" && \
pasty --assembly test/O3-GCF_000271365.fna.gz --prefix O3-GCF_000271365 --outdir O3 && \
cat O3/O3-GCF_000271365.tsv && \
cat O3/O3-GCF_000271365.details.tsv && \
echo "O4-GCF_024652945" && \
pasty --assembly test/O4-GCF_024652945.fna.gz --prefix O4-GCF_024652945 --outdir O4 && \
cat O4/O4-GCF_024652945.tsv && \
cat O4/O4-GCF_024652945.details.tsv && \
echo "O6-GCF_001457615" && \
pasty --assembly test/O6-GCF_001457615.fna.gz --prefix O6-GCF_001457615 && \
cat O6-GCF_001457615.tsv && \
cat O6-GCF_001457615.details.tsv && \
echo "O7-GCF_001482325" && \
pasty --assembly test/O7-GCF_001482325.fna.gz --prefix O7-GCF_001482325 && \
cat O7-GCF_001482325.tsv && \
cat O7-GCF_001482325.details.tsv && \
echo "O9-GCF_002075065" && \
pasty --assembly test/O9-GCF_002075065.fna.gz --prefix O9-GCF_002075065 && \
cat O9-GCF_002075065.tsv && \
cat O9-GCF_002075065.details.tsv && \
echo "O10-GCF_009676765" && \
pasty --assembly test/O10-GCF_009676765.fna.gz --prefix O10-GCF_009676765 && \
cat O10-GCF_009676765.tsv && \
cat O10-GCF_009676765.details.tsv && \
echo "O11-GCF_002192495" && \
pasty --assembly test/O11-GCF_002192495.fna.gz --prefix O11-GCF_002192495 && \
cat O11-GCF_002192495.tsv && \
cat O11-GCF_002192495.details.tsv && \
echo "O12-GCF_000981825" && \
pasty --assembly test/O12-GCF_000981825.fna.gz --prefix O12-GCF_000981825 && \
cat O12-GCF_000981825.tsv && \
cat O12-GCF_000981825.details.tsv && \
echo "NT-GCF_000292685" && \
pasty --assembly test/NT-GCF_000292685.fna.gz --prefix NT-GCF_000292685 && \
cat NT-GCF_000292685.tsv && \
cat NT-GCF_000292685.details.tsv && \
echo "empty" && \
pasty --assembly test/empty.fasta --prefix empty && \
cat empty.tsv && \
cat empty.details.tsv && \
echo "not-a-fasta" && \
pasty --assembly test/not-a-fasta.fasta --prefix not-a-fasta && \
cat not-a-fasta.tsv && \
cat not-a-fasta.details.tsv && \
echo "poor" && \
pasty --assembly test/poor.fasta --prefix poor --outdir poor && \
cat poor/poor.tsv && \
cat poor/poor.details.tsv && \
echo "O2-GCF_001444895-int-bug" && \
pasty --assembly test/O2-GCF_001444895-int-bug.fna.gz --prefix O2-GCF_001444895-int-bug --outdir O2 && \
cat O2/O2-GCF_001444895-int-bug.tsv && \
cat O2/O2-GCF_001444895-int-bug.details.tsv

# print help and version info
RUN pasty --help && \
pasty --version && \
pasty --check
62 changes: 62 additions & 0 deletions pasty/1.0.3/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
# pasty container

Main tool : [pasty](https://github.com/rpetit3/pasty)

Additional tools:

- ncbi-blast+ 2.12.0
- python 3.10.12

Full documentation: [https://github.com/rpetit3/pasty](https://github.com/rpetit3/pasty)

A tool easily taken advantage of for in silico serogrouping of Pseudomonas aeruginosa isolates from genome assemblies

## Example Usage

```bash
# test genome assemblies are included in the docker image at /pasty-1.0.2/test/
# visit here to see more information: https://github.com/rpetit3/pasty/tree/main/test

# run pasty via docker container (command broken into 2 lines for readability)
$ docker run --rm -v $PWD:/data -u $(id -u):$(id -g) staphb/pasty:1.0.2 \
pasty --assembly /pasty-1.0.2/test/O1-GCF_000504045.fna.gz --prefix O1-GCF_000504045
Running pasty with following parameters:
--assembly /pasty-1.0.2/test/O1-GCF_000504045.fna.gz
--db /pasty-1.0.2/db/OSAdb.fasta
--prefix O1-GCF_000504045
--outdir ./
--min_pident 95
--min_coverage 95

Running BLASTN...
Writing outputs...
BLASTN results written to ./O1-GCF_000504045.blastn.tsv

Serogroup Results
┏━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━━┓
┃ sample ┃ serogroup ┃ coverage ┃ fragments ┃
┡━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━━┩
│ O1-GCF_000504045 │ O1 │ 99.97 │ 1 │
│ O1-GCF_000504045 │ O2 │ 9.83 │ 2 │
│ O1-GCF_000504045 │ O3 │ 11.18 │ 2 │
│ O1-GCF_000504045 │ O4 │ 14.36 │ 2 │
│ O1-GCF_000504045 │ O5 │ 0 │ 0 │
│ O1-GCF_000504045 │ O6 │ 14.07 │ 2 │
│ O1-GCF_000504045 │ O7 │ 11.54 │ 2 │
│ O1-GCF_000504045 │ O9 │ 36.62 │ 1 │
│ O1-GCF_000504045 │ O10 │ 12.52 │ 2 │
│ O1-GCF_000504045 │ O11 │ 15.85 │ 2 │
│ O1-GCF_000504045 │ O12 │ 1.24 │ 1 │
│ O1-GCF_000504045 │ O13 │ 15.39 │ 2 │
│ O1-GCF_000504045 │ WyzB │ 0 │ 0 │
└──────────────────┴───────────┴──────────┴───────────┘
Serogroup Results written to ./O1-GCF_000504045.details.tsv

Predicted Serogroup
┏━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━┓
┃ sample ┃ serogroup ┃ coverage ┃ fragments ┃ comment ┃
┡━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━━╇━━━━━━━━━┩
│ O1-GCF_000504045 │ O1 │ 99.97 │ 1 │ │
└──────────────────┴───────────┴──────────┴───────────┴─────────┘
Predicted serogroup result written to ./O1-GCF_000504045.tsv
```