diff --git a/.github/workflows/build-to-deploy.yml b/.github/workflows/build-to-deploy.yml
index 6f49535d7..01bb6980f 100644
--- a/.github/workflows/build-to-deploy.yml
+++ b/.github/workflows/build-to-deploy.yml
@@ -51,7 +51,7 @@ jobs:
runs-on: ubuntu-20.04
steps:
- name: Check Out Repo (+ download Git LFS dependencies) # each job runs in an isolated environment, so need to check out the repo in each job
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
with:
lfs: true
@@ -61,10 +61,10 @@ jobs:
- name: Set up Docker Buildx
id: buildx
- uses: docker/setup-buildx-action@v2
+ uses: docker/setup-buildx-action@v3
- name: Cache Docker layers # also need to set up the cache in each job, using the same prefix (here ${{ runner.os }}-buildx) makes it sharable between jobs
- uses: actions/cache@v3
+ uses: actions/cache@v4
with:
path: /tmp/.buildx-cache-${{ inputs.cache }}
key: ${{ runner.os }}-buildx-${{ inputs.cache }}-${{ github.sha }}
@@ -73,7 +73,7 @@ jobs:
- name: Docker meta
id: meta
- uses: docker/metadata-action@v4 # trying this to resolve issues with pushing identical images to quay. info here: https://github.com/docker/build-push-action/issues/452
+ uses: docker/metadata-action@v5 # trying this to resolve issues with pushing identical images to quay. info here: https://github.com/docker/build-push-action/issues/452
with:
images: |
${{ inputs.repository_name }}/${{ inputs.container_name }}:${{ inputs.tag }}
@@ -82,13 +82,13 @@ jobs:
quay.io/${{ inputs.repository_name }}/${{ inputs.container_name }}:latest
- name: Login to DockerHub
- uses: docker/login-action@v2
+ uses: docker/login-action@v3
with:
username: ${{ secrets.docker_username }}
password: ${{ secrets.docker_access_token }}
- name: Login to Quay
- uses: docker/login-action@v2
+ uses: docker/login-action@v3
if: ${{ inputs.push_quay }}
with:
registry: quay.io
@@ -97,7 +97,7 @@ jobs:
- name: Build and push user-defined tag to DockerHub
id: docker_build_user_defined_tag
- uses: docker/build-push-action@v3
+ uses: docker/build-push-action@v5
with:
context: ${{ inputs.path_to_context }}
file: ${{ inputs.path_to_context }}/${{ inputs.dockerfile_name }}
@@ -111,7 +111,7 @@ jobs:
- name: Build and push latest tag to DockerHub
id: docker_build_latest_tag
- uses: docker/build-push-action@v3
+ uses: docker/build-push-action@v5
if: ${{ inputs.push_latest_tag }}
with:
context: ${{ inputs.path_to_context }}
@@ -126,7 +126,7 @@ jobs:
- name: Build and push user-defined tag to Quay
id: quay_build_user_defined_tag
- uses: docker/build-push-action@v3
+ uses: docker/build-push-action@v5
if: ${{ inputs.push_quay }}
with:
context: ${{ inputs.path_to_context }}
@@ -141,7 +141,7 @@ jobs:
- name: Build and push latest tag to Quay
id: quay_build_latest_tag
- uses: docker/build-push-action@v3
+ uses: docker/build-push-action@v5
if: ${{ inputs.push_quay && inputs.push_latest_tag }}
with:
context: ${{ inputs.path_to_context }}
@@ -160,4 +160,4 @@ jobs:
mv /tmp/.buildx-cache-${{ inputs.cache }}-new /tmp/.buildx-cache-${{ inputs.cache }}
- name: Image digest
- run: echo ${{ steps.docker_build.outputs.digest }}
+ run: echo ${{ steps.docker_build_user_defined_tag.outputs.digest }}
diff --git a/.github/workflows/build-to-test.yml b/.github/workflows/build-to-test.yml
index 11b4f8dad..183dc61b1 100644
--- a/.github/workflows/build-to-test.yml
+++ b/.github/workflows/build-to-test.yml
@@ -22,17 +22,17 @@ jobs:
runs-on: ubuntu-20.04
steps:
- name: Check Out Repo
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
- name: Set up QEMU
- uses: docker/setup-qemu-action@v2
+ uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
id: buildx
- uses: docker/setup-buildx-action@v2
+ uses: docker/setup-buildx-action@v3
- name: Cache Docker layers
- uses: actions/cache@v3
+ uses: actions/cache@v4
with:
path: /tmp/.buildx-cache-${{ inputs.cache }}
key: ${{ runner.os }}-buildx-${{ inputs.cache }}-${{ github.sha }}
@@ -41,7 +41,7 @@ jobs:
- name: Build to test
id: docker_build_to_test
- uses: docker/build-push-action@v3
+ uses: docker/build-push-action@v5
with:
context: ${{ inputs.path_to_context }}
file: ${{ inputs.path_to_context }}/${{ inputs.dockerfile_name }}
@@ -56,4 +56,4 @@ jobs:
mv /tmp/.buildx-cache-${{ inputs.cache }}-new /tmp/.buildx-cache-${{ inputs.cache }}
- name: Image digest
- run: echo ${{ steps.docker_build.outputs.digest }}
+ run: echo ${{ steps.docker_build_to_test.outputs.digest }}
diff --git a/.github/workflows/run-singularity.yml b/.github/workflows/run-singularity.yml
index 251890e89..79ff5401f 100644
--- a/.github/workflows/run-singularity.yml
+++ b/.github/workflows/run-singularity.yml
@@ -23,7 +23,7 @@ jobs:
runs-on: ubuntu-20.04
steps:
- name: Check out Repo
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
- name: Set up Singularity
uses: eWaterCycle/setup-singularity@v7
diff --git a/.github/workflows/test-PR-dockerfiles.yml b/.github/workflows/test-PR-dockerfiles.yml
index bbb53d2f8..48173df99 100644
--- a/.github/workflows/test-PR-dockerfiles.yml
+++ b/.github/workflows/test-PR-dockerfiles.yml
@@ -15,9 +15,9 @@ jobs:
outputs:
json: ${{ steps.files.outputs.added_modified }}
steps:
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
- id: files
- uses: Ana06/get-changed-files@v2.2.0
+ uses: Ana06/get-changed-files@v2.3.0
with:
format: 'json'
filter: 'Dockerfile'
@@ -54,27 +54,27 @@ jobs:
##### --------------------------------------------------------------------------- #####
- name: Checkout
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
- name: Layer check
run: |
#checking layers
warning=''
- app_layer=$(grep FROM ./${{ steps.parse.outputs.tool }}/${{ steps.parse.outputs.version }}/Dockerfile | grep "as app")
- tst_layer=$(grep FROM ./${{ steps.parse.outputs.tool }}/${{ steps.parse.outputs.version }}/Dockerfile | grep "as test")
+ app_layer=$(grep FROM ./${{ steps.parse.outputs.tool }}/${{ steps.parse.outputs.version }}/Dockerfile | grep -E "as app|AS app")
+ tst_layer=$(grep FROM ./${{ steps.parse.outputs.tool }}/${{ steps.parse.outputs.version }}/Dockerfile | grep -E "as test|AS test")
if [ -z "$app_layer" ] ; then echo "FATAL : app layer is missing" ; warning='warning' ; fi
if [ -z "$tst_layer" ] ; then echo "FATAL : test layer is missing" ; warning='warning' ; fi
if [ -n "$warning" ] ; then echo "Please see template for recommended format https://github.com/StaPH-B/docker-builds/blob/master/dockerfile-template/Dockerfile" ; exit 1 ; fi
- name: Set up QEMU
- uses: docker/setup-qemu-action@v2
+ uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
id: buildx
- uses: docker/setup-buildx-action@v2
+ uses: docker/setup-buildx-action@v3
- name: Cache Docker layers
- uses: actions/cache@v3
+ uses: actions/cache@v4
with:
path: /tmp/.buildx-cache-${{ steps.parse.outputs.tool }}
key: ${{ runner.os }}-buildx-${{ steps.parse.outputs.tool }}-${{ github.sha }}
@@ -83,7 +83,7 @@ jobs:
- name: Build to test
id: docker_build_to_test
- uses: docker/build-push-action@v3
+ uses: docker/build-push-action@v5
with:
context: ./${{ steps.parse.outputs.tool }}/${{ steps.parse.outputs.version }}
file: ./${{ steps.parse.outputs.tool }}/${{ steps.parse.outputs.version }}/Dockerfile
@@ -123,4 +123,4 @@ jobs:
mv /tmp/.buildx-cache-${{ steps.parse.outputs.tool }}-new /tmp/.buildx-cache-${{ steps.parse.outputs.tool }}
- name: Image digest
- run: echo ${{ steps.docker_build.outputs.digest }}
+ run: echo ${{ steps.docker_build_to_test.outputs.digest }}
diff --git a/.github/workflows/update_freyja.yml b/.github/workflows/update_freyja.yml
new file mode 100644
index 000000000..054cdd6d4
--- /dev/null
+++ b/.github/workflows/update_freyja.yml
@@ -0,0 +1,89 @@
+##### ------------------------------------------------------------------------------------------------ #####
+##### This caller workflow tests, builds, and pushes the image to Docker Hub and Quay using the most #####
+##### recent version of Freyja and downloading the most recent variant information. #####
+##### It takes no manual input. #####
+##### ------------------------------------------------------------------------------------------------ #####
+
+name: Update Freyja
+
+on:
+ workflow_dispatch:
+ schedule:
+ - cron: '30 7 1 * *'
+
+run-name: Updating Freyja
+
+jobs:
+ update:
+ runs-on: ubuntu-latest
+ steps:
+ - name: pull repo
+ uses: actions/checkout@v4
+
+ - name: set freyja version
+ id: latest_version
+ run: |
+ version=1.5.1
+ echo "version=$version" >> $GITHUB_OUTPUT
+
+ file=freyja/$version/Dockerfile
+ ls $file
+ echo "file=$file" >> $GITHUB_OUTPUT
+
+ - name: set up docker buildx
+ id: buildx
+ uses: docker/setup-buildx-action@v3
+
+ - name: build to test
+ id: docker_build_to_test
+ uses: docker/build-push-action@v5
+ with:
+ file: ${{ steps.latest_version.outputs.file }}
+ target: test
+ load: true
+ push: false
+ tags: freyja:update
+
+ - name: get freyja database version
+ id: db_version
+ run: |
+ docker run freyja:update freyja demix --version
+ version=$(docker run freyja:update freyja demix --version | grep . | grep -v Barcode | head -n 1)
+ echo "the latest version is $version"
+ echo "version=$version" >> $GITHUB_OUTPUT
+
+ - name: Get current date
+ id: date
+ run: |
+ date=$(date '+%Y-%m-%d')
+ echo "the date is $date"
+ echo "date=$date" >> $GITHUB_OUTPUT
+
+ - name: Login to DockerHub
+ uses: docker/login-action@v3
+ with:
+ username: ${{ secrets.DOCKER_HUB_USERNAME }}
+ password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
+
+ - name: Login to Quay
+ uses: docker/login-action@v3
+ with:
+ registry: quay.io
+ username: ${{ secrets.QUAY_USERNAME }}
+ password: ${{ secrets.QUAY_ROBOT_TOKEN }}
+
+ - name: Build and push Dockerfile
+ id: docker_build_and_push
+ uses: docker/build-push-action@v5
+ with:
+ file: ${{ steps.latest_version.outputs.file }}
+ target: app
+ push: true
+ tags: |
+ staphb/freyja:${{ steps.latest_version.outputs.version }}-${{ steps.db_version.outputs.version }}-${{ steps.date.outputs.date }}
+ staphb/freyja:latest
+ quay.io/staphb/freyja:${{ steps.latest_version.outputs.version }}-${{ steps.db_version.outputs.version }}-${{ steps.date.outputs.date }}
+ quay.io/staphb/freyja:latest
+
+ - name: Image digest
+ run: echo ${{ steps.docker_build_user_defined_tag.outputs.digest }}
diff --git a/.github/workflows/update_mlst.yml b/.github/workflows/update_mlst.yml
new file mode 100644
index 000000000..88e1601bf
--- /dev/null
+++ b/.github/workflows/update_mlst.yml
@@ -0,0 +1,87 @@
+##### ------------------------------------------------------------------------------------------------ #####
+##### This caller workflow tests, builds, and pushes the image to Docker Hub and Quay using the most #####
+##### recent version of MLST and downloads the current MLST schemes. #####
+##### It takes no manual input. #####
+##### ------------------------------------------------------------------------------------------------ #####
+
+name: Update MLST
+
+on:
+ workflow_dispatch:
+ schedule:
+ - cron: '30 7 1 * *'
+
+run-name: Updating MLST
+
+jobs:
+ update:
+ runs-on: ubuntu-latest
+ steps:
+
+ - name: pull repo
+ uses: actions/checkout@v4
+
+ - name: set mlst version
+ id: latest_version
+ run: |
+ version=2.23.0
+ echo "version=$version" >> $GITHUB_OUTPUT
+
+ file=mlst/2.23.0-2024-03/Dockerfile
+ ls $file
+ echo "file=$file" >> $GITHUB_OUTPUT
+
+ - name: set up docker buildx
+ id: buildx
+ uses: docker/setup-buildx-action@v3
+
+ - name: build to test
+ id: docker_build_to_test
+ uses: docker/build-push-action@v5
+ with:
+ context: mlst/${{ steps.latest_version.outputs.version }}
+ target: test
+ load: true
+ push: false
+ tags: mlst:update
+
+ - name: Get current date
+ id: date
+ run: |
+ date=$(date '+%Y-%m-%d')
+ echo "the date is $date"
+ echo "date=$date" >> $GITHUB_OUTPUT
+
+ - name: Login to DockerHub
+ uses: docker/login-action@v3
+ with:
+ username: ${{ secrets.DOCKER_HUB_USERNAME }}
+ password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
+
+ - name: Login to Quay
+ uses: docker/login-action@v3
+ with:
+ registry: quay.io
+ username: ${{ secrets.QUAY_USERNAME }}
+ password: ${{ secrets.QUAY_ROBOT_TOKEN }}
+
+ - name: Build and push user-defined tag to DockerHub
+ id: docker_build_user_defined_tag
+ uses: docker/build-push-action@v5
+ with:
+ file: ${{ steps.latest_version.outputs.file }}
+ target: app
+ push: true
+ tags: staphb/mlst:${{ steps.latest_version.outputs.version }}-${{ steps.date.outputs.date }}
+
+ - name: Build and push to Quay
+ id: build
+ uses: docker/build-push-action@v5
+ with:
+ file: ${{ steps.latest_version.outputs.file }}
+ target: app
+ push: true
+ tags: quay.io/staphb/mlst:${{ steps.latest_version.outputs.version }}-${{ steps.date.outputs.date }}
+
+ - name: Image digest
+ run: echo ${{ steps.docker_build.outputs.digest }}
diff --git a/Program_Licenses.md b/Program_Licenses.md
index bd95a40f3..bda48be96 100644
--- a/Program_Licenses.md
+++ b/Program_Licenses.md
@@ -7,14 +7,18 @@ The licenses of the open-source software that is contained in these Docker image
| Software | License | Link to license |
| :--------: | :-------: | -------- |
| ABRicate | GNU GPLv2 | https://github.com/tseemann/abricate/blob/master/LICENSE |
+| ACI | MIT | https://github.com/erinyoung/ACI/blob/main/LICENSE |
+| ANIclustermap | MIT | https://github.com/moshi4/ANIclustermap/blob/main/LICENSE |
| artic | MIT | https://github.com/artic-network/fieldbioinformatics/blob/master/LICENSE |
| artic-ncov2019-epi2me | MPL 2.0 | https://github.com/epi2me-labs/wf-artic/blob/master/LICENSE |
| any2fasta | GNU GPLv3 | https://github.com/tseemann/any2fasta/blob/master/LICENSE |
| ARIBA | GNU GPLv3 | https://github.com/sanger-pathogens/ariba/blob/master/LICENSE |
| Augur | GNU Affero GPLv3 | https://github.com/nextstrain/augur/blob/master/LICENSE.txt |
| Auspice | GNU Affero GPLv3 | https://github.com/nextstrain/auspice/blob/master/LICENSE.txt |
+| Bakta | GNU GPLv3 | https://github.com/oschwengers/bakta/blob/main/LICENSE |
+| Bandage | GNU GPLv3 | https://github.com/rrwick/Bandage?tab=GPL-3.0-1-ov-file#readme |
| BBTools | non-standard - see `licence.txt` and `legal.txt` that is included in docker image under `/bbmap/docs/`; Also on sourceforge repo for BBTools | https://jgi.doe.gov/disclaimer/ |
-| bcftools | MIT or **GNU GPLv3** (depends on how bcftools was compiled, I believe GNU GPLv3 applies here) | https://github.com/samtools/bcftools/blob/develop/LICENSE |
+| bcftools | MIT & **GNU GPLv3** | https://github.com/samtools/bcftools/blob/develop/LICENSE |
| bedtools | MIT | https://github.com/arq5x/bedtools2/blob/master/LICENSE |
| blast+ | Public Domain | https://www.ncbi.nlm.nih.gov/IEB/ToolBox/CPP_DOC/lxr/source/scripts/projects/blast/LICENSE |
| bowtie2 | GNU GPLv3 | https://github.com/BenLangmead/bowtie2/blob/master/LICENSE |
@@ -27,16 +31,23 @@ The licenses of the open-source software that is contained in these Docker image
| cfsan-snp-pipeline | non-standard license see --> | https://github.com/CFSAN-Biostatistics/snp-pipeline/blob/master/LICENSE.txt |
| CheckM | GNU GPLv3 | https://github.com/Ecogenomics/CheckM/blob/master/LICENSE |
| Circlator | GNU GPLv3 | https://github.com/sanger-pathogens/circlator/blob/master/LICENSE |
+| Circos | GNU GPLv3 | https://circos.ca/ |
+| CirculoCov | GNU GPLv3 | https://github.com/erinyoung/CirculoCov/blob/main/LICENSE |
+| Clair3 | non-standard | https://github.com/HKU-BAL/Clair3/blob/main/LICENSE.md |
| colorid | MIT | https://github.com/hcdenbakker/colorid/blob/master/LICENSE |
| datasets-sars-cov-2 | Apache 2.0 | https://github.com/CDCgov/datasets-sars-cov-2/blob/master/LICENSE |
+| diamond | GNU GPLv3 | https://github.com/bbuchfink/diamond/blob/master/LICENSE |
| dnaapler | MIT | https://github.com/gbouras13/dnaapler/blob/main/LICENSE |
| dragonflye | GNU GPLv3 | https://github.com/rpetit3/dragonflye/blob/main/LICENSE |
+| drprg | MIT | https://github.com/mbhall88/drprg/blob/main/LICENSE |
| DSK | GNU Affero GPLv3 | https://github.com/GATB/dsk/blob/master/LICENSE |
+| el_gato | MIT | https://github.com/appliedbinf/el_gato/blob/main/LICENSE |
| emboss | GNU GPLv3 | http://emboss.sourceforge.net/licence/ |
| emmtyper | GNU GPLv3 | https://github.com/MDU-PHL/emmtyper/blob/master/LICENSE |
| emm-typing-tool | GNU GPLv3 | https://github.com/phe-bioinformatics/emm-typing-tool/blob/master/LICENCE |
| EToKi | GNU GPLv3 | https://github.com/zheminzhou/EToKi/blob/master/LICENSE |
| FastANI | Apache v2.0 | https://github.com/ParBLiSS/FastANI/blob/master/LICENSE |
+| fasten | MIT | https://github.com/lskatz/fasten/blob/master/LICENSE |
| Fastp | MIT | https://github.com/OpenGene/fastp/blob/master/LICENSE |
| FastTree | GNU GPLv2 | http://www.microbesonline.org/fasttree/ |
| FastQC | GNU GPLv3 | https://github.com/s-andrews/FastQC/blob/master/LICENSE.txt |
@@ -48,24 +59,35 @@ The licenses of the open-source software that is contained in these Docker image
| Freyja | BSD-2 | https://github.com/andersen-lab/Freyja/blob/main/LICENSE |
| GAMBIT | GNU aGPLv3 | https://github.com/jlumpe/gambit/blob/master/LICENSE |
| GAMMA | Apache 2.0 | https://github.com/rastanton/GAMMA/blob/main/LICENSE |
+| GenoFlu | GNU GPL v3 | https://github.com/USDA-VS/GenoFLU/blob/main/LICENSE |
| Genotyphi | GNU GPLv3 | https://github.com/katholt/genotyphi/blob/main/LICENSE |
+| geNomad | ACADEMIC, INTERNAL, RESEARCH & DEVELOPMENT, NON-COMMERCIAL USE ONLY | https://github.com/apcamargo/genomad/blob/main/LICENSE |
+| GenoVi | BY-NC-SA Creative Commons License | https://github.com/robotoD/GenoVi/blob/main/LICENSE.txt |
| gfastats | MIT | https://github.com/vgl-hub/gfastats/blob/main/LICENSE |
+| Gubbins | GNU GPLv2 | https://github.com/nickjcroucher/gubbins/blob/master/LICENSE |
+| HeatCluster | GPL-3.0 | https://github.com/DrB-S/heatcluster/blob/main/LICENSE |
| Hmmer | BSD-3 | http://eddylab.org/software/hmmer/Userguide.pdf |
| homopolish | GNU GPLv3 | https://github.com/ythuang0522/homopolish/blob/master/LICENSE |
| htslib | MIT | https://github.com/samtools/htslib/blob/develop/LICENSE |
| iqtree | GNU GPLv2 | https://github.com/Cibiv/IQ-TREE/blob/master/LICENSE |
| iqtree2 | GNU GPLv2 | https://github.com/iqtree/iqtree2/blob/master/LICENSE |
+| IPA | BSD-3 | https://github.com/PacificBiosciences/pbipa/blob/master/LICENSE.txt |
| IRMA | GNU GPLv3 | https://wonder.cdc.gov/amd/flu/irma/disclaimer.html |
+| isPcr | non-standard - see README in source | https://hgwdev.gi.ucsc.edu/~kent/src/isPcr33.zip |
| iVar | GNU GPLv3 | https://github.com/andersen-lab/ivar/blob/master/LICENSE |
+| Jasmine | BSD-3 | https://github.com/PacificBiosciences/jasmine/blob/main/LICENSE |
| Kaptive | GNU GPLv3 | https://github.com/katholt/Kaptive/blob/master/LICENSE |
| Kleborate | GNU GPLv3 | https://github.com/katholt/Kleborate/blob/master/LICENSE |
| kma | Apache v2.0 | https://bitbucket.org/genomicepidemiology/kma/src/master/ |
| Kraken | GNU GPLv3 | https://github.com/DerrickWood/kraken/blob/master/LICENSE |
| Kraken2 | MIT | https://github.com/DerrickWood/kraken2/blob/master/LICENSE |
+| KrakenUniq | GNU GPLv3 | https://github.com/fbreitwieser/krakenuniq/blob/master/LICENSE |
| kSNP3 | BSD | available in zipped kSNP archive on sourceforge or in docker image under `/kSNP3.1_Linux_package/THE BSD OPENSOURCE LICENSE.pdf` |
| kSNP4 | BSD | available in zipped kSNP archive on sourceforge or in docker image under `/opt/kSNP4 Linux package/Documentation/THE BSD OPENSOURCE LICENSE.pdf` |
+| LABEL | GPL version 3 | In zipped file in README.md |
| legsta | GNU GPLv3 | https://github.com/tseemann/legsta/blob/master/LICENSE |
| liftoff | GNU GPLv3 | https://github.com/agshumate/Liftoff/blob/master/LICENSE.md |
+| lima | BSD-3 | https://github.com/PacificBiosciences/barcoding/blob/master/LICENSE |
| longshot | MIT | https://github.com/pjedge/longshot/blob/master/LICENSE |
| Lyve-SET | MIT | https://github.com/lskatz/lyve-SET/blob/master/LICENSE |
| Mafft | BSD | https://mafft.cbrc.jp/alignment/software/license.txt |
@@ -73,7 +95,7 @@ The licenses of the open-source software that is contained in these Docker image
| mashtree | GNU GPLv3 | https://github.com/lskatz/mashtree/blob/master/LICENSE |
| MaSuRCA | GNU GPLv3 | https://github.com/alekseyzimin/masurca/blob/master/LICENSE.txt
| Medaka | Mozilla Public License 2.0 | https://github.com/nanoporetech/medaka/blob/master/LICENSE.md |
-| Metaphlan | MIT | https://github.com/biobakery/MetaPhlAn/blob/3.0/license.txt |
+| Metaphlan | MIT | https://github.com/biobakery/MetaPhlAn/blob/master/license.txt |
| MIDAS | GNU GPLv3 |https://github.com/snayfach/MIDAS/blob/master/LICENSE |
| minimap2 | MIT | https://github.com/lh3/minimap2/blob/master/LICENSE.txt |
| miniasm | MIT | https://github.com/lh3/miniasm/blob/master/LICENSE.txt |
@@ -88,13 +110,20 @@ The licenses of the open-source software that is contained in these Docker image
| NCBI Datasets | Public Domain | https://github.com/ncbi/datasets/blob/master/pkgs/ncbi-datasets-cli/LICENSE.md |
| NCBI table2asn | Public Domain | unknown |
| ngmaster | GNU GPLv3 | https://github.com/MDU-PHL/ngmaster/blob/master/LICENSE |
+| ONTime | MIT | https://github.com/mbhall88/ontime/blob/main/LICENSE |
| OrthoFinder | GNU GPLv3 | https://github.com/davidemms/OrthoFinder/blob/master/License.md |
| Panaroo | MIT | https://github.com/gtonkinhill/panaroo/blob/master/LICENSE |
+| pango_aliasor | MIT | https://github.com/corneliusroemer/pango_aliasor/blob/main/LICENSE |
| Pangolin | GNU GPLv3 | https://github.com/cov-lineages/pangolin/blob/master/LICENSE.txt |
+| panqc | MIT | https://github.com/maxgmarin/panqc/blob/main/LICENSE |
+| Parsnp | Battelle National Biodefense Institute (BNBI) | https://github.com/marbl/parsnp?tab=License-1-ov-file#readme |
| pasty | Apache 2.0 | https://github.com/rpetit3/pasty/blob/main/LICENSE |
| Pavian | GNU GPLv3 | https://github.com/fbreitwieser/pavian/blob/master/DESCRIPTION |
+| pbmm2 | BSD-3 | https://github.com/PacificBiosciences/pbmm2/blob/develop/LICENSE |
| pbptyper | MIT | https://github.com/rpetit3/pbptyper/blob/main/LICENSE |
+| pbtk | BSD-3 | https://github.com/PacificBiosciences/pbtk/blob/main/LICENSE.txt |
| Phyml | GNU GPLv3 | https://github.com/stephaneguindon/phyml/blob/master/COPYING |
+| phyTreeViz | MIT | https://github.com/moshi4/phyTreeViz/blob/main/LICENSE |
| Piggy | GNU GPLv3 | https://github.com/harry-thorpe/piggy/blob/master/LICENSE |
| Pilon | GNU GPLv2 | https://github.com/broadinstitute/pilon/blob/master/LICENSE |
| Piranha | GNU GPLv3 | https://github.com/polio-nanopore/piranha/blob/main/LICENSE |
@@ -103,17 +132,23 @@ 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 |
+| pyMLST | GNU GPLv3 | https://github.com/bvalot/pyMLST/blob/master/LICENSE |
+| pypolca | MIT | https://github.com/gbouras13/pypolca/blob/main/LICENSE |
| QUAST | GNU GPLv2 | https://github.com/ablab/quast/blob/master/LICENSE.txt |
| QuickSNP | GNU GPLv3 | https://github.com/k-florek/QuickSNP/blob/main/LICENSE |
-| racon | MIT | https://github.com/isovic/racon/blob/master/LICENSE |
+| racon | MIT | https://github.com/lbcb-sci/racon/blob/master/LICENSE ; https://github.com/isovic/racon/blob/master/LICENSE |
| rasusa | MIT | https://github.com/mbhall88/rasusa/blob/master/LICENSE |
| raven | MIT | https://github.com/lbcb-sci/raven/blob/master/LICENSE |
-| RAxML RAxML Next Generation | GNU GPLv3 (RAxML), GNU Affero GPLv3 (RAxML Next Generation)| https://github.com/stamatak/standard-RAxML/blob/master/gpl-3.0.txt https://github.com/amkozlov/raxml-ng/blob/master/LICENSE.txt |
+| RAxML | GNU GPLv3 | https://github.com/stamatak/standard-RAxML/blob/master/gpl-3.0.txt |
+| RAxML-NG | GNU AGPLv3| https://github.com/amkozlov/raxml-ng/blob/master/LICENSE.txt |
| ResFinder | Apache 2.0 | https://bitbucket.org/genomicepidemiology/resfinder/src/master/ |
| Roary | GNU GPLv3 | https://github.com/sanger-pathogens/Roary/blob/master/GPL-LICENSE |
| SalmID| MIT | https://github.com/hcdenbakker/SalmID/blob/master/LICENSE |
+| samclip | GNU GPLv3 | https://github.com/tseemann/samclip/blob/master/LICENSE |
| Samtools | GNU GPLv3 | https://github.com/samtools/samtools/blob/develop/LICENSE |
| SeqKit | MIT | https://github.com/shenwei356/seqkit/blob/master/LICENSE
| SeqSero | GNU GPLv2 | https://github.com/denglab/SeqSero/blob/master/LICENSE |
@@ -127,6 +162,7 @@ The licenses of the open-source software that is contained in these Docker image
| Shovill | GNU GPLv3 | https://github.com/tseemann/shovill/blob/master/LICENSE |
| SISTR | Apache 2.0 | https://github.com/phac-nml/sistr_cmd/blob/master/LICENSE |
| SKA | MIT | https://github.com/simonrharris/SKA/blob/master/LICENSE |
+| SKA2 | Apache 2.0 | https://github.com/bacpop/ska.rust/blob/master/LICENSE |
| skani | MIT | https://github.com/bluenote-1577/skani/blob/main/LICENSE |
| SKESA | Public Domain | https://github.com/ncbi/SKESA/blob/master/LICENSE |
| Smalt | GNU GPLv3 | https://www.sanger.ac.uk/tool/smalt-0/ |
@@ -139,6 +175,7 @@ The licenses of the open-source software that is contained in these Docker image
| SRA-toolkit | Public Domain | https://github.com/ncbi/sra-tools/blob/master/LICENSE |
| SRST2 | BSD | https://github.com/katholt/srst2/blob/master/LICENSE.txt |
| Staramr | Apache 2.0 | https://github.com/phac-nml/staramr/blob/master/LICENSE |
+| sylph | MIT | https://github.com/bluenote-1577/sylph/blob/main/LICENSE |
| TBProfiler | GNU GPLv3 | https://github.com/jodyphelan/TBProfiler/blob/master/LICENSE |
| TipToft | GNU GPLv3 | https://github.com/andrewjpage/tiptoft/blob/master/LICENSE |
| Tostadas | Apache-2.0 license | https://github.com/CDCgov/tostadas/blob/master/LICENSE |
@@ -147,8 +184,10 @@ The licenses of the open-source software that is contained in these Docker image
| Trycycler | GNU GPLv3 | https://github.com/rrwick/Trycycler/blob/master/LICENSE |
| Unicycler | GNU GPLv3 | https://github.com/rrwick/Unicycler/blob/master/LICENSE |
| VADR | Public Domain | https://github.com/nawrockie/vadr/blob/master/LICENSE |
+| Verkko | Public Domain | https://github.com/marbl/verkko/blob/master/README.licenses |
| VIBRANT | GNU GPLv3 | https://github.com/AnantharamanLab/VIBRANT/blob/master/LICENSE |
| VIGOR4 | GNU GPLv3 | https://github.com/JCVenterInstitute/VIGOR4/blob/master/LICENSE.txt |
+| Viridian | MIT | https://github.com/iqbal-lab-org/viridian/blob/master/LICENSE |
| VirSorter2 | GNU GPLv2 | https://github.com/jiarong/VirSorter2/blob/master/LICENSE |
| VirulenceFinder | Apache 2.0 | https://bitbucket.org/genomicepidemiology/virulencefinder/src/master/ |
| wtdbg2 | GNU GPLv3 | https://github.com/ruanjue/wtdbg2/blob/master/LICENSE.txt |
diff --git a/README.md b/README.md
index f10ff7500..da5553ddc 100644
--- a/README.md
+++ b/README.md
@@ -104,44 +104,55 @@ To learn more about the docker pull rate limits and the open source software pro
| Software | Version | Link |
| :--------: | ------- | -------- |
-| [ABRicate](https://hub.docker.com/r/staphb/abricate/) [![docker pulls](https://badgen.net/docker/pulls/staphb/abricate)](https://hub.docker.com/r/staphb/abricate) |
0.8.7 0.8.13 0.8.13s (+serotypefinder db) 0.9.8 1.0.0 [1.0.1 (+ A. baumannii plasmid typing db)](https://github.com/StaPH-B/docker-builds/blob/master/abricate/1.0.1-Abaum-plasmid) [1.0.1 (+ InsaFlu db)](https://github.com/StaPH-B/docker-builds/blob/master/abricate/1.0.1-insaflu-220727) | https://github.com/tseemann/abricate |
+| [ABRicate](https://hub.docker.com/r/staphb/abricate/) [![docker pulls](https://badgen.net/docker/pulls/staphb/abricate)](https://hub.docker.com/r/staphb/abricate) | 0.8.7 0.8.13 0.8.13s (+serotypefinder db) 0.9.8 1.0.0 [1.0.1 (+ A. baumannii plasmid typing db)](abricate/1.0.1-Abaum-plasmid) [1.0.1 (+ InsaFlu db)](abricate/1.0.1-insaflu-220727) [1.0.1 (+ *Vibrio cholerae* db)](abricate/1.0.1-vibrio-cholera/) | https://github.com/tseemann/abricate |
+| [ACI](https://hub.docker.com/r/staphb/aci/) [![docker pulls](https://badgen.net/docker/pulls/staphb/aci)](https://hub.docker.com/r/staphb/aci) | [1.4.20240116](./aci/1.4.20240116/) | https://github.com/erinyoung/ACI |
+| [ANIclustermap](https://hub.docker.com/r/staphb/aniclustermap/) [![docker pulls](https://badgen.net/docker/pulls/staphb/aniclustermap)](https://hub.docker.com/r/staphb/aniclustermap) | [1.3.0](aniclusteramp/1.3.0/) [1.4.0](aniclusteramp/1.4.0/) | https://github.com/moshi4/ANIclustermap |
| [any2fasta](https://hub.docker.com/r/staphb/any2fasta/) [![docker pulls](https://badgen.net/docker/pulls/staphb/any2fasta)](https://hub.docker.com/r/staphb/any2fasta) | | https://github.com/tseemann/any2fasta |
-| [ARIBA](https://hub.docker.com/r/staphb/ariba/) [![docker pulls](https://badgen.net/docker/pulls/staphb/ariba)](https://hub.docker.com/r/staphb/ariba) | 2.14.4 [2.14.6](ariba/2.14.6/) | https://github.com/sanger-pathogens/ariba |
-| [artic](https://hub.docker.com/r/staphb/artic-ncov2019) [![docker pulls](https://badgen.net/docker/pulls/staphb/artic)](https://hub.docker.com/r/staphb/artic) | [1.2.4-1.11.1 (artic-medaka)](artic/1.2.4-1.11.1/) | https://github.com/artic-network/fieldbioinformatics |
+| [ARIBA](https://hub.docker.com/r/staphb/ariba/) [![docker pulls](https://badgen.net/docker/pulls/staphb/ariba)](https://hub.docker.com/r/staphb/ariba) | [2.14.4](./ariba/2.14.4/) [2.14.6](./ariba/2.14.6/) [2.14.7](./ariba/2.14.7/) | https://github.com/sanger-pathogens/ariba |
+| [artic](https://hub.docker.com/r/staphb/artic) [![docker pulls](https://badgen.net/docker/pulls/staphb/artic)](https://hub.docker.com/r/staphb/artic) | [1.2.4-1.11.1 (artic-medaka)](artic/1.2.4-1.11.1/) [1.2.4-1.12.0 (artic-medaka)](artic/1.2.4-1.12.0/) | https://github.com/artic-network/fieldbioinformatics |
| [artic-ncov2019](https://hub.docker.com/r/staphb/artic-ncov2019) [![docker pulls](https://badgen.net/docker/pulls/staphb/artic-ncov2019)](https://hub.docker.com/r/staphb/artic-ncov2019) | | https://github.com/artic-network/fieldbioinformatics |
| [artic-ncov2019-epi2me](https://hub.docker.com/r/staphb/artic-ncov2019-epi2me) [![docker pulls](https://badgen.net/docker/pulls/staphb/artic-ncov2019-epi2me)](https://hub.docker.com/r/staphb/artic-ncov2019-epi2me) | | https://github.com/epi2me-labs/wf-artic |
| [artic-ncov2019-medaka](https://hub.docker.com/r/staphb/artic-ncov2019-medaka) [![docker pulls](https://badgen.net/docker/pulls/staphb/artic-ncov2019-medaka)](https://hub.docker.com/r/staphb/artic-ncov2019-medaka) | | https://github.com/artic-network/artic-ncov2019 |
| [artic-ncov2019-nanopolish](https://hub.docker.com/r/staphb/artic-ncov2019-nanopolish) [![docker pulls](https://badgen.net/docker/pulls/staphb/artic-ncov2019-nanopolish)](https://hub.docker.com/r/staphb/artic-ncov2019-nanopolish) | | https://github.com/artic-network/artic-ncov2019 |
-| [Augur](https://github.com/nextstrain/augur) [![docker pulls](https://badgen.net/docker/pulls/staphb/augur)](https://hub.docker.com/r/staphb/augur) | 6.3.0 7.0.2 8.0.0 9.0.0 16.0.3 | https://github.com/nextstrain/augur |
-| [Auspice](https://github.com/nextstrain/auspice) [![docker pulls](https://badgen.net/docker/pulls/staphb/auspice)](https://hub.docker.com/r/staphb/auspice) | | https://github.com/nextstrain/auspice |
-| [BBTools](https://hub.docker.com/r/staphb/bbtools/) [![docker pulls](https://badgen.net/docker/pulls/staphb/bbtools)](https://hub.docker.com/r/staphb/bbtools) | 38.76 38.86 38.95 38.96 38.97 38.98 38.99 39.00 39.01 | https://jgi.doe.gov/data-and-tools/bbtools/ |
-| [bcftools](https://hub.docker.com/r/staphb/bcftools/) [![docker pulls](https://badgen.net/docker/pulls/staphb/bcftools)](https://hub.docker.com/r/staphb/bcftools) | 1.10.2 1.11 1.12 1.13 1.14 1.15 1.16 1.17 [1.18](bcftools/1.18/) | https://github.com/samtools/bcftools |
-| [bedtools](https://hub.docker.com/r/staphb/bedtools/) [![docker pulls](https://badgen.net/docker/pulls/staphb/bedtools)](https://hub.docker.com/r/staphb/bedtools) | 2.29.2 2.30.0 [2.31.0](bedtools/2.31.0/) | https://bedtools.readthedocs.io/en/latest/ https://github.com/arq5x/bedtools2 |
+| [Augur](https://hub.docker.com/r/staphb/augur) [![docker pulls](https://badgen.net/docker/pulls/staphb/augur)](https://hub.docker.com/r/staphb/augur) | [6.3.0](./augur/6.3.0/) [7.0.2](./augur/7.0.2/) [8.0.0](./augur/8.0.0/) [9.0.0](./augur/9.0.0/) [16.0.3](./augur/16.0.3/) [24.2.2](./augur/24.2.2/) [24.2.3](./augur/24.2.3/) [24.3.0](./augur/24.3.0/) [24.4.0](./augur/24.4.0/) | https://github.com/nextstrain/augur |
+| [Auspice](https://hub.docker.com/r/staphb/auspice) [![docker pulls](https://badgen.net/docker/pulls/staphb/auspice)](https://hub.docker.com/r/staphb/auspice) | | https://github.com/nextstrain/auspice |
+| [bakta](https://hub.docker.com/r/staphb/bakta) [![docker pulls](https://badgen.net/docker/pulls/staphb/bakta)](https://hub.docker.com/r/staphb/bakta) | [1.9.2](./bakta/1.9.2/) [1.9.2-light](./bakta/1.9.2-5.1-light/) [1.9.3](./bakta/1.9.3/) [1.9.3-light](./bakta/1.9.3-5.1-light/) [1.9.4](./bakta/1.9.4/) | https://github.com/oschwengers/bakta |
+| [bandage](https://hub.docker.com/r/staphb/bandage) [![docker pulls](https://badgen.net/docker/pulls/staphb/bandage)](https://hub.docker.com/r/staphb/bandage) | [0.8.1](./bandage/0.8.1/) | https://rrwick.github.io/Bandage/ |
+| [BBTools](https://hub.docker.com/r/staphb/bbtools/) [![docker pulls](https://badgen.net/docker/pulls/staphb/bbtools)](https://hub.docker.com/r/staphb/bbtools) | [38.76](./bbtools/38.76/) [38.86](./bbtools/38.86/) [38.95](./bbtools/38.95/) [38.96](./bbtools/38.96/) [38.97](./bbtools/38.97/) [38.98](./bbtools/38.98/) [38.99](./bbtools/38.99/) [39.00](./bbtools/39.00/) [39.01](./bbtools/39.01/) [39.06](./bbtools/39.06/) | https://jgi.doe.gov/data-and-tools/bbtools/ |
+| [bcftools](https://hub.docker.com/r/staphb/bcftools/) [![docker pulls](https://badgen.net/docker/pulls/staphb/bcftools)](https://hub.docker.com/r/staphb/bcftools) | [1.10.2](./bcftools/1.10.2/) [1.11](./bcftools/1.11/) [1.12](./bcftools/1.12/) [1.13](./bcftools/1.13/) [1.14](./bcftools/1.14/) [1.15](./bcftools/1.15/) [1.16](./bcftools/1.16/) [1.17](./bcftools/1.17/) [1.18](bcftools/1.18/) [1.19](./bcftools/1.19/) [1.20](./bcftools/1.20/) [1.20.c](./bcftools/1.20.c/) | https://github.com/samtools/bcftools |
+| [bedtools](https://hub.docker.com/r/staphb/bedtools/) [![docker pulls](https://badgen.net/docker/pulls/staphb/bedtools)](https://hub.docker.com/r/staphb/bedtools) | 2.29.2 2.30.0 [2.31.0](bedtools/2.31.0/) [2.31.1](bedtools/2.31.1/) | https://bedtools.readthedocs.io/en/latest/ https://github.com/arq5x/bedtools2 |
| [berrywood-report-env](https://hub.docker.com/r/staphb/berrywood-report-env/) [![docker pulls](https://badgen.net/docker/pulls/staphb/berrywood-report-env)](https://hub.docker.com/r/staphb/berrywood-report-env) | | none |
-| [blast+](https://hub.docker.com/r/staphb/blast/) [![docker pulls](https://badgen.net/docker/pulls/staphb/blast)](https://hub.docker.com/r/staphb/blast) | 2.13.0 [2.14.0](blast/2.14.0/) [2.14.1](blast/2.14.1/) | https://www.ncbi.nlm.nih.gov/books/NBK279690/ |
-| [bowtie2](https://hub.docker.com/r/staphb/bowtie2/) [![docker pulls](https://badgen.net/docker/pulls/staphb/bowtie2)](https://hub.docker.com/r/staphb/bowtie2) | | http://bowtie-bio.sourceforge.net/bowtie2/manual.shtml https://github.com/BenLangmead/bowtie2 |
+| [blast+](https://hub.docker.com/r/staphb/blast/) [![docker pulls](https://badgen.net/docker/pulls/staphb/blast)](https://hub.docker.com/r/staphb/blast) | [2.13.0](blast/2.13.0/) [2.14.0](blast/2.14.0/) [2.14.1](blast/2.14.1/) [2.15.0](blast/2.15.0/) | https://www.ncbi.nlm.nih.gov/books/NBK279690/ |
+| [bowtie2](https://hub.docker.com/r/staphb/bowtie2/) [![docker pulls](https://badgen.net/docker/pulls/staphb/bowtie2)](https://hub.docker.com/r/staphb/bowtie2) | [2.4.4](./bowtie2/2.4.4/) [2.4.5](./bowtie2/2.4.5/) [2.5.1](./bowtie2/2.5.1/) [2.5.3](./bowtie2/2.5.3/) [2.5.4](./bowtie2/2.5.4/) | http://bowtie-bio.sourceforge.net/bowtie2/manual.shtml https://github.com/BenLangmead/bowtie2 |
| [Bracken](https://hub.docker.com/r/staphb/bracken/) [![docker pulls](https://badgen.net/docker/pulls/staphb/bracken)](https://hub.docker.com/r/staphb/bracken) | | https://ccb.jhu.edu/software/bracken/index.shtml?t=manual https://github.com/jenniferlu717/Bracken |
-| [BUSCO](https://hub.docker.com/r/staphb/busco/) [![docker pulls](https://badgen.net/docker/pulls/staphb/busco)](https://hub.docker.com/r/staphb/busco) | | https://busco.ezlab.org/busco_userguide.html https://gitlab.com/ezlab/busco |
-| [BWA](https://hub.docker.com/r/staphb/bwa) [![docker pulls](https://badgen.net/docker/pulls/staphb/bwa)](https://hub.docker.com/r/staphb/bwa) | | https://github.com/lh3/bwa |
+| [BUSCO](https://hub.docker.com/r/staphb/busco/) [![docker pulls](https://badgen.net/docker/pulls/staphb/busco)](https://hub.docker.com/r/staphb/busco) | [5.4.7](./busco/5.4.7/) [5.6.1](./busco/5.6.1/) [5.6.1-prok-bacteria_odb10_2024-01-08](./busco/5.6.1-prok-bacteria_odb10_2024-01-08/) [5.7.1](./busco/5.7.1/) [5.7.1-prok-bacteria_odb10_2024-01-08](./busco/5.7.1-prok-bacteria_odb10_2024-01-08/) | https://busco.ezlab.org/busco_userguide.html https://gitlab.com/ezlab/busco |
+| [BWA](https://hub.docker.com/r/staphb/bwa) [![docker pulls](https://badgen.net/docker/pulls/staphb/bwa)](https://hub.docker.com/r/staphb/bwa) | 0.7.17 [0.7.18](./bwa/0.7.18/) | https://github.com/lh3/bwa |
| [Canu](https://hub.docker.com/r/staphb/canu) [![docker pulls](https://badgen.net/docker/pulls/staphb/canu?)](https://hub.docker.com/r/staphb/canu)| | https://canu.readthedocs.io/en/latest/ https://github.com/marbl/canu |
| [Canu-Racon](https://hub.docker.com/r/staphb/canu-racon/) [![docker pulls](https://badgen.net/docker/pulls/staphb/canu-racon)](https://hub.docker.com/r/staphb/canu-racon) | 1.7.1 (Canu), 1.3.1 (Racon), 2.13 (minimap2) 1.9 (Canu), 1.4.3 (Racon), 2.17 (minimap2) 1.9i (Canu), 1.4.3 (Racon), 2.17 (minimap2), (+racon_preprocess.py) 2.0 (Canu), 1.4.3 (Racon), 2.17 (minimap2) | https://canu.readthedocs.io/en/latest/ https://github.com/lbcb-sci/racon https://github.com/isovic/racon (ARCHIVED) https://lh3.github.io/minimap2/ |
| [centroid](https://hub.docker.com/r/staphb/centroid/) [![docker pulls](https://badgen.net/docker/pulls/staphb/centroid)](https://hub.docker.com/r/staphb/centroid) | | https://github.com/stjacqrm/centroid |
| [CDC-SPN](https://hub.docker.com/r/staphb/cdc-spn/) [![docker pulls](https://badgen.net/docker/pulls/staphb/cdc-spn)](https://hub.docker.com/r/staphb/cdc-spn) | | https://github.com/BenJamesMetcalf/Spn_Scripts_Reference |
| [cfsan-snp-pipeline](https://hub.docker.com/r/staphb/cfsan-snp-pipeline) [![docker pulls](https://badgen.net/docker/pulls/staphb/cfsan-snp-pipeline)](https://hub.docker.com/r/staphb/cfsan-snp-pipeline) | | https://github.com/CFSAN-Biostatistics/snp-pipeline |
-| [CheckM](https://hub.docker.com/r/staphb/checkm) [![docker pulls](https://badgen.net/docker/pulls/staphb/checkm)](https://hub.docker.com/r/staphb/checkm) | | https://github.com/Ecogenomics/CheckM |
+| [CheckM](https://hub.docker.com/r/staphb/checkm) [![docker pulls](https://badgen.net/docker/pulls/staphb/checkm)](https://hub.docker.com/r/staphb/checkm) | [1.2.2](./checkm/1.2.2/) [1.2.3](./checkm/1.2.3/) | https://github.com/Ecogenomics/CheckM |
| [Circlator](https://hub.docker.com/r/staphb/circlator) [![docker pulls](https://badgen.net/docker/pulls/staphb/circlator)](https://hub.docker.com/r/staphb/circlator) | | https://github.com/sanger-pathogens/circlator |
+| [Circos](https://hub.docker.com/r/staphb/circos) [![docker pulls](https://badgen.net/docker/pulls/staphb/circos)](https://hub.docker.com/r/staphb/circos) | [0.69-9](./circos/0.69.9/) | https://circos.ca/ |
+| [CirculoCov](https://hub.docker.com/r/staphb/circulocov) [![docker pulls](https://badgen.net/docker/pulls/staphb/circulocov)](https://hub.docker.com/r/staphb/circulocov) | [0.1.20240104](./circulocov/0.1.20240104/) | https://github.com/erinyoung/CirculoCov |
+| [Clair3](https://hub.docker.com/r/staphb/clair3) [![docker pulls](https://badgen.net/docker/pulls/staphb/clair3)](https://hub.docker.com/r/staphb/clair3) | [1.0.9](./clair3/1.0.9/) [1.0.10](./clair3/1.0.10/) | https://github.com/HKU-BAL/Clair3 |
| [Clustalo](https://hub.docker.com/r/staphb/clustalo) [![docker pulls](https://badgen.net/docker/pulls/staphb/clustalo)](https://hub.docker.com/r/staphb/clustalo) | | http://www.clustal.org/omega/ |
| [colorid](https://hub.docker.com/r/staphb/colorid) [![docker pulls](https://badgen.net/docker/pulls/staphb/colorid)](https://hub.docker.com/r/staphb/colorid) | | https://github.com/hcdenbakker/colorid |
| [cutshaw-report-env](https://hub.docker.com/r/staphb/cutshaw-report-env) [![docker pulls](https://badgen.net/docker/pulls/staphb/cutshaw-report-env)](https://hub.docker.com/r/staphb/cutshaw-report-env) | | https://github.com/VADGS/CutShaw |
| [datasets-sars-cov-2](https://github.com/CDCgov/datasets-sars-cov-2) [![docker pulls](https://badgen.net/docker/pulls/staphb/datasets-sars-cov-2)](https://hub.docker.com/r/staphb/datasets-sars-cov-2) | | https://github.com/CDCgov/datasets-sars-cov-2 |
-| [dnaapler](https://hub.docker.com/r/staphb/dnaapler) [![docker pulls](https://badgen.net/docker/pulls/staphb/dnaapler)](https://hub.docker.com/r/staphb/dnaapler) | | https://github.com/gbouras13/dnaapler |
-| [dragonflye](https://hub.docker.com/r/staphb/dragonflye) [![docker pulls](https://badgen.net/docker/pulls/staphb/dragonflye)](https://hub.docker.com/r/staphb/dragonflye) | 1.0.14 [1.1.1](dragonflye/1.1.1/) | https://github.com/rpetit3/dragonflye |
-| [DSK](https://hub.docker.com/r/staphb/dsk) [![docker pulls](https://badgen.net/docker/pulls/staphb/dsk)](https://hub.docker.com/r/staphb/dsk) | | https://gatb.inria.fr/software/dsk/ |
+| [diamond](https://github.com/bbuchfink/diamond) [![docker pulls](https://badgen.net/docker/pulls/staphb/diamond)](https://hub.docker.com/r/staphb/diamond) | | https://github.com/bbuchfink/diamond|
+| [dnaapler](https://hub.docker.com/r/staphb/dnaapler) [![docker pulls](https://badgen.net/docker/pulls/staphb/dnaapler)](https://hub.docker.com/r/staphb/dnaapler) | [0.4.0](dnaapler/0.4.0/) [0.5.0](dnaapler/0.5.0/) [0.5.1](dnaapler/0.5.1/) [0.7.0](dnaapler/0.7.0/) [0.8.0](dnaapler/0.8.0/) | https://github.com/gbouras13/dnaapler |
+| [dragonflye](https://hub.docker.com/r/staphb/dragonflye) [![docker pulls](https://badgen.net/docker/pulls/staphb/dragonflye)](https://hub.docker.com/r/staphb/dragonflye) | [1.0.14](./dragonflye/1.0.14/) [1.1.1](./dragonflye/1.1.1/) [1.1.2](./dragonflye/1.1.2/) [1.2.0](./dragonflye/1.2.0/) [1.2.1](./dragonflye/1.2.1/) | https://github.com/rpetit3/dragonflye |
+| [Dr. PRG ](https://hub.docker.com/r/staphb/drprg) [![docker pulls](https://badgen.net/docker/pulls/staphb/drprg)](https://hub.docker.com/r/staphb/drprg) | | https://mbh.sh/drprg/ |
+| [DSK](https://hub.docker.com/r/staphb/dsk) [![docker pulls](https://badgen.net/docker/pulls/staphb/dsk)](https://hub.docker.com/r/staphb/dsk) | [0.0.100](./dsk/0.0.100/) [2.3.3](./dsk/2.3.3/) | https://gatb.inria.fr/software/dsk/ |
+| [el_gato](https://hub.docker.com/r/staphb/elgato) [![docker pulls](https://badgen.net/docker/pulls/staphb/elgato)](https://hub.docker.com/r/staphb/elgato) | [1.15.2](./elgato/1.15.2) [1.18.2](./elgato/1.18.2) [1.19.0](./elgato/1.19.0) | https://github.com/appliedbinf/el_gato |
| [emboss](https://hub.docker.com/r/staphb/emboss) [![docker pulls](https://badgen.net/docker/pulls/staphb/emboss)](https://hub.docker.com/r/staphb/emboss) | | http://emboss.sourceforge.net |
| [emmtyper](https://hub.docker.com/r/staphb/emmtyper) [![docker pulls](https://badgen.net/docker/pulls/staphb/emmtyper)](https://hub.docker.com/r/staphb/emmtyper) | | https://github.com/MDU-PHL/emmtyper |
| [emm-typing-tool](https://hub.docker.com/r/staphb/emm-typing-tool) [![docker pulls](https://badgen.net/docker/pulls/staphb/emm-typing-tool)](https://hub.docker.com/r/staphb/emm-typing-tool) | | https://github.com/phe-bioinformatics/emm-typing-tool |
| [EToKi](https://hub.docker.com/r/staphb/etoki) [![docker pulls](https://badgen.net/docker/pulls/staphb/etoki)](https://hub.docker.com/r/staphb/etoki) | | https://github.com/zheminzhou/EToKi |
| [FastANI](https://hub.docker.com/r/staphb/fastani) [![docker pulls](https://badgen.net/docker/pulls/staphb/fastani)](https://hub.docker.com/r/staphb/fastani) | 1.1 1.32 1.33 1.33 + RGDv2 [1.34](fastani/1.34) [1.34 + RGDv2](fastani/1.34-RGDV2/) | https://github.com/ParBLiSS/FastANI |
+| [fasten](https://hub.docker.com/r/staphb/fasten) [![docker pulls](https://badgen.net/docker/pulls/staphb/fasten)](https://hub.docker.com/r/staphb/fasten) | [0.7.2](./fasten/0.7.2) [0.8.1](./fasten/0.8.1/) | https://github.com/lskatz/fasten |
| [Fastp](https://hub.docker.com/r/staphb/fastp) [![docker pulls](https://badgen.net/docker/pulls/staphb/fastp)](https://hub.docker.com/r/staphb/fastp) | 0.23.2 [0.23.4](fastp/0.23.4/) | http://opengene.org/fastp/ https://github.com/OpenGene/fastp |
| [FastTree](https://hub.docker.com/r/staphb/fasttree) [![docker pulls](https://badgen.net/docker/pulls/staphb/fasttree)](https://hub.docker.com/r/staphb/fasttree) | | http://www.microbesonline.org/fasttree/ |
| [FastQC](https://hub.docker.com/r/staphb/fastqc) [![docker pulls](https://badgen.net/docker/pulls/staphb/fastqc)](https://hub.docker.com/r/staphb/fastqc) | | https://www.bioinformatics.babraham.ac.uk/projects/fastqc/ https://github.com/s-andrews/FastQC |
@@ -149,112 +160,141 @@ To learn more about the docker pull rate limits and the open source software pro
| [Freebayes](https://hub.docker.com/r/staphb/freebayes) [![docker pulls](https://badgen.net/docker/pulls/staphb/freebayes)](https://hub.docker.com/r/staphb/freebayes) | | https://github.com/freebayes/freebayes |
| [Filtlong](https://hub.docker.com/r/staphb/filtlong) [![docker pulls](https://badgen.net/docker/pulls/staphb/filtlong)](https://hub.docker.com/r/staphb/filtlong) | | https://github.com/rrwick/filtlong |
| [FLASH](https://hub.docker.com/r/staphb/flash) [![docker pulls](https://badgen.net/docker/pulls/staphb/flash)](https://hub.docker.com/r/staphb/flash) | | http://ccb.jhu.edu/software/FLASH |
-| [Flye](https://hub.docker.com/r/staphb/flye) [![docker pulls](https://badgen.net/docker/pulls/staphb/flye)](https://hub.docker.com/r/staphb/flye) | | https://github.com/fenderglass/Flye |
-| [Freyja](https://hub.docker.com/r/staphb/freyja) [![docker pulls](https://badgen.net/docker/pulls/staphb/freyja)](https://hub.docker.com/r/staphb/freyja) | 1.2 1.2.1 1.3.1 1.3.2 1.3.4 1.3.7 1.3.8 1.3.9 1.3.10 1.3.11 1.3.12 1.4.2 [1.4.3](freyja/1.4.3/) [1.4.4](freyja/1.4.4/) [1.4.5](freyja/1.4.5/) | https://github.com/andersen-lab/Freyja |
+| [Flye](https://hub.docker.com/r/staphb/flye) [![docker pulls](https://badgen.net/docker/pulls/staphb/flye)](https://hub.docker.com/r/staphb/flye) | [2.5](flye/2.5/) [2.7](flye/2.7/) [2.8](flye/2.8/) [2.9](flye/2.9/) [2.9.1](flye/2.9.1/) [2.9.2](flye/2.9.2/) [2.9.3](flye/2.9.3/) [2.9.4](flye/2.9.4/) | https://github.com/fenderglass/Flye |
+| [Freyja](https://hub.docker.com/r/staphb/freyja) [![docker pulls](https://badgen.net/docker/pulls/staphb/freyja)](https://hub.docker.com/r/staphb/freyja) | [1.2](./freyja/1.2/) [1.2.1](./freyja/1.2.1/) [1.3.1](./freyja/1.3.1/) [1.3.2](./freyja/1.3.2/) [1.3.4](./freyja/1.3.4/) [1.3.7](./freyja/1.3.7/) [1.3.8](./freyja/1.3.8/) [1.3.9](./freyja/1.3.9/) [1.3.10](./freyja/1.3.10/) [1.3.11](./freyja/1.3.11/) [1.3.12](./freyja/1.3.12/) [1.4.2](./freyja/1.4.2/) [1.4.3](freyja/1.4.3/) [1.4.4](freyja/1.4.4/) [1.4.5](freyja/1.4.5/) [1.4.7](freyja/1.4.7/) [1.4.8](freyja/1.4.8/) [1.4.9](freyja/1.4.9/) [1.5.0](freyja/1.5.0/) [1.5.1](freyja/1.5.1/) | https://github.com/andersen-lab/Freyja |
| [GAMBIT](https://hub.docker.com/r/staphb/gambit) [![docker pulls](https://badgen.net/docker/pulls/staphb/gambit)](https://hub.docker.com/r/staphb/gambit) | | https://github.com/jlumpe/gambit |
| [GAMMA](https://hub.docker.com/r/staphb/gamma) [![docker pulls](https://badgen.net/docker/pulls/staphb/gamma)](https://hub.docker.com/r/staphb/gamma) | | https://github.com/rastanton/GAMMA/ |
-| [gfastats](https://hub.docker.com/r/staphb/gfastats) [![docker pulls](https://badgen.net/docker/pulls/staphb/gfastats)](https://hub.docker.com/r/staphb/gfastats) | | https://github.com/vgl-hub/gfastats |
-| [hmmer](https://hub.docker.com/r/staphb/hmmer) [![docker pulls](https://badgen.net/docker/pulls/staphb/hmmer)](https://hub.docker.com/r/staphb/hmmer) | [3.3](hmmer/3.3/) [3.3.2](hmmer/3.3.2/) | http://hmmer.org/ |
+| [GenoFLU](https://hub.docker.com/r/staphb/genoflu) [![docker pulls](https://badgen.net/docker/pulls/staphb/genoflu)]() | | https://github.com/USDA-VS/GenoFLU |
+| [geNomad](https://hub.docker.com/r/staphb/genomad) [![docker pulls](https://badgen.net/docker/pulls/staphb/genomad)](https://hub.docker.com/r/staphb/genomad) | [1.7.4](./genomad/1.7.4/) [1.8.0](./genomad/1.8.0/) | https://github.com/apcamargo/genomad |
+| [GenoVi](https://hub.docker.com/r/staphb/genovi) [![docker pulls](https://badgen.net/docker/pulls/staphb/genovi)](https://hub.docker.com/r/staphb/genovi) | [0.2.16](./genovi/0.2.16/) | https://github.com/robotoD/GenoVi |
+| [gfastats](https://hub.docker.com/r/staphb/gfastats) [![docker pulls](https://badgen.net/docker/pulls/staphb/gfastats)](https://hub.docker.com/r/staphb/gfastats) | [1.3.6](./gfastats/1.3.6/) [1.3.7](./gfastats/1.3.7/) | https://github.com/vgl-hub/gfastats |
+| [Gubbins](https://hub.docker.com/r/staphb/gubbins) [![docker pulls](https://badgen.net/docker/pulls/staphb/gubbins)](https://hub.docker.com/r/staphb/gubbins) | [3.3.3](./gubbins/3.3.3/) [3.3.4](./gubbins/3.3.4/) [3.3.5](./gubbins/3.3.5/) | https://github.com/nickjcroucher/gubbins |
+| [heatcluster](https://hub.docker.com/r/staphb/heatcluster) [![docker pulls](https://badgen.net/docker/pulls/staphb/heatcluster)](https://hub.docker.com/r/staphb/heatcluster) | [1.0.2c](./heatcluster/1.0.2c/) | https://github.com/DrB-S/heatcluster/tree/main |
+| [hmmer](https://hub.docker.com/r/staphb/hmmer) [![docker pulls](https://badgen.net/docker/pulls/staphb/hmmer)](https://hub.docker.com/r/staphb/hmmer) | [3.3](hmmer/3.3/) [3.3.2](hmmer/3.3.2/) [3.4](./hmmer/3.4/) | http://hmmer.org/ |
| [homopolish](https://hub.docker.com/r/staphb/homopolish) [![docker pulls](https://badgen.net/docker/pulls/staphb/homopolish)](https://hub.docker.com/r/staphb/homopolish) | | https://github.com/ythuang0522/homopolish/ |
-| [htslib](https://hub.docker.com/r/staphb/htslib) [![docker pulls](https://badgen.net/docker/pulls/staphb/htslib)](https://hub.docker.com/r/staphb/htslib) | 1.14 1.15 1.16 1.17 [1.18](htslib/1.18/) | https://www.htslib.org/ |
+| [htslib](https://hub.docker.com/r/staphb/htslib) [![docker pulls](https://badgen.net/docker/pulls/staphb/htslib)](https://hub.docker.com/r/staphb/htslib) | [1.14](./htslib/1.14) [1.15](./htslib/1.15) [1.16](./htslib/1.16) [1.17](./htslib/1.17) [1.18](./htslib/1.18/) [1.19](./htslib/1.19/) [1.20](./htslib/1.20/) [1.20.c](./htslib/1.20.c/) | https://www.htslib.org/ |
| [iqtree](https://hub.docker.com/r/staphb/iqtree/) [![docker pulls](https://badgen.net/docker/pulls/staphb/iqtree)](https://hub.docker.com/r/staphb/iqtree) | | http://www.iqtree.org/ |
-| [iqtree2](https://hub.docker.com/r/staphb/iqtree2/) [![docker pulls](https://badgen.net/docker/pulls/staphb/iqtree2)](https://hub.docker.com/r/staphb/iqtree2) | 2.1.2 2.2.2.2 [2.2.2.6](iqtree2/2.2.2.6/) | http://www.iqtree.org/ |
-| [IRMA](https://hub.docker.com/r/staphb/irma/) [![docker pulls](https://badgen.net/docker/pulls/staphb/irma)](https://hub.docker.com/r/staphb/irma) | | https://wonder.cdc.gov/amd/flu/irma/|
-| [iVar](https://hub.docker.com/r/staphb/ivar/) [![docker pulls](https://badgen.net/docker/pulls/staphb/ivar)](https://hub.docker.com/r/staphb/ivar) | 1.1 1.1 (+SARS-CoV2 reference) 1.2.1 1.2.1 (+SC2 ref) 1.2.2 (+SC2 ref and artic bedfiles) 1.3 1.3.1 1.3.2 1.4.1 1.4.2 | https://github.com/andersen-lab/ivar |
-| [Kaptive](https://hub.docker.com/r/staphb/kaptive/) [![docker pulls](https://badgen.net/docker/pulls/staphb/kaptive)](https://hub.docker.com/r/staphb/kaptive) | | https://github.com/katholt/Kaptive/ |
-| [Kleborate](https://hub.docker.com/r/staphb/kleborate/) [![docker pulls](https://badgen.net/docker/pulls/staphb/kleborate)](https://hub.docker.com/r/staphb/kleborate) | 2.0.4 2.1.0 2.2.0 2.3.2 [2.3.2-2023-05](kleborate/2.3.2-2023-05/README.md) | https://github.com/katholt/Kleborate/ https://github.com/katholt/Kaptive/ |
-| [kma](https://hub.docker.com/r/staphb/kma/) [![docker pulls](https://badgen.net/docker/pulls/staphb/kma)](https://hub.docker.com/r/staphb/kma) | 1.2.21 1.4.10 (no database) | https://bitbucket.org/genomicepidemiology/kma/ |
+| [iqtree2](https://hub.docker.com/r/staphb/iqtree2/) [![docker pulls](https://badgen.net/docker/pulls/staphb/iqtree2)](https://hub.docker.com/r/staphb/iqtree2) | 2.1.2 2.2.2.2 [2.2.2.6](iqtree2/2.2.2.6/) [2.2.2.7](iqtree2/2.2.2.7/) [2.3.1](iqtree2/2.3.1/) [2.3.4](iqtree2/2.3.4/) | http://www.iqtree.org/ |
+| [IPA](https://hub.docker.com/r/staphb/pbipa) [![docker pulls](https://badgen.net/docker/pulls/staphb/pbipa)](https://hub.docker.com/r/staphb/pbipa) | | https://github.com/PacificBiosciences/pbipa |
+| [IRMA](https://hub.docker.com/r/staphb/irma/) [![docker pulls](https://badgen.net/docker/pulls/staphb/irma)](https://hub.docker.com/r/staphb/irma) | 1.0.2 1.0.3 1.1.2 1.1.3 [1.1.4](./irma/1.1.4/) | https://wonder.cdc.gov/amd/flu/irma/|
+| [isPcr](https://users.soe.ucsc.edu/~kent/) [![docker pulls](https://badgen.net/docker/pulls/staphb/ispcr)](https://hub.docker.com/r/staphb/ispcr) | | https://users.soe.ucsc.edu/~kent/ |
+| [iVar](https://hub.docker.com/r/staphb/ivar/) [![docker pulls](https://badgen.net/docker/pulls/staphb/ivar)](https://hub.docker.com/r/staphb/ivar) | [1.1](./ivar/1.1/) [1.1 (+SARS-CoV2 reference)](./ivar/1.1-SC2/) [1.2.1](./ivar/1.2.1/) [1.2.1 (+SC2 ref)](./ivar/1.2.1-SC2/) [1.2.2 (+SC2 ref and artic bedfiles)](./ivar/1.2.2_artic20200528/) [1.3](./ivar/1.3/) [1.3.1](./ivar/1.3.1/) [1.3.2](./ivar/1.3.2/) [1.4.1](./ivar/1.4.1/) [1.4.2](./ivar/1.4.2/) [1.4.3](./ivar/1.4.3/) | https://github.com/andersen-lab/ivar |
+| [Jasmine](https://hub.docker.com/r/staphb/pbjasmine/) [![docker pulls](https://badgen.net/docker/pulls/staphb/pbjasmine)](https://hub.docker.com/r/staphb/pbjasmine) | [2.0.0](./pbjasmine/2.0.0/) | https://github.com/PacificBiosciences/jasmine |
+| [Kaptive](https://hub.docker.com/r/staphb/kaptive/) [![docker pulls](https://badgen.net/docker/pulls/staphb/kaptive)](https://hub.docker.com/r/staphb/kaptive) | [2.0.0](./kaptive/2.0.0/) [2.0.3](./kaptive/2.0.3/) [2.0.5](./kaptive/2.0.5/) [2.0.8](./kaptive/2.0.8/) | https://github.com/klebgenomics/Kaptive |
+| [Kleborate](https://hub.docker.com/r/staphb/kleborate/) [![docker pulls](https://badgen.net/docker/pulls/staphb/kleborate)](https://hub.docker.com/r/staphb/kleborate) | [2.0.4](./kleborate/2.0.4/) [2.1.0](./kleborate/2.1.0/) [2.2.0](./kleborate/2.3.2/) [2.3.2](./kleborate/2.3.2) [2.3.2-2023-05](kleborate/2.3.2-2023-05/) [2.4.1](kleborate/2.4.1/) | https://github.com/katholt/Kleborate/ https://github.com/katholt/Kaptive/ |
+| [kma](https://hub.docker.com/r/staphb/kma/) [![docker pulls](https://badgen.net/docker/pulls/staphb/kma)](https://hub.docker.com/r/staphb/kma) | 1.2.21 1.4.10 (no database) [1.4.14](./kma/1.4.14/) (no database) | https://bitbucket.org/genomicepidemiology/kma/ |
| [Kraken](https://hub.docker.com/r/staphb/kraken/) [![docker pulls](https://badgen.net/docker/pulls/staphb/kraken)](https://hub.docker.com/r/staphb/kraken) | 1.0 1.1.1 1.1.1 (no database) | https://github.com/DerrickWood/kraken |
| [Kraken2](https://hub.docker.com/r/staphb/kraken2/) [![docker pulls](https://badgen.net/docker/pulls/staphb/kraken2)](https://hub.docker.com/r/staphb/kraken2) | 2.0.8-beta (no database) 2.0.8-beta (MiniKraken2_v1_8GB db) 2.0.8-beta_hv (human + virus db) 2.0.9-beta (no db) 2.0.9-beta (Minikraken v2 RefSeq: bacteria, archaea, viral, and human 8GB db) 2.1.0 (no db) 2.1.1 (no db) 2.1.2 (no db) [2.1.3](kraken2/2.1.3/) (no db) | https://github.com/DerrickWood/kraken2 |
+| [KrakenUniq](https://hub.docker.com/r/staphb/krakenuniq/) [![docker pulls](https://badgen.net/docker/pulls/staphb/krakenuniq)](https://hub.docker.com/r/staphb/krakenuniq) | [1.0.4](./krakenuniq/1.0.4) (no database) | https://github.com/fbreitwieser/krakenuniq |
| [kSNP3](https://hub.docker.com/r/staphb/ksnp3/) [![docker pulls](https://badgen.net/docker/pulls/staphb/ksnp3)](https://hub.docker.com/r/staphb/ksnp3)| | https://sourceforge.net/projects/ksnp/ |
-| [kSNP4](https://hub.docker.com/r/staphb/ksnp4/) [![docker pulls](https://badgen.net/docker/pulls/staphb/ksnp4)](https://hub.docker.com/r/staphb/ksnp4)| | https://sourceforge.net/projects/ksnp/ |
+| [kSNP4](https://hub.docker.com/r/staphb/ksnp4/) [![docker pulls](https://badgen.net/docker/pulls/staphb/ksnp4)](https://hub.docker.com/r/staphb/ksnp4)| | https://sourceforge.net/projects/ksnp/ |
+| [label](https://hub.docker.com/r/staphb/label/) [![docker pulls](https://badgen.net/docker/pulls/staphb/label)](https://hub.docker.com/r/staphb/label)| | https://wonder.cdc.gov/amd/flu/label |
| [legsta](https://hub.docker.com/r/staphb/legsta/) [![docker pulls](https://badgen.net/docker/pulls/staphb/legsta)](https://hub.docker.com/r/staphb/legsta)| | https://github.com/tseemann/legsta |
| [liftoff](https://hub.docker.com/r/staphb/liftoff/) [![docker pulls](https://badgen.net/docker/pulls/staphb/liftoff)](https://hub.docker.com/r/staphb/liftoff)| | https://github.com/agshumate/Liftoff |
-| [longshot](https://hub.docker.com/r/staphb/longshot/) [![docker pulls](https://badgen.net/docker/pulls/staphb/longshot)](https://hub.docker.com/r/staphb/longshot)| | https://github.com/pjedge/longshot |
+| [lima](https://hub.docker.com/r/staphb/lima/) [![docker pulls](https://badgen.net/docker/pulls/staphb/lima)](https://hub.docker.com/r/staphb/lima)| [2.9.0](./lima/2.9.0/) [2.9.0+Rscripts](./lima/2.9.0+Rscripts/) | https://github.com/PacificBiosciences/barcoding |
+| [longshot](https://hub.docker.com/r/staphb/longshot/) [![docker pulls](https://badgen.net/docker/pulls/staphb/longshot)](https://hub.docker.com/r/staphb/longshot)| [0.4.5](longshot/0.4.5) [1.0.0](longshot/1.0.0/) | https://github.com/pjedge/longshot |
| [Lyve-SET (includes CG-Pipeline scripts and raxml)](https://hub.docker.com/r/staphb/lyveset/) [![docker pulls](https://badgen.net/docker/pulls/staphb/lyveset)](https://hub.docker.com/r/staphb/lyveset) | | https://github.com/lskatz/lyve-SET https://github.com/lskatz/CG-Pipeline |
-| [MAFFT](https://hub.docker.com/r/staphb/mafft/) [![docker pulls](https://badgen.net/docker/pulls/staphb/mafft)](https://hub.docker.com/r/staphb/mafft) | | https://mafft.cbrc.jp/alignment/software/ |
+| [MAFFT](https://hub.docker.com/r/staphb/mafft/) [![docker pulls](https://badgen.net/docker/pulls/staphb/mafft)](https://hub.docker.com/r/staphb/mafft) | [7.450](./mafft/7.450/) [7.475](./mafft/7.475/) [7.505](./mafft/7.505/) [7.520](./mafft/7.520/) [7.526](./mafft/7.526/) | https://mafft.cbrc.jp/alignment/software/ |
| [Mash](https://hub.docker.com/r/staphb/mash/) [![docker pulls](https://badgen.net/docker/pulls/staphb/mash)](https://hub.docker.com/r/staphb/mash) | | https://github.com/marbl/Mash |
-| [mashtree](https://hub.docker.com/r/staphb/mashtree) [![docker pulls](https://badgen.net/docker/pulls/staphb/mashtree)](https://hub.docker.com/r/staphb/mashtree) | | https://github.com/lskatz/mashtree |
+| [mashtree](https://hub.docker.com/r/staphb/mashtree) [![docker pulls](https://badgen.net/docker/pulls/staphb/mashtree)](https://hub.docker.com/r/staphb/mashtree) | [0.52.0](./mashtree/0.52.0/) [0.57.0](./mashtree/0.57.0/) [1.0.4](./mashtree/1.0.4/) [1.2.0](./mashtree/1.2.0/) [1.4.6](./mashtree/1.4.6/) | https://github.com/lskatz/mashtree |
| [MaSuRCA](https://hub.docker.com/r/staphb/masurca) [![docker pulls](https://badgen.net/docker/pulls/staphb/masurca)](https://hub.docker.com/r/staphb/masurca) | | https://github.com/alekseyzimin/masurca |
| [medaka](https://hub.docker.com/r/staphb/medaka) [![docker pulls](https://badgen.net/docker/pulls/staphb/medaka)](https://hub.docker.com/r/staphb/medaka) | | https://github.com/nanoporetech/medaka |
-| [metaphlan](https://hub.docker.com/r/staphb/metaphlan) [![docker pulls](https://badgen.net/docker/pulls/staphb/metaphlan)](https://hub.docker.com/r/staphb/metaphlan) | 3.0.3-no-db (no database) 3.0.3 (~3GB db) | https://github.com/biobakery/MetaPhlAn/tree/3.0 |
+| [metaphlan](https://hub.docker.com/r/staphb/metaphlan) [![docker pulls](https://badgen.net/docker/pulls/staphb/metaphlan)](https://hub.docker.com/r/staphb/metaphlan) | [3.0.3-no-db (no database)](./metaphlan/3.0.3-no-db/) [3.0.3 (~3GB db)](./metaphlan/3.0.3/) [4.1.0](./metaphlan/4.1.0/) (no database) [4.1.1](./metaphlan/4.1.1/) (no database) | https://github.com/biobakery/MetaPhlAn |
| [MIDAS](https://hub.docker.com/r/staphb/midas) [![docker pulls](https://badgen.net/docker/pulls/staphb/midas)](https://hub.docker.com/r/staphb/midas) | 1.3.2 (no database) | https://github.com/snayfach/MIDAS |
-| [minimap2](https://hub.docker.com/r/staphb/minimap2) [![docker pulls](https://badgen.net/docker/pulls/staphb/minimap2)](https://hub.docker.com/r/staphb/minimap2) | 2.17 2.18 2.21 2.22 2.23 2.24 2.25 | https://github.com/lh3/minimap2 |
+| [minimap2](https://hub.docker.com/r/staphb/minimap2) [![docker pulls](https://badgen.net/docker/pulls/staphb/minimap2)](https://hub.docker.com/r/staphb/minimap2) | 2.17 2.18 2.21 2.22 2.23 2.24 2.25 [2.26](./minimap2/2.26) [2.27](./minimap2/2.27/) li>[2.28](./minimap2/2.28/) | https://github.com/lh3/minimap2 |
| [minipolish](https://hub.docker.com/r/staphb/minipolish) [![docker pulls](https://badgen.net/docker/pulls/staphb/minipolish)](https://hub.docker.com/r/staphb/minipolish) | | https://github.com/rrwick/Minipolish |
-| [mlst](https://hub.docker.com/r/staphb/mlst) [![docker pulls](https://badgen.net/docker/pulls/staphb/mlst)](https://hub.docker.com/r/staphb/mlst) | 2.16.2 2.17.6 2.19.0 2.22.0 2.22.1 2.23.0 [2.23.0-2023-07 (databases updated July 2023)](mlst/2.23.0-2023-07/) [2.23.0-2023-08 (databases updated Aug 2023)](mlst/2.23.0-2023-08/) | https://github.com/tseemann/mlst |
+| [mlst](https://hub.docker.com/r/staphb/mlst) [![docker pulls](https://badgen.net/docker/pulls/staphb/mlst)](https://hub.docker.com/r/staphb/mlst) | 2.16.2 2.17.6 2.19.0 2.22.0 2.22.1 2.23.0 [2.23.0-2023-07 (databases updated July 2023)](mlst/2.23.0-2023-07/) [2.23.0-2023-08 (databases updated Aug 2023)](mlst/2.23.0-2023-08/) [2.23.0-2024-01 (databases updated Jan 2024)](mlst/2.23.0-2024-01/) [2.23.0-2024-03 (databases updated March 2024)](mlst/2.23.0-2024-03/) | https://github.com/tseemann/mlst |
| [Mugsy](https://hub.docker.com/r/staphb/mugsy) [![docker pulls](https://badgen.net/docker/pulls/staphb/mugsy)](https://hub.docker.com/r/staphb/mugsy) | | http://mugsy.sourceforge.net/ |
-| [MultiQC](https://hub.docker.com/r/staphb/multiqc) [![docker pulls](https://badgen.net/docker/pulls/staphb/multiqc)](https://hub.docker.com/r/staphb/multiqc) | | https://github.com/ewels/MultiQC |
+| [MultiQC](https://hub.docker.com/r/staphb/multiqc) [![docker pulls](https://badgen.net/docker/pulls/staphb/multiqc)](https://hub.docker.com/r/staphb/multiqc) | [1.7](./multiqc/1.7/) [1.8](./multiqc/1.8/) [1.18](./multiqc/1.18/) [1.19](./multiqc/1.19/) [1.22.2](./multiqc/1.22.2/) [1.22.3](./multiqc/1.22.3/) | https://github.com/MultiQC/MultiQC |
| [Mummer](https://hub.docker.com/r/staphb/mummer) [![docker pulls](https://badgen.net/docker/pulls/staphb/mummer)](https://hub.docker.com/r/staphb/mummer) | 4.0.0 4.0.0 + RGDv2 4.0.0 + RGDv2 + gnuplot | https://github.com/mummer4/mummer |
-| [Mykrobe + Genotyphi + sonneityping](https://hub.docker.com/r/staphb/mykrobe) [![docker pulls](https://badgen.net/docker/pulls/staphb/mykrobe)](https://hub.docker.com/r/staphb/mykrobe) | 0.11.0 (Mykrobe) & 1.9.1 (Genotyphi) 0.12.1 (Mykrobe) & 1.9.1 (Genotyphi) & v20210201 (sonneityping) 0.12.1 (Mykrobe) & 2.0 (Genotyphi) & v20210201 (sonneityping) [0.12.2 (Mykrobe) & 2.0 (Genotyphi) & v20210201 (sonneityping)](mykrobe/0.12.2/) | https://github.com/Mykrobe-tools/mykrobe https://github.com/typhoidgenomics/genotyphi https://github.com/katholt/sonneityping |
-| [NanoPlot](https://hub.docker.com/r/staphb/nanoplot) [![docker pulls](https://badgen.net/docker/pulls/staphb/nanoplot)](https://hub.docker.com/r/staphb/nanoplot) | 1.27.0 1.29.0 1.30.1 1.32.0 1.33.0 1.40.0 [1.41.6](nanoplot/1.41.6/) | https://github.com/wdecoster/NanoPlot |
+| [Mykrobe + Genotyphi + sonneityping](https://hub.docker.com/r/staphb/mykrobe) [![docker pulls](https://badgen.net/docker/pulls/staphb/mykrobe)](https://hub.docker.com/r/staphb/mykrobe) | 0.11.0 (Mykrobe) & 1.9.1 (Genotyphi) 0.12.1 (Mykrobe) & 1.9.1 (Genotyphi) & v20210201 (sonneityping) 0.12.1 (Mykrobe) & 2.0 (Genotyphi) & v20210201 (sonneityping) [0.12.2 (Mykrobe) & 2.0 (Genotyphi) & v20210201 (sonneityping)](mykrobe/0.12.2/) [0.13.0](./mykrobe/0.13.0) | https://github.com/Mykrobe-tools/mykrobe https://github.com/typhoidgenomics/genotyphi https://github.com/katholt/sonneityping |
+| [NanoPlot](https://hub.docker.com/r/staphb/nanoplot) [![docker pulls](https://badgen.net/docker/pulls/staphb/nanoplot)](https://hub.docker.com/r/staphb/nanoplot) | [1.27.0](./nanoplot/1.27.0/) [1.29.0](./nanoplot/1.29.0/) [1.30.1](./nanoplot/1.30.1/) [1.32.0](./nanoplot/1.32.0/) [1.33.0](./nanoplot/1.33.0/) [1.40.0](./nanoplot/1.40.0/) [1.41.6](./nanoplot/1.41.6/) [1.42.0](./nanoplot/1.42.0/) | https://github.com/wdecoster/NanoPlot |
| [ngmaster](https://hub.docker.com/r/staphb/ngmaster) [![docker pulls](https://badgen.net/docker/pulls/staphb/ngmaster)](https://hub.docker.com/r/staphb/ngmaster) | | https://github.com/MDU-PHL/ngmaster |
-| [NCBI Datasets](https://hub.docker.com/r/staphb/ncbi-datasets) [![docker pulls](https://badgen.net/docker/pulls/staphb/ncbi-datasets)](https://hub.docker.com/r/staphb/ncbi-datasets) | Click to see all datasets versions **datasets versions** 13.31.0 13.35.0 13.43.2 14.0.0 14.3.0 14.7.0 14.13.2 14.20.0 [14.27.0](ncbi-datasets/14.27.0/) [15.1.0](ncbi-datasets/15.1.0/) [15.2.0](ncbi-datasets/15.2.0/) [15.11.0](ncbi-datasets/15.11.0/) [15.27.1](ncbi-datasets/15.27.1/) | [https://github.com/ncbi/datasets](https://github.com/ncbi/datasets) [https://www.ncbi.nlm.nih.gov/datasets/docs/v1/](https://www.ncbi.nlm.nih.gov/datasets/docs/v1/) |
-| [NCBI AMRFinderPlus](https://hub.docker.com/r/staphb/ncbi-amrfinderplus) [![docker pulls](https://badgen.net/docker/pulls/staphb/ncbi-amrfinderplus)](https://hub.docker.com/r/staphb/ncbi-amrfinderplus) | **AMRFinderPlus & database verion** Click to see AMRFinderplus v3.11.4 and older versions! 3.1.1b 3.8.4 3.8.28 3.9.3 3.9.8 3.10.1 3.10.5 3.10.16 3.10.20 3.10.24 3.10.30 3.10.36 3.10.42 3.11.2 & 2022-12-19.1 [3.11.2 & 2023-02-23.1](ncbi-amrfinderplus/3.11.2-2023-02-23.1/) [3.11.4 & 2023-02-23.1](ncbi-amrfinderplus/3.11.4-2023-02-23.1/) [3.11.8 & 2023-02-23.1](ncbi-amrfinderplus/3.11.8-2023-02-23.1/) [3.11.11 & 2023-04-17.1](ncbi-amrfinderplus/3.11.11-2023-04-17.1) [3.11.14 & 2023-04-17.1](ncbi-amrfinderplus/3.11.14-2023-04-17.1/) [3.11.17 & 2023-07-13.2](ncbi-amrfinderplus/3.11.17-2023-07-13.2/) [3.11.18 & 2023-08-08.2](ncbi-amrfinderplus/3.11.18-2023-08-08.2/) [3.11.20 & 2023-09-26.1](ncbi-amrfinderplus/3.11.20-2023-09-26.1/) | [https://github.com/ncbi/amr](https://github.com/ncbi/amr) |
-| [NCBI table2asn](https://hub.docker.com/r/staphb/ncbi-table2asn) [![docker pulls](https://badgen.net/docker/pulls/staphb/ncbi-table2asn)](https://hub.docker.com/r/staphb/ncbi-table2asn) | | [https://www.ncbi.nlm.nih.gov/genbank/table2asn/](https://www.ncbi.nlm.nih.gov/genbank/table2asn/) [https://ftp.ncbi.nlm.nih.gov/asn1-converters/versions/2022-06-14/by_program/table2asn/](https://ftp.ncbi.nlm.nih.gov/asn1-converters/versions/2022-06-14/by_program/table2asn/) |
-| [OrthoFinder](https://hub.docker.com/r/staphb/OrthoFinder) [![docker pulls](https://badgen.net/docker/pulls/staphb/orthofinder)](https://hub.docker.com/r/staphb/orthofinder) | | https://github.com/davidemms/OrthoFinder |
-| [Panaroo](https://hub.docker.com/r/staphb/panaroo) [![docker pulls](https://badgen.net/docker/pulls/staphb/panaroo)](https://hub.docker.com/r/staphb/panaroo) | | https://github.com/gtonkinhill/panaroo |
-| [Pangolin](https://hub.docker.com/r/staphb/pangolin) [![docker pulls](https://badgen.net/docker/pulls/staphb/pangolin)](https://hub.docker.com/r/staphb/pangolin) | Click to see Pangolin v4.2 and older versions! **Pangolin version & pangoLEARN data release date** 1.1.14 2.0.4 & 2020-07-20 2.0.5 & 2020-07-20 2.1.1 & 2020-12-17 2.1.3 & 2020-12-17 2.1.6 & 2021-01-06 2.1.7 & 2021-01-11 2.1.7 & 2021-01-20 2.1.8 & 2021-01-22 2.1.10 & 2021-02-01 2.1.11 & 2021-02-01 2.1.11 & 2021-02-05 2.2.1 & 2021-02-06 2.2.2 & 2021-02-06 2.2.2 & 2021-02-11 2.2.2 & 2021-02-12 2.3.0 & 2021-02-12 2.3.0 & 2021-02-18 2.3.0 & 2021-02-21 2.3.2 & 2021-02-21 2.3.3 & 2021-03-16 2.3.4 & 2021-03-16 2.3.5 & 2021-03-16 2.3.6 & 2021-03-16 2.3.6 & 2021-03-29 2.3.8 & 2021-04-01 2.3.8 & 2021-04-14 2.3.8 & 2021-04-21 2.3.8 & 2021-04-23 2.4 & 2021-04-28 2.4.1 & 2021-04-28 2.4.2 & 2021-04-28 2.4.2 & 2021-05-10 2.4.2 & 2021-05-11 2.4.2 & 2021-05-19 3.0.5 & 2021-06-05 3.1.3 & 2021-06-15 3.1.5 & 2021-06-15 3.1.5 & 2021-07-07-2 3.1.7 & 2021-07-09 3.1.8 & 2021-07-28 3.1.10 & 2021-07-28 3.1.11 & 2021-08-09 3.1.11 & 2021-08-24 3.1.11 & 2021-09-17 3.1.14 & 2021-09-28 3.1.14 & 2021-10-13 3.1.16 & 2021-10-18 3.1.16 & 2021-11-04 3.1.16 & 2021-11-09 3.1.16 & 2021-11-18 3.1.16 & 2021-11-25 3.1.17 & 2021-11-25 3.1.17 & 2021-12-06 3.1.17 & 2022-01-05 3.1.18 & 2022-01-20 3.1.19 & 2022-01-20 3.1.20 & 2022-02-02 3.1.20 & 2022-02-28 **Pangolin version & pangolin-data version** 4.0 & 1.2.133 4.0.1 & 1.2.133 4.0.2 & 1.2.133 4.0.3 & 1.2.133 4.0.4 & 1.2.133 4.0.5 & 1.3 4.0.6 & 1.6 4.0.6 & 1.8 4.0.6 & 1.9 4.1.1 & 1.11 4.1.2 & 1.12 4.1.2 & 1.13 4.1.2 & 1.14 4.1.3 & 1.15.1 4.1.3 & 1.16 4.1.3 & 1.17 4.2 & 1.18 4.2 & 1.18.1 4.2 & 1.18.1.1 4.2 & 1.19 **Pangolin version & pangolin-data version** [4.3 & 1.20](pangolin/4.3-pdata-1.20/) [4.3 & 1.21](pangolin/4.3-pdata-1.21/) [4.3.1 & 1.22](pangolin/4.3.1-pdata-1.22/) [4.3.1 & 1.23](pangolin/4.3.1-pdata-1.23/) [4.3.1 & 1.23.1](pangolin/4.3.1-pdata-1.23.1/) | https://github.com/cov-lineages/pangolin https://github.com/cov-lineages/pangoLEARN https://github.com/cov-lineages/pango-designation https://github.com/cov-lineages/scorpio https://github.com/cov-lineages/constellations https://github.com/cov-lineages/lineages (archived) https://github.com/hCoV-2019/pangolin (archived) |
+| [NCBI Datasets](https://hub.docker.com/r/staphb/ncbi-datasets) [![docker pulls](https://badgen.net/docker/pulls/staphb/ncbi-datasets)](https://hub.docker.com/r/staphb/ncbi-datasets) | Click to see all datasets versions **datasets versions** [13.31.0](./ncbi-datasets/13.31.0/) [13.35.0](./ncbi-datasets/13.35.0/) [13.43.2](./ncbi-datasets/13.43.2/) [14.0.0](./ncbi-datasets/14.0.0/) [14.3.0](./ncbi-datasets/14.3.0/) [14.7.0](./ncbi-datasets/14.7.0/) [14.13.2](./ncbi-datasets/14.13.2/) [14.20.0](./ncbi-datasets/14.20.0/) [14.27.0](ncbi-datasets/14.27.0/) [15.1.0](ncbi-datasets/15.1.0/) [15.2.0](ncbi-datasets/15.2.0/) [15.11.0](ncbi-datasets/15.11.0/) [15.27.1](ncbi-datasets/15.27.1/) [15.31.0](ncbi-datasets/15.31.1/) [16.2.0](ncbi-datasets/16.2.0/) [16.8.1](./ncbi-datasets/16.8.1/) [16.10.3](./ncbi-datasets/16.10.3/) [16.15.0](./ncbi-datasets/16.15.0/) [16.22.1](./ncbi-datasets/16.22.1/) | [https://github.com/ncbi/datasets](https://github.com/ncbi/datasets) [https://www.ncbi.nlm.nih.gov/datasets/docs/v1/](https://www.ncbi.nlm.nih.gov/datasets/docs/v1/) |
+| [NCBI AMRFinderPlus](https://hub.docker.com/r/staphb/ncbi-amrfinderplus) [![docker pulls](https://badgen.net/docker/pulls/staphb/ncbi-amrfinderplus)](https://hub.docker.com/r/staphb/ncbi-amrfinderplus) | **AMRFinderPlus & database verion** Click to see AMRFinderplus v3.11.4 and older versions! 3.1.1b 3.8.4 3.8.28 3.9.3 3.9.8 3.10.1 3.10.5 3.10.16 3.10.20 3.10.24 3.10.30 3.10.36 3.10.42 3.11.2 & 2022-12-19.1 [3.11.2 & 2023-02-23.1](ncbi-amrfinderplus/3.11.2-2023-02-23.1/) [3.11.4 & 2023-02-23.1](ncbi-amrfinderplus/3.11.4-2023-02-23.1/) [3.11.8 & 2023-02-23.1](ncbi-amrfinderplus/3.11.8-2023-02-23.1/) [3.11.11 & 2023-04-17.1](ncbi-amrfinderplus/3.11.11-2023-04-17.1) [3.11.14 & 2023-04-17.1](ncbi-amrfinderplus/3.11.14-2023-04-17.1/) [3.11.17 & 2023-07-13.2](ncbi-amrfinderplus/3.11.17-2023-07-13.2/) [3.11.18 & 2023-08-08.2](ncbi-amrfinderplus/3.11.18-2023-08-08.2/) [3.11.20 & 2023-09-26.1](ncbi-amrfinderplus/3.11.20-2023-09-26.1/) [3.11.26 & 2023-11-15.1](ncbi-amrfinderplus/3.11.26-2023-11-15.1/) [3.12.8 & 2024-01-31.1](ncbi-amrfinderplus/3.12.8-2024-01-31.1/) [3.12.8 & 2024-05-02.2](./ncbi-amrfinderplus/3.12.8-2024-05-02.2/) [3.12.8 & 2024-07-22.1](./ncbi-amrfinderplus/3.12.8-2024-07-22.1/) | [https://github.com/ncbi/amr](https://github.com/ncbi/amr) |
+| [NCBI table2asn](https://hub.docker.com/r/staphb/ncbi-table2asn) [![docker pulls](https://badgen.net/docker/pulls/staphb/ncbi-table2asn)](https://hub.docker.com/r/staphb/ncbi-table2asn) | [1.26.678](./ncbi-table2asn/1.26.678/) [1.28.943](./ncbi-table2asn/1.28.943/) [1.28.1021](./ncbi-table2asn/1021/) | [https://www.ncbi.nlm.nih.gov/genbank/table2asn/](https://www.ncbi.nlm.nih.gov/genbank/table2asn/) [https://ftp.ncbi.nlm.nih.gov/asn1-converters/versions/2022-06-14/by_program/table2asn/](https://ftp.ncbi.nlm.nih.gov/asn1-converters/versions/2022-06-14/by_program/table2asn/) |
+| [ONTime](https://hub.docker.com/r/staphb/ontime) [![docker pulls](https://badgen.net/docker/pulls/staphb/ontime)](https://hub.docker.com/r/staphb/ontime) | [0.2.3](ontime/0.2.3/) [0.3.1](ontime/0.3.1/) | https://github.com/mbhall88/ontime |
+| [OrthoFinder](https://hub.docker.com/r/staphb/orthofinder) [![docker pulls](https://badgen.net/docker/pulls/staphb/orthofinder)](https://hub.docker.com/r/staphb/orthofinder) | | https://github.com/davidemms/OrthoFinder |
+| [Panaroo](https://hub.docker.com/r/staphb/panaroo) [![docker pulls](https://badgen.net/docker/pulls/staphb/panaroo)](https://hub.docker.com/r/staphb/panaroo) | [1.2.10](panaroo/1.2.10/) [1.3.4](panaroo/1.3.4/) [1.5.0](./panaroo/1.5.0/) | (https://hub.docker.com/r/staphb/panaroo) |
+| [pango_aliasor](https://hub.docker.com/r/staphb/pango_aliasor) [![docker pulls](https://badgen.net/docker/pulls/staphb/pango_aliasor)](https://hub.docker.com/r/staphb/pango_aliasor) | [0.3.0](./pango_aliasor/0.3.0/) | https://github.com/corneliusroemer/pango_aliasor |
+| [Pangolin](https://hub.docker.com/r/staphb/pangolin) [![docker pulls](https://badgen.net/docker/pulls/staphb/pangolin)](https://hub.docker.com/r/staphb/pangolin) | Click to see Pangolin v4.2 and older versions! **Pangolin version & pangoLEARN data release date** 1.1.14 2.0.4 & 2020-07-20 2.0.5 & 2020-07-20 2.1.1 & 2020-12-17 2.1.3 & 2020-12-17 2.1.6 & 2021-01-06 2.1.7 & 2021-01-11 2.1.7 & 2021-01-20 2.1.8 & 2021-01-22 2.1.10 & 2021-02-01 2.1.11 & 2021-02-01 2.1.11 & 2021-02-05 2.2.1 & 2021-02-06 2.2.2 & 2021-02-06 2.2.2 & 2021-02-11 2.2.2 & 2021-02-12 2.3.0 & 2021-02-12 2.3.0 & 2021-02-18 2.3.0 & 2021-02-21 2.3.2 & 2021-02-21 2.3.3 & 2021-03-16 2.3.4 & 2021-03-16 2.3.5 & 2021-03-16 2.3.6 & 2021-03-16 2.3.6 & 2021-03-29 2.3.8 & 2021-04-01 2.3.8 & 2021-04-14 2.3.8 & 2021-04-21 2.3.8 & 2021-04-23 2.4 & 2021-04-28 2.4.1 & 2021-04-28 2.4.2 & 2021-04-28 2.4.2 & 2021-05-10 2.4.2 & 2021-05-11 2.4.2 & 2021-05-19 3.0.5 & 2021-06-05 3.1.3 & 2021-06-15 3.1.5 & 2021-06-15 3.1.5 & 2021-07-07-2 3.1.7 & 2021-07-09 3.1.8 & 2021-07-28 3.1.10 & 2021-07-28 3.1.11 & 2021-08-09 3.1.11 & 2021-08-24 3.1.11 & 2021-09-17 3.1.14 & 2021-09-28 3.1.14 & 2021-10-13 3.1.16 & 2021-10-18 3.1.16 & 2021-11-04 3.1.16 & 2021-11-09 3.1.16 & 2021-11-18 3.1.16 & 2021-11-25 3.1.17 & 2021-11-25 3.1.17 & 2021-12-06 3.1.17 & 2022-01-05 3.1.18 & 2022-01-20 3.1.19 & 2022-01-20 3.1.20 & 2022-02-02 3.1.20 & 2022-02-28 **Pangolin version & pangolin-data version** 4.0 & 1.2.133 4.0.1 & 1.2.133 4.0.2 & 1.2.133 4.0.3 & 1.2.133 4.0.4 & 1.2.133 4.0.5 & 1.3 4.0.6 & 1.6 4.0.6 & 1.8 4.0.6 & 1.9 4.1.1 & 1.11 4.1.2 & 1.12 4.1.2 & 1.13 4.1.2 & 1.14 4.1.3 & 1.15.1 4.1.3 & 1.16 4.1.3 & 1.17 4.2 & 1.18 4.2 & 1.18.1 4.2 & 1.18.1.1 4.2 & 1.19 **Pangolin version & pangolin-data version** [4.3 & 1.20](pangolin/4.3-pdata-1.20/) [4.3 & 1.21](pangolin/4.3-pdata-1.21/) [4.3.1 & 1.22](pangolin/4.3.1-pdata-1.22/) [4.3.1 & 1.23](pangolin/4.3.1-pdata-1.23/) [4.3.1 & 1.23.1](pangolin/4.3.1-pdata-1.23.1/) [4.3.1 & 1.23.1 with XDG_CACHE_HOME=/tmp](pangolin/4.3.1-pdata-1.23.1-1/) [4.3.1 & 1.24](pangolin/4.3.1-pdata-1.24/) [4.3.1 & 1.25.1](pangolin/4.3.1-pdata-1.25.1/) [4.3.1 & 1.26](pangolin/4.3.1-pdata-1.26/) [4.3.1 & 1.27](pangolin/4.3.1-pdata-1.27/) [4.3.1 & 1.28](pangolin/4.3.1-pdata-1.28/) [4.3.1 & 1.28.1](pangolin/4.3.1-pdata-1.28.1/) [4.3.1 & 1.29](pangolin/4.3.1-pdata-1.29/) | https://github.com/cov-lineages/pangolin https://github.com/cov-lineages/pangoLEARN https://github.com/cov-lineages/pango-designation https://github.com/cov-lineages/scorpio https://github.com/cov-lineages/constellations https://github.com/cov-lineages/lineages (archived) https://github.com/hCoV-2019/pangolin (archived) |
+| [panqc](https://hub.docker.com/r/staphb/panqc) [![docker pulls](https://badgen.net/docker/pulls/staphb/panqc)](https://hub.docker.com/r/staphb/panqc) | | https://github.com/maxgmarin/panqc/releases/tag/0.4.0 |
| [parallel-perl](https://hub.docker.com/r/staphb/parallel-perl) [![docker pulls](https://badgen.net/docker/pulls/staphb/parallel-perl)](https://hub.docker.com/r/staphb/parallel-perl) | | https://www.gnu.org/software/parallel |
-| [pasty](https://hub.docker.com/r/staphb/pasty) [![docker pulls](https://badgen.net/docker/pulls/staphb/pasty)](https://hub.docker.com/r/staphb/pasty) | 1.0.2 [1.0.3](pasty/1.0.3/) | https://github.com/rpetit3/pasty |
+| [parsnp](https://hub.docker.com/r/staphb/parsnp) [![docker pulls](https://badgen.net/docker/pulls/staphb/parsnp)](https://hub.docker.com/r/staphb/parsnp) | [1.5.6](./parsnp/1.5.6/) [2.0.4](./parsnp/2.0.4/) [2.0.5](./parsnp/2.0.5/) | https://github.com/marbl/parsnp |
+| [pasty](https://hub.docker.com/r/staphb/pasty) [![docker pulls](https://badgen.net/docker/pulls/staphb/pasty)](https://hub.docker.com/r/staphb/pasty) | 1.0.2 [1.0.3](pasty/1.0.3/) [2.2.1](./pasty/2.2.1/) | https://github.com/rpetit3/pasty |
+| [pbmm2](https://hub.docker.com/r/staphb/pbmm2) [![docker pulls](https://badgen.net/docker/pulls/staphb/pbmm2)](https://hub.docker.com/r/staphb/pbmm2) | [1.13.1](./pbmm2/1.13.1/) | https://github.com/PacificBiosciences/pbmm2 |
| [Pavian](https://hub.docker.com/r/staphb/pavian) [![docker pulls](https://badgen.net/docker/pulls/staphb/pavian)](https://hub.docker.com/r/staphb/pavian) | | https://github.com/fbreitwieser/pavian |
| [pbptyper](https://hub.docker.com/r/staphb/pbptyper) [![docker pulls](https://badgen.net/docker/pulls/staphb/pbptyper)](https://hub.docker.com/r/staphb/pbptyper) | | https://github.com/rpetit3/pbptyper |
+| [pbtk](https://hub.docker.com/r/staphb/pbtk) [![docker pulls](https://badgen.net/docker/pulls/staphb/pbtk)](https://hub.docker.com/r/staphb/pbtk) | | https://github.com/PacificBiosciences/pbtk |
| [Phyml](https://hub.docker.com/r/staphb/phyml) [![docker pulls](https://badgen.net/docker/pulls/staphb/phyml)](https://hub.docker.com/r/staphb/phyml) | | https://github.com/stephaneguindon/phyml |
+| [phyTreeViz](https://hub.docker.com/r/staphb/phytreeviz) [![docker pulls](https://badgen.net/docker/pulls/staphb/phytreeviz)](https://hub.docker.com/r/staphb/phytreeviz) | [0.1.0](./phytreeviz/0.1.0/) [0.2.0](./phytreeviz/0.2.0/) | https://github.com/moshi4/phyTreeViz/ |
| [Piggy](https://hub.docker.com/r/staphb/piggy) [![docker pulls](https://badgen.net/docker/pulls/staphb/piggy)](https://hub.docker.com/r/staphb/piggy) | | https://github.com/harry-thorpe/piggy |
| [Pilon](https://hub.docker.com/r/staphb/pilon) [![docker pulls](https://badgen.net/docker/pulls/staphb/pilon)](https://hub.docker.com/r/staphb/pilon) | | https://github.com/broadinstitute/pilon |
| [Piranha](https://hub.docker.com/r/staphb/piranha) [![docker pulls](https://badgen.net/docker/pulls/staphb/piranha)](https://hub.docker.com/r/staphb/piranha) | | https://github.com/polio-nanopore/piranha |
-| [PlasmidFinder](https://hub.docker.com/r/staphb/plasmidfinder) [![docker pulls](https://badgen.net/docker/pulls/staphb/plasmidfinder)](https://hub.docker.com/r/staphb/plasmidfinder) | | https://bitbucket.org/genomicepidemiology/plasmidfinder/src/master/ |
+| [PlasmidFinder](https://hub.docker.com/r/staphb/plasmidfinder) [![docker pulls](https://badgen.net/docker/pulls/staphb/plasmidfinder)](https://hub.docker.com/r/staphb/plasmidfinder) | [2.1.6](./plasmidfinder/2.1.6/) [2.1.6_2024-03-07](./plasmidfinder/2.1.6_2024-03-07/) | https://bitbucket.org/genomicepidemiology/plasmidfinder/src/master/ |
| [PlasmidSeeker](https://hub.docker.com/r/staphb/plasmidseeker) [![docker pulls](https://badgen.net/docker/pulls/staphb/plasmidseeker)](https://hub.docker.com/r/staphb/plasmidseeker) | | https://github.com/bioinfo-ut/PlasmidSeeker |
| [pmga](https://hub.docker.com/r/staphb/pmga/) [![docker pulls](https://badgen.net/docker/pulls/staphb/pmga)](https://hub.docker.com/r/staphb/pmga) | | https://github.com/rpetit3/pmga |
-| [polypolish](https://hub.docker.com/r/staphb/polypolish/) [![docker pulls](https://badgen.net/docker/pulls/staphb/polypolish)](https://hub.docker.com/r/staphb/polypolish) | | https://github.com/rrwick/Polypolish |
-| [PopPUNK](https://hub.docker.com/r/staphb/poppunk/) [![docker pulls](https://badgen.net/docker/pulls/staphb/poppunk)](https://hub.docker.com/r/staphb/poppunk) | | https://github.com/bacpop/PopPUNK |
+| [PolkaPox](https://hub.docker.com/r/staphb/polkapox/) [![docker pulls](https://badgen.net/docker/pulls/staphb/polkapox)](https://hub.docker.com/r/staphb/polkapox) | [1.0.0-beta](./polkapox/1.0.0-beta/) | https://github.com/CDCgov/polkapox |
+| [polypolish](https://hub.docker.com/r/staphb/polypolish/) [![docker pulls](https://badgen.net/docker/pulls/staphb/polypolish)](https://hub.docker.com/r/staphb/polypolish) | [0.5.0](./polypolish/0.5.0/) [0.6.0](./polypolish/0.6.0/) | https://github.com/rrwick/Polypolish |
+| [PopPUNK](https://hub.docker.com/r/staphb/poppunk/) [![docker pulls](https://badgen.net/docker/pulls/staphb/poppunk)](https://hub.docker.com/r/staphb/poppunk) | [2.4.0](./poppunk/2.4.0/) [2.5.0](./poppunk/2.5.0/) [2.6.0](./poppunk/2.6.0/) [2.6.2](./poppunk/2.6.2/) [2.6.3](./poppunk/2.6.3/) [2.6.5](./poppunk/2.6.5/) | https://github.com/bacpop/PopPUNK |
| [Porechop](https://hub.docker.com/r/staphb/porechop/) [![docker pulls](https://badgen.net/docker/pulls/staphb/porechop)](https://hub.docker.com/r/staphb/porechop) | | https://github.com/rrwick/Porechop |
+| [PPanGGOLiN](https://hub.docker.com/r/staphb/ppanggolin/) [![docker pulls](https://badgen.net/docker/pulls/staphb/ppanggolin)](https://hub.docker.com/r/staphb/ppanggolin) | [1.2.105](./ppanggolin/1.2.105/) [2.0.3](./ppanggolin/2.0.3/) [2.0.5](./ppanggolin/2.0.5/) | https://github.com/labgem/PPanGGOLiN |
| [Prokka](https://hub.docker.com/r/staphb/prokka/) [![docker pulls](https://badgen.net/docker/pulls/staphb/prokka)](https://hub.docker.com/r/staphb/prokka) | | https://github.com/tseemann/prokka |
-| [pyGenomeViz](https://hub.docker.com/r/staphb/pygenomeviz/) [![docker pulls](https://badgen.net/docker/pulls/staphb/pygenomeviz)](https://hub.docker.com/r/staphb/pygenomeviz) | 0.2.2 0.3.2 [0.4.2](pygenomeviz/0.4.2/) [0.4.3](pygenomeviz/0.4.3/) | https://github.com/moshi4/pyGenomeViz |
-| [QUAST](https://hub.docker.com/r/staphb/quast/) [![docker pulls](https://badgen.net/docker/pulls/staphb/quast)](https://hub.docker.com/r/staphb/quast) | 5.0.0 5.0.2 [5.2.0](./quast/5.2.0) | https://github.com/ablab/quast |
+| [pyCirclize](https://hub.docker.com/r/staphb/pycirclize/) [![docker pulls](https://badgen.net/docker/pulls/staphb/pycirclize)](https://hub.docker.com/r/staphb/pycirclize) | [1.0.0](pycirclize/1.0.0/) [1.2.0](./pycirclize/1.2.0/) [1.5.0](./pycirclize/1.5.0/) [1.6.0](./pycirclize/1.6.0/) | https://github.com/moshi4/pyCirclize |
+| [pyGenomeViz](https://hub.docker.com/r/staphb/pygenomeviz/) [![docker pulls](https://badgen.net/docker/pulls/staphb/pygenomeviz)](https://hub.docker.com/r/staphb/pygenomeviz) | 0.2.2 0.3.2 [0.4.2](pygenomeviz/0.4.2/) [0.4.3](pygenomeviz/0.4.3/) [0.4.4](pygenomeviz/0.4.4/) [1.1.0](pygenomeviz/1.1.0/) | https://github.com/moshi4/pyGenomeViz |
+| [pyMLST](https://hub.docker.com/r/staphb/pymlst/) [![docker pulls](https://badgen.net/docker/pulls/staphb/pymlst)](https://hub.docker.com/r/staphb/pymlst) | [2.1.5](./pymlst/2.1.5/) [2.1.6](./pymlst/2.1.6/) | https://github.com/bvalot/pyMLST |
+| [pypolca](https://hub.docker.com/r/staphb/pypolca/) [![docker pulls](https://badgen.net/docker/pulls/staphb/pypolca)](https://hub.docker.com/r/staphb/pypolca) | [0.3.1](./pypolca/0.3.1/) | https://github.com/gbouras13/pypolca |
+| [QUAST](https://hub.docker.com/r/staphb/quast/) [![docker pulls](https://badgen.net/docker/pulls/staphb/quast)](https://hub.docker.com/r/staphb/quast) | 5.0.0 5.0.2 [5.2.0](./quast/5.2.0) [5.2.0-slim](./quast/5.2.0-slim) | https://github.com/ablab/quast |
| [QuickSNP](https://hub.docker.com/r/staphb/quicksnp/) [![docker pulls](https://badgen.net/docker/pulls/staphb/quicksnp)](https://hub.docker.com/r/staphb/quicksnp) | | https://github.com/k-florek/QuickSNP |
-| [racon](https://hub.docker.com/r/staphb/racon) [![docker pulls](https://badgen.net/docker/pulls/staphb/racon)](https://hub.docker.com/r/staphb/racon)| | https://github.com/lbcb-sci/racon https://github.com/isovic/racon (ARCHIVED) |
-| [rasusa](https://hub.docker.com/r/staphb/rasusa/) [![docker pulls](https://badgen.net/docker/pulls/staphb/rasusa)](https://hub.docker.com/r/staphb/rasusa) | 0.1.0 0.2.0 0.3.0 0.6.0 0.7.0 | https://github.com/mbhall88/rasusa |
+| [racon](https://hub.docker.com/r/staphb/racon) [![docker pulls](https://badgen.net/docker/pulls/staphb/racon)](https://hub.docker.com/r/staphb/racon)| [1.4.3](./racon/1.4.3/) [1.4.20](./racon/1.4.20/) [1.5.0](./racon/1.5.0/) | https://github.com/lbcb-sci/racon https://github.com/isovic/racon (ARCHIVED) |
+| [rasusa](https://hub.docker.com/r/staphb/rasusa/) [![docker pulls](https://badgen.net/docker/pulls/staphb/rasusa)](https://hub.docker.com/r/staphb/rasusa) | [0.1.0](./rasusa/0.1.0/) [0.2.0](./rasusa/0.2.0/) [0.3.0](./rasusa/0.3.0/) [0.6.0](./rasusa/0.6.0/) [0.7.0](./rasusa/0.7.0/) [0.8.0](./rasusa/0.8.0/) [2.0.0](./rasusa/2.0.0/) | https://github.com/mbhall88/rasusa |
| [raven](https://hub.docker.com/r/staphb/raven/) [![docker pulls](https://badgen.net/docker/pulls/staphb/raven)](https://hub.docker.com/r/staphb/raven) | 1.5.1 1.8.1 [1.8.3](./raven/1.8.3) | https://github.com/lbcb-sci/raven |
-| [RAxML](https://hub.docker.com/r/staphb/raxml/) [![docker pulls](https://badgen.net/docker/pulls/staphb/raxml)](https://hub.docker.com/r/staphb/raxml) | 8.2.12 (RAxML) and 0.9.0 (RAxML Next Generation) | https://github.com/stamatak/standard-RAxML https://github.com/amkozlov/raxml-ng |
-| [ResFinder](https://hub.docker.com/r/staphb/resfinder/) [![docker pulls](https://badgen.net/docker/pulls/staphb/resfinder)](https://hub.docker.com/r/staphb/resfinder) | | https://bitbucket.org/genomicepidemiology/resfinder/src/master/ |
+| [RAxML](https://hub.docker.com/r/staphb/raxml/) [![docker pulls](https://badgen.net/docker/pulls/staphb/raxml)](https://hub.docker.com/r/staphb/raxml) | 8.2.12 [8.2.13](./raxml/8.2.13/) | https://github.com/stamatak/standard-RAxML |
+| [RAxML-NG](https://hub.docker.com/r/staphb/raxml-ng/) [![docker pulls](https://badgen.net/docker/pulls/staphb/raxml-ng)](https://hub.docker.com/r/staphb/raxml-ng) | [1.2.2](./raxml-ng/1.2.2/) | https://github.com/amkozlov/raxml-ng |
+| [ResFinder](https://hub.docker.com/r/staphb/resfinder/) [![docker pulls](https://badgen.net/docker/pulls/staphb/resfinder)](https://hub.docker.com/r/staphb/resfinder) | [4.1.1](./resfinder/4.1.11/) [4.5.0](./resfinder/4.5.0/) | https://bitbucket.org/genomicepidemiology/resfinder/src/master/ |
| [Roary](https://hub.docker.com/r/staphb/roary/) [![docker pulls](https://badgen.net/docker/pulls/staphb/roary)](https://hub.docker.com/r/staphb/roary) | | https://github.com/sanger-pathogens/Roary |
| [SalmID](https://hub.docker.com/r/staphb/salmid) [![docker pulls](https://badgen.net/docker/pulls/staphb/salmid)](https://hub.docker.com/r/staphb/salmid) | | https://github.com/hcdenbakker/SalmID |
-| [Samtools](https://hub.docker.com/r/staphb/samtools) [![docker pulls](https://badgen.net/docker/pulls/staphb/samtools)](https://hub.docker.com/r/staphb/samtools) | 1.9 1.10 1.11 1.12 1.13 1.14 1.15 1.16 1.16.1 1.17 [1.17-2023-06](samtools/1.17-2023-06/) [1.18](samtools/1.18/) | https://github.com/samtools/samtools |
-| [SeqKit](https://hub.docker.com/r/staphb/SeqKit) [![docker pulls](https://badgen.net/docker/pulls/staphb/seqkit)](https://hub.docker.com/r/staphb/seqkit) | | https://github.com/shenwei356/seqkit |
+| [samclip](https://hub.docker.com/r/staphb/samclip) [![docker pulls](https://badgen.net/docker/pulls/staphb/samclip)](https://hub.docker.com/r/staphb/samclip) | [0.4.0](./samclip/0.4.0/) | https://github.com/tseemann/samclip |
+| [Samtools](https://hub.docker.com/r/staphb/samtools) [![docker pulls](https://badgen.net/docker/pulls/staphb/samtools)](https://hub.docker.com/r/staphb/samtools) | [1.9](./samtools/1.9/) [1.10](./samtools/1.10/) [1.11](./samtools/1.11/) [1.12](./samtools/1.12/) [1.13](./samtools/1.13/) [1.14](./samtools/1.14/) [1.15](./samtools/1.15/) [1.16](./samtools/1.16/) [1.16.1](./samtools/1.16.1/) [1.17](./samtools/1.17/) [1.17-2023-06](./samtools/1.17-2023-06/) [1.18](./samtools/1.18/) [1.19](./samtools/1.19/) [1.20](./samtools/1.20/) [1.20.c](./samtools/1.20.c/) | https://github.com/samtools/samtools |
+| [SeqKit](https://hub.docker.com/r/staphb/SeqKit) [![docker pulls](https://badgen.net/docker/pulls/staphb/seqkit)](https://hub.docker.com/r/staphb/seqkit) | [2.3.1](./seqkit/2.3.1/) [2.6.1](./seqkit/2.6.1/) [2.7.0](./seqkit/2.7.0/) [2.8.0](./seqkit/2.8.0/) [2.8.1](./seqkit/2.8.1/) [2.8.2](./seqkit/2.8.2/) | https://github.com/shenwei356/seqkit |
| [SeqSero](https://hub.docker.com/r/staphb/seqsero/) [![docker pulls](https://badgen.net/docker/pulls/staphb/seqsero)](https://hub.docker.com/r/staphb/seqsero) | | https://github.com/denglab/SeqSero |
-| [SeqSero2](https://hub.docker.com/r/staphb/seqsero2/) [![docker pulls](https://badgen.net/docker/pulls/staphb/seqsero2)](https://hub.docker.com/r/staphb/seqsero2) | 0.1.0 1.0.0 1.0.2 1.1.0 1.1.1 1.2.1 | https://github.com/denglab/SeqSero2/ |
-| [seqtk](https://hub.docker.com/r/staphb/seqtk) [![docker pulls](https://badgen.net/docker/pulls/staphb/seqtk)](https://hub.docker.com/r/staphb/seqtk) | | https://github.com/lh3/seqtk |
+| [SeqSero2](https://hub.docker.com/r/staphb/seqsero2/) [![docker pulls](https://badgen.net/docker/pulls/staphb/seqsero2)](https://hub.docker.com/r/staphb/seqsero2) | [0.1.0](./seqsero2/0.1.0/) [1.0.0](./seqsero2/1.0.0/) [1.0.2](./seqsero2/1.0.2/) [1.1.0](./seqsero2/1.1.0/) [1.1.1](./seqsero2/1.1.1/) [1.2.1](./seqsero2/1.2.1/) [1.3.1](./seqsero2/1.3.1/) | https://github.com/denglab/SeqSero2/ |
+| [seqtk](https://hub.docker.com/r/staphb/seqtk) [![docker pulls](https://badgen.net/docker/pulls/staphb/seqtk)](https://hub.docker.com/r/staphb/seqtk) | [1.3](seqtk/1.3/) [1.4](seqtk/1.4/) | https://github.com/lh3/seqtk |
| [seqyclean](https://hub.docker.com/r/staphb/seqyclean) [![docker pulls](https://badgen.net/docker/pulls/staphb/seqyclean)](https://hub.docker.com/r/staphb/seqyclean) | | https://github.com/ibest/seqyclean |
| [Seroba](https://hub.docker.com/r/staphb/seroba) [![docker pulls](https://badgen.net/docker/pulls/staphb/seroba)](https://hub.docker.com/r/staphb/seroba) | | https://github.com/sanger-pathogens/seroba |
-| [SerotypeFinder](https://hub.docker.com/r/staphb/serotypefinder/) [![docker pulls](https://badgen.net/docker/pulls/staphb/serotypefinder)](https://hub.docker.com/r/staphb/serotypefinder) | 1.1 (perl version) 2.0.1 (python version) | https://bitbucket.org/genomicepidemiology/serotypefinder/ |
+| [SerotypeFinder](https://hub.docker.com/r/staphb/serotypefinder/) [![docker pulls](https://badgen.net/docker/pulls/staphb/serotypefinder)](https://hub.docker.com/r/staphb/serotypefinder) | [1.1 (perl version)](./serotypefinder/1.1/) [2.0.1 (python version)](./serotypefinder/2.0.1/) [2.0.2](./serotypefinder/2.0.2/) | https://bitbucket.org/genomicepidemiology/serotypefinder/ |
| [shigatyper](https://hub.docker.com/r/staphb/shigatyper/) [![docker pulls](https://badgen.net/docker/pulls/staphb/shigatyper)](https://hub.docker.com/r/staphb/shigatyper) | 2.0.1 2.0.2 2.0.3 [2.0.4](shigatyper/2.0.4/) [2.0.5](shigatyper/2.0.5/) | https://github.com/CFSAN-Biostatistics/shigatyper |
| [ShigEiFinder](https://hub.docker.com/r/staphb/shigeifinder/) [![docker pulls](https://badgen.net/docker/pulls/staphb/shigeifinder)](https://hub.docker.com/r/staphb/shigeifinder) | [1.3.2](shigeifinder/1.3.2/) [1.3.3](shigeifinder/1.3.3/) [1.3.5](shigeifinder/1.3.5/) | https://github.com/LanLab/ShigEiFinder |
| [Shovill](https://hub.docker.com/r/staphb/shovill/) [![docker pulls](https://badgen.net/docker/pulls/staphb/shovill)](https://hub.docker.com/r/staphb/shovill) | | https://github.com/tseemann/shovill |
| [Shovill-se](https://hub.docker.com/r/staphb/shovill-se/) [![docker pulls](https://badgen.net/docker/pulls/staphb/shovill-se)](https://hub.docker.com/r/staphb/shovill-se) | | https://github.com/rpetit3/shovill/tree/v1.1.0se |
| [SISTR](https://hub.docker.com/r/staphb/sistr/) [![docker pulls](https://badgen.net/docker/pulls/staphb/sistr)](https://hub.docker.com/r/staphb/sistr) | | https://github.com/phac-nml/sistr_cmd |
| [SKA](https://hub.docker.com/r/staphb/ska/) [![docker pulls](https://badgen.net/docker/pulls/staphb/ska)](https://hub.docker.com/r/staphb/ska) | | https://github.com/simonrharris/SKA |
-| [skani](https://github.com/bluenote-1577/skani) [![docker pulls](https://badgen.net/docker/pulls/staphb/skani)](https://hub.docker.com/r/staphb/skani) | [0.2.0](./skani/0.2.0) [0.2.1](./skani/0.2.1) | https://github.com/bluenote-1577/skani |
-| [SKESA](https://hub.docker.com/r/staphb/skesa) [![docker pulls](https://badgen.net/docker/pulls/staphb/skesa)](https://hub.docker.com/r/staphb/skesa) | 2.3.0 2.4.0 (`gfa_connector` & `kmercounter` included) | https://github.com/ncbi/SKESA |
+| [SKA2](https://hub.docker.com/r/staphb/ska2/) [![docker pulls](https://badgen.net/docker/pulls/staphb/ska2)](https://hub.docker.com/r/staphb/ska2) | [0.3.6](./ska2/0.3.6/) [0.3.7](./ska2/0.3.7/) | https://github.com/bacpop/ska.rust |
+| [skani](https://github.com/bluenote-1577/skani) [![docker pulls](https://badgen.net/docker/pulls/staphb/skani)](https://hub.docker.com/r/staphb/skani) | [0.2.0](./skani/0.2.0) [0.2.1](./skani/0.2.1) [0.2.2](./skani/0.2.2) | https://github.com/bluenote-1577/skani |
+| [SKESA](https://hub.docker.com/r/staphb/skesa) [![docker pulls](https://badgen.net/docker/pulls/staphb/skesa)](https://hub.docker.com/r/staphb/skesa) | [2.3.0](./skesa/2.3.0/) [2.4.0 (`gfa_connector` & `kmercounter` included)](./skesa/2.4.0/) [skesa.2.4.0_saute.1.3.0_2 (also known as 2.5.1)](./skesa/skesa.2.4.0_saute.1.3.0_2/) | https://github.com/ncbi/SKESA |
| [Smalt](https://hub.docker.com/r/staphb/smalt) [![docker pulls](https://badgen.net/docker/pulls/staphb/smalt)](https://hub.docker.com/r/staphb/smalt) | | https://www.sanger.ac.uk/tool/smalt-0/ |
-| [snpeff](https://hub.docker.com/r/staphb/snpeff) [![docker pulls](https://badgen.net/docker/pulls/staphb/snpeff)](https://hub.docker.com/r/staphb/snpeff) | | https://pcingola.github.io/SnpEff |
+| [snpeff](https://hub.docker.com/r/staphb/snpeff) [![docker pulls](https://badgen.net/docker/pulls/staphb/snpeff)](https://hub.docker.com/r/staphb/snpeff) | | https://pcingola.github.io/SnpEff |
| [Snippy](https://hub.docker.com/r/staphb/snippy) [![docker pulls](https://badgen.net/docker/pulls/staphb/snippy)](https://hub.docker.com/r/staphb/snippy) | | https://github.com/tseemann/snippy |
| [snp-dists](https://hub.docker.com/r/staphb/snp-dists) [![docker pulls](https://badgen.net/docker/pulls/staphb/snp-dists)](https://hub.docker.com/r/staphb/snp-dists) | | https://github.com/tseemann/snp-dists |
| [SNP-sites](https://hub.docker.com/r/staphb/snp-sites) [![docker pulls](https://badgen.net/docker/pulls/staphb/snp-sites)](https://hub.docker.com/r/staphb/snp-sites) | | https://github.com/sanger-pathogens/snp-sites |
| [SNVPhyl-tools](https://hub.docker.com/r/staphb/snvphyl-tools) [![docker pulls](https://badgen.net/docker/pulls/staphb/snvphyl-tools)](https://hub.docker.com/r/staphb/snvphyl-tools) | | https://github.com/phac-nml/snvphyl-tools |
-| [SPAdes](https://hub.docker.com/r/staphb/spades/) [![docker pulls](https://badgen.net/docker/pulls/staphb/spades)](https://hub.docker.com/r/staphb/spades) | 3.8.2 3.12.0 3.13.0 3.14.0 3.14.1 3.15.0 3.15.1 3.15.2 3.15.3 3.15.4 3.15.5 | https://github.com/ablab/spades http://cab.spbu.ru/software/spades/ |
-| [SRA-toolkit](https://hub.docker.com/r/staphb/sratoolkit/) [![docker pulls](https://badgen.net/docker/pulls/staphb/sratoolkit)](https://hub.docker.com/r/staphb/sratoolkit) | | https://github.com/ncbi/sra-tools |
+| [SPAdes](https://hub.docker.com/r/staphb/spades/) [![docker pulls](https://badgen.net/docker/pulls/staphb/spades)](https://hub.docker.com/r/staphb/spades) | [3.8.2](./spades/3.8.2/) [3.12.0](./spades/3.12.0/) [3.13.0](./spades/3.13.0/) [3.14.0](./spades/3.14.0/) [3.14.1](./spades/3.14.1/) [3.15.0](./spades/3.15.0/) [3.15.1](./spades/3.15.1/) [3.15.2](./spades/3.15.2/) [3.15.3](./spades/3.15.3/) [3.15.4](./spades/3.15.4/) [3.15.5](./spades/3.15.5/) [4.0.0](./spades/4.0.0/) | https://github.com/ablab/spades http://cab.spbu.ru/software/spades/ |
+| [SRA-toolkit](https://hub.docker.com/r/staphb/sratoolkit/) [![docker pulls](https://badgen.net/docker/pulls/staphb/sratoolkit)](https://hub.docker.com/r/staphb/sratoolkit) | 2.9.2 [3.0.7](./sratoolkit/3.0.7/) | https://github.com/ncbi/sra-tools |
| [SRST2](https://hub.docker.com/r/staphb/srst2/) [![docker pulls](https://badgen.net/docker/pulls/staphb/srst2)](https://hub.docker.com/r/staphb/srst2) | 0.2.0 [0.2.0 + custom Vibrio cholerae database](srst2/0.2.0-vibrio-230224/README.md) | https://github.com/katholt/srst2 |
-| [Staramr](https://hub.docker.com/r/staphb/staramr/) [![docker pulls](https://badgen.net/docker/pulls/staphb/staramr)](https://hub.docker.com/r/staphb/staramr) | | https://github.com/phac-nml/staramr |
-| [TBProfiler](https://hub.docker.com/r/staphb/tbprofiler/) [![docker pulls](https://badgen.net/docker/pulls/staphb/tbprofiler)](https://hub.docker.com/r/staphb/tbprofiler) | | https://github.com/jodyphelan/TBProfiler |
+| [Staramr](https://hub.docker.com/r/staphb/staramr/) [![docker pulls](https://badgen.net/docker/pulls/staphb/staramr)](https://hub.docker.com/r/staphb/staramr) | [0.5.1](./staramr/0.5.1/) [0.7.1](./staramr/0.7.1/) [0.8.0](./staramr/0.8.0/) [0.10.0](./staramr/0.10.0/) | https://github.com/phac-nml/staramr |
+| [sylph](https://hub.docker.com/r/staphb/sylph) [![docker pulls](https://badgen.net/docker/pulls/staphb/sylph)](https://hub.docker.com/r/staphb/sylph) | [0.4.1](./sylph/0.4.1) [0.5.1](./sylph/0.5.1) [0.6.0](./sylph/0.6.0) [0.6.1](./sylph/0.6.1) | https://github.com/bluenote-1577/sylph |
+| [TBProfiler](https://hub.docker.com/r/staphb/tbprofiler/) [![docker pulls](https://badgen.net/docker/pulls/staphb/tbprofiler)](https://hub.docker.com/r/staphb/tbprofiler) | [4.3.0](./tbprofiler/4.3.0/) [4.4.0](./tbprofiler/4.4.0/) [4.4.2](./tbprofiler/4.4.2/) [5.0.1](tbprofiler/5.0.1/) [6.2.0](tbprofiler/6.2.0/) [6.2.1](tbprofiler/6.2.1/) | https://github.com/jodyphelan/TBProfiler |
| [TipToft](https://hub.docker.com/r/staphb/tiptoft/) [![docker pulls](https://badgen.net/docker/pulls/staphb/tiptoft)](https://hub.docker.com/r/staphb/tiptoft) | | https://github.com/andrewjpage/tiptoft |
-| [Tostadas](https://hub.docker.com/r/staphb/tostadas/) [![docker pulls](https://badgen.net/docker/pulls/staphb/tostadas)](https://hub.docker.com/r/staphb/tostadas) | | https://github.com/CDCgov/tostadas |
+| [Tostadas](https://hub.docker.com/r/staphb/tostadas/) [![docker pulls](https://badgen.net/docker/pulls/staphb/tostadas)](https://hub.docker.com/r/staphb/tostadas) | [0.2.0-beta](./tostadas/0.2.0-beta/) [3.1.0](./tostadas/3.1.0/) | https://github.com/CDCgov/tostadas |
| [Treemmer](https://hub.docker.com/r/staphb/treemmer/) [![docker pulls](https://badgen.net/docker/pulls/staphb/treemmer)](https://hub.docker.com/r/staphb/treemmer) | | https://git.scicore.unibas.ch/TBRU/Treemmer (archived, moved to GitHub) https://github.com/fmenardo/Treemmer |
| [Trimmomatic](https://hub.docker.com/r/staphb/trimmomatic/) [![docker pulls](https://badgen.net/docker/pulls/staphb/trimmomatic)](https://hub.docker.com/r/staphb/trimmomatic) | | http://www.usadellab.org/cms/?page=trimmomatic https://github.com/usadellab/Trimmomatic |
-| [Trycycler](https://hub.docker.com/r/staphb/trycycler/) [![docker pulls](https://badgen.net/docker/pulls/staphb/trycycler)](https://hub.docker.com/r/staphb/trycycler) | 0.3.1 0.3.2 0.3.3 0.5.0 0.5.3 0.5.4 | https://github.com/rrwick/Trycycler |
+| [Trycycler](https://hub.docker.com/r/staphb/trycycler/) [![docker pulls](https://badgen.net/docker/pulls/staphb/trycycler)](https://hub.docker.com/r/staphb/trycycler) | [0.3.1](./trycycler/0.3.1/) [0.3.2](./trycycler/0.3.2/) [0.3.3](./trycycler/0.3.3/) [0.5.0](./trycycler/0.5.0/) [0.5.3](./trycycler/0.5.3/) [0.5.4](./trycycler/0.5.4/) [0.5.5](./trycycler/0.5.5/) | https://github.com/rrwick/Trycycler |
| [Unicycler](https://hub.docker.com/r/staphb/unicycler/) [![docker pulls](https://badgen.net/docker/pulls/staphb/unicycler)](https://hub.docker.com/r/staphb/unicycler) | | https://github.com/rrwick/Unicycler |
-| [VADR](https://hub.docker.com/r/staphb/vadr/) [![docker pulls](https://badgen.net/docker/pulls/staphb/vadr)](https://hub.docker.com/r/staphb/vadr) | 1.1 1.1.2 1.1.3 1.2 1.2.1 1.3 & SARS-CoV-2 models 1.3-1 1.3 & SARS-CoV-2 models 1.3-2 1.4 & SARS-CoV-2 models 1.3-2 1.4.1 & SARS-CoV-2 models 1.3-2 1.4.2 & SARS-CoV-2 models 1.3-2, MPXV models 1.4.2-1 1.5 & SARS-CoV-2 models 1.3-2, MPXV models 1.4.2-1 1.5.1 & SARS-CoV-2 models 1.3-2, MPXV models 1.4.2-1, RSV models 1.5-2 | https://github.com/nawrockie/vadr (archived, now redirects to ncbi/vadr) https://github.com/ncbi/vadr |
+| [VADR](https://hub.docker.com/r/staphb/vadr/) [![docker pulls](https://badgen.net/docker/pulls/staphb/vadr)](https://hub.docker.com/r/staphb/vadr) | 1.1 1.1.2 1.1.3 1.2 1.2.1 1.3 & SARS-CoV-2 models 1.3-1 1.3 & SARS-CoV-2 models 1.3-2 1.4 & SARS-CoV-2 models 1.3-2 1.4.1 & SARS-CoV-2 models 1.3-2 [1.4.2 & SARS-CoV-2 models 1.3-2, MPXV models 1.4.2-1](vadr/1.4.2/) [1.5 & SARS-CoV-2 models 1.3-2, MPXV models 1.4.2-1](vadr/1.5/) [1.5.1 & SARS-CoV-2 models 1.3-2, MPXV models 1.4.2-1, RSV models 1.5-2](vadr/1.5.1/) [1.6.3 & SARS-CoV-2 models 1.3-2, MPXV models 1.4.2-1, RSV models 1.5-2, Influenza v1.6.3-1](vadr/1.6.3/) [1.6.3 & SARS-CoV-2 models 1.3-2, MPXV models 1.4.2-1, RSV models 1.5-2, Influenza v1.6.3-1, HAV v1.0.0](vadr/1.6.3-hav/) [1.6.3 & SARS-CoV-2 models 1.3-2, MPXV models 1.4.2-1, RSV models 1.5-2, Influenza v1.6.3-2, HAV v1.0.0](vadr/1.6.3-hav-flu2/) | https://github.com/nawrockie/vadr (archived, now redirects to ncbi/vadr) https://github.com/ncbi/vadr |
+| [Verkko](https://hub.docker.com/r/staphb/verkko/) [![docker pulls](https://badgen.net/docker/pulls/staphb/verkko)](https://hub.docker.com/r/staphb/verkko) | [2.0](./verkko/2.0/) [2.1](./verkko/2.1/) | https://github.com/marbl/verkko |
| [VIBRANT](https://hub.docker.com/r/staphb/vibrant/) [![docker pulls](https://badgen.net/docker/pulls/staphb/vibrant)](https://hub.docker.com/r/staphb/vibrant) | | https://github.com/AnantharamanLab/VIBRANT |
| [VIGOR4](https://hub.docker.com/r/staphb/vigor4/) [![docker pulls](https://badgen.net/docker/pulls/staphb/vigor4)](https://hub.docker.com/r/staphb/vigor4) | [4.1.20190131](./vigor4/4.1.20190131/) [4.1.20200702](vigor4/4.1.20200702/) | https://github.com/JCVenterInstitute/VIGOR4 |
+| [Viridian](https://hub.docker.com/r/staphb/viridian/) [![docker pulls](https://badgen.net/docker/pulls/staphb/viridian)](https://hub.docker.com/r/staphb/viridian) | [1.2.2](./viridian/1.2.2/) | https://github.com/iqbal-lab-org/viridian |
| [VirSorter2](https://hub.docker.com/r/staphb/virsorter2/) [![docker pulls](https://badgen.net/docker/pulls/staphb/virsorter2)](https://hub.docker.com/r/staphb/virsorter2/) | | https://github.com/jiarong/VirSorter2 |
| [VirulenceFinder](https://hub.docker.com/r/staphb/virulencefinder/) [![docker pulls](https://badgen.net/docker/pulls/staphb/virulencefinder)](https://hub.docker.com/r/staphb/virulencefinder/) | [2.1.4](virulencefinder/2.0.4/) | https://bitbucket.org/genomicepidemiology/virulencefinder/src/master/ https://bitbucket.org/genomicepidemiology/virulencefinder_db/src/master/ |
| [wtdbg2](https://hub.docker.com/r/staphb/wtdbg2/) [![docker pulls](https://badgen.net/docker/pulls/staphb/wtdbg2)](https://hub.docker.com/r/staphb/wtdbg2) | | https://github.com/ruanjue/wtdbg2 |
@@ -320,4 +360,9 @@ Each Dockerfile lists the author(s)/maintainer(s) as a metadata `LABEL`, but the
* [@Kincekara](https://github.com/Kincekara)
* [@Haikelnb](https://github.com/Haikelnb)
* [@kprus](https://github.com/kprus)
-
+ * [@arianna-smith](https://github.com/arianna-smith)
+ * [@laura-bankers](https://github.com/laura-bankers)
+ * [@evagunawan](https://github.com/evagunawan)
+ * [@nawrockie](https://github.com/nawrockie)
+ * [@stephenturner](https://github.com/stephenturner)
+ * [@soejun](https://github.com/soejun)
diff --git a/abricate/1.0.1-vibrio-cholera/Dockerfile b/abricate/1.0.1-vibrio-cholera/Dockerfile
new file mode 100644
index 000000000..33fe8a7b9
--- /dev/null
+++ b/abricate/1.0.1-vibrio-cholera/Dockerfile
@@ -0,0 +1,121 @@
+ARG ABRICATE_VER="1.0.1"
+
+FROM ubuntu:focal as app
+
+# For easy upgrade later. ARG varibles only persist during docker image build time
+ARG ABRICATE_VER
+ARG ANY2FASTA_VERSION="0.4.2"
+
+LABEL base.image="ubuntu:focal"
+LABEL dockerfile.version="1"
+LABEL software="Abricate"
+LABEL software.version="1.0.1"
+LABEL description="Mass screening of contigs for AMR or virulence genes"
+LABEL website="https://github.com/tseemann/abricate"
+LABEL license="https://github.com/tseemann/abricate/blob/master/LICENSE"
+LABEL maintainer="Curtis Kapsak"
+LABEL maintainer.email="curtis.kapsak@theiagen.com"
+LABEL maintainer2="Inês Mendes"
+LABEL maintainer2.email="ines.mendes@theiagen.com"
+
+# install dependencies
+# removed: emboss
+# ncbi-blast+ version in apt for ubuntu:focal = v2.9.0
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ bioperl \
+ gzip \
+ unzip \
+ liblist-moreutils-perl \
+ libjson-perl \
+ libtext-csv-perl \
+ libfile-slurp-perl \
+ liblwp-protocol-https-perl \
+ libwww-perl \
+ libpath-tiny-perl \
+ git \
+ ncbi-blast+ \
+ wget && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+# get any2fasta
+RUN wget https://github.com/tseemann/any2fasta/archive/refs/tags/v${ANY2FASTA_VERSION}.tar.gz && \
+ tar -xvf v${ANY2FASTA_VERSION}.tar.gz && \
+ rm v${ANY2FASTA_VERSION}.tar.gz && \
+ cd any2fasta-${ANY2FASTA_VERSION} && \
+ chmod +x any2fasta && \
+ cp any2fasta /usr/local/bin
+
+# download abricate; make /data; check dependencies
+RUN wget https://github.com/tseemann/abricate/archive/v${ABRICATE_VER}.tar.gz && \
+ tar -zxvf v${ABRICATE_VER}.tar.gz && \
+ rm -rf v${ABRICATE_VER}.tar.gz && \
+ mkdir /data && \
+ /abricate-${ABRICATE_VER}/bin/abricate --check
+
+# set $PATH
+# set perl locale settings for singularity compatibility
+ENV PATH="/abricate-${ABRICATE_VER}/bin:\
+$PATH"\
+ LC_ALL=C
+
+# add custom database; rename FASTA file as 'sequences'; index database with --setupdb
+COPY vibrio_v1.0.0.fasta /
+RUN mkdir -v /abricate-${ABRICATE_VER}/db/vibrio && \
+ cp -v /vibrio_v1.0.0.fasta /abricate-${ABRICATE_VER}/db/vibrio/sequences && \
+ abricate --setupdb && \
+ abricate --list
+
+# final working directory is /data
+WORKDIR /data
+
+# testing layer starts here
+FROM app as test
+
+# Grab test Vcholerae genome, uncompress, and save to /data
+RUN wget -O - https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/018/083/565/GCA_018083565.2_PDT000793508.2/GCA_018083565.2_PDT000793508.2_genomic.fna.gz \
+ | gunzip -c > /data/GCA_018083565.2_PDT000793508.2_genomic.fna
+
+# to ensure this env variable is set in test layer
+ARG ABRICATE_VER
+
+# so that the below commands are run with /bin/bash shell and not /bin/sh - needed for bash-specific tricks below
+SHELL ["/bin/bash", "-c"]
+
+# tests shamelessly stolen and modified from: https://github.com/tseemann/abricate/blob/master/.travis.yml
+RUN set -x && \
+cd /abricate-${ABRICATE_VER}/ && \
+abricate --version && \
+abricate --help && \
+abricate --check && \
+abricate --list && \
+! abricate --doesnotexist && \
+! abricate --threads 0 && \
+! (abricate test/assembly.fa | grep '~~~') && \
+abricate test/assembly.fa > 1.tab && \
+abricate test/assembly.fa.gz > 2.tab && \
+abricate test/assembly.gbk > 3.tab && \
+abricate test/assembly.gbk.gz > 4.tab && \
+abricate --nopath test/assembly.gbk.gz | grep '^assembly.gbk.gz' && \
+abricate --summary {1,2,3,4}.tab > summary.tab && \
+abricate --summary 1.tab 2.tab 1.tab 2>&1 | grep 'duplicate' && \
+abricate --summary <(cat 1.tab 2.tab 3.tab) | wc -l | grep -w 4 && \
+abricate test/assembly.txt |& grep ERROR && \
+abricate not_exist.embl |& grep ERROR && \
+abricate --threads `nproc` test/assembly.fa.bz2 | grep -i FOSFOMYCIN && \
+abricate --threads `nproc` test/assembly.fa.bz2 | grep -i lactam && \
+for DB in `abricate --list | cut -f1 | tail -n +2`; do abricate --db ${DB} test/assembly.fa > /dev/null ; done && \
+abricate-get_db --help && \
+abricate-get_db --db ncbi --dbdir . && \
+! grep 'FUSIDIC ACID' ncbi/sequences && \
+abricate --threads `nproc` --fofn test/fofn.txt
+
+# vibrio-specific abricate test
+# grep to find the 5 expected genes in the output TSV; error if not found
+RUN abricate --db vibrio /data/GCA_018083565.2_PDT000793508.2_genomic.fna | tee /data/abricate_vibrio.tsv && \
+ echo && \
+ echo "grepping for expected genes in abricate output now..." && \
+ grep 'ctxA' /data/abricate_vibrio.tsv && \
+ grep 'toxR' /data/abricate_vibrio.tsv && \
+ grep 'tcpA_ElTor' /data/abricate_vibrio.tsv && \
+ grep 'ompW' /data/abricate_vibrio.tsv && \
+ grep 'wbeN_O1' /data/abricate_vibrio.tsv
\ No newline at end of file
diff --git a/abricate/1.0.1-vibrio-cholera/README.md b/abricate/1.0.1-vibrio-cholera/README.md
new file mode 100644
index 000000000..bdce38e07
--- /dev/null
+++ b/abricate/1.0.1-vibrio-cholera/README.md
@@ -0,0 +1,64 @@
+# ABRicate v1.0.1 docker image + Vibrio cholerae db
+
+> ABRicate: Mass screening of contigs for antimicrobial resistance or virulence genes. It comes bundled with multiple databases: NCBI, CARD, ARG-ANNOT, Resfinder, MEGARES, EcOH, PlasmidFinder, Ecoli_VF and VFDB.
+
+Main tool : [ABRicate](https://github.com/tseemann/abricate)
+
+Additional tools:
+
+- any2fasta 0.4.2
+- ncbi-blast+ 2.9.0
+- perl 5.30.0
+- bioperl 1.7.7-1
+
+## Custom *Vibrio cholerae* database info
+
+This docker image includes a *Vibrio cholerae-specific* database of gene targets (traditionally used in PCR methods) for detecting O1 & O139 serotypes, toxin-production markers, and Biotype markers within the O1 serogroup ("El Tor" or "Classical" biotypes). These sequences were shared via personal communication with Dr. Christine Lee, of the National Listeria, Yersinia, Vibrio and Enterobacterales Reference Laboratory within the Enteric Diseases Laboratory Branch at CDC.
+
+The genes included (and their purpose) included in the database are as follows:
+
+- `ctxA` - Cholera toxin, an indication of toxigenic cholerae
+- `ompW` - outer membrane protein, a *V. cholerae* species marker (presence of any allele of this gene distinguishes *V. cholerae* from *V. parahaemolyticus* and *V. vulnificus*)
+- `tcpA` - toxin co-pilus A, used to infer Biotype, either "El Tor" or "Clasical"
+ - database includes an allele for each Biotype. `tcpA_classical` and `tcpA_ElTor`
+- `toxR` - transcriptional activator (controls cholera toxin, pilus, and outer-membrane protein expression) - Species marker (allele distinguishes *V. cholerae* from *V. parahaemolyticus* and *V. vulnificus*)
+- `wbeN` - O antigen encoding region - used to identify the O1 serogroup
+- `wbfR` - O antigen encoding region - used to identify the O139 serogroup
+
+:warning: The database's FASTA file & index files are located within `/abricate-$1.0.1/db/vibrio/sequences` in the container's file system and can be utilized via the example command below.
+
+:warning: This database is identical in nucleotide sequence content to the `vibrio_230224.fasta` database included in the SRST2 container (located at `srst2/0.2.0-vibrio-230224/vibrio_230224.fasta`), but the FASTA headers were formatted for use with ABRicate.
+
+## Example Usage
+
+```bash
+# list out the available databases
+$ abricate --list
+DATABASE SEQUENCES DBTYPE DATE
+card 2631 nucl 2024-Apr-30
+ncbi 5386 nucl 2024-Apr-30
+vfdb 2597 nucl 2024-Apr-30
+megares 6635 nucl 2024-Apr-30
+ecoli_vf 2701 nucl 2024-Apr-30
+argannot 2223 nucl 2024-Apr-30
+ecoh 597 nucl 2024-Apr-30
+plasmidfinder 460 nucl 2024-Apr-30
+resfinder 3077 nucl 2024-Apr-30
+vibrio 8 nucl 2024-Apr-30
+
+# run ABRicate on an Vibrio cholerae assembly using custom database, saving results to file "/data/abricate_vibrio.tsv"
+$ abricate --db vibrio /data/GCA_018083565.2_PDT000793508.2_genomic.fna | tee /data/abricate_vibrio.tsv
+abricate --nopath --db vibrio /data/GCA_018083565.2_PDT000793508.2_genomic.fna | tee /data/abricate_vibrio.tsv
+Using nucl database vibrio: 8 sequences - 2024-Apr-30
+Processing: /data/GCA_018083565.2_PDT000793508.2_genomic.fna
+#FILE SEQUENCE START END STRAND GENE COVERAGE COVERAGE_MAP GAPS %COVERAGE %IDENTITY DATABASE ACCESSION PRODUCT RESISTANCE
+Found 5 genes in /data/GCA_018083565.2_PDT000793508.2_genomic.fna
+Tip: did you know? abricate was named after 'A'nti 'B'acterial 'R'esistiance
+Done.
+GCA_018083565.2_PDT000793508.2_genomic.fna DADXRP020000001.1 3562 4338 + ctxA 1-777/777 =============== 0/0 100.00 100.00 Vibriov1.0.0 CP000627.1 ctxA_O395 cholera_toxin_gene
+GCA_018083565.2_PDT000793508.2_genomic.fna DADXRP020000001.1 520818 521702 + toxR 1-885/885 =============== 0/0 100.00 98.42 Vibriov1.0.0 CP000627.1 toxR_O395 Vcholerae_species_marker
+GCA_018083565.2_PDT000793508.2_genomic.fna DADXRP020000002.1 439805 440458 + ompW 1-654/654 =============== 0/0 100.00 99.08 Vibriov1.0.0 CP000626.1 ompW_O395 Vcholerae_species_marker
+GCA_018083565.2_PDT000793508.2_genomic.fna DADXRP020000008.1 101343 103820 + wbeN_O1 1-2478/2478 =============== 0/0 100.00 100.00 Vibriov1.0.0 NA wbeN_O1_INDRE O1_serotype_marker
+GCA_018083565.2_PDT000793508.2_genomic.fna DADXRP020000033.1 3271 3945 - tcpA_ElTor 1-675/675 =============== 0/0 100.00 100.00 Vibriov1.0.0 CP064350.1 tcpA_ElTor_C6706 ElTor_biotype
+
+```
diff --git a/abricate/1.0.1-vibrio-cholera/vibrio_v1.0.0.fasta b/abricate/1.0.1-vibrio-cholera/vibrio_v1.0.0.fasta
new file mode 100644
index 000000000..fd1b2cea1
--- /dev/null
+++ b/abricate/1.0.1-vibrio-cholera/vibrio_v1.0.0.fasta
@@ -0,0 +1,16 @@
+>Vibriov1.0.0~~~ctxA~~~CP000627.1~~~cholera_toxin_gene ctxA_O395
+ATGGTAAAGATAATATTTGTGTTTTTTATTTTCTTATCATCATTTTCATATGCAAATGATGATAAGTTATATCGGGCAGATTCTAGACCTCCTGATGAAATAAAGCAGTCAGGTGGTCTTATGCCAAGAGGACAGAGTGAGTACTTTGACCGAGGTACTCAAATGAATATCAACCTTTATGATCATGCAAGAGGAACTCAGACGGGATTTGTTAGGCACGATGATGGATATGTTTCCACCTCAATTAGTTTGAGAAGTGCCCACTTAGTGGGTCAAACTATATTGTCTGGTCATTCTACTTATTATATATATGTTATAGCCACTGCACCCAACATGTTTAACGTTAATGATGTATTAGGGGCATACAGTCCTCATCCAGATGAACAAGAAGTTTCTGCTTTAGGTGGGATTCCATACTCCCAAATATATGGATGGTATCGAGTTCATTTTGGGGTGCTTGATGAACAATTACATCGTAATAGGGGCTACAGAGATAGATATTACAGTAACTTAGATATTGCTCCAGCAGCAGATGGTTATGGATTGGCAGGTTTCCCTCCGGAGCATAGAGCTTGGAGGGAAGAGCCGTGGATTCATCATGCACCGCCGGGTTGTGGGAATGCTCCAAGATCATCGATGAGTAATACTTGCGATGAAAAAACCCAAAGTCTAGGTGTAAAATTCCTTGACGAATACCAATCTAAAGTTAAAAGACAAATATTTTCAGGCTATCAATCTGATATTGATACACATAATAGAATTAAGGATGAATTATGA
+>Vibriov1.0.0~~~ompW~~~CP043556.1~~~Vcholerae_species_marker ompW_RFB16
+ATGAAACAAACCATTTGCGGCCTAGCCGTACTTGCAGCCCTAAGCTCCGCTCCTGTATTTGCTCACCAAGAAGGTGACTTTATTGTGCGCGCGGGTATTGCCTCGGTAGTACCTAATGACAGTAGCGATAAAGTGTTAAACACTCAAAGTGAGTTGGCAGTTAATAGCAATACCCAGTTAGGGTTAACGCTTGGCTATATGTTTACTGACAACATCAGTTTTGAAGTCCTTGCTGCTACGCCATTTTCACATAAGATTTCTACCTCTGGTGGTGAGTTAGGTAGCCTTGGTGATATTGGTGAAACAAAACATTTGCCACCTACCTTTATGGTCCAATACTACTTTGGTGAAGCTAATTCGACTTTCCGTCCATATGTTGGTGCGGGTTTGAATTACACCACTTTCTTTGATGAAAGCTTTAATAGTACGGGTACTAATAATGCATTGAGTGATTTAAAACTGGACGACTCATGGGGACTTGCTGCTAACGTTGGCTTTGATTATATGCTCAATGATAGCTGGTTCCTCAACGCTTCTGTGTGGTATGCCAATATTGAAACAACGGCAACCTACAAAGCAGGTGCAGATGCCAAATCCACGGATGTTGAAATCAATCCTTGGGTATTTATGATCGCGGGTGGTTATAAGTTCTAA
+>Vibriov1.0.0~~~ompW~~~CP000626.1~~~Vcholerae_species_marker ompW_O395
+ATGAAACAAACCATTTGCGGCCTAGCCGTACTTGCAGCCCTAAGCTCCGCTCCTGTATTTGCTCACCAAGAAGGTGACTTTATTGTGCGCGCGGGTATTGCCTCGGTAGTACCTAATGACAGTAGCGATAAAGTGTTAAACACTCAAAGTGAGTTGGCAGTTAATAGCAATACCCAGTTAGGGTTAACGCTTGGCTATATGTTTACTGACAACATCAGTTTTGAAGTCCTCGCTGCTACGCCATTTTCACATAAGATTTCTACCTCTGGTGGTGAGTTAGGTAGCCTTGGTGATATTGGTGAAACAAAACATTTGCCACCTACCTTTATGGTCCAATACTACTTTGGTGAAGCTAATTCGACTTTCCGTCCATATGTTGGTGCGGGTTTGAATTACACCACTTTCTTTGATGAAAGCTTTAATAGTACGGGTACTAATAATGCATTGAGTGATTTAAAACTGGACGACTCATGGGGACTTGCTGCTAACGTTGGCTTTGATTATATGCTCAATGATAGCTGGTTCCTCAACGCTTCTGTGTGGTATGCCAATATTGAAACAACGGCAACCTACAAAGCAGGTGCAGATGCCAAATCCACGGATGTTGAAATCAATCCTTGGGTATTTATGATCGCGGGTGGTTATAAGTTCTAA
+>Vibriov1.0.0~~~tcpA_classical~~~AF325733.1~~~Classical_biotype tcpA_classical_395
+ATGCAATTATTAAAACAGCTTTTTAAGAAGAAATTTGTAAAAGAAGAACACGATAAGAAAACCGGTCAAGAGGGTATGACATTACTCGAAGTGATCATCGTTCTAGGCATTATGGGGGTGGTTTCGGCGGGGGTTGTTACTCTGGCGCAGCGTGCGATTGATTCGCAGAATATGACCAAGGCCGCGCAAAGTCTCAATAGTATCCAAGTTGCACTGACACAGACATACCGTGGTCTAGGTAATTATCCAGCAACAGCTGATGCGACAGCTGCTAGTAAGCTAACTTCAGGCTTGGTTAGTTTAGGTAAAATATCATCCGATGAGGCAAAAAACCCATTCATTGGTACAAATATGAATATTTTTTCATTTCCGCGTAATGCAGCAGCTAATAAAGCATTTGCAATTTCAGTGGATGGTCTGACACAGGCTCAATGCAAGACACTTATTACCAGTGTCGGTGATATGTTCCCATATATTGCAATCAAAGCTGGTGGCGCAGTAGCACTTGCAGATCTAGGTGATTTTGAGAATTCTGCAGCAGCGGCTGAGACAGGCGTTGGTGTGATCAAATCTATCGCTCCCGCTAGTAAGAATTTAGATCTAACGAACATCACTCACGTTGAGAAATTATGTAAAGGTACTGCTCCATTCGGCGTTGCATTTGGTAACAGCTAA
+>Vibriov1.0.0~~~tcpA_ElTor~~~CP064350.1~~~ElTor_biotype tcpA_ElTor_C6706
+ATGCAATTATTAAAACAGCTTTTTAAGAAGAAGTTTGTAAAAGAAGAACACGATAAGAAAACCGGTCAAGAGGGTATGACATTACTCGAAGTAATCATTGTTCTGGGTATTATGGGTGTGGTCTCAGCGGGTGTTGTTACGCTGGCTCAGCGTGCGATTGATTCGCAGAATATGACTAAGGCTGCGCAAAATCTAAACAGCGTGCAAATTGCAATGACACAAACTTATCGTAGTCTTGGTAATTATCCAGCTACCGCAAACGCAAATGCTGCTACACAGCTAGCTAATGGTTTGGTCAGCCTTGGTAAGGTTTCAGCTGATGAGGCAAAGAATCCTTTCACTGGTACAGCTATGGGGATTTTCTCATTTCCACGAAACTCTGCAGCGAATAAAGCATTCGCAATTACAGTCGGTGGCTTGACCCAAGCACAATGTAAGACTTTGGTTACAAGCGTAGGGGATATGTTTCCATTTATCAACGTGAAAGAAGGTGCTTTCGCTGCTGTCGCTGATCTTGGTGATTTCGAAACGAGTGTCGCAGATGCTGCTACTGGCGCTGGCGTAATTAAGTCCATTGCACCAGGAAGTGCCAACTTAAACCTAACTAATATCACGCATGTTGAGAAGCTTTGTACAGGAACTGCTCCATTCACAGTAGCTTTTGGTAACAGTTAA
+>Vibriov1.0.0~~~toxR~~~CP000627.1~~~Vcholerae_species_marker toxR_O395
+ATGTTCGGATTAGGACACAACTCAAAAGAGATATCGATGAGTCATATTGGTACTAAATTCATTCTTGCTGAAAAATTTACCTTCGATCCCCTAAGCAATACTCTGATTGACAAAGAAGATAGTGAAGAGATCATTCGATTAGGCAGCAACGAAAGCCGAATTCTTTGGCTGCTGGCCCAACGTCCAAACGAGGTGATTTCTCGCAATGATTTGCATGACTTTGTTTGGCGAGAGCAAGGTTTTGAAGTCGATGATTCCAGCTTAACCCAAGCCATTTCGACTCTGCGCAAAATGCTCAAAGATTCGACAAAGTCCCCACAATACGTCAAAACGGTTCCGAAGCGCGGTTACCAATTGATCGCCCGAGTGGAAACGGTTGAAGAAGAGATGGCTCGCGAAAACGAAGCTGCTCATGACATCTCTCAGCCAGAATCTGTCAATGAATACGCAGAATCAAGCAGTGTGCCTTCATCAGCCACTGTAGTGAACACACCGCAGCCAGCCAATGTCGTGGCGAATAAATCGGCTCCAAACTTGGGGAATCGACTGTTTATTCTGATAGCGGTCTTACTTCCCCTCGCAGTATTACTGCTCACTAACCCAAGCCAATCCAGCTTTAAACCCCTAACGGTTGTCGATGGCGTAGCCGTCAATATGCCGAATAACCACCCTGATCTTTCAAATTGGCTACCGTCAATCGAACTGTGCGTTAAAAAATACAATGAAAAACATACTGGTGGACTCAAGCCGATAGAAGTGATTGCCACTGGTGGACAAAATAACCAGTTAACGCTGAATTACATTCACAGCCCTGAAGTTTCAGGGGAAAACATAACCTTACGCATCGTTGCTAACCCTAACGATGCCATCAAAGTGTGTGAGTAG
+>Vibriov1.0.0~~~wbeN_O1~~~NA~~~O1_serotype_marker wbeN_O1_INDRE
+ATGCCTGTAAATAACGAAAATCTGACCAGTGTACTTGATGCTCGCCCTTTTGAATTATCAGAAGAGCAAAAATCTCCACTATTTAAAGCGAACTTACTTGCAGAGTTAGTACATCATTATCAATGCAACGAGATGTATCGCAAATTTTGTCAAAAAAACAAATTTGACCCTTTGGTATTTGATGGTGAGGTTGCAGATATTCCACCCATACCTGTGCACATCTTCAAAGCAATAGGACATAAATTATCTTCGGTAAGCGATGATACGATAAAAGCGAAGCTTCAATCTTCTGCTACCAGTGGCGTACCCAGTACCATATTGTTAGATAAGGTAACCGCTCGTCGACAGACTCGAGCAATGGCAAGAGTTATGCAGGAGGTGTTGGGGCCTAAACGTCGCCCGTTTTGCATTATGGATATTGATCCGACAAGCCCAAATGCCACTAACCTTGGGGCTCGTATTGCGGCGGTAAAAGGTTACCTAAACTTCGCCTCAACATCGAAGTATTTTATAGATGCTGATAGCCCAAGTGCTCCACTTGAATTTCTGGAGCAAAAGTTTGTTGAACATCTGAATTCACTTGCGAGTGAAGAGCCGCTCATAATTTTTGGATTCACGTTTGTACTTTATCACACGGTTTTTAAGACCCTTAAAGACAAGGGGATCTCGTTTCAATTGCCTAAAGGTTCTCAGGTTATTCATATTGGTGGTTGGAAAAAACTTGAGTCAGAGAAGGTGGATAAAATTACCTTTAATCGAGATATCGCCTCAGTATTGGGTATTTCTCCTGATGATGTTGTGGATATCTATGGTTTCACTGAACAGATGGGGCTTAATTACCCAGATTGTAAAGCAGGATGGAAACATATTCATGCCTATTCTGACGTAATTATTCGTGATGAATCGAACCTAGAAGTGTGTGGGCCAGGTAAAGTAGGCTTACTTGAGTTTGTAAGCCCACTACCGCATTCATATCCGGGGAATGTTGTACTTACAGATGACCTTGGTGTGATTGAAGAAAGTCTTTGTGAGTGTGGTAAAGCTGGAAAAAGATTCAAAGTCATTGGACGAGCAAAAAAAGCAGAAGTAAGAGGCTGTGGTGATGTTATGTCTGAGAAATTGACTAAAAAGCCATCGTATAAGCCACTTTCTCAACAAGAAGAGAGGTTGACTATCTACCACTCACCGATATTTCTCGATGATACTATGTCCGCATCTCAGCAGCTTGATCAAATCTTTTGTTCTTTAAAGAGGAAGCAAAAATGGCTGGCTAACCAACCATTAGAAGCTATTCTTGGTTTAATCAATGAAGCGCGCAAAAGCTGGTCGAGTACGCCGGAGCTTGACCCTTATCGACATACTGGATTGAACTTCCTAGCTGATTGGTGTGAACCCAATCGTTTGAAAAACCTGCTTGATTCAGCATTGAATGGTCAGCGAGCTTTTTTGGATAATTTTTTACCTCGTAAAGATATTAGCCATAGCTCTCAAAAAGCAATGCCAAGAGGTATCGTATCTCACTGGCTGTCGGGTAACGTACCGTTACTCGGCATGTTTGCGCTGGTACAGAGTATTTTAAGTAAAAATGCCAACATTCTGAAAGTTTCAGCAAGCGAATCGCAAGCTTTGCCAGTATTATTGGCGACTTTTAAAGGCCTTAGCTACACTACCCCAGGTGGTTACACTATCCACGGTGATGACTTATTAGGGACTCTCGCTGTTGTATATTTTGATCGACACCAAACTAAAATTGCAGAGAAGTTTTCGGCCAATGCTGATGTGCGTATAGCTTGGGGGGGACGAGAGGCAATCGAGTCTGTAAGTGGCCTTCCAAAGAAATATAATAGTCAAGATATCCTCTTTGGACCTAAGCTTTCTATGATGGTTGTTGGCAGCGATGCTCTAGACTCTGACAAGGCAATCAGAAAGTTGATTCGTCGGGCTGCAACTGACTCTAGTGTGTTCGATCAGTTTGCTTGCGCTTCTCCGCACACCATTTTTGTTGAGAAGGGCGGTCTAATAACACCTAAAGAGTTTGCAGAGAAGCTTGCCTCAGCAATGGATAAGGCTCTTGTACGCTTACCAACTCAAGTACCAGACATTGGGCAAGCAAATAAGATTCGCTCAAAGATAGCGGAATATGCATTTATTGGCGAATATTGGCATGACAAGCACTTACGTTGGACGGTGTTGTTTGATGAAGGGATAGAGCTTGTTGAGCCGACATATCAACGTGTTATTACAGTAAAAGCAGTTGATAATGTATTTGATGTAGTCGACAGTGTACATGAAGATATCCAAACGGTCGGGTTGGCGATGAATGGTGAAAAGCGTCTTCGTTTTGCTAACGAGATAATGTTAAAAGGTGCGATGCGATGTCCAGATGTCGGCTACATGACCCATTTTGATTCCCCATGGGATGGGGTTGTAGCGCTAGATAGAATGGTTCGTTGGGTAACTCTAGGAGGACCGCTGTGA
+>Vibriov1.0.0~~~wbfR_O139~~~NA~~~O139_serotype_marker wbfR_MO45
+ATGTGCGGTGTAGCGGGTTTTATTAGTAAGCGTTTATCGCCGGTCGACTGTTTAACTTCCATGGTCGAAAGTATTATGCATCGTGGACCGAATGATAGTGGTCTATGGGTTGATGATGACTTTGGTGTCTGTTTAGCGCACGCACGCTTATCAATACAGGATTTAAGTTCAGCTGGGCATCAGCCGATGCATTCAAAATCTGAGCGCTATGTTATGATTTTTAATGGTGAAATATACAATCATTTAACATTGCGTGAAGAACTGATCGAGATTGTACCAAGTTACTGGAATGGTCATTCAGATACCGAAACCTTGTTGGCTGGTTTTGAAGTGTGGGGAATAGAACAGACCATACAAAAATGTGTCGGTATGTTTGCTATCGTCCTATGGGATAAAGTACTTAAACAGTTGATCTTGATTCGGGATCGATTTGGTGAGAAGCCTCTTTATTACGGGTGGCAGCGCGATACTTTTCTGTTTGCTTCTGAGTTAAAAGCGCTTAAAGCTCATCCCAGTTTTGAAGGCAGCATTAATCGTCAGGCGTTATCGCATTTTTTTCGTTTGAATTACATACCAACGCCCTTATCCATTTATGAAGGTATCTTCAAGTTAGAGCCGGGTGTTATTGCTGTCTTTTCTCACGAGGGGCAGTTGCTCTCTAAACAAACATTTTGGGATGCCAGTCATGCTGTTTCTCTGCAAAATTTTTCCGATCATGATGCCGTTGATAAATTAGATGACTTAATTAAGCAGTCTATTCAAGATCAAGCGTTATCGGATGTTCCGTTAGGGGCTTTTTTATCCGGAGGGGTTGATTCGTCCACTGTGGTGGGTATTTTACAATCCCTCTCTACTCGTCCGGTCAAAACCTTTACGATCGGGTTTGACCACGCGGATTTTAATGAAGCGAGTGAGGCCTCAGACGTTGCAAAACACTTAGGAACGGATCATGTCGAGTTAATTGTCAGTGCAGAAGATGCTCTAGCGATTATTAATCAGTTACCTGTTATGTACGATGAACCTTTTGCTGACGCCTCTCAAGTGCCTACGTTTCTGGTTTCGAAGCTGGCTAAAAAAGAGGTCACTGTATGCTTGTCTGGTGATGGGGGCGATGAACTGTTTTGTGGTTATAACCGCTATCATTACACTGCTAAAGTTTGGTCGTATTTAGAAAAAATTCCCTTTCCAATCCGAAAAATGCTCTCAGTCTTTTTGTTGACGCTTTCGCCATCTTCTTGGGATGTTTTAAGTAAAACTTTAGGTTTGAATACCAGATTACCAAATTTAGGCAATAAAATTCAAAAAGGTGCCCAAGCTTTAAAGGCAAGAGATATTGAAGACCTTTATACACGGGTTGTCTCCAACTGGGATCTAGATGAGCCTTTGGTTAAAAATACTGCGGTTGAGAAATTACCGTTTTTGTCTGACTTAACAGAACTTTCCCATCTTAATGACTTAGAAAAAATGATGTTGTGGGATAAGCAATCTTATCTAATGGACGATGTTTTAGTGAAAACAGATCGTGCTACGATGGCGTGTTCATTAGAAGGGCGGGTTCCCTTGTTAGACCACCGCATTGCTGAGTTTGCTGCCAGTTTGCCGATCCATTTGAAATACCGAGGTGGAAAGGGAAAGTGGCTTTTACGAGAAGTACTGTATCGTTATGTACCTAAAAAATTAATTGAAAGGCCAAAAAAAGGGTTTAGTTTACCCATCGCTGAATGGTTGAGAGGACCGCTAAAAGATTGGGCGAATGTTTTGCTGGATTCTGATCGTATTGATAAAGAAGGCTTTTTGTCGTCTGAATTGGTTCAAAAGAAGTGGCGTGAACATTTAGCGGGTAAACGAGATTGGTCGTCGCAGTTGTGGAGCGTTCTAATGTTCCAATTATGGCTTGAGAAAAACAAATGA
\ No newline at end of file
diff --git a/aci/1.4.20240116/Dockerfile b/aci/1.4.20240116/Dockerfile
new file mode 100644
index 000000000..d3866127c
--- /dev/null
+++ b/aci/1.4.20240116/Dockerfile
@@ -0,0 +1,40 @@
+FROM python:3.9.17-slim as app
+
+ARG ACI_VER="1.4.20240116"
+
+LABEL base.image="python:3.9.17-slim"
+LABEL dockerfile.version="1"
+LABEL software="ACI"
+LABEL software.version="${ACI_VER}"
+LABEL description="Visualize Amplicon Coverage/Depth"
+LABEL website="https://github.com/erinyoung/ACI"
+LABEL license="https://github.com/erinyoung/ACI?tab=MIT-1-ov-file#readme"
+LABEL maintainer="Erin Young"
+LABEL maintainer.email="eriny@utah.gov"
+
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ procps && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+RUN pip install --no-cache amplicon_coverage_inspector==${ACI_VER}
+
+ENV PATH="$PATH" \
+ LC_ALL=C
+
+CMD [ "aci", "--help" ]
+
+WORKDIR /data
+
+FROM app as test
+
+WORKDIR /test
+
+RUN aci --help && \
+ aci --version
+
+RUN apt-get update && apt-get install -y --no-install-recommends wget
+
+RUN wget -q https://github.com/erinyoung/ACI/raw/main/tests/data/test.bam && \
+ wget -q https://raw.githubusercontent.com/erinyoung/ACI/main/tests/data/test.bed && \
+ aci --bam test.bam --bed test.bed --out out && \
+ ls out/*
diff --git a/aci/1.4.20240116/README.md b/aci/1.4.20240116/README.md
new file mode 100644
index 000000000..f31f977ad
--- /dev/null
+++ b/aci/1.4.20240116/README.md
@@ -0,0 +1,22 @@
+# ACI container
+
+Known as "amplicon_coverage_inspector" on PyPI
+
+Main tool: [ACI](https://github.com/erinyoung/ACI)
+
+Code repository: https://github.com/erinyoung/ACI
+
+
+Basic information on how to use this tool:
+- executable: aci
+- help: --help
+- version: --version
+- description: Visualize amplicon coverage and depth
+
+Full documentation: [https://github.com/erinyoung/ACI](https://github.com/erinyoung/ACI)
+
+## Example Usage
+
+```bash
+aci --bam test.bam --bed test.bed --out out
+```
diff --git a/aniclustermap/1.3.0/Dockerfile b/aniclustermap/1.3.0/Dockerfile
new file mode 100644
index 000000000..6b36d79dd
--- /dev/null
+++ b/aniclustermap/1.3.0/Dockerfile
@@ -0,0 +1,61 @@
+ARG ANICLUSTERMAP_VER="1.3.0"
+ARG FASTANI_VER="1.34"
+ARG SKANI_VER="0.2.1"
+
+FROM staphb/fastani:${FASTANI_VER} as fastani
+FROM staphb/skani:${SKANI_VER} as skani
+
+## App ##
+FROM ubuntu:jammy as app
+
+ARG ANICLUSTERMAP_VER
+
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="ANIclustermap"
+LABEL software.version="${ANICLUSTERMAP_VER}"
+LABEL description="ANIclustermap draws ANI(Average Nucleotide Identity) clustermap between all-vs-all microbial genomes."
+LABEL website="https://github.com/moshi4/ANIclustermap"
+LABEL license="https://github.com/moshi4/ANIclustermap/blob/main/LICENSE"
+LABEL maintainer="Kutluhan Incekara"
+LABEL maintainer.email="kutluhan.incekara@ct.gov"
+
+# install aniclustermap and its dependencies
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ python3-pip \
+ libgomp1 &&\
+ apt-get autoclean && rm -rf /var/lib/apt/lists/* &&\
+ pip install aniclustermap==${ANICLUSTERMAP_VER}
+
+# import fastani & skani
+COPY --from=fastani /usr/local/bin/fastANI /usr/local/bin/
+COPY --from=skani /usr/local/bin/skani /usr/local/bin/
+
+# default run command
+CMD ANIclustermap -h
+
+# singularity compatibility
+ENV LC_ALL=C
+
+WORKDIR /data
+
+## Test ##
+FROM app as test
+
+ARG ANICLUSTERMAP_VER
+
+RUN apt-get update && apt-get install -y wget
+
+# download test data from repo
+RUN wget https://github.com/moshi4/ANIclustermap/archive/refs/tags/v${ANICLUSTERMAP_VER}.tar.gz &&\
+ tar -xvf v${ANICLUSTERMAP_VER}.tar.gz
+# run default fastani mode
+RUN ANIclustermap -i ANIclustermap-${ANICLUSTERMAP_VER}/example/input/minimal_dataset/ -o fastani
+# run skani mode
+RUN ANIclustermap -m skani -i ANIclustermap-${ANICLUSTERMAP_VER}/example/input/minimal_dataset/ -o skani
+# check results
+RUN ls fastani &&\
+ cat fastani/ANIclustermap_matrix.tsv &&\
+ ls skani &&\
+ cat skani/ANIclustermap_matrix.tsv
+
diff --git a/aniclustermap/1.3.0/README.md b/aniclustermap/1.3.0/README.md
new file mode 100644
index 000000000..9a9da72a2
--- /dev/null
+++ b/aniclustermap/1.3.0/README.md
@@ -0,0 +1,24 @@
+# ANIclustermap container
+
+Main tool: [ANIclustermap](https://github.com/moshi4/ANIclustermap)
+
+Code repository: https://github.com/moshi4/ANIclustermap
+
+Additional tools:
+- fastANI: 1.34
+- skani: 0.2.1
+
+Basic information on how to use this tool:
+- executable: ANIclustermap
+- help: -h, --help
+- version: -v, --version
+- description: ANIclustermap is easy-to-use tool for drawing ANI(Average Nucleotide Identity) clustermap between all-vs-all microbial genomes.
+
+
+Full documentation: https://github.com/moshi4/ANIclustermap
+
+## Example Usage
+
+```bash
+ANIclustermap -i input_directory -o output_directory
+```
diff --git a/aniclustermap/1.4.0/Dockerfile b/aniclustermap/1.4.0/Dockerfile
new file mode 100644
index 000000000..f8b27c271
--- /dev/null
+++ b/aniclustermap/1.4.0/Dockerfile
@@ -0,0 +1,61 @@
+ARG ANICLUSTERMAP_VER="1.4.0"
+ARG FASTANI_VER="1.34"
+ARG SKANI_VER="0.2.2"
+
+FROM staphb/fastani:${FASTANI_VER} as fastani
+FROM staphb/skani:${SKANI_VER} as skani
+
+## App ##
+FROM ubuntu:jammy as app
+
+ARG ANICLUSTERMAP_VER
+
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="ANIclustermap"
+LABEL software.version="${ANICLUSTERMAP_VER}"
+LABEL description="ANIclustermap draws ANI(Average Nucleotide Identity) clustermap between all-vs-all microbial genomes."
+LABEL website="https://github.com/moshi4/ANIclustermap"
+LABEL license="https://github.com/moshi4/ANIclustermap/blob/main/LICENSE"
+LABEL maintainer="Kutluhan Incekara"
+LABEL maintainer.email="kutluhan.incekara@ct.gov"
+
+# install aniclustermap and its dependencies
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ python3-pip \
+ libgomp1 &&\
+ apt-get autoclean && rm -rf /var/lib/apt/lists/* &&\
+ pip install -vv --no-cache-dir aniclustermap==${ANICLUSTERMAP_VER}
+
+# import fastani & skani
+COPY --from=fastani /usr/local/bin/fastANI /usr/local/bin/
+COPY --from=skani /usr/local/bin/skani /usr/local/bin/
+
+# default run command
+CMD ANIclustermap -h
+
+# singularity compatibility
+ENV LC_ALL=C
+
+WORKDIR /data
+
+## Test ##
+FROM app as test
+
+ARG ANICLUSTERMAP_VER
+
+RUN apt-get update && apt-get install -y wget
+
+# download test data from repo
+RUN wget https://github.com/moshi4/ANIclustermap/archive/refs/tags/v${ANICLUSTERMAP_VER}.tar.gz &&\
+ tar -xvf v${ANICLUSTERMAP_VER}.tar.gz
+# run default fastani mode
+RUN ANIclustermap -i ANIclustermap-${ANICLUSTERMAP_VER}/example/input/minimal_dataset/ -o fastani
+# run skani mode
+RUN ANIclustermap -m skani -i ANIclustermap-${ANICLUSTERMAP_VER}/example/input/minimal_dataset/ -o skani
+# check results
+RUN ls fastani &&\
+ cat fastani/ANIclustermap_matrix.tsv &&\
+ ls skani &&\
+ cat skani/ANIclustermap_matrix.tsv
+
diff --git a/aniclustermap/1.4.0/README.md b/aniclustermap/1.4.0/README.md
new file mode 100644
index 000000000..7e33c2c97
--- /dev/null
+++ b/aniclustermap/1.4.0/README.md
@@ -0,0 +1,24 @@
+# ANIclustermap container
+
+Main tool: [ANIclustermap](https://github.com/moshi4/ANIclustermap)
+
+Code repository: https://github.com/moshi4/ANIclustermap
+
+Additional tools:
+- fastANI: 1.34
+- skani: 0.2.2
+
+Basic information on how to use this tool:
+- executable: ANIclustermap
+- help: -h, --help
+- version: -v, --version
+- description: ANIclustermap is easy-to-use tool for drawing ANI(Average Nucleotide Identity) clustermap between all-vs-all microbial genomes.
+
+
+Full documentation: https://github.com/moshi4/ANIclustermap
+
+## Example Usage
+
+```bash
+ANIclustermap -i input_directory -o output_directory
+```
diff --git a/ariba/2.14.7/Dockerfile b/ariba/2.14.7/Dockerfile
new file mode 100644
index 000000000..37be1e65d
--- /dev/null
+++ b/ariba/2.14.7/Dockerfile
@@ -0,0 +1,92 @@
+FROM ubuntu:jammy as app
+
+# for easy upgrade later. ARG variables only persist during build time
+ARG ARIBA_VER="2.14.7"
+
+# versions from https://github.com/sanger-pathogens/ariba/blob/71909ed5b068723119e941045d25ed60328e70e7/install_dependencies.sh
+ARG SPADES_VER="3.13.1"
+
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="ARIBA"
+LABEL software.version="${ARIBA_VER}"
+LABEL description="ARIBA: Antimicrobial Resistance Identification By Assembly"
+LABEL website="https://github.com/sanger-pathogens/ariba"
+LABEL license="https://github.com/sanger-pathogens/ariba/blob/master/LICENSE"
+LABEL maintainer="Curtis Kapsak"
+LABEL maintainer.email="kapsakcj@gmail.com"
+LABEL maintainer2="Harry Hung"
+LABEL maintainer2.email="ch31@sanger.ac.uk"
+
+# prevents having to enter commands during apt-get install
+ARG DEBIAN_FRONTEND=noninteractive
+
+# dependencies
+RUN apt-get update && apt-get install --no-install-recommends -y \
+ python3-dev \
+ python3-pip \
+ python3-tk \
+ python3-setuptools \
+ python3-wheel \
+ cython3 \
+ zlib1g-dev \
+ bowtie2 \
+ mummer \
+ cd-hit \
+ wget \
+ curl \
+ gawk \
+ locales-all \
+ build-essential \
+ libbz2-dev \
+ libjpeg-dev \
+ liblzma-dev \
+ autoconf \
+ automake \
+ perl \
+ libcurl4-gnutls-dev \
+ libssl-dev \
+ libncurses5 && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+ENV LANG=en_US.UTF-8 \
+ LANGUAGE=en_US:en
+
+# optional installation to enable the usage of SPAdes assembler
+RUN wget -q https://github.com/ablab/spades/releases/download/v${SPADES_VER}/SPAdes-${SPADES_VER}-Linux.tar.gz && \
+ tar -xzf SPAdes-${SPADES_VER}-Linux.tar.gz && \
+ rm SPAdes-${SPADES_VER}-Linux.tar.gz
+
+# needed to avoid a matplotlib error
+# https://github.com/sanger-pathogens/ariba/blob/b1b524c9d9588cba9d998c9121bd74c63856526/Dockerfile#L49
+ENV MPLBACKEND="agg"
+
+# install ariba with pip3
+RUN wget -q https://github.com/sanger-pathogens/ariba/archive/refs/tags/v${ARIBA_VER}.tar.gz && \
+ pip3 install v${ARIBA_VER}.tar.gz && \
+ rm -rf v${ARIBA_VER}.tar.gz && \
+ mkdir /data
+
+# set $PATH and locale settings for singularity compatibility
+ENV PATH="/SPAdes-${SPADES_VER}-Linux/bin:$PATH" \
+ LC_ALL=C
+
+WORKDIR /data
+
+# default command is to pull up help options
+CMD ["ariba", "--help"]
+
+# new base for testing
+FROM app as test
+
+# print out ARIBA version and
+RUN ariba version
+
+# run built-in test and confirm files are successfully created
+RUN ariba test out && \
+ ls out/OUT/assemblies.fa.gz && \
+ ls out/OUT/assembled_genes.fa.gz && \
+ ls out/OUT/assembled_seqs.fa.gz && \
+ ls out/OUT/log.clusters.gz && \
+ ls out/OUT/report.tsv && \
+ ls out/OUT/version_info.txt
diff --git a/ariba/2.14.7/README.md b/ariba/2.14.7/README.md
new file mode 100644
index 000000000..a239fe46d
--- /dev/null
+++ b/ariba/2.14.7/README.md
@@ -0,0 +1,34 @@
+# ARIBA container
+
+Main tool: [ARIBA](https://github.com/sanger-pathogens/ariba)
+
+Additional tools:
+- [bowtie2](https://bowtie-bio.sourceforge.net/bowtie2/manual.shtml) 2.4.4
+- [SPAdes](https://github.com/ablab/spades) 3.13.1
+- [mummer](https://mummer.sourceforge.net/) 3.1
+- [cd-hit](https://sites.google.com/view/cd-hit) 4.8.1
+
+Full documentation: [https://github.com/sanger-pathogens/ariba/wiki](https://github.com/sanger-pathogens/ariba/wiki)
+
+Antimicrobial Resistance Identification By Assembly
+
+ARIBA is a tool that identifies antibiotic resistance genes by running local assemblies. It can also be used for MLST calling.
+
+The input is a FASTA file of reference sequences (can be a mix of genes and noncoding sequences) and paired sequencing reads. ARIBA reports which of the reference sequences were found, plus detailed information on the quality of the assemblies and any variants between the sequencing reads and the reference sequences.
+
+## Example Usage
+
+```bash
+# Get reference data, for instance from CARD
+ariba getref ncbi out.ncbi
+
+# Prepare reference data for ARIBA
+ariba prepareref -f out.ncbi.fa -m out.ncbi.tsv out.ncbi.prepareref
+
+# Run local assemblies and call variants
+ariba run out.ncbi.prepareref reads1.fastq reads2.fastq out.run
+
+#Summarise data from several runs
+ariba summary out.summary out.run1/report1.tsv out.run2/report2.tsv out.run3/report3.tsv
+```
+Please read the [ARIBA wiki page](https://github.com/sanger-pathogens/ariba/wiki) for full usage instructions.
\ No newline at end of file
diff --git a/artic/1.2.4-1.12.0/Dockerfile b/artic/1.2.4-1.12.0/Dockerfile
new file mode 100644
index 000000000..773046992
--- /dev/null
+++ b/artic/1.2.4-1.12.0/Dockerfile
@@ -0,0 +1,99 @@
+ARG ARTIC_VER=1.2.4
+
+FROM mambaorg/micromamba:1.4.9 as app
+
+ARG ARTIC_VER
+ARG MEDAKA_VER=1.12.0
+
+LABEL base.image="mambaorg/micromamba:1.4.9"
+LABEL dockerfile.version="1"
+LABEL software="artic"
+LABEL software.version="${ARTIC_VER}"
+LABEL software1="medaka"
+LABEL software1.version="${MEDAKA_VER}"
+LABEL description="A bioinformatics pipeline for working with virus sequencing data sequenced with nanopore"
+LABEL website="https://github.com/artic-network/fieldbioinformatics"
+LABEL license="https://github.com/artic-network/fieldbioinformatics/blob/master/LICENSE"
+LABEL sop="https://artic.network/ncov-2019/ncov2019-bioinformatics-sop.html"
+LABEL maintainer="Erin Young"
+LABEL maintainer.email="eriny@utah.gov"
+
+USER root
+WORKDIR /
+
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ wget \
+ ca-certificates \
+ procps \
+ gcc \
+ make \
+ pkg-config \
+ zlib1g-dev \
+ libbz2-dev \
+ liblzma-dev \
+ libcurl4-gnutls-dev \
+ libssl-dev \
+ python3-dev \
+ python3-pip \
+ python-is-python3 && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+RUN micromamba create -n artic -y -c conda-forge -c bioconda -c defaults \
+ artic=${ARTIC_VER} && \
+ micromamba clean -a -y && \
+ mkdir /data
+
+ENV PATH="${PATH}:/opt/conda/envs/artic/bin/" \
+ LC_ALL=C.UTF-8
+
+RUN artic --help
+
+RUN pip install medaka==${MEDAKA_VER} && \
+ pip install pyabpoa && \
+ medaka --version
+
+CMD artic --help
+
+WORKDIR /data
+
+##### ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- #####
+##### Step 2. Set up the testing stage. #####
+##### The docker image is built to the 'test' stage before merging, but #####
+##### the test stage (or any stage after 'app') will be lost. #####
+##### ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- #####
+
+# A second FROM insruction creates a new stage
+# new base for testing
+FROM app as test
+ARG ARTIC_VER
+
+# print help and version info; check dependencies (not all software has these options available)
+# Mostly this ensures the tool of choice is in path and is executable
+RUN artic --help && \
+ artic --version && \
+ medaka --version
+
+# listing available models
+RUN medaka tools list\_models
+
+WORKDIR /
+
+# test that came with artic
+RUN wget -q https://github.com/artic-network/fieldbioinformatics/archive/refs/tags/v${ARTIC_VER}.tar.gz && \
+ tar -vxf v${ARTIC_VER}.tar.gz && \
+ cd /fieldbioinformatics-${ARTIC_VER} && ls && \
+ bash ./test-runner.sh medaka && bash ./test-runner.sh nanopolish
+
+WORKDIR /test
+
+# using on "real" data (sample files were not sequenced with version 5.3.2 primers)
+RUN wget -q ftp://ftp.sra.ebi.ac.uk/vol1/fastq/SRR224/050/SRR22452250/SRR22452250_1.fastq.gz && \
+ artic guppyplex --min-length 400 --max-length 700 --directory . --prefix SRR22452250_1.fastq.gz --output SRR22452250_1_filtered.fastq.gz && \
+ mkdir -p dir/name/V5 && \
+ wget -q https://raw.githubusercontent.com/artic-network/primer-schemes/master/nCoV-2019/V5.3.2/SARS-CoV-2.primer.bed -O dir/name/V5/name.primer.bed && \
+ wget -q https://raw.githubusercontent.com/artic-network/primer-schemes/master/nCoV-2019/V5.3.2/SARS-CoV-2.reference.fasta -O dir/name/V5/name.reference.fasta && \
+ wget -q https://raw.githubusercontent.com/artic-network/primer-schemes/master/nCoV-2019/V5.3.2/SARS-CoV-2.scheme.bed -O dir/name/V5/name.scheme.bed && \
+ samtools faidx dir/name/V5/name.reference.fasta && \
+ artic minion --normalise 200 --skip-nanopolish --medaka --medaka-model r941_min_high_g360 --threads 4 --read-file SRR22452250_1_filtered.fastq.gz --scheme-directory ./dir --scheme-version 5 name final && \
+ ls final*
+
diff --git a/artic/1.2.4-1.12.0/README.md b/artic/1.2.4-1.12.0/README.md
new file mode 100644
index 000000000..ec850c692
--- /dev/null
+++ b/artic/1.2.4-1.12.0/README.md
@@ -0,0 +1,68 @@
+# artic fieldbioinformatics container
+
+Main tool : [artic](https://github.com/artic-network/fieldbioinformatics)
+
+Additional tools:
+
+- medaka=1.12.0
+
+Full documentation: [https://github.com/artic-network/fieldbioinformatics](https://github.com/artic-network/fieldbioinformatics)
+
+There is also a very useful SOP: [https://artic.network/ncov-2019/ncov2019-bioinformatics-sop.html](https://artic.network/ncov-2019/ncov2019-bioinformatics-sop.html)
+And additional documentation: [https://artic.readthedocs.io/en/latest/](https://artic.readthedocs.io/en/latest/)
+
+> A bioinformatics pipeline for working with virus sequencing data sequenced with nanopore.
+
+WARNING : This container does not contain the primer schemes found at [https://github.com/artic-network/primer-schemes](https://github.com/artic-network/primer-schemes). Those will have to be downloaded and mounted separately.
+
+## Example Usage with the artic primers
+
+```bash
+# get primers
+git clone https://github.com/artic-network/primer-schemes
+
+# download reads for example
+wget -q ftp://ftp.sra.ebi.ac.uk/vol1/fastq/SRR224/050/SRR22452250/SRR22452250_1.fastq.gz
+
+# read filtering
+docker run -v $(pwd):/data staphb/artic:latest artic guppyplex --min-length 400 --max-length 700 --directory . --prefix SRR22452250_1.fastq.gz --output SRR22452250_1_filtered.fastq.gz
+
+# running the artic minion workflow with medaka
+docker run -v $(pwd):/data staphb/artic:latest artic minion --normalise 200 --skip-nanopolish --medaka --medaka-model r941_min_high_g360 --threads 4 --read-file SRR22452250_1_filtered.fastq.gz --scheme-directory primer-schemes --scheme-version 5.3.2 nCoV-2019 test
+
+# the result files will all start with test*
+```
+
+In general, any primer scheme can be used as long as it meets [artic's requirements](https://github.com/artic-network/primer-schemes).
+
+This is the recommended directory structure with corresponding files:
+
+```bash
+${directory}/${name}/V${version}/${name}.primer.bed
+${directory}/${name}/V${version}/${name}.scheme.bed
+${directory}/${name}/V${version}/${name}.reference.fasta
+${directory}/${name}/V${version}/${name}.reference.fasta.fai
+```
+
+The command to use this primer scheme would be
+
+```bash
+artic minion --normalise 200 --skip-nanopolish --medaka --medaka-model r941_min_high_g360 --threads 4 --read-file input.fastq.gz --scheme-directory ${directory} --scheme-version ${version} ${name} outputprefix
+```
+
+Different primer schemes can be validated via artic-tools (already in PATH) via
+
+```bash
+artic-tools validate_scheme ${basename}.primer.bed --outputInserts ${basename}.insert.bed
+```
+
+## Medaka models
+
+Medaka updates frequently, and artic can throw errors when corresponding ONT models are not found.
+
+These are the medaka models in this image:
+```
+Available: r103_fast_g507, r103_fast_snp_g507, r103_fast_variant_g507, r103_hac_g507, r103_hac_snp_g507, r103_hac_variant_g507, r103_min_high_g345, r103_min_high_g360, r103_prom_high_g360, r103_prom_snp_g3210, r103_prom_variant_g3210, r103_sup_g507, r103_sup_snp_g507, r103_sup_variant_g507, r1041_e82_260bps_fast_g632, r1041_e82_260bps_fast_variant_g632, r1041_e82_260bps_hac_g632, r1041_e82_260bps_hac_v4.0.0, r1041_e82_260bps_hac_v4.1.0, r1041_e82_260bps_hac_variant_g632, r1041_e82_260bps_hac_variant_v4.1.0, r1041_e82_260bps_joint_apk_ulk_v5.0.0, r1041_e82_260bps_sup_g632, r1041_e82_260bps_sup_v4.0.0, r1041_e82_260bps_sup_v4.1.0, r1041_e82_260bps_sup_variant_g632, r1041_e82_260bps_sup_variant_v4.1.0, r1041_e82_400bps_fast_g615, r1041_e82_400bps_fast_g632, r1041_e82_400bps_fast_variant_g615, r1041_e82_400bps_fast_variant_g632, r1041_e82_400bps_hac_g615, r1041_e82_400bps_hac_g632, r1041_e82_400bps_hac_v4.0.0, r1041_e82_400bps_hac_v4.1.0, r1041_e82_400bps_hac_v4.2.0, r1041_e82_400bps_hac_v4.3.0, r1041_e82_400bps_hac_v5.0.0, r1041_e82_400bps_hac_variant_g615, r1041_e82_400bps_hac_variant_g632, r1041_e82_400bps_hac_variant_v4.1.0, r1041_e82_400bps_hac_variant_v4.2.0, r1041_e82_400bps_hac_variant_v4.3.0, r1041_e82_400bps_hac_variant_v5.0.0, r1041_e82_400bps_sup_g615, r1041_e82_400bps_sup_v4.0.0, r1041_e82_400bps_sup_v4.1.0, r1041_e82_400bps_sup_v4.2.0, r1041_e82_400bps_sup_v4.3.0, r1041_e82_400bps_sup_v5.0.0, r1041_e82_400bps_sup_variant_g615, r1041_e82_400bps_sup_variant_v4.1.0, r1041_e82_400bps_sup_variant_v4.2.0, r1041_e82_400bps_sup_variant_v4.3.0, r1041_e82_400bps_sup_variant_v5.0.0, r104_e81_fast_g5015, r104_e81_fast_variant_g5015, r104_e81_hac_g5015, r104_e81_hac_variant_g5015, r104_e81_sup_g5015, r104_e81_sup_g610, r104_e81_sup_variant_g610, r10_min_high_g303, r10_min_high_g340, r941_e81_fast_g514, r941_e81_fast_variant_g514, r941_e81_hac_g514, r941_e81_hac_variant_g514, r941_e81_sup_g514, r941_e81_sup_variant_g514, r941_min_fast_g303, r941_min_fast_g507, r941_min_fast_snp_g507, r941_min_fast_variant_g507, r941_min_hac_g507, r941_min_hac_snp_g507, r941_min_hac_variant_g507, r941_min_high_g303, r941_min_high_g330, r941_min_high_g340_rle, r941_min_high_g344, r941_min_high_g351, r941_min_high_g360, r941_min_sup_g507, r941_min_sup_snp_g507, r941_min_sup_variant_g507, r941_prom_fast_g303, r941_prom_fast_g507, r941_prom_fast_snp_g507, r941_prom_fast_variant_g507, r941_prom_hac_g507, r941_prom_hac_snp_g507, r941_prom_hac_variant_g507, r941_prom_high_g303, r941_prom_high_g330, r941_prom_high_g344, r941_prom_high_g360, r941_prom_high_g4011, r941_prom_snp_g303, r941_prom_snp_g322, r941_prom_snp_g360, r941_prom_sup_g507, r941_prom_sup_snp_g507, r941_prom_sup_variant_g507, r941_prom_variant_g303, r941_prom_variant_g322, r941_prom_variant_g360, r941_sup_plant_g610, r941_sup_plant_variant_g610
+Default consensus: r1041_e82_400bps_sup_v5.0.0
+Default variant: r1041_e82_400bps_sup_variant_v5.0.0
+```
diff --git a/augur/24.2.2/Dockerfile b/augur/24.2.2/Dockerfile
new file mode 100644
index 000000000..1880ab69a
--- /dev/null
+++ b/augur/24.2.2/Dockerfile
@@ -0,0 +1,63 @@
+FROM python:3.11-slim as app
+
+ARG AUGUR_VER="24.2.2"
+
+# LABEL instructions tag the image with metadata that might be important to the user
+# Optional, but highly recommended
+LABEL base.image="python:3.11-slim"
+LABEL dockerfile.version="1"
+LABEL software="augur"
+LABEL software.version=${AUGUR_VER}
+LABEL description="Augur is the bioinformatics toolkit we use to track evolution from sequence and serological data.The output of augur is a series of JSONs that can be used to visualize your results using Auspice."
+LABEL website="https://github.com/nextstrain/augur"
+LABEL license="https://github.com/nextstrain/augur/blob/master/LICENSE.txt"
+LABEL maintainer="John Arnn"
+LABEL maintainer.email="jarnn@utah.gov"
+
+# 'RUN' executes code during the build
+# Install dependencies via apt-get or yum if using a centos or fedora base
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ procps \
+ ca-certificates \
+ wget \
+ mafft \
+ iqtree \
+ raxml \
+ fasttree \
+ vcftools && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+RUN wget -q https://github.com/nextstrain/augur/archive/refs/tags/${AUGUR_VER}.tar.gz && \
+ tar -xzvf ${AUGUR_VER}.tar.gz && \
+ rm ${AUGUR_VER}.tar.gz && \
+ cd augur-${AUGUR_VER} && \
+ python3 -m pip install '.[full]'
+
+CMD augur --help
+
+WORKDIR /data
+
+FROM app as test
+
+RUN augur --help
+
+WORKDIR /test
+
+RUN apt-get update && apt-get install -y --no-install-recommends git
+
+RUN git clone https://github.com/nextstrain/zika-tutorial && \
+ cd zika-tutorial && \
+ mkdir results && \
+ augur index --sequences data/sequences.fasta --output results/sequence_index.tsv && \
+ augur filter --sequences data/sequences.fasta \
+ --sequence-index results/sequence_index.tsv \
+ --metadata data/metadata.tsv \
+ --exclude config/dropped_strains.txt \
+ --output results/filtered.fasta \
+ --sequences-per-group 20 \
+ --min-date 2012 && \
+ augur align \
+ --sequences results/filtered.fasta \
+ --reference-sequence config/zika_outgroup.gb \
+ --output results/aligned.fasta \
+ --fill-gaps
diff --git a/augur/24.2.2/README.md b/augur/24.2.2/README.md
new file mode 100644
index 000000000..f8c0ee80c
--- /dev/null
+++ b/augur/24.2.2/README.md
@@ -0,0 +1,30 @@
+# Augur Container
+Main tool: [Augur](https://github.com/nextstrain/augur)
+
+Definition: One held to foretell events by omens.
+
+Augur is the bioinformatics toolkit we use to track evolution from sequence and serological data. It provides a collection of commands which are designed to be composable into larger processing pipelines.
+
+The output of augur is a series of JSONs that can be used to visualize your results using Auspice.
+
+Note: Auspice is a different tool.
+
+# Example Usage
+
+```
+augur index --sequences sequences.fasta --output sequence_index.tsv
+```
+
+```
+augur filter \
+ --sequences data/sequences.fasta \
+ --sequence-index results/sequence_index.tsv \
+ --metadata data/metadata.tsv \
+ --exclude config/dropped_strains.txt \
+ --output results/filtered.fasta \
+ --group-by country year month \
+ --sequences-per-group 20 \
+ --min-date 2012
+```
+
+Better documentation can be found [here.](https://docs.nextstrain.org/en/latest/tutorials/creating-a-workflow.html)
diff --git a/augur/24.2.3/Dockerfile b/augur/24.2.3/Dockerfile
new file mode 100644
index 000000000..20eabc340
--- /dev/null
+++ b/augur/24.2.3/Dockerfile
@@ -0,0 +1,63 @@
+FROM python:3.11-slim as app
+
+ARG AUGUR_VER="24.2.3"
+
+# LABEL instructions tag the image with metadata that might be important to the user
+# Optional, but highly recommended
+LABEL base.image="python:3.11-slim"
+LABEL dockerfile.version="1"
+LABEL software="augur"
+LABEL software.version=${AUGUR_VER}
+LABEL description="Augur is the bioinformatics toolkit we use to track evolution from sequence and serological data.The output of augur is a series of JSONs that can be used to visualize your results using Auspice."
+LABEL website="https://github.com/nextstrain/augur"
+LABEL license="https://github.com/nextstrain/augur/blob/master/LICENSE.txt"
+LABEL maintainer="John Arnn"
+LABEL maintainer.email="jarnn@utah.gov"
+
+# 'RUN' executes code during the build
+# Install dependencies via apt-get or yum if using a centos or fedora base
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ procps \
+ ca-certificates \
+ wget \
+ mafft \
+ iqtree \
+ raxml \
+ fasttree \
+ vcftools && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+RUN wget -q https://github.com/nextstrain/augur/archive/refs/tags/${AUGUR_VER}.tar.gz && \
+ tar -xzvf ${AUGUR_VER}.tar.gz && \
+ rm ${AUGUR_VER}.tar.gz && \
+ cd augur-${AUGUR_VER} && \
+ python3 -m pip install '.[full]'
+
+CMD augur --help
+
+WORKDIR /data
+
+FROM app as test
+
+RUN augur --help
+
+WORKDIR /test
+
+RUN apt-get update && apt-get install -y --no-install-recommends git
+
+RUN git clone https://github.com/nextstrain/zika-tutorial && \
+ cd zika-tutorial && \
+ mkdir results && \
+ augur index --sequences data/sequences.fasta --output results/sequence_index.tsv && \
+ augur filter --sequences data/sequences.fasta \
+ --sequence-index results/sequence_index.tsv \
+ --metadata data/metadata.tsv \
+ --exclude config/dropped_strains.txt \
+ --output results/filtered.fasta \
+ --sequences-per-group 20 \
+ --min-date 2012 && \
+ augur align \
+ --sequences results/filtered.fasta \
+ --reference-sequence config/zika_outgroup.gb \
+ --output results/aligned.fasta \
+ --fill-gaps
diff --git a/augur/24.2.3/README.md b/augur/24.2.3/README.md
new file mode 100644
index 000000000..f8c0ee80c
--- /dev/null
+++ b/augur/24.2.3/README.md
@@ -0,0 +1,30 @@
+# Augur Container
+Main tool: [Augur](https://github.com/nextstrain/augur)
+
+Definition: One held to foretell events by omens.
+
+Augur is the bioinformatics toolkit we use to track evolution from sequence and serological data. It provides a collection of commands which are designed to be composable into larger processing pipelines.
+
+The output of augur is a series of JSONs that can be used to visualize your results using Auspice.
+
+Note: Auspice is a different tool.
+
+# Example Usage
+
+```
+augur index --sequences sequences.fasta --output sequence_index.tsv
+```
+
+```
+augur filter \
+ --sequences data/sequences.fasta \
+ --sequence-index results/sequence_index.tsv \
+ --metadata data/metadata.tsv \
+ --exclude config/dropped_strains.txt \
+ --output results/filtered.fasta \
+ --group-by country year month \
+ --sequences-per-group 20 \
+ --min-date 2012
+```
+
+Better documentation can be found [here.](https://docs.nextstrain.org/en/latest/tutorials/creating-a-workflow.html)
diff --git a/augur/24.3.0/Dockerfile b/augur/24.3.0/Dockerfile
new file mode 100644
index 000000000..5f9bd2162
--- /dev/null
+++ b/augur/24.3.0/Dockerfile
@@ -0,0 +1,63 @@
+FROM python:3.11-slim as app
+
+ARG AUGUR_VER="24.3.0"
+
+# LABEL instructions tag the image with metadata that might be important to the user
+# Optional, but highly recommended
+LABEL base.image="python:3.11-slim"
+LABEL dockerfile.version="1"
+LABEL software="augur"
+LABEL software.version=${AUGUR_VER}
+LABEL description="Augur is the bioinformatics toolkit we use to track evolution from sequence and serological data.The output of augur is a series of JSONs that can be used to visualize your results using Auspice."
+LABEL website="https://github.com/nextstrain/augur"
+LABEL license="https://github.com/nextstrain/augur/blob/master/LICENSE.txt"
+LABEL maintainer="John Arnn"
+LABEL maintainer.email="jarnn@utah.gov"
+
+# 'RUN' executes code during the build
+# Install dependencies via apt-get or yum if using a centos or fedora base
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ procps \
+ ca-certificates \
+ wget \
+ mafft \
+ iqtree \
+ raxml \
+ fasttree \
+ vcftools && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+RUN wget -q https://github.com/nextstrain/augur/archive/refs/tags/${AUGUR_VER}.tar.gz && \
+ tar -xzvf ${AUGUR_VER}.tar.gz && \
+ rm ${AUGUR_VER}.tar.gz && \
+ cd augur-${AUGUR_VER} && \
+ python3 -m pip install '.[full]'
+
+CMD augur --help
+
+WORKDIR /data
+
+FROM app as test
+
+RUN augur --help
+
+WORKDIR /test
+
+RUN apt-get update && apt-get install -y --no-install-recommends git
+
+RUN git clone https://github.com/nextstrain/zika-tutorial && \
+ cd zika-tutorial && \
+ mkdir results && \
+ augur index --sequences data/sequences.fasta --output results/sequence_index.tsv && \
+ augur filter --sequences data/sequences.fasta \
+ --sequence-index results/sequence_index.tsv \
+ --metadata data/metadata.tsv \
+ --exclude config/dropped_strains.txt \
+ --output results/filtered.fasta \
+ --sequences-per-group 20 \
+ --min-date 2012 && \
+ augur align \
+ --sequences results/filtered.fasta \
+ --reference-sequence config/zika_outgroup.gb \
+ --output results/aligned.fasta \
+ --fill-gaps
diff --git a/augur/24.3.0/README.md b/augur/24.3.0/README.md
new file mode 100644
index 000000000..f8c0ee80c
--- /dev/null
+++ b/augur/24.3.0/README.md
@@ -0,0 +1,30 @@
+# Augur Container
+Main tool: [Augur](https://github.com/nextstrain/augur)
+
+Definition: One held to foretell events by omens.
+
+Augur is the bioinformatics toolkit we use to track evolution from sequence and serological data. It provides a collection of commands which are designed to be composable into larger processing pipelines.
+
+The output of augur is a series of JSONs that can be used to visualize your results using Auspice.
+
+Note: Auspice is a different tool.
+
+# Example Usage
+
+```
+augur index --sequences sequences.fasta --output sequence_index.tsv
+```
+
+```
+augur filter \
+ --sequences data/sequences.fasta \
+ --sequence-index results/sequence_index.tsv \
+ --metadata data/metadata.tsv \
+ --exclude config/dropped_strains.txt \
+ --output results/filtered.fasta \
+ --group-by country year month \
+ --sequences-per-group 20 \
+ --min-date 2012
+```
+
+Better documentation can be found [here.](https://docs.nextstrain.org/en/latest/tutorials/creating-a-workflow.html)
diff --git a/augur/24.4.0/Dockerfile b/augur/24.4.0/Dockerfile
new file mode 100644
index 000000000..639ff75e2
--- /dev/null
+++ b/augur/24.4.0/Dockerfile
@@ -0,0 +1,63 @@
+FROM python:3.11-slim as app
+
+ARG AUGUR_VER="24.4.0"
+
+# LABEL instructions tag the image with metadata that might be important to the user
+# Optional, but highly recommended
+LABEL base.image="python:3.11-slim"
+LABEL dockerfile.version="1"
+LABEL software="augur"
+LABEL software.version=${AUGUR_VER}
+LABEL description="Augur is the bioinformatics toolkit we use to track evolution from sequence and serological data.The output of augur is a series of JSONs that can be used to visualize your results using Auspice."
+LABEL website="https://github.com/nextstrain/augur"
+LABEL license="https://github.com/nextstrain/augur/blob/master/LICENSE.txt"
+LABEL maintainer="John Arnn"
+LABEL maintainer.email="jarnn@utah.gov"
+
+# 'RUN' executes code during the build
+# Install dependencies via apt-get or yum if using a centos or fedora base
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ procps \
+ ca-certificates \
+ wget \
+ mafft \
+ iqtree \
+ raxml \
+ fasttree \
+ vcftools && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+RUN wget -q https://github.com/nextstrain/augur/archive/refs/tags/${AUGUR_VER}.tar.gz && \
+ tar -xzvf ${AUGUR_VER}.tar.gz && \
+ rm ${AUGUR_VER}.tar.gz && \
+ cd augur-${AUGUR_VER} && \
+ python3 -m pip install '.[full]'
+
+CMD augur --help
+
+WORKDIR /data
+
+FROM app as test
+
+RUN augur --help
+
+WORKDIR /test
+
+RUN apt-get update && apt-get install -y --no-install-recommends git
+
+RUN git clone https://github.com/nextstrain/zika-tutorial && \
+ cd zika-tutorial && \
+ mkdir results && \
+ augur index --sequences data/sequences.fasta --output results/sequence_index.tsv && \
+ augur filter --sequences data/sequences.fasta \
+ --sequence-index results/sequence_index.tsv \
+ --metadata data/metadata.tsv \
+ --exclude config/dropped_strains.txt \
+ --output results/filtered.fasta \
+ --sequences-per-group 20 \
+ --min-date 2012 && \
+ augur align \
+ --sequences results/filtered.fasta \
+ --reference-sequence config/zika_outgroup.gb \
+ --output results/aligned.fasta \
+ --fill-gaps
diff --git a/augur/24.4.0/README.md b/augur/24.4.0/README.md
new file mode 100644
index 000000000..f8c0ee80c
--- /dev/null
+++ b/augur/24.4.0/README.md
@@ -0,0 +1,30 @@
+# Augur Container
+Main tool: [Augur](https://github.com/nextstrain/augur)
+
+Definition: One held to foretell events by omens.
+
+Augur is the bioinformatics toolkit we use to track evolution from sequence and serological data. It provides a collection of commands which are designed to be composable into larger processing pipelines.
+
+The output of augur is a series of JSONs that can be used to visualize your results using Auspice.
+
+Note: Auspice is a different tool.
+
+# Example Usage
+
+```
+augur index --sequences sequences.fasta --output sequence_index.tsv
+```
+
+```
+augur filter \
+ --sequences data/sequences.fasta \
+ --sequence-index results/sequence_index.tsv \
+ --metadata data/metadata.tsv \
+ --exclude config/dropped_strains.txt \
+ --output results/filtered.fasta \
+ --group-by country year month \
+ --sequences-per-group 20 \
+ --min-date 2012
+```
+
+Better documentation can be found [here.](https://docs.nextstrain.org/en/latest/tutorials/creating-a-workflow.html)
diff --git a/bakta/1.9.2-5.1-light/Dockerfile b/bakta/1.9.2-5.1-light/Dockerfile
new file mode 100644
index 000000000..fe2aba215
--- /dev/null
+++ b/bakta/1.9.2-5.1-light/Dockerfile
@@ -0,0 +1,54 @@
+FROM mambaorg/micromamba:1.4.9 as app
+
+ARG BAKTA_VER="1.9.2"
+ARG DIAMOND_VER="2.1.8"
+
+# '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="Bakta"
+LABEL software.version="${BAKTA_VER}"
+LABEL description="rapid & standardized annotation of bacterial genomes, MAGs & plasmids"
+LABEL website="https://github.com/oschwengers/bakta"
+LABEL license="https://github.com/oschwengers/bakta/blob/main/LICENSE"
+LABEL maintainer="Erin Young"
+LABEL maintainer.email="eriny@utah.gov"
+
+USER root
+
+WORKDIR /
+
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ wget \
+ procps \
+ ca-certificates && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+RUN micromamba install --name base -c conda-forge -c bioconda -c defaults bakta=${BAKTA_VER} diamond=${DIAMOND_VER} && \
+ micromamba clean -a -y && \
+ mkdir /data
+
+ENV PATH="/opt/conda/bin/:$PATH" \
+ LC_ALL=C \
+ BAKTA_DB=/db/db-light
+
+WORKDIR /db
+
+RUN bakta_db download --type light
+
+CMD bakta --help
+
+WORKDIR /data
+
+FROM app as test
+
+WORKDIR /test
+
+RUN bakta --help && \
+ bakta_db --help && \
+ bakta --version
+
+RUN wget -q https://ftp.ncbi.nlm.nih.gov/genomes/all/GCF/000/195/815/GCF_000195815.1_ASM19581v1/GCF_000195815.1_ASM19581v1_genomic.fna.gz && \
+ gunzip GCF_000195815.1_ASM19581v1_genomic.fna.gz && \
+ bakta GCF_000195815.1_ASM19581v1_genomic.fna && \
+ head GCF_000195815.1_ASM19581v1_genomic.gbff
diff --git a/bakta/1.9.2-5.1-light/README.md b/bakta/1.9.2-5.1-light/README.md
new file mode 100644
index 000000000..a30801510
--- /dev/null
+++ b/bakta/1.9.2-5.1-light/README.md
@@ -0,0 +1,24 @@
+# bakta container
+
+Main tool: [bakta](https://github.com/oschwengers/bakta)
+
+Code repository: https://github.com/oschwengers/bakta
+
+Basic information on how to use this tool:
+- executable: bakta
+- help: -h
+- version: -v
+- description: Annotates bacterial genomes
+
+> Bakta is a tool for the rapid & standardized annotation of bacterial genomes and plasmids from both isolates and MAGs. It provides dbxref-rich, sORF-including and taxon-independent annotations in machine-readable JSON & bioinformatics standard file formats for automated downstream analysis.
+
+Additional information:
+
+This image contains the version 5.1 light database. It is located in /db/db-light and set as BAKTA_DB so that --db doesn't have to be used.
+
+Full documentation: https://github.com/oschwengers/bakta/
+
+Example Usage
+```bash
+bakta sample.fasta --threads 20 --prefix sample
+```
diff --git a/bakta/1.9.2/Dockerfile b/bakta/1.9.2/Dockerfile
new file mode 100644
index 000000000..9dd243267
--- /dev/null
+++ b/bakta/1.9.2/Dockerfile
@@ -0,0 +1,52 @@
+FROM mambaorg/micromamba:1.4.9 as app
+
+ARG BAKTA_VER="1.9.2"
+ARG DIAMOND_VER="2.1.8"
+
+# '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="Bakta"
+LABEL software.version="${BAKTA_VER}"
+LABEL description="rapid & standardized annotation of bacterial genomes, MAGs & plasmids"
+LABEL website="https://github.com/oschwengers/bakta"
+LABEL license="https://github.com/oschwengers/bakta/blob/main/LICENSE"
+LABEL maintainer="Erin Young"
+LABEL maintainer.email="eriny@utah.gov"
+
+USER root
+
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ wget \
+ procps \
+ ca-certificates && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+RUN micromamba install --name base -c conda-forge -c bioconda -c defaults bakta=${BAKTA_VER} diamond=${DIAMOND_VER} && \
+ micromamba clean -a -y && \
+ mkdir /data
+
+ENV PATH="/opt/conda/bin/:$PATH" \
+ LC_ALL=C
+
+CMD bakta --help
+
+WORKDIR /data
+
+FROM app as test
+
+#export BAKTA_DB=/test/db-light
+
+WORKDIR /test
+
+RUN bakta --help && \
+ bakta_db --help && \
+ bakta --version
+
+RUN bakta_db list && \
+ bakta_db download --type light
+
+RUN wget -q https://ftp.ncbi.nlm.nih.gov/genomes/all/GCF/000/195/815/GCF_000195815.1_ASM19581v1/GCF_000195815.1_ASM19581v1_genomic.fna.gz && \
+ gunzip GCF_000195815.1_ASM19581v1_genomic.fna.gz && \
+ bakta --db /test/db-light GCF_000195815.1_ASM19581v1_genomic.fna && \
+ head GCF_000195815.1_ASM19581v1_genomic.gbff
\ No newline at end of file
diff --git a/bakta/1.9.2/README.md b/bakta/1.9.2/README.md
new file mode 100644
index 000000000..255820db5
--- /dev/null
+++ b/bakta/1.9.2/README.md
@@ -0,0 +1,25 @@
+# bakta container
+
+Main tool: [bakta](https://github.com/oschwengers/bakta)
+
+Code repository: https://github.com/oschwengers/bakta
+
+Basic information on how to use this tool:
+- executable: bakta
+- help: -h
+- version: -v
+- description: Annotates bacterial genomes
+
+> Bakta is a tool for the rapid & standardized annotation of bacterial genomes and plasmids from both isolates and MAGs. It provides dbxref-rich, sORF-including and taxon-independent annotations in machine-readable JSON & bioinformatics standard file formats for automated downstream analysis.
+
+Additional information:
+
+WARNING : Image does not contain a database.
+
+Full documentation: https://github.com/oschwengers/bakta/
+
+## Example Usage
+
+```bash
+bakta sample.fasta --db --threads 20 --prefix sample
+```
diff --git a/bakta/1.9.3-5.1-light/Dockerfile b/bakta/1.9.3-5.1-light/Dockerfile
new file mode 100644
index 000000000..2d502ddbd
--- /dev/null
+++ b/bakta/1.9.3-5.1-light/Dockerfile
@@ -0,0 +1,54 @@
+FROM mambaorg/micromamba:1.5.7 as app
+
+ARG BAKTA_VER="1.9.3"
+ARG DIAMOND_VER="2.1.8"
+
+# 'LABEL' instructions tag the image with metadata that might be important to the user
+LABEL base.image="mambaorg/micromamba:1.5.7"
+LABEL dockerfile.version="1"
+LABEL software="Bakta"
+LABEL software.version="${BAKTA_VER}"
+LABEL description="rapid & standardized annotation of bacterial genomes, MAGs & plasmids"
+LABEL website="https://github.com/oschwengers/bakta"
+LABEL license="https://github.com/oschwengers/bakta/blob/main/LICENSE"
+LABEL maintainer="Erin Young"
+LABEL maintainer.email="eriny@utah.gov"
+
+USER root
+
+WORKDIR /
+
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ wget \
+ procps \
+ ca-certificates && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+RUN micromamba install --name base -c conda-forge -c bioconda -c defaults bakta=${BAKTA_VER} diamond=${DIAMOND_VER} && \
+ micromamba clean -a -y && \
+ mkdir /data
+
+ENV PATH="/opt/conda/bin/:$PATH" \
+ LC_ALL=C \
+ BAKTA_DB=/db/db-light
+
+WORKDIR /db
+
+RUN bakta_db download --type light
+
+CMD bakta --help
+
+WORKDIR /data
+
+FROM app as test
+
+WORKDIR /test
+
+RUN bakta --help && \
+ bakta_db --help && \
+ bakta --version
+
+RUN wget -q https://ftp.ncbi.nlm.nih.gov/genomes/all/GCF/000/195/815/GCF_000195815.1_ASM19581v1/GCF_000195815.1_ASM19581v1_genomic.fna.gz && \
+ gunzip GCF_000195815.1_ASM19581v1_genomic.fna.gz && \
+ bakta GCF_000195815.1_ASM19581v1_genomic.fna && \
+ head GCF_000195815.1_ASM19581v1_genomic.gbff
diff --git a/bakta/1.9.3-5.1-light/README.md b/bakta/1.9.3-5.1-light/README.md
new file mode 100644
index 000000000..a30801510
--- /dev/null
+++ b/bakta/1.9.3-5.1-light/README.md
@@ -0,0 +1,24 @@
+# bakta container
+
+Main tool: [bakta](https://github.com/oschwengers/bakta)
+
+Code repository: https://github.com/oschwengers/bakta
+
+Basic information on how to use this tool:
+- executable: bakta
+- help: -h
+- version: -v
+- description: Annotates bacterial genomes
+
+> Bakta is a tool for the rapid & standardized annotation of bacterial genomes and plasmids from both isolates and MAGs. It provides dbxref-rich, sORF-including and taxon-independent annotations in machine-readable JSON & bioinformatics standard file formats for automated downstream analysis.
+
+Additional information:
+
+This image contains the version 5.1 light database. It is located in /db/db-light and set as BAKTA_DB so that --db doesn't have to be used.
+
+Full documentation: https://github.com/oschwengers/bakta/
+
+Example Usage
+```bash
+bakta sample.fasta --threads 20 --prefix sample
+```
diff --git a/bakta/1.9.3/Dockerfile b/bakta/1.9.3/Dockerfile
new file mode 100644
index 000000000..d9e6af7aa
--- /dev/null
+++ b/bakta/1.9.3/Dockerfile
@@ -0,0 +1,52 @@
+FROM mambaorg/micromamba:1.5.7 as app
+
+ARG BAKTA_VER="1.9.3"
+ARG DIAMOND_VER="2.1.8"
+
+# 'LABEL' instructions tag the image with metadata that might be important to the user
+LABEL base.image="mambaorg/micromamba:1.5.7"
+LABEL dockerfile.version="1"
+LABEL software="Bakta"
+LABEL software.version="${BAKTA_VER}"
+LABEL description="rapid & standardized annotation of bacterial genomes, MAGs & plasmids"
+LABEL website="https://github.com/oschwengers/bakta"
+LABEL license="https://github.com/oschwengers/bakta/blob/main/LICENSE"
+LABEL maintainer="Erin Young"
+LABEL maintainer.email="eriny@utah.gov"
+
+USER root
+
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ wget \
+ procps \
+ ca-certificates && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+RUN micromamba install --name base -c conda-forge -c bioconda -c defaults bakta=${BAKTA_VER} diamond=${DIAMOND_VER} && \
+ micromamba clean -a -y && \
+ mkdir /data
+
+ENV PATH="/opt/conda/bin/:$PATH" \
+ LC_ALL=C
+
+CMD bakta --help
+
+WORKDIR /data
+
+FROM app as test
+
+#export BAKTA_DB=/test/db-light
+
+WORKDIR /test
+
+RUN bakta --help && \
+ bakta_db --help && \
+ bakta --version
+
+RUN bakta_db list && \
+ bakta_db download --type light
+
+RUN wget -q https://ftp.ncbi.nlm.nih.gov/genomes/all/GCF/000/195/815/GCF_000195815.1_ASM19581v1/GCF_000195815.1_ASM19581v1_genomic.fna.gz && \
+ gunzip GCF_000195815.1_ASM19581v1_genomic.fna.gz && \
+ bakta --db /test/db-light GCF_000195815.1_ASM19581v1_genomic.fna && \
+ head GCF_000195815.1_ASM19581v1_genomic.gbff
diff --git a/bakta/1.9.3/README.md b/bakta/1.9.3/README.md
new file mode 100644
index 000000000..255820db5
--- /dev/null
+++ b/bakta/1.9.3/README.md
@@ -0,0 +1,25 @@
+# bakta container
+
+Main tool: [bakta](https://github.com/oschwengers/bakta)
+
+Code repository: https://github.com/oschwengers/bakta
+
+Basic information on how to use this tool:
+- executable: bakta
+- help: -h
+- version: -v
+- description: Annotates bacterial genomes
+
+> Bakta is a tool for the rapid & standardized annotation of bacterial genomes and plasmids from both isolates and MAGs. It provides dbxref-rich, sORF-including and taxon-independent annotations in machine-readable JSON & bioinformatics standard file formats for automated downstream analysis.
+
+Additional information:
+
+WARNING : Image does not contain a database.
+
+Full documentation: https://github.com/oschwengers/bakta/
+
+## Example Usage
+
+```bash
+bakta sample.fasta --db --threads 20 --prefix sample
+```
diff --git a/bakta/1.9.4/Dockerfile b/bakta/1.9.4/Dockerfile
new file mode 100644
index 000000000..982da23a0
--- /dev/null
+++ b/bakta/1.9.4/Dockerfile
@@ -0,0 +1,50 @@
+FROM mambaorg/micromamba:1.5.8 as app
+
+ARG BAKTA_VER="1.9.4"
+ARG DIAMOND_VER="2.1.8"
+
+# 'LABEL' instructions tag the image with metadata that might be important to the user
+LABEL base.image="mambaorg/micromamba:1.5.8"
+LABEL dockerfile.version="1"
+LABEL software="Bakta"
+LABEL software.version="${BAKTA_VER}"
+LABEL description="rapid & standardized annotation of bacterial genomes, MAGs & plasmids"
+LABEL website="https://github.com/oschwengers/bakta"
+LABEL license="https://github.com/oschwengers/bakta/blob/main/LICENSE"
+LABEL maintainer="Erin Young"
+LABEL maintainer.email="eriny@utah.gov"
+
+USER root
+
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ wget \
+ procps \
+ ca-certificates && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+RUN micromamba install --name base -c conda-forge -c bioconda -c defaults bakta=${BAKTA_VER} diamond=${DIAMOND_VER} && \
+ micromamba clean -a -f -y && \
+ mkdir /data
+
+ENV PATH="/opt/conda/bin/:$PATH" \
+ LC_ALL=C
+
+CMD bakta --help
+
+WORKDIR /data
+
+FROM app as test
+
+WORKDIR /test
+
+RUN bakta --help && \
+ bakta_db --help && \
+ bakta --version
+
+RUN bakta_db list && \
+ bakta_db download --type light
+
+RUN wget -q https://ftp.ncbi.nlm.nih.gov/genomes/all/GCF/000/195/815/GCF_000195815.1_ASM19581v1/GCF_000195815.1_ASM19581v1_genomic.fna.gz && \
+ gunzip GCF_000195815.1_ASM19581v1_genomic.fna.gz && \
+ bakta --db /test/db-light GCF_000195815.1_ASM19581v1_genomic.fna && \
+ head GCF_000195815.1_ASM19581v1_genomic.gbff
diff --git a/bakta/1.9.4/README.md b/bakta/1.9.4/README.md
new file mode 100644
index 000000000..255820db5
--- /dev/null
+++ b/bakta/1.9.4/README.md
@@ -0,0 +1,25 @@
+# bakta container
+
+Main tool: [bakta](https://github.com/oschwengers/bakta)
+
+Code repository: https://github.com/oschwengers/bakta
+
+Basic information on how to use this tool:
+- executable: bakta
+- help: -h
+- version: -v
+- description: Annotates bacterial genomes
+
+> Bakta is a tool for the rapid & standardized annotation of bacterial genomes and plasmids from both isolates and MAGs. It provides dbxref-rich, sORF-including and taxon-independent annotations in machine-readable JSON & bioinformatics standard file formats for automated downstream analysis.
+
+Additional information:
+
+WARNING : Image does not contain a database.
+
+Full documentation: https://github.com/oschwengers/bakta/
+
+## Example Usage
+
+```bash
+bakta sample.fasta --db --threads 20 --prefix sample
+```
diff --git a/bandage/0.8.1/Dockerfile b/bandage/0.8.1/Dockerfile
new file mode 100644
index 000000000..33e57a978
--- /dev/null
+++ b/bandage/0.8.1/Dockerfile
@@ -0,0 +1,49 @@
+FROM mambaorg/micromamba:1.5.6 as app
+
+ARG BANDAGE_VERSION="0.8.1"
+
+USER root
+
+WORKDIR /
+
+LABEL base.image="mambaorg/micromamba:1.5.6"
+LABEL dockerfile.version="1"
+LABEL software="bandage"
+LABEL software.version="${BANDAGE_VERSION}"
+LABEL description="Bandage is a program for visualising de novo assembly graphs."
+LABEL website="https://rrwick.github.io/Bandage/"
+LABEL license="https://github.com/rrwick/Bandage?tab=GPL-3.0-1-ov-file#readme"
+LABEL maintainer="Erin Young"
+LABEL maintainer.email="eriny@utah.gov"
+
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ wget \
+ ca-certificates \
+ procps \
+ ffmpeg \
+ libsm6 \
+ libxext6 && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+RUN micromamba install --name base -c conda-forge -c bioconda -c defaults bandage=${BANDAGE_VERSION} && \
+ micromamba clean -a -y && \
+ mkdir /data
+
+ENV PATH="/opt/conda/bin/:${PATH}" \
+ LC_ALL=C.UTF-8
+
+CMD [ "Bandage", "--help" ]
+
+WORKDIR /data
+
+FROM app as test
+
+WORKDIR /test
+
+RUN Bandage --help && \
+ Bandage --version
+
+RUN wget -q https://raw.githubusercontent.com/rrwick/Bandage/main/tests/test_query_paths.gfa && \
+ Bandage image test_query_paths.gfa test.png && \
+ ls test.png
+
diff --git a/bandage/0.8.1/README.md b/bandage/0.8.1/README.md
new file mode 100644
index 000000000..ce9a27865
--- /dev/null
+++ b/bandage/0.8.1/README.md
@@ -0,0 +1,21 @@
+# Bandage container
+
+Main tool: [Bandage](https://rrwick.github.io/Bandage/)
+
+Code repository: https://github.com/rrwick/Bandage
+
+Basic information on how to use this tool:
+- executable: Bandage
+- help: --help
+- version: --version
+- description: |
+
+> Bandage is a program for visualising de novo assembly graphs.
+
+Full documentation: [https://github.com/rrwick/Bandage/wiki](https://github.com/rrwick/Bandage/wiki)
+
+## Example Usage
+
+```bash
+Bandage image test.gfa test.png
+```
diff --git a/bbtools/39.06/Dockerfile b/bbtools/39.06/Dockerfile
new file mode 100644
index 000000000..126aa9be2
--- /dev/null
+++ b/bbtools/39.06/Dockerfile
@@ -0,0 +1,71 @@
+FROM staphb/samtools:1.19 as samtools
+FROM staphb/htslib:1.19 as htslib
+
+# As a reminder
+# https://github.com/StaPH-B/docker-builds/pull/925#issuecomment-2010553275
+# bbmap/docs/TableOfContents.txt lists additional dependencies
+
+FROM ubuntu:jammy as app
+
+ARG SAMBAMBAVER=1.0.1
+ARG BBTOOLSVER=39.06
+
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="BBTools"
+LABEL software.version=${BBTOOLSVER}
+LABEL description="A set of tools labeled as \"Bestus Bioinformaticus\""
+LABEL website="https://sourceforge.net/projects/bbmap"
+LABEL documentation="https://jgi.doe.gov/data-and-tools/bbtools/bb-tools-user-guide/"
+LABEL license="https://jgi.doe.gov/disclaimer/"
+LABEL maintainer="Abigail Shockey"
+LABEL maintainer.email="abigail.shockey@slh.wisc.edu"
+LABEL maintainer2="Padraic Fanning"
+LABEL maintainer2.email="faninnpm AT miamioh DOT edu"
+
+RUN apt-get update && \
+ apt-get install --no-install-recommends -y \
+ openjdk-8-jre-headless \
+ pigz \
+ pbzip2 \
+ lbzip2 \
+ bzip2 \
+ wget \
+ ca-certificates \
+ procps && \
+ rm -rf /var/lib/apt/lists/* && \
+ apt-get autoclean
+
+# copy samtools to image
+COPY --from=samtools /usr/local/bin/* /usr/local/bin/
+COPY --from=htslib /usr/local/bin/* /usr/local/bin/
+
+# download and install sambamba
+RUN wget -q https://github.com/biod/sambamba/releases/download/v${SAMBAMBAVER}/sambamba-${SAMBAMBAVER}-linux-amd64-static.gz && \
+ gzip -d sambamba-${SAMBAMBAVER}-linux-amd64-static.gz && \
+ mv sambamba-${SAMBAMBAVER}-linux-amd64-static /usr/local/bin/sambamba && \
+ chmod +x /usr/local/bin/sambamba
+
+# download and install bbtools
+RUN wget -q https://sourceforge.net/projects/bbmap/files/BBMap_${BBTOOLSVER}.tar.gz && \
+ tar -xzf BBMap_${BBTOOLSVER}.tar.gz && \
+ rm BBMap_${BBTOOLSVER}.tar.gz && \
+ mkdir /data
+
+ENV PATH=/bbmap/:$PATH \
+ LC_ALL=C
+
+CMD for tool in $(ls /bbmap/*sh | cut -f 3 -d "/") ; do $tool -h ; done
+
+WORKDIR /data
+
+# testing
+FROM app as test
+
+# testing that '-h' works for all tools
+RUN for tool in $(ls /bbmap/*sh | cut -f 3 -d "/") ; do $tool -h ; done
+
+# get test data and test one thing that uses samtools/sambamba
+RUN wget -q https://raw.githubusercontent.com/StaPH-B/docker-builds/master/tests/SARS-CoV-2/SRR13957123.primertrim.sorted.bam && \
+ streamsam.sh in='SRR13957123.primertrim.sorted.bam' out='test_SRR13957123.primertrim.sorted.fastq.gz' && \
+ test -f test_SRR13957123.primertrim.sorted.fastq.gz
diff --git a/bbtools/39.06/README.md b/bbtools/39.06/README.md
new file mode 100644
index 000000000..090808832
--- /dev/null
+++ b/bbtools/39.06/README.md
@@ -0,0 +1,43 @@
+## BBTools
+
+This image implements Brian Bushnell's [BBTools](https://jgi.doe.gov/data-and-tools/software-tools/bbtools/).
+
+### Includes
+- [BBDuk](https://jgi.doe.gov/data-and-tools/software-tools/bbtools/bb-tools-user-guide/bbduk-guide/): `bbduk.sh` (or `bbduk2.sh`)
+- [BBMap](https://jgi.doe.gov/data-and-tools/software-tools/bbtools/bb-tools-user-guide/bbmap-guide/): `bbmap.sh`
+- [BBMerge](https://jgi.doe.gov/data-and-tools/software-tools/bbtools/bb-tools-user-guide/bbmerge-guide/): `bbmerge.sh`
+- [Reformat](https://jgi.doe.gov/data-and-tools/software-tools/bbtools/bb-tools-user-guide/reformat-guide/): `reformat.sh`
+
+In addition to the BBTools, this container also provides the following pieces of software to enhance the BBTools:
+- [Samtools](https://github.com/samtools/samtools) v1.16.1 (although without gnuplot)
+- [Sambamba](https://github.com/biod/sambamba) v0.8.2
+
+To see all of the executables in this image, run the following command inside a container:
+
+```text
+ls /usr/local/bin
+```
+
+Documentation is in the `/opt/bbmap/docs/` directory, and in each tool's shell script in `/opt/bbmap/`.
+
+### Example Usage
+(adapted from `/opt/bbmap/pipelines/covid/processCorona.sh`)
+
+Interleave a pair of FASTQ files for downstream processing:
+
+```text
+reformat.sh \
+ in1=${SAMPLE}_R1.fastq.gz \
+ in2=${SAMPLE}_R2.fastq.gz \
+ out=${SAMPLE}.fastq.gz
+```
+Split into SARS-CoV-2 and non-SARS-CoV-2 reads:
+
+```text
+bbduk.sh ow -Xmx1g \
+ in=${SAMPLE}.fq.gz \
+ ref=REFERENCE.fasta \
+ outm=${SAMPLE}_viral.fq.gz \
+ outu=${SAMPLE}_nonviral.fq.gz \
+ k=25
+```
diff --git a/bcftools/1.19/Dockerfile b/bcftools/1.19/Dockerfile
new file mode 100644
index 000000000..272a4cc39
--- /dev/null
+++ b/bcftools/1.19/Dockerfile
@@ -0,0 +1,102 @@
+# for easy upgrade later. ARG variables only persist during build time
+ARG BCFTOOLS_VER="1.19"
+
+FROM ubuntu:jammy as builder
+
+# re-instantiate variable
+ARG BCFTOOLS_VER
+
+# install dependencies, cleanup apt garbage
+RUN apt-get update && apt-get install --no-install-recommends -y \
+ wget \
+ ca-certificates \
+ perl \
+ bzip2 \
+ autoconf \
+ automake \
+ make \
+ gcc \
+ zlib1g-dev \
+ libbz2-dev \
+ liblzma-dev \
+ libcurl4-gnutls-dev \
+ libssl-dev \
+ libperl-dev \
+ libgsl0-dev \
+ procps && \
+ rm -rf /var/lib/apt/lists/* && apt-get autoclean
+
+# download, compile, and install bcftools
+RUN wget https://github.com/samtools/bcftools/releases/download/${BCFTOOLS_VER}/bcftools-${BCFTOOLS_VER}.tar.bz2 && \
+ tar -xjf bcftools-${BCFTOOLS_VER}.tar.bz2 && \
+ rm -v bcftools-${BCFTOOLS_VER}.tar.bz2 && \
+ cd bcftools-${BCFTOOLS_VER} && \
+ make && \
+ make install && \
+ make test
+
+### start of app stage ###
+FROM ubuntu:jammy as app
+
+# re-instantiate variable
+ARG BCFTOOLS_VER
+
+# putting the labels in
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="bcftools"
+LABEL software.version="${BCFTOOLS_VER}"
+LABEL description="Variant calling and manipulating files in the Variant Call Format (VCF) and its binary counterpart BCF"
+LABEL website="https://github.com/samtools/bcftools"
+LABEL license="https://github.com/samtools/bcftools/blob/develop/LICENSE"
+LABEL maintainer="Erin Young"
+LABEL maintainer.email="eriny@utah.gov"
+LABEL maintainer2="Curtis Kapsak"
+LABEL maintainer2.email="kapsakcj@gmail.com"
+
+# install dependencies required for running bcftools
+# https://github.com/samtools/bcftools/blob/develop/INSTALL#L29
+RUN apt-get update && apt-get install --no-install-recommends -y \
+ perl \
+ zlib1g \
+ libncurses5 \
+ bzip2 \
+ liblzma-dev \
+ libcurl4-gnutls-dev \
+ procps \
+ && apt-get autoclean && rm -rf /var/lib/apt/lists/* && \
+ mkdir /data
+
+WORKDIR /bcftools/plugins
+
+# copy in bcftools executables from builder stage
+COPY --from=builder /usr/local/bin/* /usr/local/bin/
+COPY --from=builder /bcftools-${BCFTOOLS_VER}/plugins/* /bcftools/plugins
+
+# set locale settings for singularity compatibility
+ENV LC_ALL=C BCFTOOLS_PLUGINS='/bcftools/plugins'
+
+# set final working directory
+WORKDIR /data
+
+# default command is to pull up help optoins
+CMD ["bcftools", "--help"]
+
+### start of test stage ###
+FROM app as test
+
+# running --help and listing plugins
+RUN bcftools --help && bcftools plugin -lv
+
+# install wget for downloading test files
+RUN apt-get update && apt-get install --no-install-recommends -y wget ca-certificates
+
+RUN echo "downloading test SC2 BAM and FASTA and running bcftools mpileup and bcftools call test commands..." && \
+ wget -q https://raw.githubusercontent.com/artic-network/artic-ncov2019/master/primer_schemes/nCoV-2019/V4/SARS-CoV-2.reference.fasta && \
+ wget -q https://raw.githubusercontent.com/StaPH-B/docker-builds/master/tests/SARS-CoV-2/SRR13957123.primertrim.sorted.bam && \
+ bcftools mpileup -A -d 200 -B -Q 0 -f SARS-CoV-2.reference.fasta SRR13957123.primertrim.sorted.bam | \
+ bcftools call -mv -Ov -o SRR13957123.vcf
+
+# FYI Test suite "make test" is performed in the builder stage since app and
+# test stages do not include bcftools source code.
+# This is to avoid having to re-download source code simply to run test suite
diff --git a/bcftools/1.19/README.md b/bcftools/1.19/README.md
new file mode 100644
index 000000000..b69b1ab64
--- /dev/null
+++ b/bcftools/1.19/README.md
@@ -0,0 +1,18 @@
+# bcftools container
+
+Main tool:
+
+* [https://www.htslib.org/](https://www.htslib.org/)
+* [GitHub](https://github.com/samtools/bcftools)
+
+Additional tools:
+
+* perl 5.34.0
+
+## Example Usage
+
+```bash
+bcftools mpileup -A -d 200 -B -Q 0 -f {reference_genome} {bam} | bcftools call -mv -Ov -o bcftools_variants/{sample}.vcf
+```
+
+Better documentation can be found at [https://www.htslib.org/doc/bcftools.html](https://www.htslib.org/doc/bcftools.html)
diff --git a/bcftools/1.20.c/Dockerfile b/bcftools/1.20.c/Dockerfile
new file mode 100644
index 000000000..7bfbdc5fb
--- /dev/null
+++ b/bcftools/1.20.c/Dockerfile
@@ -0,0 +1,117 @@
+# for easy upgrade later. ARG variables only persist during build time
+ARG BCFTOOLS_VER="1.20"
+
+FROM ubuntu:jammy as builder
+
+# re-instantiate variable
+ARG BCFTOOLS_VER
+
+# install dependencies, cleanup apt garbage
+RUN apt-get update && apt-get install --no-install-recommends -y \
+ wget \
+ ca-certificates \
+ perl \
+ bzip2 \
+ autoconf \
+ automake \
+ make \
+ gcc \
+ zlib1g-dev \
+ libbz2-dev \
+ liblzma-dev \
+ libcurl4-gnutls-dev \
+ libssl-dev \
+ libperl-dev \
+ libgsl0-dev \
+ libdeflate-dev \
+ procps && \
+ rm -rf /var/lib/apt/lists/* && apt-get autoclean
+
+
+# download, compile, and install bcftools
+RUN wget https://github.com/samtools/bcftools/releases/download/${BCFTOOLS_VER}/bcftools-${BCFTOOLS_VER}.tar.bz2 && \
+ tar -xjf bcftools-${BCFTOOLS_VER}.tar.bz2 && \
+ rm -v bcftools-${BCFTOOLS_VER}.tar.bz2 && \
+ cd bcftools-${BCFTOOLS_VER} && \
+ ./configure --enable-libgsl --enable-perl-filters &&\
+ make && \
+ make install && \
+ make test
+
+### start of app stage ###
+FROM ubuntu:jammy as app
+
+# re-instantiate variable
+ARG BCFTOOLS_VER
+
+# putting the labels in
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="bcftools"
+LABEL software.version="${BCFTOOLS_VER}"
+LABEL description="Variant calling and manipulating files in the Variant Call Format (VCF) and its binary counterpart BCF"
+LABEL website="https://github.com/samtools/bcftools"
+LABEL license="https://github.com/samtools/bcftools/blob/develop/LICENSE"
+LABEL maintainer="Erin Young"
+LABEL maintainer.email="eriny@utah.gov"
+LABEL maintainer2="Curtis Kapsak"
+LABEL maintainer2.email="kapsakcj@gmail.com"
+
+# install dependencies required for running bcftools
+# https://github.com/samtools/bcftools/blob/develop/INSTALL#L29
+RUN apt-get update && apt-get install --no-install-recommends -y \
+ perl\
+ zlib1g \
+ gsl-bin \
+ bzip2 \
+ liblzma5 \
+ libcurl3-gnutls \
+ libdeflate0 \
+ procps \
+ && apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+# copy in bcftools executables from builder stage
+COPY --from=builder /usr/local/bin/* /usr/local/bin/
+# copy in bcftools plugins from builder stage
+COPY --from=builder /usr/local/libexec/bcftools/* /usr/local/libexec/bcftools/
+
+# set locale settings for singularity compatibility
+ENV LC_ALL=C
+
+# set final working directory
+WORKDIR /data
+
+# default command is to pull up help optoins
+CMD ["bcftools", "--help"]
+
+### start of test stage ###
+FROM app as test
+
+# running --help and listing plugins
+RUN bcftools --help && bcftools plugin -lv
+
+# install wget for downloading test files
+RUN apt-get update && apt-get install -y wget vcftools
+
+RUN echo "downloading test SC2 BAM and FASTA and running bcftools mpileup and bcftools call test commands..." && \
+ wget -q https://raw.githubusercontent.com/artic-network/artic-ncov2019/master/primer_schemes/nCoV-2019/V4/SARS-CoV-2.reference.fasta && \
+ wget -q https://raw.githubusercontent.com/StaPH-B/docker-builds/master/tests/SARS-CoV-2/SRR13957123.primertrim.sorted.bam && \
+ bcftools mpileup -A -d 200 -B -Q 0 -f SARS-CoV-2.reference.fasta SRR13957123.primertrim.sorted.bam | \
+ bcftools call -mv -Ov -o SRR13957123.vcf
+
+RUN echo "testing plugins..." && \
+ bcftools +counts SRR13957123.vcf
+
+RUN echo "testing polysomy..." && \
+ wget https://samtools.github.io/bcftools/howtos/cnv-calling/usage-example.tgz &&\
+ tar -xvf usage-example.tgz &&\
+ zcat test.fcr.gz | ./fcr-to-vcf -b bcftools -a map.tab.gz -o outdir/ &&\
+ bcftools cnv -o cnv/ outdir/test.vcf.gz &&\
+ bcftools polysomy -o psmy/ outdir/test.vcf.gz &&\
+ head psmy/dist.dat
+
+RUN echo "reading test data from Google Cloud to validate GCS support" && \
+ bcftools head -h 20 gs://genomics-public-data/references/hg38/v0/1000G_phase1.snps.high_confidence.hg38.vcf.gz
+
+RUN echo "reading test data from S3 to validate AWS support" && \
+ bcftools head -h 20 s3://human-pangenomics/T2T/CHM13/assemblies/variants/GATK_CHM13v2.0_Resource_Bundle/resources-broad-hg38-v0-1000G_phase1.snps.high_confidence.hg38.t2t-chm13-v2.0.vcf.gz
diff --git a/bcftools/1.20.c/README.md b/bcftools/1.20.c/README.md
new file mode 100644
index 000000000..473a0f659
--- /dev/null
+++ b/bcftools/1.20.c/README.md
@@ -0,0 +1,25 @@
+# bcftools container
+
+Main tool: [bcftools](https://github.com/samtools/bcftools)
+
+Code repository: https://github.com/samtools/bcftools
+
+Basic information on how to use this tool:
+- executable: bcftools
+- help: --help
+- version: --version
+- description: BCFtools is a program for variant calling and manipulating files in the Variant Call Format (VCF) and its binary counterpart BCF.
+
+Additional information:
+
+This container includes bcftools v1.20 compiled with **libdeflate** for a better cloud performance. Also, "polysomy" and plugins are enabled in this image.
+
+Full documentation: https://samtools.github.io/bcftools/howtos/index.html
+
+## Example Usage
+
+```bash
+bcftools mpileup -A -d 200 -B -Q 0 -f {reference_genome} {bam} | bcftools call -mv -Ov -o bcftools_variants/{sample}.vcf
+```
+
+
diff --git a/bcftools/1.20/Dockerfile b/bcftools/1.20/Dockerfile
new file mode 100644
index 000000000..611a0318e
--- /dev/null
+++ b/bcftools/1.20/Dockerfile
@@ -0,0 +1,102 @@
+# for easy upgrade later. ARG variables only persist during build time
+ARG BCFTOOLS_VER="1.20"
+
+FROM ubuntu:jammy as builder
+
+# re-instantiate variable
+ARG BCFTOOLS_VER
+
+# install dependencies, cleanup apt garbage
+RUN apt-get update && apt-get install --no-install-recommends -y \
+ wget \
+ ca-certificates \
+ perl \
+ bzip2 \
+ autoconf \
+ automake \
+ make \
+ gcc \
+ zlib1g-dev \
+ libbz2-dev \
+ liblzma-dev \
+ libcurl4-gnutls-dev \
+ libssl-dev \
+ libperl-dev \
+ libgsl0-dev \
+ procps && \
+ rm -rf /var/lib/apt/lists/* && apt-get autoclean
+
+# download, compile, and install bcftools
+RUN wget https://github.com/samtools/bcftools/releases/download/${BCFTOOLS_VER}/bcftools-${BCFTOOLS_VER}.tar.bz2 && \
+ tar -xjf bcftools-${BCFTOOLS_VER}.tar.bz2 && \
+ rm -v bcftools-${BCFTOOLS_VER}.tar.bz2 && \
+ cd bcftools-${BCFTOOLS_VER} && \
+ make && \
+ make install && \
+ make test
+
+### start of app stage ###
+FROM ubuntu:jammy as app
+
+# re-instantiate variable
+ARG BCFTOOLS_VER
+
+# putting the labels in
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="bcftools"
+LABEL software.version="${BCFTOOLS_VER}"
+LABEL description="Variant calling and manipulating files in the Variant Call Format (VCF) and its binary counterpart BCF"
+LABEL website="https://github.com/samtools/bcftools"
+LABEL license="https://github.com/samtools/bcftools/blob/develop/LICENSE"
+LABEL maintainer="Erin Young"
+LABEL maintainer.email="eriny@utah.gov"
+LABEL maintainer2="Curtis Kapsak"
+LABEL maintainer2.email="kapsakcj@gmail.com"
+
+# install dependencies required for running bcftools
+# https://github.com/samtools/bcftools/blob/develop/INSTALL#L29
+RUN apt-get update && apt-get install --no-install-recommends -y \
+ perl \
+ zlib1g \
+ libncurses5 \
+ bzip2 \
+ liblzma-dev \
+ libcurl4-gnutls-dev \
+ procps \
+ && apt-get autoclean && rm -rf /var/lib/apt/lists/* && \
+ mkdir /data
+
+WORKDIR /bcftools/plugins
+
+# copy in bcftools executables from builder stage
+COPY --from=builder /usr/local/bin/* /usr/local/bin/
+COPY --from=builder /bcftools-${BCFTOOLS_VER}/plugins/* /bcftools/plugins
+
+# set locale settings for singularity compatibility
+ENV LC_ALL=C BCFTOOLS_PLUGINS='/bcftools/plugins'
+
+# set final working directory
+WORKDIR /data
+
+# default command is to pull up help optoins
+CMD ["bcftools", "--help"]
+
+### start of test stage ###
+FROM app as test
+
+# running --help and listing plugins
+RUN bcftools --help && bcftools plugin -lv
+
+# install wget for downloading test files
+RUN apt-get update && apt-get install --no-install-recommends -y wget ca-certificates
+
+RUN echo "downloading test SC2 BAM and FASTA and running bcftools mpileup and bcftools call test commands..." && \
+ wget -q https://raw.githubusercontent.com/artic-network/artic-ncov2019/master/primer_schemes/nCoV-2019/V4/SARS-CoV-2.reference.fasta && \
+ wget -q https://raw.githubusercontent.com/StaPH-B/docker-builds/master/tests/SARS-CoV-2/SRR13957123.primertrim.sorted.bam && \
+ bcftools mpileup -A -d 200 -B -Q 0 -f SARS-CoV-2.reference.fasta SRR13957123.primertrim.sorted.bam | \
+ bcftools call -mv -Ov -o SRR13957123.vcf
+
+# FYI Test suite "make test" is performed in the builder stage since app and
+# test stages do not include bcftools source code.
+# This is to avoid having to re-download source code simply to run test suite
diff --git a/bcftools/1.20/README.md b/bcftools/1.20/README.md
new file mode 100644
index 000000000..d1376bb34
--- /dev/null
+++ b/bcftools/1.20/README.md
@@ -0,0 +1,13 @@
+# bcftools container
+
+Main tool:
+
+* [bcftools](https://github.com/samtools/bcftools)
+
+## Example Usage
+
+```bash
+bcftools mpileup -A -d 200 -B -Q 0 -f {reference_genome} {bam} | bcftools call -mv -Ov -o bcftools_variants/{sample}.vcf
+```
+
+Better documentation can be found at [https://www.htslib.org/doc/bcftools.html](https://www.htslib.org/doc/bcftools.html)
diff --git a/bedtools/2.31.1/Dockerfile b/bedtools/2.31.1/Dockerfile
new file mode 100644
index 000000000..d6e850580
--- /dev/null
+++ b/bedtools/2.31.1/Dockerfile
@@ -0,0 +1,98 @@
+ARG BEDTOOLS_VER="2.31.1"
+
+### builder stage for compiling bedtools code ###
+FROM ubuntu:jammy as builder
+
+# re-instantiate variable so we can use it in builder stage
+ARG BEDTOOLS_VER
+
+# install deps via apt-get, these are mainly for compiling bedtools code and for running tests. some are for downloading files (wget, ca-certificates)
+# last command is to point 'python' cmd to `python3` so that bedtools test scripts work. There are bash scripts that call 'python'
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ build-essential \
+ zlib1g-dev \
+ libghc-bzlib-dev \
+ liblzma-dev \
+ wget \
+ ca-certificates \
+ python3 && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/* && \
+ update-alternatives --install /usr/bin/python python /usr/bin/python3 10
+
+# python3 required when compiling via `make` command for creating old CLI executables
+# dependencies listed here (albeit for v2.30.0, still should be identical): https://packages.ubuntu.com/jammy/bedtools
+# requires libghc-bzlib-dev, build-essential, zlib1g-dev, and a few others
+# 'make install' should place binary executable files in /usr/local/bin
+RUN wget -q https://github.com/arq5x/bedtools2/archive/refs/tags/v${BEDTOOLS_VER}.tar.gz && \
+ tar -xzf v${BEDTOOLS_VER}.tar.gz && \
+ cd bedtools2-${BEDTOOLS_VER} && \
+ make && \
+ make install
+
+### keeping old installation cmds here in case we want to install via pre-compiled binary again in the future ###
+# RUN cd /usr/local/bin && \
+# wget https://github.com/arq5x/bedtools2/releases/download/v${BEDTOOLS_VER}/bedtools.static && \
+# mv bedtools.static bedtools && \
+# chmod +x bedtools && \
+# mkdir /data
+
+### testing in builder ###
+# test scripts expect to be run from the bedtools root dir
+WORKDIR /bedtools2-${BEDTOOLS_VER}
+
+# commenting out ulimit command in test/test.sh (gitpod complains)
+# run tests included with bedtools code
+RUN sed -i 's/ulimit/#ulimit/g' test/test.sh && \
+ make test
+
+### final app stage ###
+# starting from fresh base image instead of a previous stage
+FROM ubuntu:jammy as app
+
+ARG BEDTOOLS_VER
+
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="bedtools"
+LABEL software.version="${BEDTOOLS_VER}"
+LABEL description="bedtools - the swiss army knife for genome arithmetic"
+LABEL website="https://github.com/arq5x/bedtools2"
+LABEL license="https://github.com/arq5x/bedtools2/blob/master/LICENSE"
+LABEL maintainer="Curtis Kapsak"
+LABEL maintainer.email="kapsakcj@gmail.com"
+LABEL maintainer2="Erin Young"
+LABEL maintainer2.email="eriny@utah.gov"
+
+# copy in all bedtools executable files from builder stage to final app stage
+COPY --from=builder /usr/local/bin/* /usr/local/bin
+
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ wget \
+ ca-certificates \
+ procps && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+# setting just in case for singularity compatibility
+ENV LC_ALL=C
+
+# default command is to print help options
+CMD [ "bedtools", "--help" ]
+
+# set final working directory to /data
+WORKDIR /data
+
+FROM app as test
+
+# check help options and version
+RUN bedtools --help && \
+ bedtools --version
+
+# downloads two bedfiles for ARTIC SARS-CoV-2 artic schemes, fixes their formatting, uses bedtools sort, intersect, and merge
+RUN wget https://raw.githubusercontent.com/artic-network/artic-ncov2019/master/primer_schemes/nCoV-2019/V5.3.2/SARS-CoV-2.primer.bed -O V5.3.2.artic.bed && \
+ wget https://raw.githubusercontent.com/artic-network/artic-ncov2019/master/primer_schemes/nCoV-2019/V4.1/SARS-CoV-2.primer.bed -O V4.1.artic.bed && \
+ awk '{print $1 "\t" $2 "\t" $3 "\t" $4 "\t" $5 "\t" $6}' V5.3.2.artic.bed > V5.3.2.unsorted.bed && \
+ bedtools sort -i V5.3.2.unsorted.bed > V5.3.2.bed && \
+ awk '{print $1 "\t" $2 "\t" $3 "\t" $4 "\t" $5 "\t" $6}' V4.1.artic.bed > V4.1.bed && \
+ bedtools intersect -a V5.3.2.bed -b V4.1.bed > intersect_test.bed && \
+ mergeBed -i V5.3.2.bed > merged_test.bed && \
+ head intersect_test.bed merged_test.bed
\ No newline at end of file
diff --git a/bedtools/2.31.1/README.md b/bedtools/2.31.1/README.md
new file mode 100644
index 000000000..d5391c74a
--- /dev/null
+++ b/bedtools/2.31.1/README.md
@@ -0,0 +1,63 @@
+# bedtools2 container
+
+GitHub Repo: [bedtools](https://github.com/arq5x/bedtools2/)
+
+Full documentation: [https://bedtools.readthedocs.io/en/latest/index.html](https://bedtools.readthedocs.io/en/latest/index.html)
+
+> Collectively, the bedtools utilities are a swiss-army knife of tools for a wide-range of genomics analysis tasks. The most widely-used tools enable genome arithmetic: that is, set theory on the genome. For example, bedtools allows one to intersect, merge, count, complement, and shuffle genomic intervals from multiple files in widely-used genomic file formats such as BAM, BED, GFF/GTF, VCF. While each individual tool is designed to do a relatively simple task (e.g., intersect two interval files), quite sophisticated analyses can be conducted by combining multiple bedtools operations on the UNIX command line.
+
+List of sub-commands in bedtools 2.31.0:
+
+- annotate
+- bamtobed
+- bamtofastq
+- bed12tobed6
+- bedpetobam
+- bedtobam
+- closest
+- cluster
+- complement
+- coverage
+- expand
+- flank
+- fisher
+- genomecov
+- getfasta
+- groupby
+- igv
+- intersect
+- jaccard
+- links
+- makewindows
+- map
+- maskfasta
+- merge
+- multicov
+- multiinter
+- nuc
+- overlap
+- pairtobed
+- pairtopair
+- random
+- reldist
+- shift
+- shuffle
+- slop
+- sort
+- subtract
+- summary
+- tag
+- unionbedg
+- window
+
+## Example Usage
+
+```bash
+# bedtools consists of a suite of sub-commands that are invoked as follows:
+# bedtools [sub-command] [options]
+
+# For example, to intersect two BED files, one would invoke the following:
+bedtools intersect -a a.bed -b b.bed
+```
+
+More examples are found in the [bedtools tutorial](http://quinlanlab.org/tutorials/bedtools/bedtools.html)
diff --git a/blast/2.15.0/Dockerfile b/blast/2.15.0/Dockerfile
new file mode 100644
index 000000000..788b9a130
--- /dev/null
+++ b/blast/2.15.0/Dockerfile
@@ -0,0 +1,64 @@
+FROM ubuntu:jammy as app
+
+ARG BLAST_VER="2.15.0"
+
+# LABEL instructions tag the image with metadata that might be important to the user
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="blast+"
+LABEL software.version=$BLAST_VER
+LABEL description="Finds matches in sequencing reads"
+LABEL website="https://blast.ncbi.nlm.nih.gov/Blast.cgi?PAGE_TYPE=BlastDocs&DOC_TYPE=Download"
+LABEL license="https://www.ncbi.nlm.nih.gov/IEB/ToolBox/CPP_DOC/lxr/source/scripts/projects/blast/LICENSE"
+LABEL maintainer="Erin Young"
+LABEL maintainer.email="eriny@utah.gov"
+
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ wget \
+ ca-certificates \
+ libgomp1 && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+# Install and/or setup more things. Make /data for use as a working dir
+RUN wget -q https://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/${BLAST_VER}/ncbi-blast-${BLAST_VER}+-x64-linux.tar.gz && \
+ tar -xzf ncbi-blast-${BLAST_VER}+-x64-linux.tar.gz && \
+ rm ncbi-blast-${BLAST_VER}+-x64-linux.tar.gz && \
+ mkdir /data
+
+# ENV instructions set environment variables that persist from the build into the resulting image
+# Use for e.g. $PATH and locale settings for compatibility with Singularity
+ENV PATH="/ncbi-blast-${BLAST_VER}+/bin:$PATH" \
+ LC_ALL=C
+
+# WORKDIR sets working directory
+WORKDIR /data
+
+# default command is to pull up help options for virulencefinder
+# yes, there are more tools than blastn, but it's likely the most common one used
+CMD [ "blastn", "-help" ]
+
+# A second FROM insruction creates a new stage
+# We use `test` for the test image
+FROM app as test
+
+# getting all the exectubles in bin
+RUN ls /ncbi-blast-*/bin/
+
+# making sure PATH is set up
+RUN blastn -help
+
+# getting a genome
+RUN mkdir db && \
+ wget -q https://ftp.ncbi.nlm.nih.gov/genomes/all/GCF/000/005/845/GCF_000005845.2_ASM584v2/GCF_000005845.2_ASM584v2_genomic.fna.gz -P db && \
+ gunzip db/GCF_000005845.2_ASM584v2_genomic.fna.gz && \
+ makeblastdb -dbtype nucl -in db/GCF_000005845.2_ASM584v2_genomic.fna
+
+# getting a list of genes
+RUN wget -q https://raw.githubusercontent.com/rrwick/Unicycler/main/unicycler/gene_data/dnaA.fasta
+
+# getting some blast results
+RUN tblastn -query dnaA.fasta \
+ -db db/GCF_000005845.2_ASM584v2_genomic.fna \
+ -outfmt '6' \
+ -out blast_hits.txt && \
+ head blast_hits.txt
diff --git a/blast/2.15.0/README.md b/blast/2.15.0/README.md
new file mode 100644
index 000000000..7578d2a07
--- /dev/null
+++ b/blast/2.15.0/README.md
@@ -0,0 +1,60 @@
+# blast+ container
+
+Main tools:
+
+- [blast+](https://blast.ncbi.nlm.nih.gov/Blast.cgi?PAGE_TYPE=BlastDocs&DOC_TYPE=Download)
+
+This is meant to assist in local blast searches. No blast databases will be maintained in this container. Be sure to mount your relevant Volumes with `--volumes` or `-v` when using the command line.
+
+blast+ is actually a suite of tools. blast+ v.2.15.0 includes:
+
+```bash
+$ ls /ncbi-blast-2.15.0+/bin/
+blast_formatter
+blast_formatter_vdb
+blast_vdb_cmd
+blastdb_aliastool
+blastdbcheck
+blastdbcmd
+blastn
+blastn_vdb
+blastp
+blastx
+cleanup-blastdb-volumes.py
+convert2blastmask
+deltablast
+dustmasker
+get_species_taxids.sh
+legacy_blast.pl
+makeblastdb
+makembindex
+makeprofiledb
+psiblast
+rpsblast
+rpstblastn
+segmasker
+tblastn
+tblastn_vdb
+tblastx
+update_blastdb.pl
+windowmasker
+```
+
+Currently not supported, but could be:
+
+```bash
+get_species_taxids.sh # requires E-direct
+update_blastdb.pl # requires perl
+```
+
+## Example Usage
+
+```bash
+# making a blast database
+makeblastdb -dbtype nucl -in fasta.fa
+
+# query
+tblastn -query query.fasta -db fasta.fa -outfmt '6' -out blast_hits.txt
+```
+
+More documentation can be found at [https://www.ncbi.nlm.nih.gov/books/NBK569856/](https://www.ncbi.nlm.nih.gov/books/NBK569856/) and [https://www.ncbi.nlm.nih.gov/books/NBK279690/](https://www.ncbi.nlm.nih.gov/books/NBK279690/)
diff --git a/bowtie2/2.5.3/Dockerfile b/bowtie2/2.5.3/Dockerfile
new file mode 100644
index 000000000..241f99329
--- /dev/null
+++ b/bowtie2/2.5.3/Dockerfile
@@ -0,0 +1,56 @@
+# FROM defines the base docker image to start from. This command has to come first in the file
+
+FROM staphb/samtools:1.19 as samtools
+
+FROM ubuntu:jammy as app
+
+ARG BOWTIE2VER=2.5.3
+
+# metadata (there are a few other labels you can add, these are optional but preferred!)
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="Bowtie2"
+LABEL software.version=${BOWTIE2VER}
+LABEL description="Genome assembler using a reference and mapping"
+LABEL website="https://github.com/BenLangmead/bowtie2"
+LABEL documentation="http://bowtie-bio.sourceforge.net/bowtie2/manual.shtml"
+LABEL maintainer="Holly Halstead"
+LABEL maintainer.email="holly.halstead@doh.wa.gov"
+
+# install dependencies, cleanup apt garbage.
+RUN apt-get update && apt-get install -y --no-install-recommends\
+ perl \
+ zlib1g \
+ libncurses5 \
+ bzip2 \
+ liblzma-dev \
+ bedtools \
+ unzip \
+ wget \
+ ca-certificates \
+ python3 && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+# copy in samtools executables from builder stage
+COPY --from=samtools /usr/local/bin/* /usr/local/bin/
+
+# download, unpack Bowtie2
+RUN wget -q https://github.com/BenLangmead/bowtie2/releases/download/v${BOWTIE2VER}/bowtie2-${BOWTIE2VER}-linux-x86_64.zip && \
+ unzip bowtie2-${BOWTIE2VER}-linux-x86_64.zip && \
+ rm bowtie2-${BOWTIE2VER}-linux-x86_64.zip
+
+ENV PATH="/bowtie2-${BOWTIE2VER}-linux-x86_64:$PATH"
+
+CMD bowtie2 -h
+
+# set working directory
+WORKDIR /data
+
+FROM app as test
+
+RUN bowtie2 -h
+
+RUN wget -q https://raw.githubusercontent.com/BenLangmead/bowtie2/master/example/reads/longreads.fq && \
+ wget -q https://raw.githubusercontent.com/BenLangmead/bowtie2/master/example/reference/lambda_virus.fa && \
+ bowtie2-build lambda_virus.fa lambda_virus && \
+ bowtie2 -x lambda_virus -U longreads.fq
diff --git a/bowtie2/2.5.3/README.md b/bowtie2/2.5.3/README.md
new file mode 100644
index 000000000..b3557c3b1
--- /dev/null
+++ b/bowtie2/2.5.3/README.md
@@ -0,0 +1,20 @@
+# bowtie2 container
+Main tool : [bowtie2](http://bowtie-bio.sourceforge.net/bowtie2/manual.shtml)
+
+Bowtie2 : Genome assembler using a reference and mapping
+
+Additional tools:
+- Samtools version 1.19
+
+# Example Usage
+
+```
+bowtie2-build lambda_virus.fa /index/lambda_virus
+```
+```
+bowtie2 -x /index/lambda_virus -U longreads.fq
+```
+```
+bowtie2-inspect --summary /index/lambda_virus
+```
+Better documentation can be found at [https://github.com/BenLangmead/bowtie2](https://github.com/BenLangmead/bowtie2)
diff --git a/bowtie2/2.5.4/Dockerfile b/bowtie2/2.5.4/Dockerfile
new file mode 100644
index 000000000..6b14c604e
--- /dev/null
+++ b/bowtie2/2.5.4/Dockerfile
@@ -0,0 +1,56 @@
+# FROM defines the base docker image to start from. This command has to come first in the file
+
+FROM staphb/samtools:1.20 as samtools
+
+FROM ubuntu:jammy as app
+
+ARG BOWTIE2VER=2.5.4
+
+# metadata (there are a few other labels you can add, these are optional but preferred!)
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="Bowtie2"
+LABEL software.version=${BOWTIE2VER}
+LABEL description="Genome assembler using a reference and mapping"
+LABEL website="https://github.com/BenLangmead/bowtie2"
+LABEL documentation="http://bowtie-bio.sourceforge.net/bowtie2/manual.shtml"
+LABEL maintainer="Holly Halstead"
+LABEL maintainer.email="holly.halstead@doh.wa.gov"
+
+# install dependencies, cleanup apt garbage.
+RUN apt-get update && apt-get install -y --no-install-recommends\
+ perl \
+ zlib1g \
+ libncurses5 \
+ bzip2 \
+ liblzma-dev \
+ bedtools \
+ unzip \
+ wget \
+ ca-certificates \
+ python3 && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+# copy in samtools executables from builder stage
+COPY --from=samtools /usr/local/bin/* /usr/local/bin/
+
+# download, unpack Bowtie2
+RUN wget -q https://github.com/BenLangmead/bowtie2/releases/download/v${BOWTIE2VER}/bowtie2-${BOWTIE2VER}-linux-x86_64.zip && \
+ unzip bowtie2-${BOWTIE2VER}-linux-x86_64.zip && \
+ rm bowtie2-${BOWTIE2VER}-linux-x86_64.zip
+
+ENV PATH="/bowtie2-${BOWTIE2VER}-linux-x86_64:$PATH"
+
+CMD bowtie2 -h
+
+# set working directory
+WORKDIR /data
+
+FROM app as test
+
+RUN bowtie2 -h
+
+RUN wget -q https://raw.githubusercontent.com/BenLangmead/bowtie2/master/example/reads/longreads.fq && \
+ wget -q https://raw.githubusercontent.com/BenLangmead/bowtie2/master/example/reference/lambda_virus.fa && \
+ bowtie2-build lambda_virus.fa lambda_virus && \
+ bowtie2 -x lambda_virus -U longreads.fq
diff --git a/bowtie2/2.5.4/README.md b/bowtie2/2.5.4/README.md
new file mode 100644
index 000000000..7a0f5c6af
--- /dev/null
+++ b/bowtie2/2.5.4/README.md
@@ -0,0 +1,20 @@
+# bowtie2 container
+Main tool : [bowtie2](http://bowtie-bio.sourceforge.net/bowtie2/manual.shtml)
+
+Bowtie2 : Genome assembler using a reference and mapping
+
+Additional tools:
+- Samtools version 1.20
+
+# Example Usage
+
+```
+bowtie2-build lambda_virus.fa /index/lambda_virus
+```
+```
+bowtie2 -x /index/lambda_virus -U longreads.fq
+```
+```
+bowtie2-inspect --summary /index/lambda_virus
+```
+Better documentation can be found at [https://github.com/BenLangmead/bowtie2](https://github.com/BenLangmead/bowtie2)
diff --git a/busco/5.6.1-prok-bacteria_odb10_2024-01-08/Dockerfile b/busco/5.6.1-prok-bacteria_odb10_2024-01-08/Dockerfile
new file mode 100644
index 000000000..ad1fb61e8
--- /dev/null
+++ b/busco/5.6.1-prok-bacteria_odb10_2024-01-08/Dockerfile
@@ -0,0 +1,75 @@
+ARG BUSCO_VER="5.6.1"
+
+FROM ubuntu:focal as app
+
+ARG BUSCO_VER
+ARG BBMAP_VER="39.01"
+ARG DEBIAN_FRONTEND=noninteractive
+
+LABEL base.image="ubuntu:focal"
+LABEL dockerfile.version="1"
+LABEL software="BUSCO"
+LABEL software.version="${BUSCO_VER}"
+LABEL description="Slim version of BUSCO for prokaryotes only"
+LABEL website="https://busco.ezlab.org/"
+LABEL license="https://gitlab.com/ezlab/busco/-/raw/master/LICENSE"
+LABEL maintainer="Kutluhan Incekara"
+LABEL maintainer.email="kutluhan.incekara@ct.gov"
+
+# install dependencies
+RUN apt-get update && apt-get install --no-install-recommends -y \
+ wget \
+ python3-pip \
+ python3-setuptools \
+ python3-requests \
+ python3-pandas \
+ hmmer \
+ prodigal \
+ lbzip2 \
+ openjdk-8-jre-headless \
+ && rm -rf /var/lib/apt/lists/* && apt-get autoclean \
+ && ln -s /usr/bin/python3 /usr/bin/python
+
+# BioPython (python3-biopython installs 1.73. It causes python error in this version)
+RUN pip install --no-cache-dir biopython
+
+# bbtools
+RUN wget https://sourceforge.net/projects/bbmap/files/BBMap_${BBMAP_VER}.tar.gz &&\
+ tar -xvf BBMap_${BBMAP_VER}.tar.gz && rm BBMap_${BBMAP_VER}.tar.gz &&\
+ mv /bbmap/* /usr/local/bin/
+
+# sepp (greengenes version)
+RUN wget https://raw.githubusercontent.com/smirarab/sepp-refs/54415e8905c5fa26cdd631c526b21f2bcdba95b5/gg/sepp-package.tar.bz &&\
+ tar xvfj sepp-package.tar.bz && rm sepp-package.tar.bz &&\
+ cd sepp-package/sepp &&\
+ python setup.py config -c && chmod 755 run_*
+
+# busco
+RUN wget https://gitlab.com/ezlab/busco/-/archive/${BUSCO_VER}/busco-${BUSCO_VER}.tar.gz &&\
+ tar -xvf busco-${BUSCO_VER}.tar.gz && \
+ rm busco-${BUSCO_VER}.tar.gz &&\
+ cd busco-${BUSCO_VER} && \
+ python3 setup.py install
+
+# download bacteria_odb10
+RUN busco --download bacteria_odb10
+
+ENV PATH="${PATH}:/sepp-package/sepp"
+ENV LC_ALL=C
+
+WORKDIR /data
+
+CMD busco -h
+
+## Tests ##
+FROM app as test
+
+# offline test
+RUN wget -q https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/010/941/835/GCA_010941835.1_PDT000052640.3/GCA_010941835.1_PDT000052640.3_genomic.fna.gz && \
+ gzip -d GCA_010941835.1_PDT000052640.3_genomic.fna.gz && \
+ busco --offline -l /busco_downloads/lineages/bacteria_odb10 -m genome -i GCA_010941835.1_PDT000052640.3_genomic.fna -o offline --cpu 4 && \
+ head offline/short_summary*.txt
+
+# auto-lineage-prok
+RUN busco -m genome -i GCA_010941835.1_PDT000052640.3_genomic.fna -o auto --cpu 4 --auto-lineage-prok && \
+ head auto/short_summary*.txt
diff --git a/busco/5.6.1-prok-bacteria_odb10_2024-01-08/README.md b/busco/5.6.1-prok-bacteria_odb10_2024-01-08/README.md
new file mode 100644
index 000000000..9af1c4208
--- /dev/null
+++ b/busco/5.6.1-prok-bacteria_odb10_2024-01-08/README.md
@@ -0,0 +1,24 @@
+# Assessing genome assembly and annotation completeness with Benchmarking Universal Single-Copy Orthologs (BUSCO) container
+
+Main tool : [BUSCO](https://gitlab.com/ezlab/busco/)
+
+Additional tools:
+- BBTools 39.01
+- HMMER 3.3
+- Prodigal 2.6.3
+- SEPP 4.5.1
+- Python 3.8.10
+- BioPython 1.83
+- Perl 5.30.0
+- OpenJDK 1.8.0_392
+
+Full documentation: https://busco.ezlab.org/busco_userguide.html
+
+This is a BUSCO docker image which has basic functions for prokaryotes only. This image contains bacteria_odb10 lineage dataset for offline use.
+## Example Usage
+```bash
+# offline usage with bacteria lineage
+busco --offline -i assembly.fasta -l /busco_downloads/lineages/bacteria_odb10 -o output -m genome
+# auto lineage selection
+busco -i assembly.fasta -o output -m genome --auto-lineage-prok
+```
diff --git a/busco/5.6.1/Dockerfile b/busco/5.6.1/Dockerfile
new file mode 100644
index 000000000..99ba2b9d0
--- /dev/null
+++ b/busco/5.6.1/Dockerfile
@@ -0,0 +1,98 @@
+ARG BUSCO_VER="5.6.1"
+
+FROM ubuntu:focal as app
+
+ARG BUSCO_VER
+ARG BBMAP_VER="39.01"
+ARG BLAST_VER="2.14.0"
+ARG MINIPROT_VER="0.12"
+ARG DEBIAN_FRONTEND=noninteractive
+
+LABEL base.image="ubuntu:focal"
+LABEL dockerfile.version="1"
+LABEL software="BUSCO"
+LABEL software.version="${BUSCO_VER}"
+LABEL description="Assessing genome assembly and annotation completeness with Benchmarking Universal Single-Copy Orthologs"
+LABEL website="https://busco.ezlab.org/"
+LABEL license="https://gitlab.com/ezlab/busco/-/raw/master/LICENSE"
+LABEL maintainer="Kutluhan Incekara"
+LABEL maintainer.email="kutluhan.incekara@ct.gov"
+
+# install dependencies
+RUN apt-get update && apt-get install --no-install-recommends -y \
+ wget \
+ python3-pip \
+ python3-pandas \
+ python3-setuptools\
+ python3-requests \
+ hmmer \
+ prodigal \
+ augustus \
+ r-cran-ggplot2 \
+ gcc-x86-64-linux-gnu \
+ openjdk-8-jre-headless \
+ libjenkins-json-java \
+ libgoogle-gson-java \
+ libjson-java \
+ lbzip2 \
+ && rm -rf /var/lib/apt/lists/* && apt-get autoclean \
+ && ln -s /usr/bin/python3 /usr/bin/python
+
+# install other necessary tools
+# BioPython (python3-biopython installs 1.73. It causes python error in this version)
+RUN pip install --no-cache-dir biopython
+# blast
+RUN wget https://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/2.14.0/ncbi-blast-${BLAST_VER}+-x64-linux.tar.gz &&\
+ tar -xvf ncbi-blast-${BLAST_VER}+-x64-linux.tar.gz && rm ncbi-blast-${BLAST_VER}+-x64-linux.tar.gz
+# sepp (greengenes version)
+RUN wget https://raw.githubusercontent.com/smirarab/sepp-refs/54415e8905c5fa26cdd631c526b21f2bcdba95b5/gg/sepp-package.tar.bz &&\
+ tar xvfj sepp-package.tar.bz && rm sepp-package.tar.bz &&\
+ cd sepp-package/sepp &&\
+ python setup.py config -c && chmod 755 run_*
+# bbtools
+RUN wget https://sourceforge.net/projects/bbmap/files/BBMap_${BBMAP_VER}.tar.gz &&\
+ tar -xvf BBMap_${BBMAP_VER}.tar.gz && rm BBMap_${BBMAP_VER}.tar.gz &&\
+ mv /bbmap/* /usr/local/bin/
+# metaeuk
+RUN wget https://github.com/soedinglab/metaeuk/releases/download/6-a5d39d9/metaeuk-linux-sse41.tar.gz &&\
+ tar -xvf metaeuk-linux-sse41.tar.gz && rm metaeuk-linux-sse41.tar.gz &&\
+ mv /metaeuk/bin/* /usr/local/bin/
+# miniprot
+RUN wget https://github.com/lh3/miniprot/releases/download/v0.12/miniprot-${MINIPROT_VER}_x64-linux.tar.bz2 &&\
+ tar -C /usr/local/bin/ --strip-components=1 --no-same-owner -xvf miniprot-${MINIPROT_VER}_x64-linux.tar.bz2 miniprot-${MINIPROT_VER}_x64-linux/miniprot &&\
+ rm miniprot-${MINIPROT_VER}_x64-linux.tar.bz2
+
+# and finally busco
+RUN wget https://gitlab.com/ezlab/busco/-/archive/${BUSCO_VER}/busco-${BUSCO_VER}.tar.gz &&\
+ tar -xvf busco-${BUSCO_VER}.tar.gz && \
+ rm busco-${BUSCO_VER}.tar.gz &&\
+ cd busco-${BUSCO_VER} && \
+ python3 setup.py install
+
+ENV AUGUSTUS_CONFIG_PATH="/usr/share/augustus/config/"
+ENV PATH="${PATH}:/ncbi-blast-${BLAST_VER}+/bin:/sepp-package/sepp:/usr/share/augustus/scripts:/busco-${BUSCO_VER}/scripts"
+ENV LC_ALL=C
+
+WORKDIR /data
+
+CMD busco -h && generate_plot.py -h
+
+## Tests ##
+FROM app as test
+
+ARG BUSCO_VER
+# run tests for bacteria and eukaryota
+RUN busco -i /busco-${BUSCO_VER}/test_data/bacteria/genome.fna -c 8 -m geno -f --out test_bacteria
+RUN busco -i /busco-${BUSCO_VER}/test_data/eukaryota/genome.fna -c 8 -m geno -f --out test_eukaryota
+RUN busco -i /busco-${BUSCO_VER}/test_data/eukaryota/genome.fna -l eukaryota_odb10 -c 8 -m geno -f --out test_eukaryota_augustus --augustus
+
+# generate plot
+RUN mkdir my_summaries &&\
+ find . -name "short_summary.*.txt" -exec cp {} my_summaries \; &&\
+ generate_plot.py -wd my_summaries
+
+# using actual data (Salmonella genome)
+RUN wget -q https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/010/941/835/GCA_010941835.1_PDT000052640.3/GCA_010941835.1_PDT000052640.3_genomic.fna.gz && \
+ gzip -d GCA_010941835.1_PDT000052640.3_genomic.fna.gz && \
+ busco -m genome -i GCA_010941835.1_PDT000052640.3_genomic.fna -o busco_GCA_010941835.1 --cpu 4 --auto-lineage-prok && \
+ head busco_GCA_010941835.1/short_summary*.txt
diff --git a/busco/5.6.1/README.md b/busco/5.6.1/README.md
new file mode 100644
index 000000000..d208870fc
--- /dev/null
+++ b/busco/5.6.1/README.md
@@ -0,0 +1,95 @@
+# Assessing genome assembly and annotation completeness with Benchmarking Universal Single-Copy Orthologs (BUSCO) container
+
+Main tool : [BUSCO](https://gitlab.com/ezlab/busco/)
+
+Additional tools:
+- BBTools 39.01
+- HMMER 3.3
+- Prodigal 2.6.3
+- BLAST+ 2.14.0
+- AUGUSTUS 3.3.3
+- MetaEuk (Release 6-a5d39d9)
+- SEPP 4.5.1
+- Python 3.8.10
+- BioPython 1.83
+- R 3.6.3
+- Perl 5.30.0
+- OpenJDK 1.8.0_392
+- Miniprot 0.12
+
+Full documentation: https://busco.ezlab.org/busco_userguide.html
+
+This fully functional BUSCO docker image allows you to use all the program options. All additional tools were added to satisfy the requirements of those functions. This image does not contain any lineage dataset. BUSCO downloads the passed dataset name automatically while running. If a full path is given as lineage, this automated management will be disabled. The usage options are given below. Please refer to the BUSCO manual for further information.
+## Example Usage
+### Specific lineage
+```bash
+busco -i assembly.fasta -l bacteria_odb10 -o output -m genome
+```
+or
+```bash
+busco -i assembly.fasta -l /path/to/folder/bacteria_odb10 -o output -m genome
+```
+### Auto lineage selection:
+```bash
+busco -i assembly.fasta -o output -m genome --auto-lineage-prok
+```
+### Additional options:
+```bash
+ -i FASTA FILE, --in FASTA FILE
+ Input sequence file in FASTA format. Can be an assembled genome or transcriptome (DNA), or protein sequences from an annotated gene set.
+ -o OUTPUT, --out OUTPUT
+ Give your analysis run a recognisable short name. Output folders and files will be labelled with this name. WARNING: do not provide a path
+ -m MODE, --mode MODE Specify which BUSCO analysis mode to run.
+ There are three valid modes:
+ - geno or genome, for genome assemblies (DNA)
+ - tran or transcriptome, for transcriptome assemblies (DNA)
+ - prot or proteins, for annotated gene sets (protein)
+ -l LINEAGE, --lineage_dataset LINEAGE
+ Specify the name of the BUSCO lineage to be used.
+ --auto-lineage Run auto-lineage to find optimum lineage path
+ --auto-lineage-prok Run auto-lineage just on non-eukaryote trees to find optimum lineage path
+ --auto-lineage-euk Run auto-placement just on eukaryote tree to find optimum lineage path
+ -c N, --cpu N Specify the number (N=integer) of threads/cores to use.
+ -f, --force Force rewriting of existing files. Must be used when output files with the provided name already exist.
+ -r, --restart Continue a run that had already partially completed.
+ -q, --quiet Disable the info logs, displays only errors
+ --out_path OUTPUT_PATH
+ Optional location for results folder, excluding results folder name. Default is current working directory.
+ --download_path DOWNLOAD_PATH
+ Specify local filepath for storing BUSCO dataset downloads
+ --datasets_version DATASETS_VERSION
+ Specify the version of BUSCO datasets, e.g. odb10
+ --download_base_url DOWNLOAD_BASE_URL
+ Set the url to the remote BUSCO dataset location
+ --update-data Download and replace with last versions all lineages datasets and files necessary to their automated selection
+ --offline To indicate that BUSCO cannot attempt to download files
+ --metaeuk_parameters METAEUK_PARAMETERS
+ Pass additional arguments to Metaeuk for the first run. All arguments should be contained within a single pair of quotation marks, separated by commas. E.g. "--param1=1,--param2=2"
+ --metaeuk_rerun_parameters METAEUK_RERUN_PARAMETERS
+ Pass additional arguments to Metaeuk for the second run. All arguments should be contained within a single pair of quotation marks, separated by commas. E.g. "--param1=1,--param2=2"
+ -e N, --evalue N E-value cutoff for BLAST searches. Allowed formats, 0.001 or 1e-03 (Default: 1e-03)
+ --limit REGION_LIMIT How many candidate regions (contig or transcript) to consider per BUSCO (default: 3)
+ --augustus Use augustus gene predictor for eukaryote runs
+ --augustus_parameters AUGUSTUS_PARAMETERS
+ Pass additional arguments to Augustus. All arguments should be contained within a single pair of quotation marks, separated by commas. E.g. "--param1=1,--param2=2"
+ --augustus_species AUGUSTUS_SPECIES
+ Specify a species for Augustus training.
+ --long Optimization Augustus self-training mode (Default: Off); adds considerably to the run time, but can improve results for some non-model organisms
+ --config CONFIG_FILE Provide a config file
+ -v, --version Show this version and exit
+ -h, --help Show this help message and exit
+ --list-datasets Print the list of available BUSCO datasets
+```
+### Plot
+Example usage of plotting script:
+```bash
+# collect short summaries
+mkdir my_summaries
+cp SPEC1/short_summary.generic.lineage1_odb10.SPEC1.txt my_summaries/.
+cp SPEC2/short_summary.generic.lineage2_odb10.SPEC2.txt my_summaries/.
+cp SPEC3/short_summary.specific.lineage2_odb10.SPEC3.txt my_summaries/.
+cp SPEC4/short_summary.generic.lineage3_odb10.SPEC4.txt my_summaries/.
+cp SPEC5/short_summary.generic.lineage4_odb10.SPEC5.txt my_summaries/.
+# plot via script
+python3 generate_plot.py –wd my_summaries
+```
diff --git a/busco/5.7.1-prok-bacteria_odb10_2024-01-08/Dockerfile b/busco/5.7.1-prok-bacteria_odb10_2024-01-08/Dockerfile
new file mode 100644
index 000000000..89ce23d3b
--- /dev/null
+++ b/busco/5.7.1-prok-bacteria_odb10_2024-01-08/Dockerfile
@@ -0,0 +1,77 @@
+ARG BUSCO_VER="5.7.1"
+
+FROM ubuntu:focal as app
+
+ARG BUSCO_VER
+ARG BBMAP_VER="39.06"
+ARG DEBIAN_FRONTEND=noninteractive
+
+LABEL base.image="ubuntu:focal"
+LABEL dockerfile.version="1"
+LABEL software="BUSCO"
+LABEL software.version="${BUSCO_VER}"
+LABEL description="Slim version of BUSCO for prokaryotes only"
+LABEL website="https://busco.ezlab.org/"
+LABEL license="https://gitlab.com/ezlab/busco/-/raw/master/LICENSE"
+LABEL maintainer="Kutluhan Incekara"
+LABEL maintainer.email="kutluhan.incekara@ct.gov"
+
+# install dependencies
+RUN apt-get update && apt-get install --no-install-recommends -y \
+ wget \
+ python3-pip \
+ python3-setuptools \
+ python3-requests \
+ python3-pandas \
+ hmmer \
+ prodigal \
+ lbzip2 \
+ openjdk-8-jre-headless \
+ && rm -rf /var/lib/apt/lists/* && apt-get autoclean \
+ && ln -s /usr/bin/python3 /usr/bin/python
+
+# BioPython (python3-biopython installs 1.73. It causes python error in this version)
+RUN pip install --no-cache-dir biopython
+
+# bbtools
+RUN wget -q https://sourceforge.net/projects/bbmap/files/BBMap_${BBMAP_VER}.tar.gz &&\
+ tar -xvf BBMap_${BBMAP_VER}.tar.gz && rm BBMap_${BBMAP_VER}.tar.gz &&\
+ mv /bbmap/* /usr/local/bin/
+
+# sepp (greengenes version)
+RUN wget -q https://raw.githubusercontent.com/smirarab/sepp-refs/54415e8905c5fa26cdd631c526b21f2bcdba95b5/gg/sepp-package.tar.bz &&\
+ tar xvfj sepp-package.tar.bz && rm sepp-package.tar.bz &&\
+ cd sepp-package/sepp &&\
+ python setup.py config -c && chmod 755 run_*
+
+# busco
+RUN wget -q https://gitlab.com/ezlab/busco/-/archive/${BUSCO_VER}/busco-${BUSCO_VER}.tar.gz &&\
+ tar -xvf busco-${BUSCO_VER}.tar.gz && \
+ rm busco-${BUSCO_VER}.tar.gz &&\
+ cd busco-${BUSCO_VER} && \
+ python3 setup.py install
+
+# download bacteria_odb10
+RUN busco --download bacteria_odb10
+
+ENV PATH="${PATH}:/sepp-package/sepp"
+ENV LC_ALL=C
+
+WORKDIR /data
+
+CMD busco -h
+
+## Tests ##
+FROM app as test
+
+RUN busco -h
+
+# offline test
+RUN wget -q https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/010/941/835/GCA_010941835.1_PDT000052640.3/GCA_010941835.1_PDT000052640.3_genomic.fna.gz && \
+ gzip -d GCA_010941835.1_PDT000052640.3_genomic.fna.gz && \
+ busco --offline -l /busco_downloads/lineages/bacteria_odb10 -m genome -i GCA_010941835.1_PDT000052640.3_genomic.fna -o offline --cpu 4 && \
+ head offline/short_summary*.txt
+
+# auto-lineage-prok
+RUN busco -m genome -i GCA_010941835.1_PDT000052640.3_genomic.fna -o auto --cpu 4 --auto-lineage-prok && \
+ head auto/short_summary*.txt
diff --git a/busco/5.7.1-prok-bacteria_odb10_2024-01-08/README.md b/busco/5.7.1-prok-bacteria_odb10_2024-01-08/README.md
new file mode 100644
index 000000000..17e14845b
--- /dev/null
+++ b/busco/5.7.1-prok-bacteria_odb10_2024-01-08/README.md
@@ -0,0 +1,24 @@
+# Assessing genome assembly and annotation completeness with Benchmarking Universal Single-Copy Orthologs (BUSCO) container
+
+Main tool : [BUSCO](https://gitlab.com/ezlab/busco/)
+
+Additional tools:
+- BBTools 39.06
+- HMMER 3.3
+- Prodigal 2.6.3
+- SEPP 4.5.1
+- Python 3.8.10
+- BioPython 1.83
+- Perl 5.30.0
+- OpenJDK 1.8.0_392
+
+Full documentation: https://busco.ezlab.org/busco_userguide.html
+
+This is a BUSCO docker image which has basic functions for prokaryotes only. This image contains bacteria_odb10 lineage dataset for offline use.
+## Example Usage
+```bash
+# offline usage with bacteria lineage
+busco --offline -i assembly.fasta -l /busco_downloads/lineages/bacteria_odb10 -o output -m genome
+# auto lineage selection
+busco -i assembly.fasta -o output -m genome --auto-lineage-prok
+```
diff --git a/busco/5.7.1/Dockerfile b/busco/5.7.1/Dockerfile
new file mode 100644
index 000000000..e19399517
--- /dev/null
+++ b/busco/5.7.1/Dockerfile
@@ -0,0 +1,101 @@
+ARG BUSCO_VER="5.7.1"
+
+FROM ubuntu:focal as app
+
+ARG BUSCO_VER
+ARG BBMAP_VER="39.06"
+ARG BLAST_VER="2.15.0"
+ARG MINIPROT_VER="0.12"
+ARG DEBIAN_FRONTEND=noninteractive
+
+LABEL base.image="ubuntu:focal"
+LABEL dockerfile.version="1"
+LABEL software="BUSCO"
+LABEL software.version="${BUSCO_VER}"
+LABEL description="Assessing genome assembly and annotation completeness with Benchmarking Universal Single-Copy Orthologs"
+LABEL website="https://busco.ezlab.org/"
+LABEL license="https://gitlab.com/ezlab/busco/-/raw/master/LICENSE"
+LABEL maintainer="Kutluhan Incekara"
+LABEL maintainer.email="kutluhan.incekara@ct.gov"
+
+# install dependencies
+RUN apt-get update && apt-get install --no-install-recommends -y \
+ wget \
+ python3-pip \
+ python3-pandas \
+ python3-setuptools\
+ python3-requests \
+ hmmer \
+ prodigal \
+ augustus \
+ r-cran-ggplot2 \
+ gcc-x86-64-linux-gnu \
+ openjdk-8-jre-headless \
+ libjenkins-json-java \
+ libgoogle-gson-java \
+ libjson-java \
+ lbzip2 \
+ && rm -rf /var/lib/apt/lists/* && apt-get autoclean \
+ && ln -s /usr/bin/python3 /usr/bin/python
+
+# install other necessary tools
+# BioPython (python3-biopython installs 1.73. It causes python error in this version)
+RUN pip install --no-cache-dir biopython
+# blast
+RUN wget https://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/${BLAST_VER}/ncbi-blast-${BLAST_VER}+-x64-linux.tar.gz &&\
+ tar -xvf ncbi-blast-${BLAST_VER}+-x64-linux.tar.gz && rm ncbi-blast-${BLAST_VER}+-x64-linux.tar.gz
+# sepp (greengenes version)
+RUN wget https://raw.githubusercontent.com/smirarab/sepp-refs/54415e8905c5fa26cdd631c526b21f2bcdba95b5/gg/sepp-package.tar.bz &&\
+ tar xvfj sepp-package.tar.bz && rm sepp-package.tar.bz &&\
+ cd sepp-package/sepp &&\
+ python setup.py config -c && chmod 755 run_*
+# bbtools
+RUN wget https://sourceforge.net/projects/bbmap/files/BBMap_${BBMAP_VER}.tar.gz &&\
+ tar -xvf BBMap_${BBMAP_VER}.tar.gz && rm BBMap_${BBMAP_VER}.tar.gz &&\
+ mv /bbmap/* /usr/local/bin/
+# metaeuk
+RUN wget https://github.com/soedinglab/metaeuk/releases/download/6-a5d39d9/metaeuk-linux-sse41.tar.gz &&\
+ tar -xvf metaeuk-linux-sse41.tar.gz && rm metaeuk-linux-sse41.tar.gz &&\
+ mv /metaeuk/bin/* /usr/local/bin/
+# miniprot
+RUN wget https://github.com/lh3/miniprot/releases/download/v0.12/miniprot-${MINIPROT_VER}_x64-linux.tar.bz2 &&\
+ tar -C /usr/local/bin/ --strip-components=1 --no-same-owner -xvf miniprot-${MINIPROT_VER}_x64-linux.tar.bz2 miniprot-${MINIPROT_VER}_x64-linux/miniprot &&\
+ rm miniprot-${MINIPROT_VER}_x64-linux.tar.bz2
+
+# and finally busco
+RUN wget https://gitlab.com/ezlab/busco/-/archive/${BUSCO_VER}/busco-${BUSCO_VER}.tar.gz &&\
+ tar -xvf busco-${BUSCO_VER}.tar.gz && \
+ rm busco-${BUSCO_VER}.tar.gz &&\
+ cd busco-${BUSCO_VER} && \
+ python3 setup.py install
+
+ENV AUGUSTUS_CONFIG_PATH="/usr/share/augustus/config/"
+ENV PATH="${PATH}:/ncbi-blast-${BLAST_VER}+/bin:/sepp-package/sepp:/usr/share/augustus/scripts:/busco-${BUSCO_VER}/scripts"
+ENV LC_ALL=C
+
+WORKDIR /data
+
+CMD busco -h && generate_plot.py -h
+
+## Tests ##
+FROM app as test
+
+ARG BUSCO_VER
+
+RUN busco -h && generate_plot.py -h
+
+# run tests for bacteria and eukaryota
+RUN busco -i /busco-${BUSCO_VER}/test_data/bacteria/genome.fna -c 8 -m geno -f --out test_bacteria
+RUN busco -i /busco-${BUSCO_VER}/test_data/eukaryota/genome.fna -c 8 -m geno -f --out test_eukaryota
+RUN busco -i /busco-${BUSCO_VER}/test_data/eukaryota/genome.fna -l eukaryota_odb10 -c 8 -m geno -f --out test_eukaryota_augustus --augustus
+
+# generate plot
+RUN mkdir my_summaries &&\
+ find . -name "short_summary.*.txt" -exec cp {} my_summaries \; &&\
+ generate_plot.py -wd my_summaries
+
+# using actual data (Salmonella genome)
+RUN wget -q https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/010/941/835/GCA_010941835.1_PDT000052640.3/GCA_010941835.1_PDT000052640.3_genomic.fna.gz && \
+ gzip -d GCA_010941835.1_PDT000052640.3_genomic.fna.gz && \
+ busco -m genome -i GCA_010941835.1_PDT000052640.3_genomic.fna -o busco_GCA_010941835.1 --cpu 4 --auto-lineage-prok && \
+ head busco_GCA_010941835.1/short_summary*.txt
diff --git a/busco/5.7.1/README.md b/busco/5.7.1/README.md
new file mode 100644
index 000000000..585768c43
--- /dev/null
+++ b/busco/5.7.1/README.md
@@ -0,0 +1,95 @@
+# Assessing genome assembly and annotation completeness with Benchmarking Universal Single-Copy Orthologs (BUSCO) container
+
+Main tool : [BUSCO](https://gitlab.com/ezlab/busco/)
+
+Additional tools:
+- BBTools 39.06
+- HMMER 3.3
+- Prodigal 2.6.3
+- BLAST+ 2.15.0
+- AUGUSTUS 3.3.3
+- MetaEuk (Release 6-a5d39d9)
+- SEPP 4.5.1
+- Python 3.8.10
+- BioPython 1.83
+- R 3.6.3
+- Perl 5.30.0
+- OpenJDK 1.8.0_392
+- Miniprot 0.12
+
+Full documentation: https://busco.ezlab.org/busco_userguide.html
+
+This fully functional BUSCO docker image allows you to use all the program options. All additional tools were added to satisfy the requirements of those functions. This image does not contain any lineage dataset. BUSCO downloads the passed dataset name automatically while running. If a full path is given as lineage, this automated management will be disabled. The usage options are given below. Please refer to the BUSCO manual for further information.
+## Example Usage
+### Specific lineage
+```bash
+busco -i assembly.fasta -l bacteria_odb10 -o output -m genome
+```
+or
+```bash
+busco -i assembly.fasta -l /path/to/folder/bacteria_odb10 -o output -m genome
+```
+### Auto lineage selection:
+```bash
+busco -i assembly.fasta -o output -m genome --auto-lineage-prok
+```
+### Additional options:
+```bash
+ -i FASTA FILE, --in FASTA FILE
+ Input sequence file in FASTA format. Can be an assembled genome or transcriptome (DNA), or protein sequences from an annotated gene set.
+ -o OUTPUT, --out OUTPUT
+ Give your analysis run a recognisable short name. Output folders and files will be labelled with this name. WARNING: do not provide a path
+ -m MODE, --mode MODE Specify which BUSCO analysis mode to run.
+ There are three valid modes:
+ - geno or genome, for genome assemblies (DNA)
+ - tran or transcriptome, for transcriptome assemblies (DNA)
+ - prot or proteins, for annotated gene sets (protein)
+ -l LINEAGE, --lineage_dataset LINEAGE
+ Specify the name of the BUSCO lineage to be used.
+ --auto-lineage Run auto-lineage to find optimum lineage path
+ --auto-lineage-prok Run auto-lineage just on non-eukaryote trees to find optimum lineage path
+ --auto-lineage-euk Run auto-placement just on eukaryote tree to find optimum lineage path
+ -c N, --cpu N Specify the number (N=integer) of threads/cores to use.
+ -f, --force Force rewriting of existing files. Must be used when output files with the provided name already exist.
+ -r, --restart Continue a run that had already partially completed.
+ -q, --quiet Disable the info logs, displays only errors
+ --out_path OUTPUT_PATH
+ Optional location for results folder, excluding results folder name. Default is current working directory.
+ --download_path DOWNLOAD_PATH
+ Specify local filepath for storing BUSCO dataset downloads
+ --datasets_version DATASETS_VERSION
+ Specify the version of BUSCO datasets, e.g. odb10
+ --download_base_url DOWNLOAD_BASE_URL
+ Set the url to the remote BUSCO dataset location
+ --update-data Download and replace with last versions all lineages datasets and files necessary to their automated selection
+ --offline To indicate that BUSCO cannot attempt to download files
+ --metaeuk_parameters METAEUK_PARAMETERS
+ Pass additional arguments to Metaeuk for the first run. All arguments should be contained within a single pair of quotation marks, separated by commas. E.g. "--param1=1,--param2=2"
+ --metaeuk_rerun_parameters METAEUK_RERUN_PARAMETERS
+ Pass additional arguments to Metaeuk for the second run. All arguments should be contained within a single pair of quotation marks, separated by commas. E.g. "--param1=1,--param2=2"
+ -e N, --evalue N E-value cutoff for BLAST searches. Allowed formats, 0.001 or 1e-03 (Default: 1e-03)
+ --limit REGION_LIMIT How many candidate regions (contig or transcript) to consider per BUSCO (default: 3)
+ --augustus Use augustus gene predictor for eukaryote runs
+ --augustus_parameters AUGUSTUS_PARAMETERS
+ Pass additional arguments to Augustus. All arguments should be contained within a single pair of quotation marks, separated by commas. E.g. "--param1=1,--param2=2"
+ --augustus_species AUGUSTUS_SPECIES
+ Specify a species for Augustus training.
+ --long Optimization Augustus self-training mode (Default: Off); adds considerably to the run time, but can improve results for some non-model organisms
+ --config CONFIG_FILE Provide a config file
+ -v, --version Show this version and exit
+ -h, --help Show this help message and exit
+ --list-datasets Print the list of available BUSCO datasets
+```
+### Plot
+Example usage of plotting script:
+```bash
+# collect short summaries
+mkdir my_summaries
+cp SPEC1/short_summary.generic.lineage1_odb10.SPEC1.txt my_summaries/.
+cp SPEC2/short_summary.generic.lineage2_odb10.SPEC2.txt my_summaries/.
+cp SPEC3/short_summary.specific.lineage2_odb10.SPEC3.txt my_summaries/.
+cp SPEC4/short_summary.generic.lineage3_odb10.SPEC4.txt my_summaries/.
+cp SPEC5/short_summary.generic.lineage4_odb10.SPEC5.txt my_summaries/.
+# plot via script
+python3 generate_plot.py –wd my_summaries
+```
diff --git a/bwa/0.7.18/Dockerfile b/bwa/0.7.18/Dockerfile
new file mode 100644
index 000000000..ed0b59ea7
--- /dev/null
+++ b/bwa/0.7.18/Dockerfile
@@ -0,0 +1,57 @@
+ARG BWA_VER=0.7.18
+
+## Builder ##
+FROM ubuntu:jammy as builder
+
+ARG BWA_VER
+
+RUN apt-get update && apt-get install --no-install-recommends -y \
+ wget \
+ ca-certificates \
+ make \
+ gcc \
+ zlib1g-dev && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+RUN wget https://github.com/lh3/bwa/archive/refs/tags/v${BWA_VER}.tar.gz &&\
+ tar -xvf v${BWA_VER}.tar.gz &&\
+ cd bwa-${BWA_VER} &&\
+ make &&\
+ mv bwa /usr/local/bin/
+
+## App ##
+FROM ubuntu:jammy as app
+
+ARG BWA_VER
+
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="BWA"
+LABEL software.version="${BWA_VER}"
+LABEL description="Burrows-Wheeler Alignment Tool"
+LABEL website="https://github.com/lh3/bwa"
+LABEL license="https://github.com/lh3/bwa/blob/master/COPYING"
+LABEL maintainer="Kutluhan Incekara"
+LABEL maintainer.email="kutluhan.incekara@ct.gov"
+
+COPY --from=builder /usr/local/bin/bwa /usr/local/bin/
+
+ENV LC_ALL=C
+
+CMD ["bwa"]
+
+WORKDIR /data
+
+## Test ##
+FROM app as test
+
+RUN apt-get update && apt-get install -y wget
+
+RUN wget -q ftp://ftp.sra.ebi.ac.uk/vol1/fastq/SRR608/003/SRR6082043/SRR6082043_1.fastq.gz -O r1.fq.gz &&\
+ wget -q ftp://ftp.sra.ebi.ac.uk/vol1/fastq/SRR608/003/SRR6082043/SRR6082043_2.fastq.gz -O r2.fq.gz &&\
+ wget -q https://ftp.ncbi.nlm.nih.gov/genomes/all/GCF/000/006/945/GCF_000006945.2_ASM694v2/GCF_000006945.2_ASM694v2_genomic.fna.gz &&\
+ gunzip -c GCF_000006945.2_ASM694v2_genomic.fna.gz > ref.fa
+
+RUN bwa index ref.fa &&\
+ bwa mem ref.fa r1.fq.gz r2.fq.gz > aln.sam &&\
+ head aln.sam
\ No newline at end of file
diff --git a/bwa/0.7.18/README.md b/bwa/0.7.18/README.md
new file mode 100644
index 000000000..a332b8cfc
--- /dev/null
+++ b/bwa/0.7.18/README.md
@@ -0,0 +1,30 @@
+# BWA container
+
+Main tool: [bwa](https://bio-bwa.sourceforge.net/)
+
+Code repository: https://github.com/lh3/bwa
+
+Basic information on how to use this tool:
+
+- executable: bwa
+- description: Burrows-Wheeler Aligner
+
+Full documentation: https://bio-bwa.sourceforge.net/
+
+## Example Usage
+
+```bash
+# Illumina/454/IonTorrent single-end reads longer than ~70bp
+bwa mem ref.fa reads.fq > aln.sam
+# Illumina single-end reads shorter than ~70bp:
+bwa aln ref.fa reads.fq > reads.sai
+bwa samse ref.fa reads.sai reads.fq > aln-se.sam
+# Illumina/454/IonTorrent paired-end reads longer than ~70bp:
+bwa mem ref.fa read1.fq read2.fq > aln-pe.sam
+# Illumina paired-end reads shorter than ~70bp:
+bwa aln ref.fa read1.fq > read1.sai; bwa aln ref.fa read2.fq > read2.sai
+bwa sampe ref.fa read1.sai read2.sai read1.fq read2.fq > aln-pe.sam
+# PacBio subreads or Oxford Nanopore reads to a reference genome:
+bwa mem -x pacbio ref.fa reads.fq > aln.sam
+bwa mem -x ont2d ref.fa reads.fq > aln.sam
+```
diff --git a/checkm/1.2.3/Dockerfile b/checkm/1.2.3/Dockerfile
new file mode 100644
index 000000000..e0666388c
--- /dev/null
+++ b/checkm/1.2.3/Dockerfile
@@ -0,0 +1,55 @@
+FROM ubuntu:jammy as app
+
+ARG CHECKM_VER="1.2.3"
+ARG PPLACER_VER="v1.1.alpha19"
+
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="CheckM"
+LABEL software.version="${CHECKM_VER}"
+LABEL description="CheckM provides a set of tools for assessing the quality of genomes recovered from isolates, single cells, or metagenomes."
+LABEL website="https://github.com/Ecogenomics/CheckM"
+LABEL license="https://github.com/Ecogenomics/CheckM/blob/master/LICENSE"
+LABEL maintainer="Kutluhan Incekara"
+LABEL maintainer.email="kutluhan.incekara@ct.gov"
+
+# install system requirements
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ wget \
+ unzip \
+ python3-pip \
+ hmmer \
+ prodigal && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+# install checkm and its dependencies
+RUN pip install --no-cache-dir numpy matplotlib pysam checkm-genome==${CHECKM_VER}
+
+# download pplacer
+RUN wget -q https://github.com/matsen/pplacer/releases/download/${PPLACER_VER}/pplacer-linux-${PPLACER_VER}.zip && \
+ unzip pplacer-linux-${PPLACER_VER}.zip && \
+ rm pplacer-linux-${PPLACER_VER}.zip
+
+ENV PATH=$PATH:/pplacer-Linux-${PPLACER_VER} \
+ LC_ALL=C
+
+# 'CMD' instructions set a default command when the container is run.
+CMD [ "checkm", "-h" ]
+
+# 'WORKDIR' sets working directory
+WORKDIR /data
+
+## Test ##
+FROM app as test
+
+RUN checkm -h
+
+# download database and inform CheckM of where the files have been placed
+RUN wget -q https://data.ace.uq.edu.au/public/CheckM_databases/checkm_data_2015_01_16.tar.gz && \
+ mkdir checkm_db && \
+ tar -C checkm_db -xvf checkm_data_2015_01_16.tar.gz && \
+ checkm data setRoot checkm_db
+
+# run test with internal test data
+RUN checkm taxonomy_wf species "Escherichia coli" ./checkm_db/test_data/ ./checkm_test_results
+
diff --git a/checkm/1.2.3/README.md b/checkm/1.2.3/README.md
new file mode 100644
index 000000000..1063664f3
--- /dev/null
+++ b/checkm/1.2.3/README.md
@@ -0,0 +1,36 @@
+# CheckM container
+
+Main tool: [CheckM](https://github.com/Ecogenomics/CheckM)
+
+Code repository: https://github.com/Ecogenomics/CheckM
+
+Additional tools:
+- HHMER: 3.3.2+dfsg-1
+- prodigal: 1:2.6.3-5
+- pplacer: 1.1.alpha19-0-g807f6f3
+
+Basic information on how to use this tool:
+- executable: checkm
+- help: <-h>
+- version: <-h>
+- description: CheckM provides a set of tools for assessing the quality of genomes recovered from isolates, single cells, or metagenomes.
+
+Additional information:
+
+This container does not include precalculated data files that CheckM relies on
+Those files can be downloaded from either:
+- https://data.ace.uq.edu.au/public/CheckM_databases
+- https://zenodo.org/record/7401545#.Y44ymHbMJD8
+
+The reference data must be decompress into a directory. Inform CheckM of where the files have been placed with the following command:
+```
+checkm data setRoot
+```
+
+Full documentation: https://github.com/Ecogenomics/CheckM/wiki
+
+## Example Usage
+
+```bash
+checkm lineage_wf -t 8 -x fasta input_folder output_folder
+```
diff --git a/circos/0.69.9/Dockerfile b/circos/0.69.9/Dockerfile
new file mode 100644
index 000000000..f695f7f02
--- /dev/null
+++ b/circos/0.69.9/Dockerfile
@@ -0,0 +1,51 @@
+ARG CIRCOS_VER="0.69-9"
+
+FROM ubuntu:jammy as app
+
+ARG CIRCOS_VER
+
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="Circos"
+LABEL software.version="${CIRCOS_VER}"
+LABEL description="Circos is a software package for visualizing data and information"
+LABEL website="https://circos.ca/"
+LABEL license="https://circos.ca/"
+LABEL maintainer="Kutluhan Incekara"
+LABEL maintainer.email="kutluhan.incekara@ct.gov"
+
+RUN apt-get update && apt-get install --no-install-recommends -y \
+ wget \
+ perl \
+ cpanminus \
+ libgd-dev \
+ make \
+ gcc-x86-64-linux-gnu \
+ && apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+RUN cpanm Clone Config::General Font::TTF::Font GD GD::Polyline Math::Bezier Math::Round Math::VecStat \
+ Params::Validate Readonly Regexp::Common SVG Set::IntSpan Statistics::Basic Text::Format List::MoreUtils
+
+RUN wget --no-check-certificate https://circos.ca/distribution/circos-${CIRCOS_VER}.tgz &&\
+ tar -xvf circos-${CIRCOS_VER}.tgz && rm circos-${CIRCOS_VER}.tgz
+
+ENV PATH="$PATH:/circos-0.69-9/bin" \
+ LC_ALL=C
+
+CMD ["circos" "-h"]
+
+WORKDIR /data
+
+## Test ##
+FROM app as test
+
+ARG CIRCOS_VER
+
+# required perl modules
+RUN circos -modules
+
+# internal test
+RUN cd /circos-${CIRCOS_VER}/example &&\
+ rm circos.png circos.svg run.out &&\
+ ./run &&\
+ cat run.out
\ No newline at end of file
diff --git a/circos/0.69.9/README.md b/circos/0.69.9/README.md
new file mode 100644
index 000000000..be21dd43e
--- /dev/null
+++ b/circos/0.69.9/README.md
@@ -0,0 +1,24 @@
+# Circos container
+
+Main tool: [Circos](https://circos.ca/)
+
+Code repository: https://circos.ca/software/download/circos/
+
+Basic information on how to use this tool:
+- executable: circos
+- help: -h
+- version: -v
+- description: Circos is a software package for visualizing data and information. It visualizes data in a circular layout — this makes Circos ideal for exploring relationships between objects or positions
+
+
+Full documentation: https://circos.ca/documentation/tutorials/
+
+## Example Usage
+
+```bash
+# without -conf Circos will search for configuration
+circos
+
+# use specific configuration file
+circos -conf circos.conf
+```
\ No newline at end of file
diff --git a/circulocov/0.1.20240104/Dockerfile b/circulocov/0.1.20240104/Dockerfile
new file mode 100644
index 000000000..69ec82f47
--- /dev/null
+++ b/circulocov/0.1.20240104/Dockerfile
@@ -0,0 +1,53 @@
+FROM python:3.11-slim as app
+
+ARG CIRCULOCOV_VER="0.1.20240104"
+ARG MINIMAP2_VER="2.26"
+
+LABEL base.image="python:3.11-slim"
+LABEL dockerfile.version="1"
+LABEL software="CirculoCov"
+LABEL software.version="${CIRCULOCOV_VER}"
+LABEL description="Circular-aware coverage estimations"
+LABEL website="https://github.com/erinyoung/CirculoCov"
+LABEL license="https://github.com/erinyoung/CirculoCov/blob/main/LICENSE"
+LABEL maintainer="Erin Young"
+LABEL maintainer.email="eriny@utah.gov"
+
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ curl \
+ ca-certificates \
+ bzip2 \
+ procps && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+# install circulocov via pip
+RUN pip install --no-cache circulocov==${CIRCULOCOV_VER}
+
+# install minimap2
+RUN curl -L https://github.com/lh3/minimap2/releases/download/v${MINIMAP2_VER}/minimap2-${MINIMAP2_VER}_x64-linux.tar.bz2 | tar -jxvf - --no-same-owner && \
+ mkdir /data
+
+ENV PATH="/minimap2-${MINIMAP2_VER}_x64-linux/:$PATH" \
+ LC_ALL=C
+
+CMD [ "circulocov", "--help" ]
+
+WORKDIR /data
+
+FROM app as test
+
+WORKDIR /test
+
+RUN circulocov --help && \
+ circulocov --version
+
+RUN apt-get update && apt-get install -y --no-install-recommends wget
+
+# downloads some SARS-CoV-2 data
+RUN wget -q https://raw.githubusercontent.com/StaPH-B/docker-builds/master/tests/SARS-CoV-2/SRR13957123.consensus.fa && \
+ wget -q https://github.com/StaPH-B/docker-builds/raw/master/tests/SARS-CoV-2/SRR13957123_1.fastq.gz && \
+ wget -q https://github.com/StaPH-B/docker-builds/raw/master/tests/SARS-CoV-2/SRR13957123_2.fastq.gz && \
+ circulocov -g SRR13957123.consensus.fa -i SRR13957123_1.fastq.gz SRR13957123_2.fastq.gz -o out && \
+ ls out/* && \
+ circulocov -g SRR13957123.consensus.fa -i SRR13957123_1.fastq.gz SRR13957123_2.fastq.gz -o out_all -a && \
+ ls out_all/* && ls out_all/fastq/*
diff --git a/circulocov/0.1.20240104/README.md b/circulocov/0.1.20240104/README.md
new file mode 100644
index 000000000..36ef15e1b
--- /dev/null
+++ b/circulocov/0.1.20240104/README.md
@@ -0,0 +1,26 @@
+# CirculoCov container
+
+Main tool: [CirculoCov](https://github.com/erinyoung/CirculoCov/)
+
+Code repository:https://github.com/erinyoung/CirculoCov
+
+Additional tools:
+- minimap2: 2.26
+
+Basic information on how to use this tool:
+- executable: circulocov
+- help: --help
+- version: --version
+- description: Coverage estimates and visualization for circular sequences.
+
+Full documentation: https://github.com/erinyoung/CirculoCov/
+
+## Example Usage
+
+```bash
+# getting coverage without visuals
+circulocov -g assembly.fa -i illumina_1.fastq.gz illumina_2.fastq.gz -n nanopore.fastq.gz -p pacbio.fastq.gz -o out
+
+# getting coverage visuals and mapped fastq files
+circulocov -g assembly.fa -i illumina_1.fastq.gz illumina_2.fastq.gz -n nanopore.fastq.gz -p pacbio.fastq.gz -o out_all -a
+```
diff --git a/clair3/1.0.10/Dockerfile b/clair3/1.0.10/Dockerfile
new file mode 100644
index 000000000..050e7eaef
--- /dev/null
+++ b/clair3/1.0.10/Dockerfile
@@ -0,0 +1,122 @@
+ARG CLAIR3_VER="1.0.10"
+
+FROM mambaorg/micromamba:1.5.8 as builder
+
+ARG CLAIR3_VER
+
+USER root
+
+WORKDIR /
+
+RUN apt-get update && apt-get install -y \
+ wget \
+ bzip2 \
+ make \
+ g++ \
+ libboost-graph-dev
+
+RUN micromamba install --name base -c conda-forge -c bioconda \
+ python=3.9.0 \
+ pypy3.6 \
+ tensorflow-cpu=2.8.0 \
+ pytables \
+ pigz \
+ cffi=1.14.4 \
+ parallel=20191122 \
+ zstd \
+ samtools=1.15.1 \
+ whatshap=1.7 \
+ xz \
+ zlib \
+ bzip2 \
+ automake \
+ curl &&\
+ micromamba clean -a -y
+
+ENV PATH="$PATH:/opt/conda/bin/"
+
+ARG MAMBA_DOCKERFILE_ACTIVATE=1
+
+RUN pypy3 -m ensurepip && \
+ pypy3 -m pip install mpmath==1.2.1 &&\
+ pip install tensorflow-addons
+
+RUN wget -q https://github.com/HKU-BAL/Clair3/archive/refs/tags/v${CLAIR3_VER}.tar.gz &&\
+ tar -xvf v${CLAIR3_VER}.tar.gz &&\
+ cd Clair3-${CLAIR3_VER}/preprocess/realign/ &&\
+ g++ -std=c++14 -O1 -shared -fPIC -o realigner ssw_cpp.cpp ssw.c realigner.cpp && \
+ g++ -std=c++11 -shared -fPIC -o debruijn_graph -O3 debruijn_graph.cpp &&\
+ cd ../.. &&\
+ make &&\
+ mkdir /clair3 &&\
+ cp -rv clair3 preprocess postprocess scripts shared /clair3 &&\
+ cp clair3.py run_clair3.sh /clair3 &&\
+ cp longphase libclair3* /clair3 &&\
+ cp LICENSE.md /clair3
+
+RUN mkdir /clair3/models &&\
+ wget -q http://www.bio8.cs.hku.hk/clair3/clair3_models/clair3_models.tar.gz &&\
+ tar --no-same-owner -C /clair3/models -xvf clair3_models.tar.gz
+
+## App ##
+FROM mambaorg/micromamba:1.5.8 as app
+
+ARG CLAIR3_VER
+
+USER root
+
+WORKDIR /
+
+LABEL base.image="mambaorg/micromamba:1.5.8"
+LABEL dockerfile.version="1"
+LABEL software="CLAIR3"
+LABEL software.version="${CLAIR3_VER}"
+LABEL description="Clair3 is a germline small variant caller for long-reads."
+LABEL website="https://github.com/HKU-BAL/Clair3"
+LABEL license="https://github.com/HKU-BAL/Clair3/blob/main/LICENSE.md"
+LABEL maintainer="Kutluhan Incekara"
+LABEL maintainer.email="kutluhan.incekara@ct.gov"
+
+RUN apt-get update && apt-get install --no-install-recommends -y\
+ procps && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+
+RUN micromamba install --name base -c conda-forge -c bioconda \
+ python=3.9.0 \
+ numpy=1.24.3 \
+ pypy3.6 \
+ tensorflow-cpu=2.8.0 \
+ pytables \
+ pigz \
+ cffi=1.14.4 \
+ parallel=20191122 \
+ zstd \
+ samtools=1.15.1 \
+ whatshap=1.7 &&\
+ micromamba clean -a -y &&\
+ rm -rf /opt/conda/pkgs/
+
+ENV PATH="/opt/conda/bin/:/clair3:${PATH}" \
+ LC_ALL=C.UTF-8
+
+RUN pypy3 -m ensurepip &&\
+ pypy3 -m pip install --no-cache mpmath==1.2.1 &&\
+ pip install --no-cache tensorflow-addons
+
+COPY --from=builder /clair3 /clair3
+
+CMD run_clair3.sh
+
+WORKDIR /data
+
+## Test ##
+FROM app as test
+
+RUN run_clair3.sh
+
+RUN apt-get update && apt-get install -y wget
+
+RUN wget -q https://raw.githubusercontent.com/StaPH-B/docker-builds/master/clair3/1.0.9/ont_quick_test.sh && \
+ chmod +x ont_quick_test.sh &&\
+ ./ont_quick_test.sh
diff --git a/clair3/1.0.10/README.md b/clair3/1.0.10/README.md
new file mode 100644
index 000000000..1925c747f
--- /dev/null
+++ b/clair3/1.0.10/README.md
@@ -0,0 +1,32 @@
+# Clair3 container
+
+Main tool: [clair3](https://github.com/HKU-BAL/Clair3)
+
+Code repository: https://github.com/HKU-BAL/Clair3
+
+Basic information on how to use this tool:
+- executable: run_clair3.sh
+- help: -h, --help
+- version: -v, --version
+- description:
+
+Additional information:
+
+This container includes models in `/clair3/models`
+
+Full documentation: https://github.com/HKU-BAL/Clair3
+
+## Example Usage
+
+```bash
+run_clair3.sh \
+ --bam_fn=${BAM} \
+ --ref_fn=${REF} \
+ --threads=${THREADS} \
+ --platform="ont" \ ## options: {ont,hifi,ilmn}
+ --model_path=${MODEL_PREFIX} \ ## absolute model path prefix
+ --output=${OUTPUT_DIR} ## absolute output path prefix
+## pileup output file: ${OUTPUT_DIR}/pileup.vcf.gz
+## full-alignment output file: ${OUTPUT_DIR}/full_alignment.vcf.gz
+## Clair3 final output file: ${OUTPUT_DIR}/merge_output.vcf.gz
+```
diff --git a/clair3/1.0.9/Dockerfile b/clair3/1.0.9/Dockerfile
new file mode 100644
index 000000000..ed2ce19d1
--- /dev/null
+++ b/clair3/1.0.9/Dockerfile
@@ -0,0 +1,119 @@
+ARG CLAIR3_VER="1.0.9"
+
+FROM mambaorg/micromamba:1.5.8 as builder
+
+ARG CLAIR3_VER
+
+USER root
+
+WORKDIR /
+
+RUN apt-get update && apt-get install -y \
+ wget \
+ bzip2 \
+ make \
+ g++ \
+ libboost-graph-dev
+
+RUN micromamba install --name base -c conda-forge -c bioconda \
+ python=3.9.0 \
+ pypy3.6 \
+ tensorflow-cpu=2.8.0 \
+ pytables \
+ pigz \
+ cffi=1.14.4 \
+ parallel=20191122 \
+ zstd \
+ samtools=1.15.1 \
+ whatshap=1.7 \
+ xz \
+ zlib \
+ bzip2 \
+ automake \
+ curl &&\
+ micromamba clean -a -y
+
+ENV PATH="$PATH:/opt/conda/bin/"
+
+ARG MAMBA_DOCKERFILE_ACTIVATE=1
+
+RUN pypy3 -m ensurepip && \
+ pypy3 -m pip install mpmath==1.2.1 &&\
+ pip install tensorflow-addons
+
+RUN wget https://github.com/HKU-BAL/Clair3/archive/refs/tags/v${CLAIR3_VER}.tar.gz &&\
+ tar -xvf v${CLAIR3_VER}.tar.gz &&\
+ cd Clair3-${CLAIR3_VER}/preprocess/realign/ &&\
+ g++ -std=c++14 -O1 -shared -fPIC -o realigner ssw_cpp.cpp ssw.c realigner.cpp && \
+ g++ -std=c++11 -shared -fPIC -o debruijn_graph -O3 debruijn_graph.cpp &&\
+ cd ../.. &&\
+ make &&\
+ mkdir /clair3 &&\
+ cp -rv clair3 preprocess postprocess scripts shared /clair3 &&\
+ cp clair3.py run_clair3.sh /clair3 &&\
+ cp longphase libclair3* /clair3 &&\
+ cp LICENSE.md /clair3
+
+RUN mkdir /clair3/models &&\
+ wget http://www.bio8.cs.hku.hk/clair3/clair3_models/clair3_models.tar.gz &&\
+ tar --no-same-owner -C /clair3/models -xvf clair3_models.tar.gz
+
+## App ##
+FROM mambaorg/micromamba:1.5.8 as app
+
+ARG CLAIR3_VER
+
+USER root
+
+WORKDIR /
+
+LABEL base.image="mambaorg/micromamba:1.5.8"
+LABEL dockerfile.version="1"
+LABEL software="CLAIR3"
+LABEL software.version="${CLAIR3_VER}"
+LABEL description="Clair3 is a germline small variant caller for long-reads."
+LABEL website="https://github.com/HKU-BAL/Clair3"
+LABEL license="https://github.com/HKU-BAL/Clair3/blob/main/LICENSE.md"
+LABEL maintainer="Kutluhan Incekara"
+LABEL maintainer.email="kutluhan.incekara@ct.gov"
+
+RUN apt-get update && apt-get install --no-install-recommends -y\
+ procps
+
+RUN micromamba install --name base -c conda-forge -c bioconda \
+ python=3.9.0 \
+ numpy=1.24.3 \
+ pypy3.6 \
+ tensorflow-cpu=2.8.0 \
+ pytables \
+ pigz \
+ cffi=1.14.4 \
+ parallel=20191122 \
+ zstd \
+ samtools=1.15.1 \
+ whatshap=1.7 &&\
+ micromamba clean -a -y &&\
+ rm -rf /opt/conda/pkgs/
+
+ENV PATH="/opt/conda/bin/:/clair3:${PATH}" \
+ LC_ALL=C.UTF-8
+
+RUN pypy3 -m ensurepip &&\
+ pypy3 -m pip install --no-cache mpmath==1.2.1 &&\
+ pip install --no-cache tensorflow-addons
+
+COPY --from=builder /clair3 /clair3
+
+CMD run_clair3.sh
+
+WORKDIR /data
+
+## Test ##
+FROM app as test
+
+RUN apt-get update && apt-get install -y wget
+
+COPY ont_quick_test.sh .
+
+RUN chmod +x ont_quick_test.sh &&\
+ ./ont_quick_test.sh
diff --git a/clair3/1.0.9/README.md b/clair3/1.0.9/README.md
new file mode 100644
index 000000000..1925c747f
--- /dev/null
+++ b/clair3/1.0.9/README.md
@@ -0,0 +1,32 @@
+# Clair3 container
+
+Main tool: [clair3](https://github.com/HKU-BAL/Clair3)
+
+Code repository: https://github.com/HKU-BAL/Clair3
+
+Basic information on how to use this tool:
+- executable: run_clair3.sh
+- help: -h, --help
+- version: -v, --version
+- description:
+
+Additional information:
+
+This container includes models in `/clair3/models`
+
+Full documentation: https://github.com/HKU-BAL/Clair3
+
+## Example Usage
+
+```bash
+run_clair3.sh \
+ --bam_fn=${BAM} \
+ --ref_fn=${REF} \
+ --threads=${THREADS} \
+ --platform="ont" \ ## options: {ont,hifi,ilmn}
+ --model_path=${MODEL_PREFIX} \ ## absolute model path prefix
+ --output=${OUTPUT_DIR} ## absolute output path prefix
+## pileup output file: ${OUTPUT_DIR}/pileup.vcf.gz
+## full-alignment output file: ${OUTPUT_DIR}/full_alignment.vcf.gz
+## Clair3 final output file: ${OUTPUT_DIR}/merge_output.vcf.gz
+```
diff --git a/clair3/1.0.9/ont_quick_test.sh b/clair3/1.0.9/ont_quick_test.sh
new file mode 100644
index 000000000..8794bf80a
--- /dev/null
+++ b/clair3/1.0.9/ont_quick_test.sh
@@ -0,0 +1,44 @@
+## Adapted from http://www.bio8.cs.hku.hk/clair3/demo/clair3_ont_quick_demo.sh
+# Parameters
+PLATFORM='ont'
+INPUT_DIR="/data/clair3_ont_quickDemo"
+OUTPUT_DIR="${INPUT_DIR}/output"
+THREADS=4
+
+## Create local directory structure
+mkdir -p ${INPUT_DIR}
+mkdir -p ${OUTPUT_DIR}
+
+# Download quick demo data
+#GRCh38_no_alt Reference
+wget -q -P ${INPUT_DIR} http://www.bio8.cs.hku.hk/clair3/demo/quick_demo/ont/GRCh38_no_alt_chr20.fa
+wget -q -P ${INPUT_DIR} http://www.bio8.cs.hku.hk/clair3/demo/quick_demo/ont/GRCh38_no_alt_chr20.fa.fai
+# BAM chr20:100000-300000
+wget -q -P ${INPUT_DIR} http://www.bio8.cs.hku.hk/clair3/demo/quick_demo/ont/HG003_chr20_demo.bam
+wget -q -P ${INPUT_DIR} http://www.bio8.cs.hku.hk/clair3/demo/quick_demo/ont/HG003_chr20_demo.bam.bai
+# GIAB Truth VCF and BED
+wget -q -P ${INPUT_DIR} http://www.bio8.cs.hku.hk/clair3/demo/quick_demo/ont/HG003_GRCh38_chr20_v4.2.1_benchmark.vcf.gz
+wget -q -P ${INPUT_DIR} http://www.bio8.cs.hku.hk/clair3/demo/quick_demo/ont/HG003_GRCh38_chr20_v4.2.1_benchmark.vcf.gz.tbi
+wget -q -P ${INPUT_DIR} http://www.bio8.cs.hku.hk/clair3/demo/quick_demo/ont/HG003_GRCh38_chr20_v4.2.1_benchmark_noinconsistent.bed
+
+REF="GRCh38_no_alt_chr20.fa"
+BAM="HG003_chr20_demo.bam"
+BASELINE_VCF_FILE_PATH="HG003_GRCh38_chr20_v4.2.1_benchmark.vcf.gz"
+BASELINE_BED_FILE_PATH="HG003_GRCh38_chr20_v4.2.1_benchmark_noinconsistent.bed"
+OUTPUT_VCF_FILE_PATH="merge_output.vcf.gz"
+
+CONTIGS="chr20"
+START_POS=100000
+END_POS=300000
+echo -e "${CONTIGS}\t${START_POS}\t${END_POS}" > ${INPUT_DIR}/quick_demo.bed
+
+cd ${OUTPUT_DIR}
+# Run Clair3 using one command
+ run_clair3.sh \
+ --bam_fn=${INPUT_DIR}/${BAM} \
+ --ref_fn=${INPUT_DIR}/${REF} \
+ --threads=${THREADS} \
+ --platform=${PLATFORM} \
+ --model_path="/clair3/models/${PLATFORM}" \
+ --output=${OUTPUT_DIR} \
+ --bed_fn=${INPUT_DIR}/quick_demo.bed
\ No newline at end of file
diff --git a/diamond/2.1.9/Dockerfile b/diamond/2.1.9/Dockerfile
new file mode 100644
index 000000000..b47ae6c11
--- /dev/null
+++ b/diamond/2.1.9/Dockerfile
@@ -0,0 +1,38 @@
+FROM ubuntu:jammy as app
+
+ARG DIAMOND_VER="2.1.9"
+
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="DIAMOND"
+LABEL software.version="${DIAMOND_VER}"
+LABEL description="Accelerated BLAST compatible local sequence aligner."
+LABEL website="https://github.com/bbuchfink/diamond"
+LABEL license="https://github.com/bbuchfink/diamond/blob/master/LICENSE"
+LABEL maintainer="Kutluhan Incekara"
+LABEL maintainer.email="kutluhan.incekara@ct.gov"
+
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ wget \
+ ncbi-blast+ &&\
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+RUN wget --no-check-certificate https://github.com/bbuchfink/diamond/releases/download/v${DIAMOND_VER}/diamond-linux64.tar.gz &&\
+ tar -C /usr/local/bin -xvf diamond-linux64.tar.gz && \
+ rm diamond-linux64.tar.gz
+
+ENV LC_ALL=C
+
+CMD [ "diamond", "help" ]
+
+WORKDIR /data
+
+## Test ##
+FROM app as test
+
+RUN diamond test
+
+RUN wget --no-check-certificate https://scop.berkeley.edu/downloads/scopeseq-2.07/astral-scopedom-seqres-gd-sel-gs-bib-40-2.07.fa &&\
+ diamond makedb --in astral-scopedom-seqres-gd-sel-gs-bib-40-2.07.fa -d astral40 &&\
+ diamond blastp -q astral-scopedom-seqres-gd-sel-gs-bib-40-2.07.fa -d astral40 -o out.tsv --very-sensitive &&\
+ head out.tsv
diff --git a/diamond/2.1.9/README.md b/diamond/2.1.9/README.md
new file mode 100644
index 000000000..58db64ff3
--- /dev/null
+++ b/diamond/2.1.9/README.md
@@ -0,0 +1,32 @@
+# diamond container
+
+Main tool: [diamond](https://github.com/bbuchfink/diamond)
+
+Code repository: https://github.com/bbuchfink/diamond
+
+Additional tools:
+- ncbi-blast+ : 2.12.0
+
+Basic information on how to use this tool:
+- executable: diamond
+- help: help
+- version: version
+- description: DIAMOND is a sequence aligner for protein and translated DNA searches, designed for high performance analysis of big sequence data. The key features are:
+
+ - Pairwise alignment of proteins and translated DNA at 100x-10,000x speed of BLAST.
+ - Protein clustering of up to tens of billions of proteins
+ - Frameshift alignments for long read analysis.
+ - Low resource requirements and suitable for running on standard desktops or laptops.
+ - Various output formats, including BLAST pairwise, tabular and XML, as well as taxonomic classification.
+
+Full documentation: https://github.com/bbuchfink/diamond/wiki
+
+## Example Usage
+
+```bash
+# Protein alignment
+diamond makedb --in proteins.fa -d db
+diamond blastp -q query.fa -d db -o out.tsv --very-sensitive
+# Protein clustering
+diamond cluster -d proteins.fa -o clusters.tsv --approx-id 40 -M 12G --header
+```
\ No newline at end of file
diff --git a/dnaapler/0.5.0/Dockerfile b/dnaapler/0.5.0/Dockerfile
new file mode 100644
index 000000000..5259a65fd
--- /dev/null
+++ b/dnaapler/0.5.0/Dockerfile
@@ -0,0 +1,57 @@
+FROM mambaorg/micromamba:1.4.1 as app
+
+USER root
+
+WORKDIR /
+
+ARG DNAAPLER_VER="0.5.0"
+
+# metadata labels
+LABEL base.image="mambaorg/micromamba:1.4.1"
+LABEL dockerfile.version="1"
+LABEL software="dnaapler"
+LABEL software.version="${DNAAPLER_VER}"
+LABEL description="Rotates chromosomes and more"
+LABEL website="https://github.com/gbouras13/dnaapler"
+LABEL license="MIT"
+LABEL license.url="https://github.com/gbouras13/dnaapler/blob/main/LICENSE"
+LABEL maintainer="Erin Young"
+LABEL maintainer.email="eriny@utah.gov"
+
+# install dependencies; cleanup apt garbage
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ wget \
+ ca-certificates \
+ procps && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+# create the conda environment, install mykrobe via bioconda package; cleanup conda garbage
+RUN micromamba create -n dnaapler -y -c bioconda -c defaults -c conda-forge dnaapler=${DNAAPLER_VER} && \
+ micromamba clean -a -y
+
+# set the PATH and LC_ALL for singularity compatibility
+ENV PATH="/opt/conda/envs/dnaapler/bin/:${PATH}" \
+ LC_ALL=C.UTF-8
+
+# set final working directory as /data
+WORKDIR /data
+
+# default command is to print help options
+CMD [ "dnaapler", "--help" ]
+
+# new base for testing
+FROM app as test
+
+# set working directory to /test
+WORKDIR /test
+
+# checking that tool is in PATH
+RUN dnaapler --help && dnaapler --version
+
+# downloads genome sequence and then extracts the last plasmid in the laziest way possible
+RUN wget -q https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/025/259/185/GCA_025259185.1_ASM2525918v1/GCA_025259185.1_ASM2525918v1_genomic.fna.gz && \
+ gunzip GCA_025259185.1_ASM2525918v1_genomic.fna.gz && \
+ grep "CP104365.1" GCA_025259185.1_ASM2525918v1_genomic.fna -A 50000 > CP104365.1.fasta && \
+ dnaapler mystery --prefix mystery_test --output mystery_test -i CP104365.1.fasta && \
+ dnaapler plasmid --prefix plasmid_test --output plasmid_test -i CP104365.1.fasta && \
+ ls mystery_test plasmid_test
diff --git a/dnaapler/0.5.0/README.md b/dnaapler/0.5.0/README.md
new file mode 100644
index 000000000..79e17f4a5
--- /dev/null
+++ b/dnaapler/0.5.0/README.md
@@ -0,0 +1,37 @@
+# dnaapler container
+
+Main tool : [dnappler](https://github.com/gbouras13/dnaapler)
+
+Full documentation: [https://github.com/gbouras13/dnaapler](https://github.com/gbouras13/dnaapler)
+
+> `dnaapler` is a simple python program that takes a single nucleotide input sequence (in FASTA format), finds the desired start gene using blastx against an amino acid sequence database, checks that the start codon of this gene is found, and if so, then reorients the chromosome to begin with this gene on the forward strand.
+
+dnaapler has several commands for chromosomes, plasmids, and more.
+
+```
+Usage: dnaapler [OPTIONS] COMMAND [ARGS]...
+
+Options:
+ -h, --help Show this message and exit.
+ -V, --version Show the version and exit.
+
+Commands:
+ chromosome Reorients your sequence to begin with the dnaA chromosomal...
+ citation Print the citation(s) for this tool
+ custom Reorients your sequence with a custom database
+ mystery Reorients your sequence with a random gene
+ phage Reorients your sequence to begin with the terL large...
+ plasmid Reorients your sequence to begin with the repA replication...
+```
+
+WARNING: Does not support multifasta files. Each sequence must be processed individually.
+
+## Example Usage
+
+```bash
+# for a fasta of a chromsome sequence
+dnaapler chromosome --input chromosome.fasta --output dnaapler_chr
+
+# for a fasta of a plasmid sequence
+dnaapler plasmid --input plasmid.fasta --output dnaapler_plasmid
+```
diff --git a/dnaapler/0.5.1/Dockerfile b/dnaapler/0.5.1/Dockerfile
new file mode 100644
index 000000000..9db6fbf36
--- /dev/null
+++ b/dnaapler/0.5.1/Dockerfile
@@ -0,0 +1,57 @@
+FROM mambaorg/micromamba:1.4.1 as app
+
+USER root
+
+WORKDIR /
+
+ARG DNAAPLER_VER="0.5.1"
+
+# metadata labels
+LABEL base.image="mambaorg/micromamba:1.4.1"
+LABEL dockerfile.version="1"
+LABEL software="dnaapler"
+LABEL software.version="${DNAAPLER_VER}"
+LABEL description="Rotates chromosomes and more"
+LABEL website="https://github.com/gbouras13/dnaapler"
+LABEL license="MIT"
+LABEL license.url="https://github.com/gbouras13/dnaapler/blob/main/LICENSE"
+LABEL maintainer="Erin Young"
+LABEL maintainer.email="eriny@utah.gov"
+
+# install dependencies; cleanup apt garbage
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ wget \
+ ca-certificates \
+ procps && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+# create the conda environment, install mykrobe via bioconda package; cleanup conda garbage
+RUN micromamba create -n dnaapler -y -c bioconda -c defaults -c conda-forge dnaapler=${DNAAPLER_VER} && \
+ micromamba clean -a -y
+
+# set the PATH and LC_ALL for singularity compatibility
+ENV PATH="/opt/conda/envs/dnaapler/bin/:${PATH}" \
+ LC_ALL=C.UTF-8
+
+# set final working directory as /data
+WORKDIR /data
+
+# default command is to print help options
+CMD [ "dnaapler", "--help" ]
+
+# new base for testing
+FROM app as test
+
+# set working directory to /test
+WORKDIR /test
+
+# checking that tool is in PATH
+RUN dnaapler --help && dnaapler --version
+
+# downloads genome sequence and then extracts the last plasmid in the laziest way possible
+RUN wget -q https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/025/259/185/GCA_025259185.1_ASM2525918v1/GCA_025259185.1_ASM2525918v1_genomic.fna.gz && \
+ gunzip GCA_025259185.1_ASM2525918v1_genomic.fna.gz && \
+ grep "CP104365.1" GCA_025259185.1_ASM2525918v1_genomic.fna -A 50000 > CP104365.1.fasta && \
+ dnaapler mystery --prefix mystery_test --output mystery_test -i CP104365.1.fasta && \
+ dnaapler plasmid --prefix plasmid_test --output plasmid_test -i CP104365.1.fasta && \
+ ls mystery_test plasmid_test
diff --git a/dnaapler/0.5.1/README.md b/dnaapler/0.5.1/README.md
new file mode 100644
index 000000000..79e17f4a5
--- /dev/null
+++ b/dnaapler/0.5.1/README.md
@@ -0,0 +1,37 @@
+# dnaapler container
+
+Main tool : [dnappler](https://github.com/gbouras13/dnaapler)
+
+Full documentation: [https://github.com/gbouras13/dnaapler](https://github.com/gbouras13/dnaapler)
+
+> `dnaapler` is a simple python program that takes a single nucleotide input sequence (in FASTA format), finds the desired start gene using blastx against an amino acid sequence database, checks that the start codon of this gene is found, and if so, then reorients the chromosome to begin with this gene on the forward strand.
+
+dnaapler has several commands for chromosomes, plasmids, and more.
+
+```
+Usage: dnaapler [OPTIONS] COMMAND [ARGS]...
+
+Options:
+ -h, --help Show this message and exit.
+ -V, --version Show the version and exit.
+
+Commands:
+ chromosome Reorients your sequence to begin with the dnaA chromosomal...
+ citation Print the citation(s) for this tool
+ custom Reorients your sequence with a custom database
+ mystery Reorients your sequence with a random gene
+ phage Reorients your sequence to begin with the terL large...
+ plasmid Reorients your sequence to begin with the repA replication...
+```
+
+WARNING: Does not support multifasta files. Each sequence must be processed individually.
+
+## Example Usage
+
+```bash
+# for a fasta of a chromsome sequence
+dnaapler chromosome --input chromosome.fasta --output dnaapler_chr
+
+# for a fasta of a plasmid sequence
+dnaapler plasmid --input plasmid.fasta --output dnaapler_plasmid
+```
diff --git a/dnaapler/0.7.0/Dockerfile b/dnaapler/0.7.0/Dockerfile
new file mode 100644
index 000000000..9f2731622
--- /dev/null
+++ b/dnaapler/0.7.0/Dockerfile
@@ -0,0 +1,57 @@
+FROM mambaorg/micromamba:1.5.6 as app
+
+USER root
+
+WORKDIR /
+
+ARG DNAAPLER_VER="0.7.0"
+
+# metadata labels
+LABEL base.image="mambaorg/micromamba:1.4.1"
+LABEL dockerfile.version="1"
+LABEL software="dnaapler"
+LABEL software.version="${DNAAPLER_VER}"
+LABEL description="Rotates chromosomes and more"
+LABEL website="https://github.com/gbouras13/dnaapler"
+LABEL license="MIT"
+LABEL license.url="https://github.com/gbouras13/dnaapler/blob/main/LICENSE"
+LABEL maintainer="Erin Young"
+LABEL maintainer.email="eriny@utah.gov"
+
+# install dependencies; cleanup apt garbage
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ wget \
+ ca-certificates \
+ procps && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+# create the conda environment, install mykrobe via bioconda package; cleanup conda garbage
+RUN micromamba create -n dnaapler -y -c bioconda -c defaults -c conda-forge dnaapler=${DNAAPLER_VER} && \
+ micromamba clean -a -y
+
+# set the PATH and LC_ALL for singularity compatibility
+ENV PATH="/opt/conda/envs/dnaapler/bin/:${PATH}" \
+ LC_ALL=C.UTF-8
+
+# set final working directory as /data
+WORKDIR /data
+
+# default command is to print help options
+CMD [ "dnaapler", "--help" ]
+
+# new base for testing
+FROM app as test
+
+# set working directory to /test
+WORKDIR /test
+
+# checking that tool is in PATH
+RUN dnaapler --help && dnaapler --version
+
+# downloads genome sequence and then extracts the last plasmid in the laziest way possible
+RUN wget -q https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/025/259/185/GCA_025259185.1_ASM2525918v1/GCA_025259185.1_ASM2525918v1_genomic.fna.gz && \
+ gunzip GCA_025259185.1_ASM2525918v1_genomic.fna.gz && \
+ grep "CP104365.1" GCA_025259185.1_ASM2525918v1_genomic.fna -A 50000 > CP104365.1.fasta && \
+ dnaapler mystery --prefix mystery_test --output mystery_test -i CP104365.1.fasta && \
+ dnaapler plasmid --prefix plasmid_test --output plasmid_test -i CP104365.1.fasta && \
+ ls mystery_test plasmid_test
diff --git a/dnaapler/0.7.0/README.md b/dnaapler/0.7.0/README.md
new file mode 100644
index 000000000..79e17f4a5
--- /dev/null
+++ b/dnaapler/0.7.0/README.md
@@ -0,0 +1,37 @@
+# dnaapler container
+
+Main tool : [dnappler](https://github.com/gbouras13/dnaapler)
+
+Full documentation: [https://github.com/gbouras13/dnaapler](https://github.com/gbouras13/dnaapler)
+
+> `dnaapler` is a simple python program that takes a single nucleotide input sequence (in FASTA format), finds the desired start gene using blastx against an amino acid sequence database, checks that the start codon of this gene is found, and if so, then reorients the chromosome to begin with this gene on the forward strand.
+
+dnaapler has several commands for chromosomes, plasmids, and more.
+
+```
+Usage: dnaapler [OPTIONS] COMMAND [ARGS]...
+
+Options:
+ -h, --help Show this message and exit.
+ -V, --version Show the version and exit.
+
+Commands:
+ chromosome Reorients your sequence to begin with the dnaA chromosomal...
+ citation Print the citation(s) for this tool
+ custom Reorients your sequence with a custom database
+ mystery Reorients your sequence with a random gene
+ phage Reorients your sequence to begin with the terL large...
+ plasmid Reorients your sequence to begin with the repA replication...
+```
+
+WARNING: Does not support multifasta files. Each sequence must be processed individually.
+
+## Example Usage
+
+```bash
+# for a fasta of a chromsome sequence
+dnaapler chromosome --input chromosome.fasta --output dnaapler_chr
+
+# for a fasta of a plasmid sequence
+dnaapler plasmid --input plasmid.fasta --output dnaapler_plasmid
+```
diff --git a/dnaapler/0.8.0/Dockerfile b/dnaapler/0.8.0/Dockerfile
new file mode 100644
index 000000000..4d5add3c1
--- /dev/null
+++ b/dnaapler/0.8.0/Dockerfile
@@ -0,0 +1,57 @@
+FROM mambaorg/micromamba:1.5.8 as app
+
+USER root
+
+WORKDIR /
+
+ARG DNAAPLER_VER="0.8.0"
+
+# metadata labels
+LABEL base.image="mambaorg/micromamba:1.5.8"
+LABEL dockerfile.version="1"
+LABEL software="dnaapler"
+LABEL software.version="${DNAAPLER_VER}"
+LABEL description="Rotates chromosomes and more"
+LABEL website="https://github.com/gbouras13/dnaapler"
+LABEL license="MIT"
+LABEL license.url="https://github.com/gbouras13/dnaapler/blob/main/LICENSE"
+LABEL maintainer="Erin Young"
+LABEL maintainer.email="eriny@utah.gov"
+
+# install dependencies; cleanup apt garbage
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ wget \
+ ca-certificates \
+ procps && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+# create the conda environment, install mykrobe via bioconda package; cleanup conda garbage
+RUN micromamba create -n dnaapler -y -c bioconda -c defaults -c conda-forge dnaapler=${DNAAPLER_VER} && \
+ micromamba clean -a -f -y
+
+# set the PATH and LC_ALL for singularity compatibility
+ENV PATH="/opt/conda/envs/dnaapler/bin/:${PATH}" \
+ LC_ALL=C.UTF-8
+
+# set final working directory as /data
+WORKDIR /data
+
+# default command is to print help options
+CMD [ "dnaapler", "--help" ]
+
+# new base for testing
+FROM app as test
+
+# set working directory to /test
+WORKDIR /test
+
+# checking that tool is in PATH
+RUN dnaapler --help && dnaapler --version
+
+# downloads genome sequence and then extracts the last plasmid in the laziest way possible
+RUN wget -q https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/025/259/185/GCA_025259185.1_ASM2525918v1/GCA_025259185.1_ASM2525918v1_genomic.fna.gz && \
+ gunzip GCA_025259185.1_ASM2525918v1_genomic.fna.gz && \
+ grep "CP104365.1" GCA_025259185.1_ASM2525918v1_genomic.fna -A 50000 > CP104365.1.fasta && \
+ dnaapler mystery --prefix mystery_test --output mystery_test -i CP104365.1.fasta && \
+ dnaapler plasmid --prefix plasmid_test --output plasmid_test -i CP104365.1.fasta && \
+ ls mystery_test plasmid_test
diff --git a/dnaapler/0.8.0/README.md b/dnaapler/0.8.0/README.md
new file mode 100644
index 000000000..79e17f4a5
--- /dev/null
+++ b/dnaapler/0.8.0/README.md
@@ -0,0 +1,37 @@
+# dnaapler container
+
+Main tool : [dnappler](https://github.com/gbouras13/dnaapler)
+
+Full documentation: [https://github.com/gbouras13/dnaapler](https://github.com/gbouras13/dnaapler)
+
+> `dnaapler` is a simple python program that takes a single nucleotide input sequence (in FASTA format), finds the desired start gene using blastx against an amino acid sequence database, checks that the start codon of this gene is found, and if so, then reorients the chromosome to begin with this gene on the forward strand.
+
+dnaapler has several commands for chromosomes, plasmids, and more.
+
+```
+Usage: dnaapler [OPTIONS] COMMAND [ARGS]...
+
+Options:
+ -h, --help Show this message and exit.
+ -V, --version Show the version and exit.
+
+Commands:
+ chromosome Reorients your sequence to begin with the dnaA chromosomal...
+ citation Print the citation(s) for this tool
+ custom Reorients your sequence with a custom database
+ mystery Reorients your sequence with a random gene
+ phage Reorients your sequence to begin with the terL large...
+ plasmid Reorients your sequence to begin with the repA replication...
+```
+
+WARNING: Does not support multifasta files. Each sequence must be processed individually.
+
+## Example Usage
+
+```bash
+# for a fasta of a chromsome sequence
+dnaapler chromosome --input chromosome.fasta --output dnaapler_chr
+
+# for a fasta of a plasmid sequence
+dnaapler plasmid --input plasmid.fasta --output dnaapler_plasmid
+```
diff --git a/docs/Gemfile.lock b/docs/Gemfile.lock
index b31e39028..cd526f708 100644
--- a/docs/Gemfile.lock
+++ b/docs/Gemfile.lock
@@ -221,15 +221,15 @@ GEM
rb-inotify (~> 0.9, >= 0.9.7)
ruby_dep (~> 1.2)
mercenary (0.3.6)
- mini_portile2 (2.8.1)
+ mini_portile2 (2.8.5)
minima (2.5.0)
jekyll (~> 3.5)
jekyll-feed (~> 0.9)
jekyll-seo-tag (~> 2.1)
minitest (5.15.0)
multipart-post (2.1.1)
- nokogiri (1.14.3)
- mini_portile2 (~> 2.8.0)
+ nokogiri (1.15.6)
+ mini_portile2 (~> 2.8.2)
racc (~> 1.4)
octokit (4.22.0)
faraday (>= 0.9)
@@ -237,7 +237,7 @@ GEM
pathutil (0.16.2)
forwardable-extended (~> 2.6)
public_suffix (2.0.5)
- racc (1.6.2)
+ racc (1.7.3)
rb-fsevent (0.11.0)
rb-inotify (0.10.1)
ffi (~> 1.0)
diff --git a/dragonflye/1.1.2/Dockerfile b/dragonflye/1.1.2/Dockerfile
new file mode 100644
index 000000000..273c6ce2f
--- /dev/null
+++ b/dragonflye/1.1.2/Dockerfile
@@ -0,0 +1,98 @@
+FROM mambaorg/micromamba:1.4.4 as app
+
+# build and run as root users since micromamba image has 'mambauser' set as the $USER
+USER root
+# set workdir to default for building; set to /data at the end of app layer
+WORKDIR /
+
+# ARG variables only persist during build time
+ARG DRAGONFLYE_VER="1.1.2"
+ARG POLYPOLISH_VER="0.5.0"
+
+# metadata labels
+LABEL base.image="mambaorg/micromamba:1.4.4"
+LABEL dockerfile.version="1"
+LABEL software="dragonflye"
+LABEL software.version=${DRAGONFLYE_VER}
+LABEL description="Conda environment for dragonflye. Dragonflye: Assemble bacterial isolate genomes from Nanopore reads."
+LABEL website="https://github.com/rpetit3/dragonflye"
+LABEL license="GNU General Public License v3.0"
+LABEL license.url="https://github.com/rpetit3/dragonflye/blob/main/LICENSE"
+LABEL maintainer="Curtis Kapsak"
+LABEL maintainer.email="kapsakcj@gmail.com"
+LABEL maintainer1="Erin Young"
+LABEL maintainer1.email="eriny@utah.gov"
+
+# install dependencies; cleanup apt garbage
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ wget \
+ ca-certificates \
+ procps \
+ bsdmainutils && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+# create the conda environment; install dragonflye and dependencies based on bioconda package; cleanup conda garbage
+RUN micromamba install -n base -c conda-forge -c bioconda -c defaults -y dragonflye=${DRAGONFLYE_VER} polypolish=${POLYPOLISH_VER} && \
+ micromamba clean -a -y && \
+ mkdir /data
+
+WORKDIR /data
+
+# hardcode base conda environment into the PATH variable; LC_ALL for singularity compatibility
+ENV PATH="$PATH:/opt/conda/bin/" \
+ LC_ALL=C.UTF-8
+
+CMD dragonflye --help
+
+# new base for testing
+FROM app as test
+
+# so that mamba/conda env is active when running below commands
+ENV ENV_NAME="base"
+ARG MAMBA_DOCKERFILE_ACTIVATE=1
+
+# show help options and check dependencies
+RUN dragonflye --help && \
+ dragonflye --check
+
+# so that testing outputs are inside /test
+WORKDIR /test
+
+# download test data (ONT and ILMN FASTQs)
+RUN echo "downloading ILMN and ONT test data from bactopia/bactopia-tests on GitHub..." && \
+ wget https://raw.githubusercontent.com/bactopia/bactopia-tests/main/data/species/portiera/nanopore/ERR3772599.fastq.gz && \
+ wget https://raw.githubusercontent.com/bactopia/bactopia-tests/main/data/species/portiera/illumina/SRR2838702_R1.fastq.gz && \
+ wget https://raw.githubusercontent.com/bactopia/bactopia-tests/main/data/species/portiera/illumina/SRR2838702_R2.fastq.gz
+
+# test assembly and polishing algorithms with test data
+# modified code from here: https://github.com/rpetit3/dragonflye/blob/main/.github/workflows/test-dragonflye.yml
+RUN echo "Testing Raven Assembler (quality filtered)..." && \
+ dragonflye --reads /test/ERR3772599.fastq.gz --prefix ERR3772599 --cpus 0 --nopolish --outdir raven-minquality --gsize 300000 --assembler raven --minquality 8 && \
+ echo "Test Raven Assembler (quality filtered, no length filter)..." && \
+ dragonflye --reads /test/ERR3772599.fastq.gz --cpus 0 --nopolish --outdir raven-minquality-nominreadlen --gsize 300000 --assembler raven --minquality 6 --minreadlen 0 && \
+ echo "Test Raven Assembler (quality filtered, no length filter, trimming)" && \
+ dragonflye --reads /test/ERR3772599.fastq.gz --cpus 0 --nopolish --outdir raven-minquality-nominreadlen-trim --gsize 300000 --assembler raven --minquality 6 --minreadlen 0 --trim && \
+ echo "Test Raven Assembler (quality filtered, no length filter, trim opts)" && \
+ dragonflye --reads /test/ERR3772599.fastq.gz --cpus 0 --nopolish --outdir raven-minquality-nominreadlen-trimopts --gsize 300000 --assembler raven --minquality 6 --minreadlen 0 --trim --trimopts '--adapter_threshold 95' && \
+ echo "Testing Raven Assembler" && \
+ dragonflye --reads /test/ERR3772599.fastq.gz --prefix ERR3772599-raven --cpus 0 --nopolish --depth 5 --outdir raven --gsize 300000 --assembler raven && \
+ echo "Testing Raven Assembler + Racon Polish" && \
+ dragonflye --reads /test/ERR3772599.fastq.gz --cpus 0 --outdir raven-racon --gsize 300000 --assembler raven && \
+ echo "Testing Flye Assembler + Medaka Polish" && \
+ dragonflye --reads /test/ERR3772599.fastq.gz --cpus 0 --outdir raven-medaka --gsize 300000 --assembler raven --racon 0 --model r103_min_high_g345 && \
+ echo "Testing Flye Assembler + Medaka Polish + --medaka_opts" && \
+ dragonflye --reads /test/ERR3772599.fastq.gz --cpus 0 --outdir raven-medaka-opts --gsize 300000 --assembler raven --racon 0 --model r103_min_high_g345 --medaka_opts '-b 200' && \
+ echo "Testing Flye Assembler + Racon & Medaka Polish" && \
+ dragonflye --reads /test/ERR3772599.fastq.gz --cpus 0 --outdir raven-both --gsize 300000 --assembler raven && \
+ echo "Testing Flye Assembler + Racon & Pilon Polish" && \
+ dragonflye --reads /test/ERR3772599.fastq.gz --R1 /test/SRR2838702_R1.fastq.gz --R2 /test/SRR2838702_R2.fastq.gz --cpus 0 --outdir raven-polypolish --gsize 300000 --assembler raven && \
+ echo "Testing Flye Assembler + Racon & Polypolish Polish" && \
+ dragonflye --reads /test/ERR3772599.fastq.gz --R1 /test/SRR2838702_R1.fastq.gz --R2 /test/SRR2838702_R2.fastq.gz --cpus 0 --outdir raven-pilon --gsize 300000 --assembler raven --polypolish 0 --pilon 1 && \
+ echo "Testing Miniasm Assembler" && \
+ dragonflye --reads /test/ERR3772599.fastq.gz --prefix ERR3772599_mini.asm --cpus 1 --nopolish --outdir miniasm --gsize 300000 --assembler miniasm && \
+ echo "Testing Flye Assembler" && \
+ dragonflye --reads /test/ERR3772599.fastq.gz --cpus 0 --nopolish --outdir flye --gsize 300000 --assembler flye && \
+ echo "Testing Flye Assembler (with --nano-hq)" && \
+ dragonflye --reads /test/ERR3772599.fastq.gz --prefix ERR3772599-nano.hq --cpus 0 --nopolish --outdir flyehq --gsize 300000 --assembler flye --nanohq && \
+ echo "Testing --list_models" && \
+ dragonflye --list_models 2>&1 | grep r941_min_sup_g507
diff --git a/dragonflye/1.1.2/README.md b/dragonflye/1.1.2/README.md
new file mode 100644
index 000000000..6b1594921
--- /dev/null
+++ b/dragonflye/1.1.2/README.md
@@ -0,0 +1,15 @@
+# dragonflye docker image
+
+Main tool : [dragonflye](https://github.com/rpetit3/dragonflye)
+
+> dragonflye: Assemble bacterial isolate genomes from Nanopore reads
+
+## Example Usage
+
+```bash
+# download ONT FASTQs for testing
+wget https://raw.githubusercontent.com/bactopia/bactopia-tests/main/data/species/portiera/nanopore/ERR3772599.fastq.gz
+
+# run dragonflye using flye as the assembly algorithm
+dragonflye --reads /test/ERR3772599.fastq.gz --prefix ERR3772599-nano.hq --cpus 0 --nopolish --outdir flyehq --gsize 300000 --assembler flye --nanohq
+```
diff --git a/dragonflye/1.2.0/Dockerfile b/dragonflye/1.2.0/Dockerfile
new file mode 100644
index 000000000..4617ef451
--- /dev/null
+++ b/dragonflye/1.2.0/Dockerfile
@@ -0,0 +1,97 @@
+FROM mambaorg/micromamba:1.5.8 as app
+
+# build and run as root users since micromamba image has 'mambauser' set as the $USER
+USER root
+# set workdir to default for building; set to /data at the end of app layer
+WORKDIR /
+
+# ARG variables only persist during build time
+ARG DRAGONFLYE_VER="1.2.0"
+
+# metadata labels
+LABEL base.image="mambaorg/micromamba:1.5.8"
+LABEL dockerfile.version="1"
+LABEL software="dragonflye"
+LABEL software.version=${DRAGONFLYE_VER}
+LABEL description="Conda environment for dragonflye. Dragonflye: Assemble bacterial isolate genomes from Nanopore reads."
+LABEL website="https://github.com/rpetit3/dragonflye"
+LABEL license="GNU General Public License v3.0"
+LABEL license.url="https://github.com/rpetit3/dragonflye/blob/main/LICENSE"
+LABEL maintainer="Curtis Kapsak"
+LABEL maintainer.email="kapsakcj@gmail.com"
+LABEL maintainer1="Erin Young"
+LABEL maintainer1.email="eriny@utah.gov"
+
+# install dependencies; cleanup apt garbage
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ wget \
+ ca-certificates \
+ procps \
+ bsdmainutils && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+# create the conda environment; install dragonflye and dependencies based on bioconda package; cleanup conda garbage
+RUN micromamba install -n base -c conda-forge -c bioconda -c defaults -y dragonflye=${DRAGONFLYE_VER} && \
+ micromamba clean -a -y && \
+ mkdir /data
+
+WORKDIR /data
+
+# hardcode base conda environment into the PATH variable; LC_ALL for singularity compatibility
+ENV PATH="$PATH:/opt/conda/bin/" \
+ LC_ALL=C.UTF-8
+
+CMD dragonflye --help
+
+# new base for testing
+FROM app as test
+
+# so that mamba/conda env is active when running below commands
+ENV ENV_NAME="base"
+ARG MAMBA_DOCKERFILE_ACTIVATE=1
+
+# show help options and check dependencies
+RUN dragonflye --help && \
+ dragonflye --check
+
+# so that testing outputs are inside /test
+WORKDIR /test
+
+# download test data (ONT and ILMN FASTQs)
+RUN echo "downloading ILMN and ONT test data from bactopia/bactopia-tests on GitHub..." && \
+ wget https://raw.githubusercontent.com/bactopia/bactopia-tests/main/data/species/portiera/nanopore/ERR3772599.fastq.gz && \
+ wget https://raw.githubusercontent.com/bactopia/bactopia-tests/main/data/species/portiera/illumina/SRR2838702_R1.fastq.gz && \
+ wget https://raw.githubusercontent.com/bactopia/bactopia-tests/main/data/species/portiera/illumina/SRR2838702_R2.fastq.gz
+
+# test assembly and polishing algorithms with test data
+# modified code from here: https://github.com/rpetit3/dragonflye/blob/main/.github/workflows/test-dragonflye.yml
+RUN echo "Testing Raven Assembler (quality filtered)..." && \
+ dragonflye --reads /test/ERR3772599.fastq.gz --prefix ERR3772599 --cpus 0 --nopolish --outdir raven-minquality --gsize 300000 --assembler raven --minquality 8 && \
+ echo "Test Raven Assembler (quality filtered, no length filter)..." && \
+ dragonflye --reads /test/ERR3772599.fastq.gz --cpus 0 --nopolish --outdir raven-minquality-nominreadlen --gsize 300000 --assembler raven --minquality 6 --minreadlen 0 && \
+ echo "Test Raven Assembler (quality filtered, no length filter, trimming)" && \
+ dragonflye --reads /test/ERR3772599.fastq.gz --cpus 0 --nopolish --outdir raven-minquality-nominreadlen-trim --gsize 300000 --assembler raven --minquality 6 --minreadlen 0 --trim && \
+ echo "Test Raven Assembler (quality filtered, no length filter, trim opts)" && \
+ dragonflye --reads /test/ERR3772599.fastq.gz --cpus 0 --nopolish --outdir raven-minquality-nominreadlen-trimopts --gsize 300000 --assembler raven --minquality 6 --minreadlen 0 --trim --trimopts '--adapter_threshold 95' && \
+ echo "Testing Raven Assembler" && \
+ dragonflye --reads /test/ERR3772599.fastq.gz --prefix ERR3772599-raven --cpus 0 --nopolish --depth 5 --outdir raven --gsize 300000 --assembler raven && \
+ echo "Testing Raven Assembler + Racon Polish" && \
+ dragonflye --reads /test/ERR3772599.fastq.gz --cpus 0 --outdir raven-racon --gsize 300000 --assembler raven && \
+ echo "Testing Flye Assembler + Medaka Polish" && \
+ dragonflye --reads /test/ERR3772599.fastq.gz --cpus 0 --outdir raven-medaka --gsize 300000 --assembler raven --racon 0 --model r103_min_high_g345 && \
+ echo "Testing Flye Assembler + Medaka Polish + --medaka_opts" && \
+ dragonflye --reads /test/ERR3772599.fastq.gz --cpus 0 --outdir raven-medaka-opts --gsize 300000 --assembler raven --racon 0 --model r103_min_high_g345 --medaka_opts '-b 200' && \
+ echo "Testing Flye Assembler + Racon & Medaka Polish" && \
+ dragonflye --reads /test/ERR3772599.fastq.gz --cpus 0 --outdir raven-both --gsize 300000 --assembler raven && \
+ echo "Testing Flye Assembler + Racon & Pilon Polish" && \
+ dragonflye --reads /test/ERR3772599.fastq.gz --R1 /test/SRR2838702_R1.fastq.gz --R2 /test/SRR2838702_R2.fastq.gz --cpus 0 --outdir raven-polypolish --gsize 300000 --assembler raven && \
+ echo "Testing Flye Assembler + Racon & Polypolish Polish" && \
+ dragonflye --reads /test/ERR3772599.fastq.gz --R1 /test/SRR2838702_R1.fastq.gz --R2 /test/SRR2838702_R2.fastq.gz --cpus 0 --outdir raven-pilon --gsize 300000 --assembler raven --polypolish 0 --pilon 1 && \
+ echo "Testing Miniasm Assembler" && \
+ dragonflye --reads /test/ERR3772599.fastq.gz --prefix ERR3772599_mini.asm --cpus 1 --nopolish --outdir miniasm --gsize 300000 --assembler miniasm && \
+ echo "Testing Flye Assembler" && \
+ dragonflye --reads /test/ERR3772599.fastq.gz --cpus 0 --nopolish --outdir flye --gsize 300000 --assembler flye && \
+ echo "Testing Flye Assembler (with --nano-hq)" && \
+ dragonflye --reads /test/ERR3772599.fastq.gz --prefix ERR3772599-nano.hq --cpus 0 --nopolish --outdir flyehq --gsize 300000 --assembler flye --nanohq && \
+ echo "Testing --list_models" && \
+ dragonflye --list_models 2>&1 | grep r941_min_sup_g507
diff --git a/dragonflye/1.2.0/README.md b/dragonflye/1.2.0/README.md
new file mode 100644
index 000000000..6b1594921
--- /dev/null
+++ b/dragonflye/1.2.0/README.md
@@ -0,0 +1,15 @@
+# dragonflye docker image
+
+Main tool : [dragonflye](https://github.com/rpetit3/dragonflye)
+
+> dragonflye: Assemble bacterial isolate genomes from Nanopore reads
+
+## Example Usage
+
+```bash
+# download ONT FASTQs for testing
+wget https://raw.githubusercontent.com/bactopia/bactopia-tests/main/data/species/portiera/nanopore/ERR3772599.fastq.gz
+
+# run dragonflye using flye as the assembly algorithm
+dragonflye --reads /test/ERR3772599.fastq.gz --prefix ERR3772599-nano.hq --cpus 0 --nopolish --outdir flyehq --gsize 300000 --assembler flye --nanohq
+```
diff --git a/dragonflye/1.2.1/Dockerfile b/dragonflye/1.2.1/Dockerfile
new file mode 100644
index 000000000..868b2ec79
--- /dev/null
+++ b/dragonflye/1.2.1/Dockerfile
@@ -0,0 +1,98 @@
+FROM mambaorg/micromamba:1.5.8 as app
+
+# build and run as root users since micromamba image has 'mambauser' set as the $USER
+USER root
+# set workdir to default for building; set to /data at the end of app layer
+WORKDIR /
+
+# ARG variables only persist during build time
+ARG DRAGONFLYE_VER="1.2.1"
+
+# metadata labels
+LABEL base.image="mambaorg/micromamba:1.5.8"
+LABEL dockerfile.version="1"
+LABEL software="dragonflye"
+LABEL software.version=${DRAGONFLYE_VER}
+LABEL description="Conda environment for dragonflye. Dragonflye: Assemble bacterial isolate genomes from Nanopore reads."
+LABEL website="https://github.com/rpetit3/dragonflye"
+LABEL license="GNU General Public License v3.0"
+LABEL license.url="https://github.com/rpetit3/dragonflye/blob/main/LICENSE"
+LABEL maintainer="Curtis Kapsak"
+LABEL maintainer.email="kapsakcj@gmail.com"
+LABEL maintainer1="Erin Young"
+LABEL maintainer1.email="eriny@utah.gov"
+
+# install dependencies; cleanup apt garbage
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ wget \
+ ca-certificates \
+ procps \
+ bsdmainutils && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+# create the conda environment; install dragonflye and dependencies based on bioconda package; cleanup conda garbage
+RUN micromamba install -n base -c conda-forge -c bioconda -y dragonflye=${DRAGONFLYE_VER} && \
+ micromamba clean -a -y && \
+ mkdir /data
+
+WORKDIR /data
+
+# RUN ls /opt/conda && ls /opt/conda/bin/ && whatever
+
+# hardcode base conda environment into the PATH variable; LC_ALL for singularity compatibility
+ENV PATH="$PATH:/opt/conda/bin/" \
+ LC_ALL=C.UTF-8
+
+CMD dragonflye --help
+
+# new base for testing
+FROM app as test
+
+ENV ENV_NAME="base"
+ARG MAMBA_DOCKERFILE_ACTIVATE=1
+
+# show help options and check dependencies
+RUN dragonflye --help && \
+ dragonflye --check
+
+# so that testing outputs are inside /test
+WORKDIR /test
+
+# download test data (ONT and ILMN FASTQs)
+RUN echo "downloading ILMN and ONT test data from bactopia/bactopia-tests on GitHub..." && \
+ wget -q https://raw.githubusercontent.com/bactopia/bactopia-tests/main/data/species/portiera/nanopore/ERR3772599.fastq.gz && \
+ wget -q https://raw.githubusercontent.com/bactopia/bactopia-tests/main/data/species/portiera/illumina/SRR2838702_R1.fastq.gz && \
+ wget -q https://raw.githubusercontent.com/bactopia/bactopia-tests/main/data/species/portiera/illumina/SRR2838702_R2.fastq.gz
+
+# test assembly and polishing algorithms with test data
+# modified code from here: https://github.com/rpetit3/dragonflye/blob/main/.github/workflows/test-dragonflye.yml
+RUN echo "Testing Raven Assembler (quality filtered)..." && \
+ dragonflye --reads /test/ERR3772599.fastq.gz --prefix ERR3772599 --cpus 0 --nopolish --outdir raven-minquality --gsize 300000 --assembler raven --minquality 8 && \
+ echo "Test Raven Assembler (quality filtered, no length filter)..." && \
+ dragonflye --reads /test/ERR3772599.fastq.gz --cpus 0 --nopolish --outdir raven-minquality-nominreadlen --gsize 300000 --assembler raven --minquality 6 --minreadlen 0 && \
+ echo "Test Raven Assembler (quality filtered, no length filter, trimming)" && \
+ dragonflye --reads /test/ERR3772599.fastq.gz --cpus 0 --nopolish --outdir raven-minquality-nominreadlen-trim --gsize 300000 --assembler raven --minquality 6 --minreadlen 0 --trim && \
+ echo "Test Raven Assembler (quality filtered, no length filter, trim opts)" && \
+ dragonflye --reads /test/ERR3772599.fastq.gz --cpus 0 --nopolish --outdir raven-minquality-nominreadlen-trimopts --gsize 300000 --assembler raven --minquality 6 --minreadlen 0 --trim --trimopts '--adapter_threshold 95' && \
+ echo "Testing Raven Assembler" && \
+ dragonflye --reads /test/ERR3772599.fastq.gz --prefix ERR3772599-raven --cpus 0 --nopolish --depth 5 --outdir raven --gsize 300000 --assembler raven && \
+ echo "Testing Raven Assembler + Racon Polish" && \
+ dragonflye --reads /test/ERR3772599.fastq.gz --cpus 0 --outdir raven-racon --gsize 300000 --assembler raven && \
+ echo "Testing Flye Assembler + Medaka Polish" && \
+ dragonflye --reads /test/ERR3772599.fastq.gz --cpus 0 --outdir raven-medaka --gsize 300000 --assembler raven --racon 0 --model r103_min_high_g345 && \
+ echo "Testing Flye Assembler + Medaka Polish + --medaka_opts" && \
+ dragonflye --reads /test/ERR3772599.fastq.gz --cpus 0 --outdir raven-medaka-opts --gsize 300000 --assembler raven --racon 0 --model r103_min_high_g345 --medaka_opts '-b 200' && \
+ echo "Testing Flye Assembler + Racon & Medaka Polish" && \
+ dragonflye --reads /test/ERR3772599.fastq.gz --cpus 0 --outdir raven-both --gsize 300000 --assembler raven && \
+ echo "Testing Flye Assembler + Racon & Pilon Polish" && \
+ dragonflye --reads /test/ERR3772599.fastq.gz --R1 /test/SRR2838702_R1.fastq.gz --R2 /test/SRR2838702_R2.fastq.gz --cpus 0 --outdir raven-polypolish --gsize 300000 --assembler raven && \
+ echo "Testing Flye Assembler + Racon & Polypolish Polish" && \
+ dragonflye --reads /test/ERR3772599.fastq.gz --R1 /test/SRR2838702_R1.fastq.gz --R2 /test/SRR2838702_R2.fastq.gz --cpus 0 --outdir raven-pilon --gsize 300000 --assembler raven --polypolish 0 --pilon 1 && \
+ echo "Testing Miniasm Assembler" && \
+ dragonflye --reads /test/ERR3772599.fastq.gz --prefix ERR3772599_mini.asm --cpus 1 --nopolish --outdir miniasm --gsize 300000 --assembler miniasm && \
+ echo "Testing Flye Assembler" && \
+ dragonflye --reads /test/ERR3772599.fastq.gz --cpus 0 --nopolish --outdir flye --gsize 300000 --assembler flye && \
+ echo "Testing Flye Assembler (with --nano-hq)" && \
+ dragonflye --reads /test/ERR3772599.fastq.gz --prefix ERR3772599-nano.hq --cpus 0 --nopolish --outdir flyehq --gsize 300000 --assembler flye --nanohq && \
+ echo "Testing --list_models" && \
+ dragonflye --list_models 2>&1 | grep r941_min_sup_g507
diff --git a/dragonflye/1.2.1/README.md b/dragonflye/1.2.1/README.md
new file mode 100644
index 000000000..6b1594921
--- /dev/null
+++ b/dragonflye/1.2.1/README.md
@@ -0,0 +1,15 @@
+# dragonflye docker image
+
+Main tool : [dragonflye](https://github.com/rpetit3/dragonflye)
+
+> dragonflye: Assemble bacterial isolate genomes from Nanopore reads
+
+## Example Usage
+
+```bash
+# download ONT FASTQs for testing
+wget https://raw.githubusercontent.com/bactopia/bactopia-tests/main/data/species/portiera/nanopore/ERR3772599.fastq.gz
+
+# run dragonflye using flye as the assembly algorithm
+dragonflye --reads /test/ERR3772599.fastq.gz --prefix ERR3772599-nano.hq --cpus 0 --nopolish --outdir flyehq --gsize 300000 --assembler flye --nanohq
+```
diff --git a/drprg/0.1.1/Dockerfile b/drprg/0.1.1/Dockerfile
new file mode 100644
index 000000000..96da65dd0
--- /dev/null
+++ b/drprg/0.1.1/Dockerfile
@@ -0,0 +1,69 @@
+# 'FROM' defines the base docker image. This command has to come first in the file
+# The 'as' keyword lets you name the folowing stage. The production image uses everything to the 'app' stage.
+FROM mambaorg/micromamba:1.5.1 as app
+
+# List all software versions are ARGs near the top of the dockerfile
+# 'ARG' sets environment variables during the build stage
+ARG DRPRG_VER="0.1.1"
+ARG MTB_VER="20230308"
+
+# build and run as root users since micromamba image has 'mambauser' set as the $USER
+USER root
+# set workdir to default for building; set to /data at the end
+WORKDIR /
+
+# '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="Dr. PRG"
+LABEL software.version="${DRPRG_VER}"
+LABEL description="Antimicrobial resistance prediction"
+LABEL website="https://github.com/mbhall88/drprg"
+LABEL license="https://github.com/mbhall88/drprg/blob/main/LICENSE"
+LABEL maintainer="Erin Young"
+LABEL maintainer.email="eriny@utah.gov"
+
+# 'RUN' executes code during the build
+# Install dependencies via apt-get or yum if using a centos or fedora base
+RUN apt-get update && apt-get install --no-install-recommends -y \
+ wget \
+ ca-certificates \
+ procps && \
+ rm -rf /var/lib/apt/lists/* && apt-get autoclean
+
+# Install your desired software into the base conda/micromamba environment, pinning the version
+# clean up conda garbage
+# make /data to use as a working directory
+RUN micromamba install --name base -c conda-forge -c bioconda -c defaults drprg=${DRPRG_VER} && \
+ micromamba clean -a -y && \
+ mkdir /data
+
+# 'ENV' instructions set environment variables that persist from the build into the resulting image
+# set the environment, add base conda/micromamba bin directory into path
+# set locale settings to UTF-8
+ENV PATH="/opt/conda/bin/:${PATH}" \
+ LC_ALL=C.UTF-8
+
+# download MTB index and change the name
+RUN mkdir /drprg && \
+ drprg index --download mtb@${MTB_VER} --outdir /drprg && \
+ mv /drprg/mtb/mtb-${MTB_VER} /drprg/mtb/mtb
+
+CMD drprg --help
+
+WORKDIR /data
+
+FROM app as test
+
+WORKDIR /test
+
+RUN drprg --help
+
+# testing prediction
+RUN wget -q ftp://ftp.sra.ebi.ac.uk/vol1/fastq/SRR230/005/SRR23086705/SRR23086705_1.fastq.gz && \
+ drprg predict -x /drprg/mtb/mtb -i SRR23086705_1.fastq.gz --illumina -o outdir/ && \
+ ls outdir/*
+
+# list available databases for download
+RUN drprg index --list
\ No newline at end of file
diff --git a/drprg/0.1.1/README.md b/drprg/0.1.1/README.md
new file mode 100644
index 000000000..2e4779c43
--- /dev/null
+++ b/drprg/0.1.1/README.md
@@ -0,0 +1,48 @@
+
+
+# Dr. PRG - Drug resistance Prediction with Reference Graphs️ container
+
+Main tool: [Dr. PRG](https://mbh.sh/drprg/)
+
+Code repository: https://github.com/mbhall88/drprg
+
+Basic information on how to use this tool:
+- executable: drprg
+- help: --help
+- version: --version
+- description: Drug Resistance Prediction with Reference Graphs
+
+Additional information:
+
+Imagine contains the mtb@20230308 database located at `/drprg/mtb/mtb`.
+
+Full documentation: https://mbh.sh/drprg/guide/download.html
+
+## Example Usage
+
+Using the index in from the image
+
+```bash
+
+# prediction (paired-end fastq files much be contatenated together into one)
+drprg predict -x /drprg/mtb/mtb -i input.fastq.gz --illumina -o outdir/
+```
+
+Getting the latest index and using it
+
+```bash
+
+# download latest TB database
+drprg index --download mtb
+
+# list available indices
+drprg index --list
+
+# prediction (paired-end fastq files much be contatenated together into one)
+drprg predict -x mtb -i input.fastq.gz --illumina -o outdir/
+```
diff --git a/dsk/2.3.3/Dockerfile b/dsk/2.3.3/Dockerfile
new file mode 100644
index 000000000..44fa6bb0a
--- /dev/null
+++ b/dsk/2.3.3/Dockerfile
@@ -0,0 +1,65 @@
+ARG DSK_VER="2.3.3"
+
+FROM ubuntu:jammy as app
+ARG DSK_VER
+ARG GATBCORE_VER="1.4.2"
+
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="DSK"
+LABEL software.version=${DSK_VER}
+LABEL description="DSK is a k-mer counter for reads or genomes."
+LABEL website="https://github.com/GATB/dsk"
+LABEL documentation="https://gatb.inria.fr/software/dsk/"
+LABEL license="https://github.com/GATB/dsk/blob/master/LICENSE"
+LABEL maintainer="Erin Young"
+LABEL maintainer.email="eriny@utah.gov"
+
+ARG DEBIAN_FRONTEND=noninteractive
+RUN apt-get update && apt-get install -y --no-install-recommends\
+ build-essential \
+ cmake \
+ wget \
+ libz-dev \
+ ca-certificates && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+# Download DSK source code
+RUN wget -q https://github.com/GATB/dsk/releases/download/v${DSK_VER}/dsk-v${DSK_VER}-bin-Linux.tar.gz && \
+ tar -vxf dsk-v${DSK_VER}-bin-Linux.tar.gz && \
+ rm -rf dsk-v${DSK_VER}-bin-Linux.tar.gz && \
+ wget -q https://github.com/GATB/gatb-core/releases/download/v${GATBCORE_VER}/gatb-core-${GATBCORE_VER}-bin-Linux.tar.gz && \
+ tar -xvf gatb-core-${GATBCORE_VER}-bin-Linux.tar.gz && \
+ rm -rf gatb-core-${GATBCORE_VER}-bin-Linux.tar.gz && \
+ cp /gatb-core-${GATBCORE_VER}-bin-Linux/bin/* /dsk-v${DSK_VER}-bin-Linux/bin && \
+ rm -rf /gatb-core-${GATBCORE_VER}-bin-Linux && \
+ mkdir /data
+
+# Add DSK executable to PATH
+ENV PATH="/dsk-v${DSK_VER}-bin-Linux/bin:$PATH"
+
+CMD dsk
+
+WORKDIR /data
+
+FROM app as test
+ARG DSK_VER
+
+RUN dsk
+
+# Run DSK's internal tests
+WORKDIR /dsk-v${DSK_VER}-bin-Linux/test
+
+RUN bash ./simple_test.sh
+
+# Run DSK on sample file
+
+WORKDIR /test
+
+RUN wget -q https://github.com/StaPH-B/docker-builds/raw/master/tests/SARS-CoV-2/SRR13957123_1.fastq.gz && \
+ dsk -file SRR13957123_1.fastq.gz -kmer-size 31 && \
+ ls && \
+ gatb-h5dump -y -d dsk/solid/0 SRR13957123_1.fastq.h5 && \
+ gatb-h5dump -y -d histogram/histogram SRR13957123_1.fastq.h5 && \
+ dsk2ascii -file SRR13957123_1.fastq.h5 -out output.txt && \
+ head output.txt
\ No newline at end of file
diff --git a/dsk/2.3.3/README.md b/dsk/2.3.3/README.md
new file mode 100644
index 000000000..a4dbaa38f
--- /dev/null
+++ b/dsk/2.3.3/README.md
@@ -0,0 +1,33 @@
+# DSK
+
+This image implements the k-mer counting software [DSK](https://gatb.inria.fr/software/dsk/).
+Documentation is available at https://github.com/GATB/dsk.
+
+## Example usage
+
+```bash
+# Count k-mers
+dsk \
+ -nb-cores 4 \
+ -file my_assembly.fasta \
+ -kmer-size 7 \
+ -out my_assembly_7mers.h5
+
+# Export k-mers in tab-delimited format
+dsk2ascii \
+ -file my_assembly_7mers.h5 \
+ -out my_assembly_7mers.txt
+```
+
+## Example output
+
+The output looks like this:
+```
+AAAAAAA 10681
+AAAAAAC 5286
+AAAAAAT 11051
+AAAAAAG 6523
+AAAAACA 3994
+AAAAACC 2610
+AAAAACT 4378
+```
diff --git a/elgato/1.15.2/Dockerfile b/elgato/1.15.2/Dockerfile
new file mode 100644
index 000000000..183573b6f
--- /dev/null
+++ b/elgato/1.15.2/Dockerfile
@@ -0,0 +1,54 @@
+FROM staphb/ispcr:33 as app
+
+ARG ELGATO_VER="1.15.2"
+
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="el_gato"
+LABEL software.version="${ELGATO_VER}"
+LABEL description="Epidemiology of Legionella : Genome-bAsed Typing"
+LABEL website="https://github.com/appliedbinf/el_gato"
+LABEL license="https://github.com/appliedbinf/el_gato/blob/main/LICENSE"
+LABEL maintainer="Kutluhan Incekara"
+LABEL maintainer.email="kutluhan.incekara@ct.gov"
+
+WORKDIR /
+
+# dependencies
+RUN apt-get update && apt-get install --no-install-recommends -y \
+ wget \
+ python3-pip \
+ minimap2 \
+ samtools \
+ ncbi-blast+ && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+# install el_gato
+RUN wget --no-check-certificate https://github.com/appliedbinf/el_gato/archive/refs/tags/${ELGATO_VER}.tar.gz &&\
+ tar -xvf ${ELGATO_VER}.tar.gz && rm ${ELGATO_VER}.tar.gz &&\
+ cd el_gato-${ELGATO_VER} &&\
+ python3 -m pip install . -vv &&\
+ mv ./el_gato/db/ /usr/local/bin/db/
+
+# install fpd2 for pdf reports
+RUN pip install fpdf2
+
+ENV LC_ALL=C
+
+CMD el_gato.py -h
+
+WORKDIR /data
+
+## Test ##
+FROM app as test
+
+RUN apt-get update && apt-get install unzip
+
+# download Legionella pneumophila ST62 genome
+RUN wget -P /usr/local/bin/ https://ftp.ncbi.nlm.nih.gov/pub/datasets/command-line/v2/linux-amd64/datasets &&\
+ chmod 755 /usr/local/bin/datasets &&\
+ datasets download genome accession GCF_900119765.1 --include genome &&\
+ unzip -j ncbi_dataset.zip ncbi_dataset/data/GCF_900119765.1/GCF_900119765.1_2532STDY5467631_genomic.fna -d .
+
+# test el_gato
+RUN el_gato.py --assembly GCF_900119765.1_2532STDY5467631_genomic.fna --out test/
diff --git a/elgato/1.15.2/README.md b/elgato/1.15.2/README.md
new file mode 100644
index 000000000..8a83429f7
--- /dev/null
+++ b/elgato/1.15.2/README.md
@@ -0,0 +1,33 @@
+# el_gato container
+
+Main tool: [el_gato](https://github.com/appliedbinf/el_gato)
+
+Code repository: https://github.com/appliedbinf/el_gato
+
+Additional tools:
+- minimap2: 2.24-r1122
+- samtools: 1.13
+- ncbi-blast+: 2.12.0+
+- isPCR: v33x2
+
+Basic information on how to use this tool:
+- executable: el_gato.py
+- help: -h
+- version: -v
+- description: Epidemiology of Legionella : Genome-bAsed Typing
+
+Additional information:
+
+Container contains necessary database of Legionella sequence types
+
+Full documentation: https://github.com/appliedbinf/el_gato
+
+## Example Usage
+
+```bash
+# Paired-end:
+el_gato.py --read1 read1.fastq.gz --read2 read2.fastq.gz --out output_folder/
+
+# Assembly:
+el_gato.py --assembly assembly_file.fna --out output_folder/
+```
\ No newline at end of file
diff --git a/elgato/1.18.2/Dockerfile b/elgato/1.18.2/Dockerfile
new file mode 100644
index 000000000..c7f947d7d
--- /dev/null
+++ b/elgato/1.18.2/Dockerfile
@@ -0,0 +1,55 @@
+FROM staphb/ispcr:33 as app
+
+ARG ELGATO_VER="1.18.2"
+
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="el_gato"
+LABEL software.version="${ELGATO_VER}"
+LABEL description="Epidemiology of Legionella : Genome-bAsed Typing"
+LABEL website="https://github.com/appliedbinf/el_gato"
+LABEL license="https://github.com/appliedbinf/el_gato/blob/main/LICENSE"
+LABEL maintainer="Kutluhan Incekara"
+LABEL maintainer.email="kutluhan.incekara@ct.gov"
+
+WORKDIR /
+
+# dependencies
+RUN apt-get update && apt-get install --no-install-recommends -y \
+ wget \
+ python3-pip \
+ minimap2 \
+ samtools \
+ ncbi-blast+ && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+# install el_gato
+RUN wget --no-check-certificate https://github.com/appliedbinf/el_gato/archive/refs/tags/${ELGATO_VER}.tar.gz &&\
+ tar -xvf ${ELGATO_VER}.tar.gz && rm ${ELGATO_VER}.tar.gz &&\
+ cd el_gato-${ELGATO_VER} &&\
+ python3 -m pip install . -vv --no-cache-dir &&\
+ mv ./el_gato/db/ /usr/local/bin/db/
+
+# install fpd2 for pdf reports
+RUN pip install --no-cache-dir fpdf2 packaging
+
+ENV LC_ALL=C
+
+CMD el_gato.py -h
+
+WORKDIR /data
+
+## Test ##
+FROM app as test
+
+RUN apt-get update && apt-get install unzip
+
+# download Legionella pneumophila ST62 genome
+RUN wget -P /usr/local/bin/ https://ftp.ncbi.nlm.nih.gov/pub/datasets/command-line/v2/linux-amd64/datasets &&\
+ chmod 755 /usr/local/bin/datasets &&\
+ datasets download genome accession GCF_900119765.1 --include genome &&\
+ unzip -j ncbi_dataset.zip ncbi_dataset/data/GCF_900119765.1/GCF_900119765.1_2532STDY5467631_genomic.fna -d .
+
+# test el_gato
+RUN el_gato.py --assembly GCF_900119765.1_2532STDY5467631_genomic.fna --out test/ &&\
+ cat test/run.log
diff --git a/elgato/1.18.2/README.md b/elgato/1.18.2/README.md
new file mode 100644
index 000000000..8a83429f7
--- /dev/null
+++ b/elgato/1.18.2/README.md
@@ -0,0 +1,33 @@
+# el_gato container
+
+Main tool: [el_gato](https://github.com/appliedbinf/el_gato)
+
+Code repository: https://github.com/appliedbinf/el_gato
+
+Additional tools:
+- minimap2: 2.24-r1122
+- samtools: 1.13
+- ncbi-blast+: 2.12.0+
+- isPCR: v33x2
+
+Basic information on how to use this tool:
+- executable: el_gato.py
+- help: -h
+- version: -v
+- description: Epidemiology of Legionella : Genome-bAsed Typing
+
+Additional information:
+
+Container contains necessary database of Legionella sequence types
+
+Full documentation: https://github.com/appliedbinf/el_gato
+
+## Example Usage
+
+```bash
+# Paired-end:
+el_gato.py --read1 read1.fastq.gz --read2 read2.fastq.gz --out output_folder/
+
+# Assembly:
+el_gato.py --assembly assembly_file.fna --out output_folder/
+```
\ No newline at end of file
diff --git a/elgato/1.19.0/Dockerfile b/elgato/1.19.0/Dockerfile
new file mode 100644
index 000000000..7fd552df9
--- /dev/null
+++ b/elgato/1.19.0/Dockerfile
@@ -0,0 +1,55 @@
+FROM staphb/ispcr:33 as app
+
+ARG ELGATO_VER="1.19.0"
+
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="el_gato"
+LABEL software.version="${ELGATO_VER}"
+LABEL description="Epidemiology of Legionella : Genome-bAsed Typing"
+LABEL website="https://github.com/appliedbinf/el_gato"
+LABEL license="https://github.com/appliedbinf/el_gato/blob/main/LICENSE"
+LABEL maintainer="Kutluhan Incekara"
+LABEL maintainer.email="kutluhan.incekara@ct.gov"
+
+WORKDIR /
+
+# dependencies
+RUN apt-get update && apt-get install --no-install-recommends -y \
+ wget \
+ python3-pip \
+ minimap2 \
+ samtools \
+ ncbi-blast+ && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+# install el_gato
+RUN wget --no-check-certificate https://github.com/appliedbinf/el_gato/archive/refs/tags/${ELGATO_VER}.tar.gz &&\
+ tar -xvf ${ELGATO_VER}.tar.gz && rm ${ELGATO_VER}.tar.gz &&\
+ cd el_gato-${ELGATO_VER} &&\
+ python3 -m pip install . -vv --no-cache-dir &&\
+ mv ./el_gato/db/ /usr/local/bin/db/
+
+# install fpd2 for pdf reports
+RUN pip install --no-cache-dir fpdf2 packaging
+
+ENV LC_ALL=C
+
+CMD el_gato.py -h
+
+WORKDIR /data
+
+## Test ##
+FROM app as test
+
+RUN apt-get update && apt-get install unzip
+
+# download Legionella pneumophila ST62 genome
+RUN wget -P /usr/local/bin/ https://ftp.ncbi.nlm.nih.gov/pub/datasets/command-line/v2/linux-amd64/datasets &&\
+ chmod 755 /usr/local/bin/datasets &&\
+ datasets download genome accession GCF_900119765.1 --include genome &&\
+ unzip -j ncbi_dataset.zip ncbi_dataset/data/GCF_900119765.1/GCF_900119765.1_2532STDY5467631_genomic.fna -d .
+
+# test el_gato
+RUN el_gato.py --assembly GCF_900119765.1_2532STDY5467631_genomic.fna --out test/ &&\
+ cat test/run.log
diff --git a/elgato/1.19.0/README.md b/elgato/1.19.0/README.md
new file mode 100644
index 000000000..8a83429f7
--- /dev/null
+++ b/elgato/1.19.0/README.md
@@ -0,0 +1,33 @@
+# el_gato container
+
+Main tool: [el_gato](https://github.com/appliedbinf/el_gato)
+
+Code repository: https://github.com/appliedbinf/el_gato
+
+Additional tools:
+- minimap2: 2.24-r1122
+- samtools: 1.13
+- ncbi-blast+: 2.12.0+
+- isPCR: v33x2
+
+Basic information on how to use this tool:
+- executable: el_gato.py
+- help: -h
+- version: -v
+- description: Epidemiology of Legionella : Genome-bAsed Typing
+
+Additional information:
+
+Container contains necessary database of Legionella sequence types
+
+Full documentation: https://github.com/appliedbinf/el_gato
+
+## Example Usage
+
+```bash
+# Paired-end:
+el_gato.py --read1 read1.fastq.gz --read2 read2.fastq.gz --out output_folder/
+
+# Assembly:
+el_gato.py --assembly assembly_file.fna --out output_folder/
+```
\ No newline at end of file
diff --git a/fasten/0.7.2/Dockerfile b/fasten/0.7.2/Dockerfile
new file mode 100644
index 000000000..0b454d7f2
--- /dev/null
+++ b/fasten/0.7.2/Dockerfile
@@ -0,0 +1,70 @@
+# Heavily influenced by https://github.com/lskatz/fasten/blob/master/Dockerfile
+
+ARG FASTEN_VER="0.7.2"
+
+FROM rust:1.74 as builder
+
+ARG FASTEN_VER
+
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ ca-certificates \
+ linux-headers-amd64 \
+ git \
+ bc \
+ libcurl4-openssl-dev \
+ libseccomp-dev && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+RUN wget -q https://github.com/lskatz/fasten/archive/refs/tags/v${FASTEN_VER}.tar.gz && \
+ tar -xzf v${FASTEN_VER}.tar.gz && \
+ cd /fasten-${FASTEN_VER} && \
+ cargo build --release
+
+# just running some tests before moving on
+RUN cd /fasten-${FASTEN_VER} && \
+ cargo build && \
+ for test in tests/fasten*.sh ; do bash $test ; done
+
+FROM ubuntu:jammy as app
+
+ARG FASTEN_VER
+
+# 'LABEL' instructions tag the image with metadata that might be important to the user
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="fasten"
+LABEL software.version="${FASTEN_VER}"
+LABEL description="Interleaved fastq file QC and manipulation"
+LABEL website="https://github.com/lskatz/fasten"
+LABEL license="https://github.com/lskatz/fasten/blob/master/LICENSE"
+LABEL maintainer="Erin Young"
+LABEL maintainer.email="eriny@utah.gov"
+
+COPY --from=builder /fasten-${FASTEN_VER}/target/release /usr/local/bin
+
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ ca-certificates \
+ procps \
+ bsdmainutils \
+ wget && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+ENV PATH="$PATH" LC_ALL=C
+
+# runs --help on each tool while skipping the fasten files that end in .d
+CMD for tool in $(ls /usr/local/bin/fasten* | grep -v .d$) ; do $tool --help ; done
+
+WORKDIR /data
+
+FROM app as test
+
+WORKDIR /test
+
+RUN for tool in $(ls /usr/local/bin/fasten* | grep -v .d$) ; do $tool --help ; done
+
+# downloads some TB reads and does some basic QC on them
+RUN wget -q ftp://ftp.sra.ebi.ac.uk/vol1/fastq/ERR166/009/ERR1664619/ERR1664619_1.fastq.gz && \
+ wget -q ftp://ftp.sra.ebi.ac.uk/vol1/fastq/ERR166/009/ERR1664619/ERR1664619_2.fastq.gz && \
+ zcat ERR1664619_1.fastq.gz ERR1664619_2.fastq.gz | fasten_shuffle | fasten_metrics | column -t > fasten_metrics.txt && \
+ zcat ERR1664619_1.fastq.gz ERR1664619_2.fastq.gz | fasten_shuffle | fasten_clean --paired-end --min-length 2 | gzip -c > cleaned.shuffled.fastq.gz && \
+ head fasten_metrics.txt && wc -l ERR1664619_1.fastq.gz ERR1664619_2.fastq.gz cleaned.shuffled.fastq.gz
diff --git a/fasten/0.7.2/README.md b/fasten/0.7.2/README.md
new file mode 100644
index 000000000..6df5d233a
--- /dev/null
+++ b/fasten/0.7.2/README.md
@@ -0,0 +1,46 @@
+# fasten container
+
+Main tool: [fasten](https://github.com/lskatz/fasten/tree/master)
+
+Code repository: https://github.com/lskatz/fasten
+
+Basic information on how to use this tool:
+- executable: fasten* (executables are found in `/usr/local/bin`)
+- help: --help
+- version: NA
+- description: |
+ > A powerful manipulation suite for interleaved fastq files. Executables can read/write to stdin and stdout, and they are compatible with the interleaved fastq format. This makes it much easier to perform streaming operations using unix pipes.
+
+There are several commands associated with fasten:
+|script |Description|
+|-------------------|-----------|
+|[`fasten_clean`](https://lskatz.github.io/fasten/fasten_clean) | Trims and cleans a fastq file.|
+|[`fasten_convert`](https://lskatz.github.io/fasten/fasten_convert) | Converts between different sequence formats like fastq, sam, fasta.|
+|[`fasten_straighten`](https://lskatz.github.io/fasten/fasten_straighten)| Convert any fastq file to a standard four-line-per-entry format.|
+|[`fasten_metrics`](https://lskatz.github.io/fasten/fasten_metrics) | Prints basic read metrics.|
+|[`fasten_pe`](https://lskatz.github.io/fasten/fasten_pe) | Determines paired-endedness based on read IDs.|
+|[`fasten_randomize`](https://lskatz.github.io/fasten/fasten_randomize) | Randomizes reads from input |
+|[`fasten_combine`](https://lskatz.github.io/fasten/fasten_combine) | Combines identical reads and updates quality scores.|
+|[`fasten_kmer`](https://lskatz.github.io/fasten/fasten_kmer) | Kmer counting.|
+|[`fasten_normalize`](https://lskatz.github.io/fasten/fasten_normalize) | Normalize read depth by using kmer counting.|
+|[`fasten_sample`](https://lskatz.github.io/fasten/fasten_sample) | Downsamples reads.|
+|[`fasten_shuffle`](https://lskatz.github.io/fasten/fasten_shuffle) | Shuffles or deshuffles paired end reads.|
+|[`fasten_validate`](https://lskatz.github.io/fasten/fasten_validate) | Validates your reads (deprecated in favor of `fasten_inspect` and `fasten_repair`|
+|[`fasten_inspect`](https://lskatz.github.io/fasten/fasten_inspect) | adds information to read IDs such as seqlength |
+|[`fasten_repair`](https://lskatz.github.io/fasten/fasten_repair) | Repairs corrupted reads |
+|[`fasten_quality_filter`](https://lskatz.github.io/fasten/fasten_quality_filter) | Transforms nucleotides to "N" if the quality is low | |
+|[`fasten_trim`](https://lskatz.github.io/fasten/fasten_trim) | Blunt-end trims reads | |
+|[`fasten_replace`](https://lskatz.github.io/fasten/fasten_replace) | Find and replace using regex | |
+|[`fasten_mutate`](https://lskatz.github.io/fasten/fasten_mutate) | introduce random mutations | |
+|[`fasten_regex`](https://lskatz.github.io/fasten/fasten_regex) | Filter for reads using regex | |
+|[`fasten_progress`](https://lskatz.github.io/fasten/fasten_progress) | Add progress to any place in the pipeline | |
+|[`fasten_sort`](https://lskatz.github.io/fasten/fasten_sort) | Sort fastq entries | |
+
+Full documentation: https://github.com/lskatz/fasten
+
+## Example Usage
+
+```bash
+cat testdata/R1.fastq testdata/R2.fastq | fasten_shuffle | fasten_metrics > fasten_metrics.txt
+zcat testdata/R1.fastq testdata/R2.fastq | fasten_shuffle | fasten_clean --paired-end --min-length 2 | gzip -c > cleaned.shuffled.fastq.gz
+```
diff --git a/fasten/0.8.1/Dockerfile b/fasten/0.8.1/Dockerfile
new file mode 100644
index 000000000..b53481b25
--- /dev/null
+++ b/fasten/0.8.1/Dockerfile
@@ -0,0 +1,70 @@
+# Heavily influenced by https://github.com/lskatz/fasten/blob/master/Dockerfile
+
+ARG FASTEN_VER="0.8.1"
+
+FROM rust:1.74 as builder
+
+ARG FASTEN_VER
+
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ ca-certificates \
+ linux-headers-amd64 \
+ git \
+ bc \
+ libcurl4-openssl-dev \
+ libseccomp-dev && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+RUN wget -q https://github.com/lskatz/fasten/archive/refs/tags/v${FASTEN_VER}.tar.gz && \
+ tar -xzf v${FASTEN_VER}.tar.gz && \
+ cd /fasten-${FASTEN_VER} && \
+ cargo build --release
+
+# just running some tests before moving on
+RUN cd /fasten-${FASTEN_VER} && \
+ cargo build && \
+ for test in tests/fasten*.sh ; do bash $test ; done
+
+FROM ubuntu:jammy as app
+
+ARG FASTEN_VER
+
+# 'LABEL' instructions tag the image with metadata that might be important to the user
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="fasten"
+LABEL software.version="${FASTEN_VER}"
+LABEL description="Interleaved fastq file QC and manipulation"
+LABEL website="https://github.com/lskatz/fasten"
+LABEL license="https://github.com/lskatz/fasten/blob/master/LICENSE"
+LABEL maintainer="Erin Young"
+LABEL maintainer.email="eriny@utah.gov"
+
+COPY --from=builder /fasten-${FASTEN_VER}/target/release /usr/local/bin
+
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ ca-certificates \
+ procps \
+ bsdmainutils \
+ wget && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+ENV PATH="$PATH" LC_ALL=C
+
+# runs --help on each tool while skipping the fasten files that end in .d
+CMD for tool in $(ls /usr/local/bin/fasten* | grep -v .d$) ; do $tool --help ; done
+
+WORKDIR /data
+
+FROM app as test
+
+WORKDIR /test
+
+RUN for tool in $(ls /usr/local/bin/fasten* | grep -v .d$) ; do $tool --help ; done
+
+# downloads some TB reads and does some basic QC on them
+RUN wget -q ftp://ftp.sra.ebi.ac.uk/vol1/fastq/ERR166/009/ERR1664619/ERR1664619_1.fastq.gz && \
+ wget -q ftp://ftp.sra.ebi.ac.uk/vol1/fastq/ERR166/009/ERR1664619/ERR1664619_2.fastq.gz && \
+ zcat ERR1664619_1.fastq.gz ERR1664619_2.fastq.gz | fasten_shuffle | fasten_metrics | column -t > fasten_metrics.txt && \
+ zcat ERR1664619_1.fastq.gz ERR1664619_2.fastq.gz | fasten_shuffle | fasten_clean --paired-end --min-length 2 | gzip -c > cleaned.shuffled.fastq.gz && \
+ head fasten_metrics.txt && wc -l ERR1664619_1.fastq.gz ERR1664619_2.fastq.gz cleaned.shuffled.fastq.gz
diff --git a/fasten/0.8.1/README.md b/fasten/0.8.1/README.md
new file mode 100644
index 000000000..6df5d233a
--- /dev/null
+++ b/fasten/0.8.1/README.md
@@ -0,0 +1,46 @@
+# fasten container
+
+Main tool: [fasten](https://github.com/lskatz/fasten/tree/master)
+
+Code repository: https://github.com/lskatz/fasten
+
+Basic information on how to use this tool:
+- executable: fasten* (executables are found in `/usr/local/bin`)
+- help: --help
+- version: NA
+- description: |
+ > A powerful manipulation suite for interleaved fastq files. Executables can read/write to stdin and stdout, and they are compatible with the interleaved fastq format. This makes it much easier to perform streaming operations using unix pipes.
+
+There are several commands associated with fasten:
+|script |Description|
+|-------------------|-----------|
+|[`fasten_clean`](https://lskatz.github.io/fasten/fasten_clean) | Trims and cleans a fastq file.|
+|[`fasten_convert`](https://lskatz.github.io/fasten/fasten_convert) | Converts between different sequence formats like fastq, sam, fasta.|
+|[`fasten_straighten`](https://lskatz.github.io/fasten/fasten_straighten)| Convert any fastq file to a standard four-line-per-entry format.|
+|[`fasten_metrics`](https://lskatz.github.io/fasten/fasten_metrics) | Prints basic read metrics.|
+|[`fasten_pe`](https://lskatz.github.io/fasten/fasten_pe) | Determines paired-endedness based on read IDs.|
+|[`fasten_randomize`](https://lskatz.github.io/fasten/fasten_randomize) | Randomizes reads from input |
+|[`fasten_combine`](https://lskatz.github.io/fasten/fasten_combine) | Combines identical reads and updates quality scores.|
+|[`fasten_kmer`](https://lskatz.github.io/fasten/fasten_kmer) | Kmer counting.|
+|[`fasten_normalize`](https://lskatz.github.io/fasten/fasten_normalize) | Normalize read depth by using kmer counting.|
+|[`fasten_sample`](https://lskatz.github.io/fasten/fasten_sample) | Downsamples reads.|
+|[`fasten_shuffle`](https://lskatz.github.io/fasten/fasten_shuffle) | Shuffles or deshuffles paired end reads.|
+|[`fasten_validate`](https://lskatz.github.io/fasten/fasten_validate) | Validates your reads (deprecated in favor of `fasten_inspect` and `fasten_repair`|
+|[`fasten_inspect`](https://lskatz.github.io/fasten/fasten_inspect) | adds information to read IDs such as seqlength |
+|[`fasten_repair`](https://lskatz.github.io/fasten/fasten_repair) | Repairs corrupted reads |
+|[`fasten_quality_filter`](https://lskatz.github.io/fasten/fasten_quality_filter) | Transforms nucleotides to "N" if the quality is low | |
+|[`fasten_trim`](https://lskatz.github.io/fasten/fasten_trim) | Blunt-end trims reads | |
+|[`fasten_replace`](https://lskatz.github.io/fasten/fasten_replace) | Find and replace using regex | |
+|[`fasten_mutate`](https://lskatz.github.io/fasten/fasten_mutate) | introduce random mutations | |
+|[`fasten_regex`](https://lskatz.github.io/fasten/fasten_regex) | Filter for reads using regex | |
+|[`fasten_progress`](https://lskatz.github.io/fasten/fasten_progress) | Add progress to any place in the pipeline | |
+|[`fasten_sort`](https://lskatz.github.io/fasten/fasten_sort) | Sort fastq entries | |
+
+Full documentation: https://github.com/lskatz/fasten
+
+## Example Usage
+
+```bash
+cat testdata/R1.fastq testdata/R2.fastq | fasten_shuffle | fasten_metrics > fasten_metrics.txt
+zcat testdata/R1.fastq testdata/R2.fastq | fasten_shuffle | fasten_clean --paired-end --min-length 2 | gzip -c > cleaned.shuffled.fastq.gz
+```
diff --git a/flye/2.9.3/Dockerfile b/flye/2.9.3/Dockerfile
new file mode 100644
index 000000000..2df1dd04d
--- /dev/null
+++ b/flye/2.9.3/Dockerfile
@@ -0,0 +1,69 @@
+# for easy upgrade later
+ARG FLYE_VER="2.9.3"
+
+FROM ubuntu:jammy as app
+
+# have to re-instantiate variable within app stage
+ARG FLYE_VER
+
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="Flye"
+LABEL software.version="${FLYE_VER}"
+LABEL description="Fast and accurate de novo assembler for single molecule sequencing reads"
+LABEL website="https://github.com/fenderglass/Flye"
+LABEL license="https://github.com/fenderglass/Flye/blob/flye/LICENSE"
+LABEL maintainer="Erin Young"
+LABEL maintainer.email="eriny@utah.gov"
+LABEL maintainer2="Curtis Kapsak"
+LABEL maintainer2.email="kapsakcj@gmail.com"
+
+RUN apt-get update && apt-get install --no-install-recommends -y \
+ make \
+ gcc \
+ g++ \
+ python3 \
+ python3-pip \
+ python3-setuptools \
+ zlib1g-dev \
+ wget \
+ ca-certificates \
+ procps && \
+ rm -rf /var/lib/apt/lists/* && apt-get autoclean
+
+# install flye
+RUN wget -q https://github.com/fenderglass/Flye/archive/${FLYE_VER}.tar.gz && \
+ tar -xf ${FLYE_VER}.tar.gz && \
+ rm -v ${FLYE_VER}.tar.gz && \
+ cd Flye-${FLYE_VER} && \
+ python3 setup.py build && \
+ python3 setup.py install && \
+ mkdir /data
+
+# set final working directory
+WORKDIR /data
+
+# for singularity compatibility
+ENV LC_ALL=C
+
+#### begin the test stage ####
+FROM app as test
+
+# have to re-instantiate variable within app stage
+ARG FLYE_VER
+
+# run flye toy dataset test
+RUN python3 /Flye-${FLYE_VER}/flye/tests/test_toy.py
+
+# download test data (ONT and ILMN FASTQs) and run through flye
+RUN echo "downloading ONT test data from bactopia/bactopia-tests on GitHub..." && \
+ wget -q https://raw.githubusercontent.com/bactopia/bactopia-tests/main/data/species/portiera/nanopore/ERR3772599.fastq.gz && \
+ flye --nano-raw ERR3772599.fastq.gz -o flye-test-portiera -t 2 && \
+ flye --version
+
+# the following takes too long, but this would be the test I would recommend if testing this locally.
+# from https://github.com/fenderglass/Flye/blob/flye/docs/USAGE.md
+# RUN wget https://zenodo.org/record/1172816/files/E.coli_PacBio_40x.fasta && \
+# flye --pacbio-raw E.coli_PacBio_40x.fasta --out-dir out_pacbio --threads 4 && \
+# wget https://zenodo.org/record/1172816/files/Loman_E.coli_MAP006-1_2D_50x.fasta && \
+# flye --nano-raw Loman_E.coli_MAP006-1_2D_50x.fasta --out-dir out_nano --threads 4
diff --git a/flye/2.9.3/README.md b/flye/2.9.3/README.md
new file mode 100644
index 000000000..daefd49eb
--- /dev/null
+++ b/flye/2.9.3/README.md
@@ -0,0 +1,14 @@
+# Flye container
+
+Main tool : [flye](https://github.com/fenderglass/Flye)
+
+Full documentation: [https://github.com/fenderglass/Flye/blob/flye/docs/USAGE.md](https://github.com/fenderglass/Flye/blob/flye/docs/USAGE.md)
+
+> Flye is a de novo assembler for single-molecule sequencing reads, such as those produced by PacBio and Oxford Nanopore Technologies.
+
+## Example Usage
+
+```bash
+# sample.fastq.gz is compressed with bgzip
+flye --nano-raw sample.fastq.gz --threads 12 --out-dir flye/sample
+```
diff --git a/flye/2.9.4/Dockerfile b/flye/2.9.4/Dockerfile
new file mode 100644
index 000000000..9db3c1550
--- /dev/null
+++ b/flye/2.9.4/Dockerfile
@@ -0,0 +1,69 @@
+# for easy upgrade later
+ARG FLYE_VER="2.9.4"
+
+FROM ubuntu:jammy as app
+
+# have to re-instantiate variable within app stage
+ARG FLYE_VER
+
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="Flye"
+LABEL software.version="${FLYE_VER}"
+LABEL description="Fast and accurate de novo assembler for single molecule sequencing reads"
+LABEL website="https://github.com/fenderglass/Flye"
+LABEL license="https://github.com/fenderglass/Flye/blob/flye/LICENSE"
+LABEL maintainer="Erin Young"
+LABEL maintainer.email="eriny@utah.gov"
+LABEL maintainer2="Curtis Kapsak"
+LABEL maintainer2.email="kapsakcj@gmail.com"
+
+RUN apt-get update && apt-get install --no-install-recommends -y \
+ make \
+ gcc \
+ g++ \
+ python3 \
+ python3-pip \
+ python3-setuptools \
+ zlib1g-dev \
+ wget \
+ ca-certificates \
+ procps && \
+ rm -rf /var/lib/apt/lists/* && apt-get autoclean
+
+# install flye
+RUN wget -q https://github.com/fenderglass/Flye/archive/${FLYE_VER}.tar.gz && \
+ tar -xf ${FLYE_VER}.tar.gz && \
+ rm -v ${FLYE_VER}.tar.gz && \
+ cd Flye-${FLYE_VER} && \
+ python3 setup.py build && \
+ python3 setup.py install && \
+ mkdir /data
+
+# set final working directory
+WORKDIR /data
+
+# for singularity compatibility
+ENV LC_ALL=C
+
+#### begin the test stage ####
+FROM app as test
+
+# have to re-instantiate variable within app stage
+ARG FLYE_VER
+
+# run flye toy dataset test
+RUN python3 /Flye-${FLYE_VER}/flye/tests/test_toy.py
+
+# download test data (ONT and ILMN FASTQs) and run through flye
+RUN echo "downloading ONT test data from bactopia/bactopia-tests on GitHub..." && \
+ wget -q https://raw.githubusercontent.com/bactopia/bactopia-tests/main/data/species/portiera/nanopore/ERR3772599.fastq.gz && \
+ flye --nano-raw ERR3772599.fastq.gz -o flye-test-portiera -t 2 && \
+ flye --version
+
+# the following takes too long, but this would be the test I would recommend if testing this locally.
+# from https://github.com/fenderglass/Flye/blob/flye/docs/USAGE.md
+# RUN wget https://zenodo.org/record/1172816/files/E.coli_PacBio_40x.fasta && \
+# flye --pacbio-raw E.coli_PacBio_40x.fasta --out-dir out_pacbio --threads 4 && \
+# wget https://zenodo.org/record/1172816/files/Loman_E.coli_MAP006-1_2D_50x.fasta && \
+# flye --nano-raw Loman_E.coli_MAP006-1_2D_50x.fasta --out-dir out_nano --threads 4
diff --git a/flye/2.9.4/README.md b/flye/2.9.4/README.md
new file mode 100644
index 000000000..daefd49eb
--- /dev/null
+++ b/flye/2.9.4/README.md
@@ -0,0 +1,14 @@
+# Flye container
+
+Main tool : [flye](https://github.com/fenderglass/Flye)
+
+Full documentation: [https://github.com/fenderglass/Flye/blob/flye/docs/USAGE.md](https://github.com/fenderglass/Flye/blob/flye/docs/USAGE.md)
+
+> Flye is a de novo assembler for single-molecule sequencing reads, such as those produced by PacBio and Oxford Nanopore Technologies.
+
+## Example Usage
+
+```bash
+# sample.fastq.gz is compressed with bgzip
+flye --nano-raw sample.fastq.gz --threads 12 --out-dir flye/sample
+```
diff --git a/freyja/1.4.7/Dockerfile b/freyja/1.4.7/Dockerfile
new file mode 100644
index 000000000..e40cc43c0
--- /dev/null
+++ b/freyja/1.4.7/Dockerfile
@@ -0,0 +1,76 @@
+FROM mambaorg/micromamba:1.4.9 as app
+
+# Version arguments
+# ARG variables only persist during build time
+ARG FREYJA_SOFTWARE_VERSION="1.4.7"
+
+# build and run as root users since micromamba image has 'mambauser' set as the $USER
+USER root
+# set workdir to default for building; set to /data at the end
+WORKDIR /
+
+LABEL base.image="mambaorg/micromamba:1.4.9"
+LABEL dockerfile.version="1"
+LABEL software="Freyja"
+LABEL software.version=${FREYJA_SOFTWARE_VERSION}
+LABEL description="Freyja is a tool to recover relative lineage abundances from mixed SARS-CoV-2 samples from a sequencing dataset (BAM aligned to the Hu-1 reference)"
+LABEL website="https://github.com/andersen-lab/Freyja"
+LABEL license="https://github.com/andersen-lab/Freyja/blob/main/LICENSE"
+LABEL maintainer="Kevin Libuit"
+LABEL maintainer.email="kevin.libuit@theiagen.com"
+LABEL maintainer2="Curtis Kapsak"
+LABEL maintainer2.email="curtis.kapsak@theiagen.com"
+LABEL maintainer3="Erin Young"
+LABEL maintainer3.email="eriny@utah.gov"
+
+# install dependencies; cleanup apt garbage
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ wget \
+ ca-certificates \
+ procps && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+# Create Freyja conda environment called freyja-env from bioconda recipe
+# clean up conda garbage
+RUN micromamba create -n freyja-env -c conda-forge -c bioconda -c defaults freyja=${FREYJA_SOFTWARE_VERSION} && \
+ micromamba clean -a -y
+
+# set the environment, put new conda env in PATH by default
+ENV PATH="/opt/conda/envs/freyja-env/bin:/opt/conda/envs/env/bin:${PATH}" \
+ LC_ALL=C.UTF-8
+
+# update barcodes
+# NOTE: this will download the latest version of the `freyja/data/usher_barcodes.csv` file from GitHub
+RUN freyja update
+
+# set working directory to /data
+WORKDIR /data
+
+# default command is to pull up help options
+CMD [ "freyja", "--help" ]
+
+# new base for testing
+FROM app as test
+
+# Grab test data from Freyja version 1.3.4
+RUN wget -O /data/Freyja_WWSC2.bam https://github.com/StaPH-B/docker-builds/blob/master/freyja/1.3.4/tests/Freyja_WWSC2.bam?raw=true && \
+ wget -P /data https://raw.githubusercontent.com/StaPH-B/docker-builds/master/freyja/1.3.4/tests/Freyja_depths.tsv && \
+ wget -P /data https://raw.githubusercontent.com/StaPH-B/docker-builds/master/freyja/1.3.4/tests/Freyja_variants.tsv && \
+ wget -P /data https://raw.githubusercontent.com/StaPH-B/docker-builds/master/freyja/1.3.4/tests/nCoV-2019.reference.fasta
+
+# so that mamba/conda env is active when running below commands
+ENV ENV_NAME="freyja-env"
+ARG MAMBA_DOCKERFILE_ACTIVATE=1
+
+# Run Freyja
+RUN freyja variants /data/Freyja_WWSC2.bam --variants /data/test_variants.tsv --depths /data/test_depths.tsv --ref /data/nCoV-2019.reference.fasta && \
+ freyja demix /data/test_variants.tsv /data/test_depths.tsv --output /data/test_demix.tsv
+
+# Check validity of outputs
+RUN head /data/test_variants.tsv && \
+ head /data/test_depths.tsv && \
+ head /data/test_demix.tsv && \
+ grep "Omicron" /data/test_demix.tsv
+
+# print barcode version and freyja version
+RUN freyja demix --version && freyja --version
diff --git a/freyja/1.4.7/README.md b/freyja/1.4.7/README.md
new file mode 100644
index 000000000..3d12712f6
--- /dev/null
+++ b/freyja/1.4.7/README.md
@@ -0,0 +1,34 @@
+# freyja container
+
+Main tool & documentation: [freyja](https://github.com/andersen-lab/Freyja)
+
+Freyja is a tool to recover relative lineage abundances from mixed SARS-CoV-2 samples from a sequencing dataset (BAM aligned to the Hu-1 reference). The method uses lineage-determining mutational "barcodes" derived from the UShER global phylogenetic tree as a basis set to solve the constrained (unit sum, non-negative) de-mixing problem.
+
+## Additional tools
+
+- biopython 1.81
+- ivar 1.4.2
+- mafft 7.520
+- matplotlib-base 3.7.2
+- pandas 2.0.3
+- samtools 1.17
+- scipy 1.11.1
+- seaborn 0.12.2
+- ucsc-fatovcf 448
+- usher 0.6.2
+
+## freyja barcodes
+
+This docker image was built on **2023-11-14** and the command `freyja update` is run as part of the build to retrieve the most up-to-date barcode file `freyja/data/usher_barcodes.csv` file from Freyja's GitHub repo. The barcode version included in this docker image is **`11_14_2023-00-57`** as reported by `freyja demix --version`
+
+## Example Usage
+
+```bash
+# run freyja variants to call variants from an aligned SC2 bam file
+freyja variants [bamfile] --variants [variant outfile name] --depths [depths outfile name] --ref [reference.fa]
+
+# run freyja demix to identify lineages based on called variants
+freyja demix [variants-file] [depth-file] --output [output-file]
+```
+
+Warning: `freyja update` does not work under all conditions. You may need to specify an output directory (`freyja update --outdir /path/to/outdir`) for which your user has write priveleges, such as a mounted volume.
diff --git a/freyja/1.4.8/Dockerfile b/freyja/1.4.8/Dockerfile
new file mode 100644
index 000000000..dcb436889
--- /dev/null
+++ b/freyja/1.4.8/Dockerfile
@@ -0,0 +1,76 @@
+FROM mambaorg/micromamba:1.5.6 as app
+
+# Version arguments
+# ARG variables only persist during build time
+ARG FREYJA_SOFTWARE_VERSION="1.4.8"
+
+# build and run as root users since micromamba image has 'mambauser' set as the $USER
+USER root
+# set workdir to default for building; set to /data at the end
+WORKDIR /
+
+LABEL base.image="mambaorg/micromamba:1.5.6"
+LABEL dockerfile.version="1"
+LABEL software="Freyja"
+LABEL software.version=${FREYJA_SOFTWARE_VERSION}
+LABEL description="Freyja is a tool to recover relative lineage abundances from mixed SARS-CoV-2 samples from a sequencing dataset (BAM aligned to the Hu-1 reference)"
+LABEL website="https://github.com/andersen-lab/Freyja"
+LABEL license="https://github.com/andersen-lab/Freyja/blob/main/LICENSE"
+LABEL maintainer="Kevin Libuit"
+LABEL maintainer.email="kevin.libuit@theiagen.com"
+LABEL maintainer2="Curtis Kapsak"
+LABEL maintainer2.email="curtis.kapsak@theiagen.com"
+LABEL maintainer3="Erin Young"
+LABEL maintainer3.email="eriny@utah.gov"
+
+# install dependencies; cleanup apt garbage
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ wget \
+ ca-certificates \
+ procps && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+# Create Freyja conda environment called freyja-env from bioconda recipe
+# clean up conda garbage
+RUN micromamba create -n freyja-env -c conda-forge -c bioconda -c defaults freyja=${FREYJA_SOFTWARE_VERSION} && \
+ micromamba clean -a -y
+
+# set the environment, put new conda env in PATH by default
+ENV PATH="/opt/conda/envs/freyja-env/bin:/opt/conda/envs/env/bin:${PATH}" \
+ LC_ALL=C.UTF-8
+
+# update barcodes
+# NOTE: this will download the latest version of the `freyja/data/usher_barcodes.csv` file from GitHub
+RUN freyja update
+
+# set working directory to /data
+WORKDIR /data
+
+# default command is to pull up help options
+CMD [ "freyja", "--help" ]
+
+# new base for testing
+FROM app as test
+
+# Grab test data from Freyja version 1.3.4
+RUN wget -O /data/Freyja_WWSC2.bam https://github.com/StaPH-B/docker-builds/blob/master/freyja/1.3.4/tests/Freyja_WWSC2.bam?raw=true && \
+ wget -P /data https://raw.githubusercontent.com/StaPH-B/docker-builds/master/freyja/1.3.4/tests/Freyja_depths.tsv && \
+ wget -P /data https://raw.githubusercontent.com/StaPH-B/docker-builds/master/freyja/1.3.4/tests/Freyja_variants.tsv && \
+ wget -P /data https://raw.githubusercontent.com/StaPH-B/docker-builds/master/freyja/1.3.4/tests/nCoV-2019.reference.fasta
+
+# so that mamba/conda env is active when running below commands
+ENV ENV_NAME="freyja-env"
+ARG MAMBA_DOCKERFILE_ACTIVATE=1
+
+# Run Freyja
+RUN freyja variants /data/Freyja_WWSC2.bam --variants /data/test_variants.tsv --depths /data/test_depths.tsv --ref /data/nCoV-2019.reference.fasta && \
+ freyja demix /data/test_variants.tsv /data/test_depths.tsv --output /data/test_demix.tsv
+
+# Check validity of outputs
+RUN head /data/test_variants.tsv && \
+ head /data/test_depths.tsv && \
+ head /data/test_demix.tsv && \
+ grep "Omicron" /data/test_demix.tsv
+
+# print barcode version and freyja version
+RUN freyja demix --version && freyja --version
diff --git a/freyja/1.4.8/README.md b/freyja/1.4.8/README.md
new file mode 100644
index 000000000..d406fe44c
--- /dev/null
+++ b/freyja/1.4.8/README.md
@@ -0,0 +1,34 @@
+# freyja container
+
+Main tool & documentation: [freyja](https://github.com/andersen-lab/Freyja)
+
+Freyja is a tool to recover relative lineage abundances from mixed SARS-CoV-2 samples from a sequencing dataset (BAM aligned to the Hu-1 reference). The method uses lineage-determining mutational "barcodes" derived from the UShER global phylogenetic tree as a basis set to solve the constrained (unit sum, non-negative) de-mixing problem.
+
+## Additional tools
+
+- biopython 1.82
+- ivar 1.4.2
+- mafft 7.520
+- matplotlib-base 3.8.2
+- pandas 2.1.4
+- samtools 1.19
+- scipy 1.11.4
+- seaborn 0.12.2
+- ucsc-fatovcf 448
+- usher 0.6.3
+
+## freyja barcodes
+
+This docker image was built on **2023-12-29** and the command `freyja update` is run as part of the build to retrieve the most up-to-date barcode file `freyja/data/usher_barcodes.csv` file from Freyja's GitHub repo. The barcode version included in this docker image is **`12_29_2023-00-41`** as reported by `freyja demix --version`
+
+## Example Usage
+
+```bash
+# run freyja variants to call variants from an aligned SC2 bam file
+freyja variants [bamfile] --variants [variant outfile name] --depths [depths outfile name] --ref [reference.fa]
+
+# run freyja demix to identify lineages based on called variants
+freyja demix [variants-file] [depth-file] --output [output-file]
+```
+
+Warning: `freyja update` does not work under all conditions. You may need to specify an output directory (`freyja update --outdir /path/to/outdir`) for which your user has write priveleges, such as a mounted volume.
diff --git a/freyja/1.4.9/Dockerfile b/freyja/1.4.9/Dockerfile
new file mode 100644
index 000000000..efa94e996
--- /dev/null
+++ b/freyja/1.4.9/Dockerfile
@@ -0,0 +1,74 @@
+FROM mambaorg/micromamba:1.5.6 as app
+
+# Version arguments
+# ARG variables only persist during build time
+ARG FREYJA_SOFTWARE_VERSION="1.4.9"
+
+# build and run as root users since micromamba image has 'mambauser' set as the $USER
+USER root
+# set workdir to default for building; set to /data at the end
+WORKDIR /
+
+LABEL base.image="mambaorg/micromamba:1.5.6"
+LABEL dockerfile.version="1"
+LABEL software="Freyja"
+LABEL software.version=${FREYJA_SOFTWARE_VERSION}
+LABEL description="Freyja is a tool to recover relative lineage abundances from mixed SARS-CoV-2 samples from a sequencing dataset (BAM aligned to the Hu-1 reference)"
+LABEL website="https://github.com/andersen-lab/Freyja"
+LABEL license="https://github.com/andersen-lab/Freyja/blob/main/LICENSE"
+LABEL maintainer="Kevin Libuit"
+LABEL maintainer.email="kevin.libuit@theiagen.com"
+LABEL maintainer2="Curtis Kapsak"
+LABEL maintainer2.email="curtis.kapsak@theiagen.com"
+LABEL maintainer3="Erin Young"
+LABEL maintainer3.email="eriny@utah.gov"
+
+# install dependencies; cleanup apt garbage
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ wget \
+ ca-certificates \
+ procps && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+# Create Freyja conda environment called freyja-env from bioconda recipe
+# clean up conda garbage
+RUN micromamba create -n freyja-env -c conda-forge -c bioconda -c defaults freyja=${FREYJA_SOFTWARE_VERSION} && \
+ micromamba clean -a -y
+
+# set the environment, put new conda env in PATH by default
+ENV PATH="/opt/conda/envs/freyja-env/bin:/opt/conda/envs/env/bin:${PATH}" \
+ LC_ALL=C.UTF-8
+
+# update barcodes
+# NOTE: this will download the latest version of the `freyja/data/usher_barcodes.csv` file from GitHub
+RUN freyja update
+
+# set working directory to /data
+WORKDIR /data
+
+# default command is to pull up help options
+CMD [ "freyja", "--help" ]
+
+# new base for testing
+FROM app as test
+
+RUN freyja --help && freyja --version
+
+# Grab test data from Freyja version 1.3.4
+RUN wget -O /data/Freyja_WWSC2.bam https://github.com/StaPH-B/docker-builds/blob/master/freyja/1.3.4/tests/Freyja_WWSC2.bam?raw=true && \
+ wget -P /data https://raw.githubusercontent.com/StaPH-B/docker-builds/master/freyja/1.3.4/tests/Freyja_depths.tsv && \
+ wget -P /data https://raw.githubusercontent.com/StaPH-B/docker-builds/master/freyja/1.3.4/tests/Freyja_variants.tsv && \
+ wget -P /data https://raw.githubusercontent.com/StaPH-B/docker-builds/master/freyja/1.3.4/tests/nCoV-2019.reference.fasta
+
+# Run Freyja
+RUN freyja variants /data/Freyja_WWSC2.bam --variants /data/test_variants.tsv --depths /data/test_depths.tsv --ref /data/nCoV-2019.reference.fasta && \
+ freyja demix /data/test_variants.tsv /data/test_depths.tsv --output /data/test_demix.tsv
+
+# Check validity of outputs
+RUN head /data/test_variants.tsv && \
+ head /data/test_depths.tsv && \
+ head /data/test_demix.tsv && \
+ grep "Omicron" /data/test_demix.tsv
+
+# print barcode version and freyja version
+RUN freyja demix --version
diff --git a/freyja/1.4.9/README.md b/freyja/1.4.9/README.md
new file mode 100644
index 000000000..47e045843
--- /dev/null
+++ b/freyja/1.4.9/README.md
@@ -0,0 +1,36 @@
+# freyja container
+
+Main tool & documentation: [freyja](https://github.com/andersen-lab/Freyja)
+
+Freyja is a tool to recover relative lineage abundances from mixed SARS-CoV-2 samples from a sequencing dataset (BAM aligned to the Hu-1 reference). The method uses lineage-determining mutational "barcodes" derived from the UShER global phylogenetic tree as a basis set to solve the constrained (unit sum, non-negative) de-mixing problem.
+
+## Additional tools
+
+- biopython 1.82
+- ivar 1.4.2
+- mafft 7.520
+- matplotlib-base 3.8.2
+- pandas 2.1.4
+- samtools 1.19
+- scipy 1.11.4
+- seaborn 0.12.2
+- ucsc-fatovcf 448
+- usher 0.6.3
+
+## freyja barcodes
+
+This docker image was built on **2024-02-13** and the command `freyja update` is run as part of the build to retrieve the most up-to-date barcode file `freyja/data/usher_barcodes.csv` file from Freyja's GitHub repo. The barcode version included in this docker image is **`12_29_2023-00-41`** as reported by `freyja demix --version`
+
+This image is rebuilt every day on Dockerhub with the tag ${freyja version}-${freyja database version}-${data image was deployed}.
+
+## Example Usage
+
+```bash
+# run freyja variants to call variants from an aligned SC2 bam file
+freyja variants [bamfile] --variants [variant outfile name] --depths [depths outfile name] --ref [reference.fa]
+
+# run freyja demix to identify lineages based on called variants
+freyja demix [variants-file] [depth-file] --output [output-file]
+```
+
+Warning: `freyja update` does not work under all conditions. You may need to specify an output directory (`freyja update --outdir /path/to/outdir`) for which your user has write priveleges, such as a mounted volume.
diff --git a/freyja/1.5.0/Dockerfile b/freyja/1.5.0/Dockerfile
new file mode 100644
index 000000000..73a23de88
--- /dev/null
+++ b/freyja/1.5.0/Dockerfile
@@ -0,0 +1,74 @@
+FROM mambaorg/micromamba:1.5.6 as app
+
+# Version arguments
+# ARG variables only persist during build time
+ARG FREYJA_SOFTWARE_VERSION="1.5.0"
+
+# build and run as root users since micromamba image has 'mambauser' set as the $USER
+USER root
+# set workdir to default for building; set to /data at the end
+WORKDIR /
+
+LABEL base.image="mambaorg/micromamba:1.5.6"
+LABEL dockerfile.version="1"
+LABEL software="Freyja"
+LABEL software.version=${FREYJA_SOFTWARE_VERSION}
+LABEL description="Freyja is a tool to recover relative lineage abundances from mixed SARS-CoV-2 samples from a sequencing dataset (BAM aligned to the Hu-1 reference)"
+LABEL website="https://github.com/andersen-lab/Freyja"
+LABEL license="https://github.com/andersen-lab/Freyja/blob/main/LICENSE"
+LABEL maintainer="Kevin Libuit"
+LABEL maintainer.email="kevin.libuit@theiagen.com"
+LABEL maintainer2="Curtis Kapsak"
+LABEL maintainer2.email="curtis.kapsak@theiagen.com"
+LABEL maintainer3="Erin Young"
+LABEL maintainer3.email="eriny@utah.gov"
+
+# install dependencies; cleanup apt garbage
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ wget \
+ ca-certificates \
+ procps && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+# Create Freyja conda environment called freyja-env from bioconda recipe
+# clean up conda garbage
+RUN micromamba create -n freyja-env -c conda-forge -c bioconda -c defaults freyja=${FREYJA_SOFTWARE_VERSION} && \
+ micromamba clean -a -y
+
+# set the environment, put new conda env in PATH by default
+ENV PATH="/opt/conda/envs/freyja-env/bin:/opt/conda/envs/env/bin:${PATH}" \
+ LC_ALL=C.UTF-8
+
+# update barcodes
+# NOTE: this will download the latest version of the `freyja/data/usher_barcodes.csv` file from GitHub
+RUN freyja update
+
+# set working directory to /data
+WORKDIR /data
+
+# default command is to pull up help options
+CMD [ "freyja", "--help" ]
+
+# new base for testing
+FROM app as test
+
+RUN freyja --help && freyja --version
+
+# Grab test data from Freyja version 1.3.4
+RUN wget -O /data/Freyja_WWSC2.bam https://github.com/StaPH-B/docker-builds/blob/master/freyja/1.3.4/tests/Freyja_WWSC2.bam?raw=true && \
+ wget -P /data https://raw.githubusercontent.com/StaPH-B/docker-builds/master/freyja/1.3.4/tests/Freyja_depths.tsv && \
+ wget -P /data https://raw.githubusercontent.com/StaPH-B/docker-builds/master/freyja/1.3.4/tests/Freyja_variants.tsv && \
+ wget -P /data https://raw.githubusercontent.com/StaPH-B/docker-builds/master/freyja/1.3.4/tests/nCoV-2019.reference.fasta
+
+# Run Freyja
+RUN freyja variants /data/Freyja_WWSC2.bam --variants /data/test_variants.tsv --depths /data/test_depths.tsv --ref /data/nCoV-2019.reference.fasta && \
+ freyja demix /data/test_variants.tsv /data/test_depths.tsv --output /data/test_demix.tsv
+
+# Check validity of outputs
+RUN head /data/test_variants.tsv && \
+ head /data/test_depths.tsv && \
+ head /data/test_demix.tsv && \
+ grep "Omicron" /data/test_demix.tsv
+
+# print barcode version and freyja version
+RUN freyja demix --version
diff --git a/freyja/1.5.0/README.md b/freyja/1.5.0/README.md
new file mode 100644
index 000000000..5905d951b
--- /dev/null
+++ b/freyja/1.5.0/README.md
@@ -0,0 +1,36 @@
+# freyja container
+
+Main tool & documentation: [freyja](https://github.com/andersen-lab/Freyja)
+
+Freyja is a tool to recover relative lineage abundances from mixed SARS-CoV-2 samples from a sequencing dataset (BAM aligned to the Hu-1 reference). The method uses lineage-determining mutational "barcodes" derived from the UShER global phylogenetic tree as a basis set to solve the constrained (unit sum, non-negative) de-mixing problem.
+
+## Additional tools
+
+- biopython 1.82
+- ivar 1.4.2
+- mafft 7.520
+- matplotlib-base 3.8.2
+- pandas 2.1.4
+- samtools 1.19
+- scipy 1.11.4
+- seaborn 0.12.2
+- ucsc-fatovcf 448
+- usher 0.6.3
+
+## freyja barcodes
+
+This docker image was built on **2024-03-20** and the command `freyja update` is run as part of the build to retrieve the most up-to-date barcode file `freyja/data/usher_barcodes.csv` file from Freyja's GitHub repo. The barcode version included in this docker image is **`03_20_2024-00-43`** as reported by `freyja demix --version`
+
+This image is rebuilt every day on Dockerhub and Quay.io with the tag ${freyja version}-${freyja database version}-${data image was deployed}.
+
+## Example Usage
+
+```bash
+# run freyja variants to call variants from an aligned SC2 bam file
+freyja variants [bamfile] --variants [variant outfile name] --depths [depths outfile name] --ref [reference.fa]
+
+# run freyja demix to identify lineages based on called variants
+freyja demix [variants-file] [depth-file] --output [output-file]
+```
+
+Warning: `freyja update` does not work under all conditions. You may need to specify an output directory (`freyja update --outdir /path/to/outdir`) for which your user has write privileges, such as a mounted volume.
diff --git a/freyja/1.5.1/Dockerfile b/freyja/1.5.1/Dockerfile
new file mode 100644
index 000000000..21cbb744a
--- /dev/null
+++ b/freyja/1.5.1/Dockerfile
@@ -0,0 +1,76 @@
+FROM mambaorg/micromamba:1.5.6 as app
+
+# Version arguments
+# ARG variables only persist during build time
+ARG FREYJA_SOFTWARE_VERSION="1.5.1"
+
+# build and run as root users since micromamba image has 'mambauser' set as the $USER
+USER root
+# set workdir to default for building; set to /data at the end
+WORKDIR /
+
+LABEL base.image="mambaorg/micromamba:1.5.6"
+LABEL dockerfile.version="1"
+LABEL software="Freyja"
+LABEL software.version=${FREYJA_SOFTWARE_VERSION}
+LABEL description="Freyja is a tool to recover relative lineage abundances from mixed SARS-CoV-2 samples from a sequencing dataset (BAM aligned to the Hu-1 reference)"
+LABEL website="https://github.com/andersen-lab/Freyja"
+LABEL license="https://github.com/andersen-lab/Freyja/blob/main/LICENSE"
+LABEL maintainer="Kevin Libuit"
+LABEL maintainer.email="kevin.libuit@theiagen.com"
+LABEL maintainer2="Curtis Kapsak"
+LABEL maintainer2.email="curtis.kapsak@theiagen.com"
+LABEL maintainer3="Erin Young"
+LABEL maintainer3.email="eriny@utah.gov"
+
+# install dependencies; cleanup apt garbage
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ wget \
+ ca-certificates \
+ procps && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+# Create Freyja conda environment called freyja-env from bioconda recipe
+# clean up conda garbage
+RUN micromamba create -n freyja-env -c conda-forge -c bioconda -c defaults freyja=${FREYJA_SOFTWARE_VERSION} && \
+ micromamba clean -a -y
+
+# set the environment, put new conda env in PATH by default
+ENV PATH="/opt/conda/envs/freyja-env/bin:/opt/conda/envs/env/bin:${PATH}" \
+ LC_ALL=C.UTF-8
+
+RUN pip install pyarrow
+
+# update barcodes
+# NOTE: this will download the latest version of the `freyja/data/usher_barcodes.csv` file from GitHub
+RUN freyja update
+
+# set working directory to /data
+WORKDIR /data
+
+# default command is to pull up help options
+CMD [ "freyja", "--help" ]
+
+# new base for testing
+FROM app as test
+
+RUN freyja --help && freyja --version
+
+# Grab test data from Freyja version 1.3.4
+RUN wget -O /data/Freyja_WWSC2.bam https://github.com/StaPH-B/docker-builds/blob/master/freyja/1.3.4/tests/Freyja_WWSC2.bam?raw=true && \
+ wget -P /data https://raw.githubusercontent.com/StaPH-B/docker-builds/master/freyja/1.3.4/tests/Freyja_depths.tsv && \
+ wget -P /data https://raw.githubusercontent.com/StaPH-B/docker-builds/master/freyja/1.3.4/tests/Freyja_variants.tsv && \
+ wget -P /data https://raw.githubusercontent.com/StaPH-B/docker-builds/master/freyja/1.3.4/tests/nCoV-2019.reference.fasta
+
+# Run Freyja
+RUN freyja variants /data/Freyja_WWSC2.bam --variants /data/test_variants.tsv --depths /data/test_depths.tsv --ref /data/nCoV-2019.reference.fasta && \
+ freyja demix /data/test_variants.tsv /data/test_depths.tsv --output /data/test_demix.tsv
+
+# Check validity of outputs
+RUN head /data/test_variants.tsv && \
+ head /data/test_depths.tsv && \
+ head /data/test_demix.tsv && \
+ grep "Omicron" /data/test_demix.tsv
+
+# print barcode version and freyja version
+RUN freyja demix --version
diff --git a/freyja/1.5.1/README.md b/freyja/1.5.1/README.md
new file mode 100644
index 000000000..32aaab0d0
--- /dev/null
+++ b/freyja/1.5.1/README.md
@@ -0,0 +1,23 @@
+# freyja container
+
+Main tool & documentation: [freyja](https://github.com/andersen-lab/Freyja)
+
+Freyja is a tool to recover relative lineage abundances from mixed SARS-CoV-2 samples from a sequencing dataset (BAM aligned to the Hu-1 reference). The method uses lineage-determining mutational "barcodes" derived from the UShER global phylogenetic tree as a basis set to solve the constrained (unit sum, non-negative) de-mixing problem.
+
+## freyja barcodes
+
+This docker image was built on **2024-06-25** and the command `freyja update` is run as part of the build to retrieve the most up-to-date barcode file `freyja/data/usher_barcodes.csv` file from Freyja's GitHub repo. The barcode version included in this docker image is **`06_25_2024-01-22`** as reported by `freyja demix --version`
+
+This image is rebuilt every day on Dockerhub and Quay.io with the tag ${freyja version}-${freyja database version}-${data image was deployed}.
+
+## Example Usage
+
+```bash
+# run freyja variants to call variants from an aligned SC2 bam file
+freyja variants [bamfile] --variants [variant outfile name] --depths [depths outfile name] --ref [reference.fa]
+
+# run freyja demix to identify lineages based on called variants
+freyja demix [variants-file] [depth-file] --output [output-file]
+```
+
+Warning: `freyja update` does not work under all conditions. You may need to specify an output directory (`freyja update --outdir /path/to/outdir`) for which your user has write privileges, such as a mounted volume.
diff --git a/genoflu/1.03/Dockerfile b/genoflu/1.03/Dockerfile
new file mode 100644
index 000000000..074535ea5
--- /dev/null
+++ b/genoflu/1.03/Dockerfile
@@ -0,0 +1,52 @@
+FROM mambaorg/micromamba:1.5.8 as app
+
+USER root
+WORKDIR /
+
+ARG GENOFLU_VER="1.03-0"
+
+# LABEL instructions tag the image with metadata that might be important to the user
+LABEL base.image="micromamba:1.5.8"
+LABEL dockerfile.version="1"
+LABEL software="genoflu"
+LABEL software.version=$GENOFLU_VER
+LABEL description="Uses BLAST to detect whole-genome flu genotype"
+LABEL website="https://github.com/USDA-VS/GenoFLU"
+LABEL license="https://github.com/USDA-VS/GenoFLU/blob/main/LICENSE"
+LABEL maintainer="Sage Wright"
+LABEL maintainer.email="sagemwright@gmail.com"
+
+# Install dependencies via apt-get; cleanup apt garbage
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ wget \
+ ca-certificates \
+ procps && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+# install genoflu via bioconda; install into 'base' conda env
+# genoflu is not recognized in micromamba by the version tag
+RUN micromamba install --yes --name base --channel conda-forge --channel bioconda \
+ genoflu=${GENOFLU_VER} && \
+ micromamba clean --all --force-pkgs-dirs --yes
+
+
+# ENV instructions set environment variables that persist from the build into the resulting image
+# hardcode 'base' env bin into PATH, so conda env does not have to be "activated" at run time
+ENV PATH="/opt/conda/bin:${PATH}"
+
+# WORKDIR sets working directory
+WORKDIR /data
+
+# default command is to pull up help options for genoflu
+CMD [ "genoflu.py", "--help" ]
+
+# A second FROM insruction creates a new stage
+# We use `test` for the test image
+FROM app as test
+
+# getting all the exectubles in bin
+RUN genoflu.py --help && genoflu.py --version
+
+# testing a genome
+RUN wget -q https://raw.githubusercontent.com/USDA-VS/GenoFLU/main/test/test-genome-A1.fasta && \
+ genoflu.py -f test-genome-A1.fasta
\ No newline at end of file
diff --git a/genoflu/README.md b/genoflu/README.md
new file mode 100644
index 000000000..f24fd2c97
--- /dev/null
+++ b/genoflu/README.md
@@ -0,0 +1,24 @@
+# GenoFLU container
+
+Main tool: [GenoFLU](https://github.com/USDA-VS/GenoFLU)
+
+Code repository: https://github.com/USDA-VS/GenoFLU
+
+Additional tools:
+
+Basic information on how to use this tool:
+
+- executable: genoflu.py
+- help: --help
+- version: --version
+- description: "GenoFLU determines the genotype of a segmented flu sample by BLASTing a multi-segment FASTA against the BLAST database"
+
+Additional information:
+
+Full documentation: [https://github.com/USDA-VS/GenoFLU](https://github.com/USDA-VS/GenoFLU)
+
+## Example Usage
+
+```bash
+genoflu.py -f input.fasta
+```
diff --git a/genomad/1.7.4/Dockerfile b/genomad/1.7.4/Dockerfile
new file mode 100644
index 000000000..3c3349b83
--- /dev/null
+++ b/genomad/1.7.4/Dockerfile
@@ -0,0 +1,83 @@
+
+ARG GENOMAD_VER="1.7.4"
+ARG ARAGORN_VER="1.2.41"
+ARG MMSEQS2_VER="15-6f452"
+
+FROM ubuntu:jammy as builder
+
+ARG ARAGORN_VER
+
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ ca-certificates \
+ libc6-dev \
+ make \
+ gcc \
+ wget
+
+# get ARAGORN
+RUN wget -q https://www.ansikte.se/ARAGORN/Downloads/aragorn${ARAGORN_VER}.c && \
+ gcc -O3 -ffast-math -finline-functions -o aragorn aragorn${ARAGORN_VER}.c && \
+ /aragorn -h
+
+FROM ubuntu:jammy as app
+
+ARG GENOMAD_VER
+ARG MMSEQS2_VER
+
+# 'LABEL' instructions tag the image with metadata that might be important to the user
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="geNomad"
+LABEL software.version="${GENOMAD_VER}"
+LABEL description="Identification of mobile genetic elements"
+LABEL website="https://github.com/apcamargo/genomad"
+LABEL license="https://github.com/apcamargo/genomad/blob/main/LICENSE"
+LABEL maintainer="Erin Young"
+LABEL maintainer.email="eriny@utah.gov"
+
+COPY --from=builder /aragorn /usr/local/bin/
+
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ ca-certificates \
+ procps \
+ python3 \
+ python3-pip \
+ wget && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+# get MMSEQS2
+RUN wget -q https://github.com/soedinglab/MMseqs2/releases/download/${MMSEQS2_VER}/mmseqs-linux-avx2.tar.gz && \
+ tar -xvf mmseqs-linux-avx2.tar.gz && \
+ rm mmseqs-linux-avx2.tar.gz
+
+# get genomad
+RUN wget -q https://github.com/apcamargo/genomad/archive/refs/tags/v${GENOMAD_VER}.tar.gz && \
+ python3 -m pip install v${GENOMAD_VER}.tar.gz && \
+ rm -rf v${GENOMAD_VER}.tar.gz && \
+ mkdir /data
+
+ENV PATH="/mmseqs/bin:$PATH" LC_ALL=C
+
+# downloads latest database, which is version 1.6 and about ~1.6 G in size
+RUN genomad download-database .
+
+# 'CMD' instructions set a default command when the container is run. This is typically 'tool --help.'
+CMD genomad --help
+
+# 'WORKDIR' sets working directory
+WORKDIR /data
+
+FROM app as test
+
+# set working directory so that all test inputs & outputs are kept in /test
+WORKDIR /test
+
+RUN genomad --help && \
+ genomad --version && \
+ aragorn -h && \
+ mmseqs -h
+
+# downloads genome from NCBI and runs end-to-end (which looks like all steps) on the downloaded fasta
+RUN wget -q https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/025/259/185/GCA_025259185.1_ASM2525918v1/GCA_025259185.1_ASM2525918v1_genomic.fna.gz && \
+ gunzip GCA_025259185.1_ASM2525918v1_genomic.fna.gz && \
+ genomad end-to-end GCA_025259185.1_ASM2525918v1_genomic.fna test /genomad_db
\ No newline at end of file
diff --git a/genomad/1.7.4/README.md b/genomad/1.7.4/README.md
new file mode 100644
index 000000000..3359e8a6b
--- /dev/null
+++ b/genomad/1.7.4/README.md
@@ -0,0 +1,40 @@
+# geNomad container
+
+Main tool: [geNomad](https://github.com/apcamargo/genomad/)
+
+Code repository: https://github.com/apcamargo/genomad/
+
+Additional tools:
+- aragorn: 1.2.41
+- mmseq2: 15-6f452
+
+Basic information on how to use this tool:
+- executable: genomad
+- help: --help
+- version: --version
+- description: Identification of mobile genetic elements
+
+Additional information:
+
+The geNomad database version 1.6 is downloaded in /genomad_db.
+
+Full documentation: https://portal.nersc.gov/genomad/
+
+## Example Usage
+
+```bash
+# to download the database (database is already downloaded at /genomad_db)
+genomad download-database .
+
+# recommended usage
+genomad end-to-end input.fna output /genomad_db
+
+# subsections of genomad
+genomad annotate metagenome.fna genomad_output /genomad_db
+genomad find-proviruses metagenome.fna genomad_output /genomad_db
+genomad marker-classification metagenome.fna genomad_output /genomad_db
+genomad nn-classification metagenome.fna /genomad_output
+genomad aggregated-classification metagenome.fna /genomad_output
+genomad score-calibration metagenome.fna /genomad_output
+genomad summary metagenome.fna /genomad_output
+```
diff --git a/genomad/1.8.0/Dockerfile b/genomad/1.8.0/Dockerfile
new file mode 100644
index 000000000..e9c648d07
--- /dev/null
+++ b/genomad/1.8.0/Dockerfile
@@ -0,0 +1,83 @@
+
+ARG GENOMAD_VER="1.8.0"
+ARG ARAGORN_VER="1.2.41"
+ARG MMSEQS2_VER="15-6f452"
+
+FROM ubuntu:jammy as builder
+
+ARG ARAGORN_VER
+
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ ca-certificates \
+ libc6-dev \
+ make \
+ gcc \
+ wget
+
+# get ARAGORN
+RUN wget -q https://www.trna.se/ARAGORN/Downloads/aragorn${ARAGORN_VER}.c && \
+ gcc -O3 -ffast-math -finline-functions -o aragorn aragorn${ARAGORN_VER}.c && \
+ /aragorn -h
+
+FROM ubuntu:jammy as app
+
+ARG GENOMAD_VER
+ARG MMSEQS2_VER
+
+# 'LABEL' instructions tag the image with metadata that might be important to the user
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="geNomad"
+LABEL software.version="${GENOMAD_VER}"
+LABEL description="Identification of mobile genetic elements"
+LABEL website="https://github.com/apcamargo/genomad"
+LABEL license="https://github.com/apcamargo/genomad/blob/main/LICENSE"
+LABEL maintainer="Erin Young"
+LABEL maintainer.email="eriny@utah.gov"
+
+COPY --from=builder /aragorn /usr/local/bin/
+
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ ca-certificates \
+ procps \
+ python3 \
+ python3-pip \
+ wget && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+# get MMSEQS2
+RUN wget -q https://github.com/soedinglab/MMseqs2/releases/download/${MMSEQS2_VER}/mmseqs-linux-avx2.tar.gz && \
+ tar -xvf mmseqs-linux-avx2.tar.gz && \
+ rm mmseqs-linux-avx2.tar.gz
+
+# get genomad
+RUN wget -q https://github.com/apcamargo/genomad/archive/refs/tags/v${GENOMAD_VER}.tar.gz && \
+ python3 -m pip install v${GENOMAD_VER}.tar.gz && \
+ rm -rf v${GENOMAD_VER}.tar.gz && \
+ mkdir /data
+
+ENV PATH="/mmseqs/bin:$PATH" LC_ALL=C
+
+# downloads latest database, which is version 1.6 and about ~1.6 G in size
+RUN genomad download-database .
+
+# 'CMD' instructions set a default command when the container is run. This is typically 'tool --help.'
+CMD genomad --help
+
+# 'WORKDIR' sets working directory
+WORKDIR /data
+
+FROM app as test
+
+# set working directory so that all test inputs & outputs are kept in /test
+WORKDIR /test
+
+RUN genomad --help && \
+ genomad --version && \
+ aragorn -h && \
+ mmseqs -h
+
+# downloads genome from NCBI and runs end-to-end (which looks like all steps) on the downloaded fasta
+RUN pip list && wget -q https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/025/259/185/GCA_025259185.1_ASM2525918v1/GCA_025259185.1_ASM2525918v1_genomic.fna.gz && \
+ gunzip GCA_025259185.1_ASM2525918v1_genomic.fna.gz && \
+ genomad end-to-end GCA_025259185.1_ASM2525918v1_genomic.fna test /genomad_db --splits 16
diff --git a/genomad/1.8.0/README.md b/genomad/1.8.0/README.md
new file mode 100644
index 000000000..06ba24758
--- /dev/null
+++ b/genomad/1.8.0/README.md
@@ -0,0 +1,40 @@
+g# geNomad container
+
+Main tool: [geNomad](https://github.com/apcamargo/genomad/)
+
+Code repository: https://github.com/apcamargo/genomad/
+
+Additional tools:
+- aragorn: 1.2.41
+- mmseq2: 15-6f452
+
+Basic information on how to use this tool:
+- executable: genomad
+- help: --help
+- version: --version
+- description: Identification of mobile genetic elements
+
+Additional information:
+
+The geNomad database version 1.7 is downloaded in /genomad_db.
+
+Full documentation: https://portal.nersc.gov/genomad/
+
+## Example Usage
+
+```bash
+# to download the database (database is already downloaded at /genomad_db)
+genomad download-database .
+
+# recommended usage
+genomad end-to-end input.fna output /genomad_db
+
+# subsections of genomad
+genomad annotate metagenome.fna genomad_output /genomad_db
+genomad find-proviruses metagenome.fna genomad_output /genomad_db
+genomad marker-classification metagenome.fna genomad_output /genomad_db
+genomad nn-classification metagenome.fna /genomad_output
+genomad aggregated-classification metagenome.fna /genomad_output
+genomad score-calibration metagenome.fna /genomad_output
+genomad summary metagenome.fna /genomad_output
+```
diff --git a/genovi/0.4.3/Dockerfile b/genovi/0.4.3/Dockerfile
new file mode 100644
index 000000000..5177e2b97
--- /dev/null
+++ b/genovi/0.4.3/Dockerfile
@@ -0,0 +1,82 @@
+FROM python:3.7-slim as app
+
+ARG GENOVI_VER="0.4.3"
+ARG CIRCOS_VER="0.69-9"
+
+LABEL base.image="python:3.7-slim"
+LABEL dockerfile.version="1"
+LABEL software="GenoVi"
+LABEL software.version="${GENOVI_VER}"
+LABEL description="Visualizing circos plots"
+LABEL website="https://github.com/robotoD/GenoVi"
+LABEL license="https://github.com/robotoD/GenoVi/blob/main/LICENSE.txt"
+LABEL maintainer="Erin Young"
+LABEL maintainer.email="eriny@utah.gov"
+
+# most of this is for circos. cairo is for genovi.
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ build-essential \
+ wget \
+ ca-certificates \
+ procps \
+ libgd-dev \
+ perl \
+ cpanminus \
+ pkg-config \
+ make \
+ libgd-graph-perl \
+ libcairo2-dev && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+# these. are. all. for. circos
+RUN cpanm Config::General \
+ Number::Format \
+ ExtUtils::Config \
+ ExtUtils::InstallPaths \
+ Clone \
+ Font::TTF::Font \
+ GD \
+ GD::Polyline \
+ Math::Bezier \
+ Math::Round \
+ Math::VecStat \
+ Params::Validate \
+ Readonly \
+ Regexp::Common \
+ List::MoreUtils \
+ SVG \
+ Set::IntSpan \
+ Statistics::Basic \
+ Text::Format
+
+# there are often more up-to-date versions of genovi on pypi as opposed to github
+# cariosvg is required for creating png, but not listed as a dependency
+RUN pip3 install --no-cache genovi==${GENOVI_VER} cairosvg
+
+# install circos (and a short test)
+RUN wget -q http://circos.ca/distribution/circos-${CIRCOS_VER}.tgz && \
+ tar -xvf circos-${CIRCOS_VER}.tgz && \
+ rm circos-${CIRCOS_VER}.tgz && \
+ cd /circos-${CIRCOS_VER}/bin && \
+ ./list.modules && \
+ ./test.modules
+
+# adding circos to PATH
+ENV PATH=/circos-${CIRCOS_VER}/bin:$PATH \
+ LC_ALL=C.UTF-8
+
+CMD genovi --help
+
+WORKDIR /data
+
+FROM app as test
+
+WORKDIR /test
+
+RUN genovi -h && genovi --version
+
+# using the input files from a recent published version on github
+RUN wget -q https://github.com/robotoD/GenoVi/archive/refs/tags/0.2.16.tar.gz && \
+ tar -vxf 0.2.16.tar.gz && \
+ genovi -i GenoVi-0.2.16/input_test/Corynebacterium_alimapuense_VA37.gbk -s draft -cs paradise --cogs_unclassified -bc white && \
+ genovi -i GenoVi-0.2.16/input_test/Acinetobacter_radioresistens_DD78.gbff -cs strong -s complete --size
\ No newline at end of file
diff --git a/genovi/0.4.3/README.md b/genovi/0.4.3/README.md
new file mode 100644
index 000000000..fa4c1e01b
--- /dev/null
+++ b/genovi/0.4.3/README.md
@@ -0,0 +1,26 @@
+# genovi container
+
+Main tool: [GenoVi](https://github.com/robotoD/GenoVi)
+
+Code repository: https://github.com/robotoD/GenoVi
+
+Additional tools:
+- circos
+- python: 3.7
+
+Basic information on how to use this tool:
+- executable: genovi
+- help: --help
+- version: --version
+- description: GenoVi generates circular genome representations.
+
+> GenoVi generates circular genome representations for complete, draft, and multiple bacterial and archaeal genomes. GenoVi pipeline combines several python scripts to automatically generate all needed files for Circos to generate circular plots, including customisable options for colour palettes, fonts, font format, background colour and scaling options for genomes comprising more than 1 replicon.
+
+Full documentation: https://github.com/robotoD/GenoVi
+
+## Example Usage
+
+```bash
+genovi -i .gbk -s complete -o out
+```
+
diff --git a/gfastats/1.3.7/Dockerfile b/gfastats/1.3.7/Dockerfile
new file mode 100644
index 000000000..487adcfe3
--- /dev/null
+++ b/gfastats/1.3.7/Dockerfile
@@ -0,0 +1,56 @@
+ARG GFASTATS_VER=1.3.7
+
+FROM ubuntu:jammy as app
+
+ARG GFASTATS_VER
+
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="gfastats"
+LABEL software.version=${GFASTATS_VER}
+LABEL description="The swiss army knife for genome assembly."
+LABEL website="https://github.com/vgl-hub/gfastats"
+LABEL license="https://github.com/vgl-hub/gfastats/blob/main/LICENSE"
+LABEL maintainer="Erin Young"
+LABEL maintainer.email="eriny@utah.gov"
+
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ ca-certificates \
+ procps \
+ wget \
+ make \
+ g++ \
+ zlib1g-dev \
+ unzip && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+WORKDIR /usr/local/bin
+
+RUN wget -q https://github.com/vgl-hub/gfastats/releases/download/v${GFASTATS_VER}/gfastats.v${GFASTATS_VER}-linux.zip && \
+ unzip gfastats.v${GFASTATS_VER}-linux.zip && \
+ rm gfastats.v${GFASTATS_VER}-linux.zip && \
+ chmod +x gfastats
+
+ENV PATH="$PATH" \
+ LC_ALL=C
+
+CMD gfastats --help
+
+WORKDIR /data
+
+FROM app as test
+
+ARG GFASTATS_VER
+
+WORKDIR /test
+
+RUN gfastats --help && gfastats --version
+
+RUN wget -q https://github.com/vgl-hub/gfastats/archive/refs/tags/v${GFASTATS_VER}.tar.gz && \
+ tar -xvf v${GFASTATS_VER}.tar.gz
+
+RUN gfastats gfastats-${GFASTATS_VER}/testFiles/random1.fasta -o gfa && \
+ gfastats gfastats-${GFASTATS_VER}/testFiles/random2.gfa2 && \
+ gfastats gfastats-${GFASTATS_VER}/testFiles/random1.fasta -k gfastats-${GFASTATS_VER}/testFiles/random1.instructions.sak -o gfa && \
+ gfastats --tabular --seq-report gfastats-${GFASTATS_VER}/testFiles/random6.circular.gfa
+
\ No newline at end of file
diff --git a/gfastats/1.3.7/README.md b/gfastats/1.3.7/README.md
new file mode 100644
index 000000000..3d9025fd7
--- /dev/null
+++ b/gfastats/1.3.7/README.md
@@ -0,0 +1,18 @@
+# gfastats container
+
+Main tool : [gfastats](https://github.com/vgl-hub/gfastats)
+
+Full documentation: [https://github.com/vgl-hub/gfastats](https://github.com/vgl-hub/gfastats)
+
+> The swiss army knife for genome assembly.
+> gfastats is a single fast and exhaustive tool for summary statistics and simultaneous *fa* (fasta, fastq, gfa [.gz]) genome assembly file manipulation. gfastats also allows seamless fasta<>fastq<>gfa[.gz] conversion.
+
+## Example Usage
+
+```bash
+# from readme
+gfastats input.[fasta|fastq|gfa][.gz] [expected genome size] [header[:start-end]]
+
+# sample usage
+gfastats input.gfa --threads 4 --tabular --seq-report
+```
\ No newline at end of file
diff --git a/gubbins/3.3.3/Dockerfile b/gubbins/3.3.3/Dockerfile
new file mode 100644
index 000000000..98621072d
--- /dev/null
+++ b/gubbins/3.3.3/Dockerfile
@@ -0,0 +1,43 @@
+FROM mambaorg/micromamba:1.5.6 as app
+
+ARG GUBBINS_VER="3.3.3"
+
+USER root
+
+WORKDIR /
+
+LABEL base.image="mambaorg/micromamba:1.5.6"
+LABEL dockerfile.version="1"
+LABEL software="Gubbins"
+LABEL software.version="${GUBBINS_VER}"
+LABEL description="Genealogies Unbiased By recomBinations In Nucleotide Sequences"
+LABEL website="https://github.com/nickjcroucher/gubbins"
+LABEL license="https://github.com/nickjcroucher/gubbins/blob/master/LICENSE"
+LABEL maintainer="Kutluhan Incekara"
+LABEL maintainer.email="kutluhan.incekara@ct.gov"
+
+RUN apt-get update && apt-get install --no-install-recommends -y \
+ procps &&\
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+RUN micromamba install --name base -c conda-forge -c bioconda gubbins=${GUBBINS_VER} && \
+ micromamba clean -a -y && \
+ mkdir /data
+
+ENV PATH="/opt/conda/bin/:${PATH}" \
+ LC_ALL=C.UTF-8
+
+CMD ["run_gubbins.py", "-h"]
+
+WORKDIR /data
+
+FROM app as test
+
+ENV ENV_NAME="base"
+ARG MAMBA_DOCKERFILE_ACTIVATE=1
+
+WORKDIR /test
+
+RUN curl -LJO https://github.com/nickjcroucher/gubbins/raw/master/tests/data/alignment_file_multiple_lines_per_sequence.aln &&\
+ run_gubbins.py alignment_file_multiple_lines_per_sequence.aln
+
diff --git a/gubbins/3.3.3/README.md b/gubbins/3.3.3/README.md
new file mode 100644
index 000000000..40b6416bb
--- /dev/null
+++ b/gubbins/3.3.3/README.md
@@ -0,0 +1,26 @@
+# Gubbins container
+
+Main tool: [Gubbins](https://github.com/nickjcroucher/gubbins)
+
+Code repository: https://github.com/nickjcroucher/gubbins
+
+Additional tools:
+- RAxML: 8.2.12
+- FastTree: 2.1.11
+- IQTree: 2.0.3
+- RAxML-NG: 1.0.1
+- Rapidnj: 2.3.2
+
+Basic information on how to use this tool:
+- executable: run_gubbins.py
+- help: -h
+- version: --version
+- description: Gubbins detects recombinations through the locally elevated densities of polymorphisms that arise when sequence segments are acquired from a donor genetically divergent from the set of analyzed sequences.
+
+Full documentation: https://github.com/nickjcroucher/gubbins/blob/master/docs/gubbins_manual.md
+
+## Example Usage
+
+```bash
+run_gubbins.py fasta_alignment.aln
+```
diff --git a/gubbins/3.3.4/Dockerfile b/gubbins/3.3.4/Dockerfile
new file mode 100644
index 000000000..abe8115b8
--- /dev/null
+++ b/gubbins/3.3.4/Dockerfile
@@ -0,0 +1,42 @@
+FROM mambaorg/micromamba:1.5.8 as app
+
+ARG GUBBINS_VER="3.3.4"
+
+USER root
+
+WORKDIR /
+
+LABEL base.image="mambaorg/micromamba:1.5.8"
+LABEL dockerfile.version="1"
+LABEL software="Gubbins"
+LABEL software.version="${GUBBINS_VER}"
+LABEL description="Genealogies Unbiased By recomBinations In Nucleotide Sequences"
+LABEL website="https://github.com/nickjcroucher/gubbins"
+LABEL license="https://github.com/nickjcroucher/gubbins/blob/master/LICENSE"
+LABEL maintainer="Kutluhan Incekara"
+LABEL maintainer.email="kutluhan.incekara@ct.gov"
+
+RUN apt-get update && apt-get install --no-install-recommends -y \
+ procps &&\
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+RUN micromamba install --name base -c conda-forge -c bioconda gubbins=${GUBBINS_VER} && \
+ micromamba clean -a -y && \
+ mkdir /data
+
+ENV PATH="/opt/conda/bin/:${PATH}" \
+ LC_ALL=C.UTF-8
+
+CMD ["run_gubbins.py", "-h"]
+
+WORKDIR /data
+
+FROM app as test
+
+RUN run_gubbins.py -h
+
+WORKDIR /test
+
+RUN curl -LJO https://github.com/nickjcroucher/gubbins/raw/master/tests/data/alignment_file_multiple_lines_per_sequence.aln &&\
+ run_gubbins.py alignment_file_multiple_lines_per_sequence.aln
+
diff --git a/gubbins/3.3.4/README.md b/gubbins/3.3.4/README.md
new file mode 100644
index 000000000..d34c154d8
--- /dev/null
+++ b/gubbins/3.3.4/README.md
@@ -0,0 +1,26 @@
+# Gubbins container
+
+Main tool: [Gubbins](https://github.com/nickjcroucher/gubbins)
+
+Code repository: https://github.com/nickjcroucher/gubbins
+
+Additional tools:
+- RAxML: 8.2.12
+- FastTree: 2.1.10
+- IQTree: 2.3.0
+- RAxML-NG: 1.0.1
+- Rapidnj: 2.3.2
+
+Basic information on how to use this tool:
+- executable: run_gubbins.py
+- help: -h
+- version: --version
+- description: Gubbins detects recombinations through the locally elevated densities of polymorphisms that arise when sequence segments are acquired from a donor genetically divergent from the set of analyzed sequences.
+
+Full documentation: https://github.com/nickjcroucher/gubbins/blob/master/docs/gubbins_manual.md
+
+## Example Usage
+
+```bash
+run_gubbins.py fasta_alignment.aln
+```
diff --git a/gubbins/3.3.5/Dockerfile b/gubbins/3.3.5/Dockerfile
new file mode 100644
index 000000000..01653cf90
--- /dev/null
+++ b/gubbins/3.3.5/Dockerfile
@@ -0,0 +1,42 @@
+FROM mambaorg/micromamba:1.5.8 as app
+
+ARG GUBBINS_VER="3.3.5"
+
+USER root
+
+WORKDIR /
+
+LABEL base.image="mambaorg/micromamba:1.5.8"
+LABEL dockerfile.version="1"
+LABEL software="Gubbins"
+LABEL software.version="${GUBBINS_VER}"
+LABEL description="Genealogies Unbiased By recomBinations In Nucleotide Sequences"
+LABEL website="https://github.com/nickjcroucher/gubbins"
+LABEL license="https://github.com/nickjcroucher/gubbins/blob/master/LICENSE"
+LABEL maintainer="Kutluhan Incekara"
+LABEL maintainer.email="kutluhan.incekara@ct.gov"
+
+RUN apt-get update && apt-get install --no-install-recommends -y \
+ procps &&\
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+RUN micromamba install --name base -c conda-forge -c bioconda gubbins=${GUBBINS_VER} && \
+ micromamba clean -afy && \
+ mkdir /data
+
+ENV PATH="/opt/conda/bin/:${PATH}" \
+ LC_ALL=C.UTF-8
+
+CMD ["run_gubbins.py", "-h"]
+
+WORKDIR /data
+
+FROM app as test
+
+RUN run_gubbins.py -h
+
+WORKDIR /test
+
+RUN curl -LJO https://github.com/nickjcroucher/gubbins/raw/master/tests/data/alignment_file_multiple_lines_per_sequence.aln &&\
+ run_gubbins.py alignment_file_multiple_lines_per_sequence.aln
+
diff --git a/gubbins/3.3.5/README.md b/gubbins/3.3.5/README.md
new file mode 100644
index 000000000..ef412b0e0
--- /dev/null
+++ b/gubbins/3.3.5/README.md
@@ -0,0 +1,19 @@
+# Gubbins container
+
+Main tool: [Gubbins](https://github.com/nickjcroucher/gubbins)
+
+Code repository: https://github.com/nickjcroucher/gubbins
+
+Basic information on how to use this tool:
+- executable: run_gubbins.py
+- help: -h
+- version: --version
+- description: Gubbins detects recombinations through the locally elevated densities of polymorphisms that arise when sequence segments are acquired from a donor genetically divergent from the set of analyzed sequences.
+
+Full documentation: https://github.com/nickjcroucher/gubbins/blob/master/docs/gubbins_manual.md
+
+## Example Usage
+
+```bash
+run_gubbins.py fasta_alignment.aln
+```
diff --git a/heatcluster/1.0.2c/Dockerfile b/heatcluster/1.0.2c/Dockerfile
new file mode 100644
index 000000000..e426a7222
--- /dev/null
+++ b/heatcluster/1.0.2c/Dockerfile
@@ -0,0 +1,68 @@
+ARG HEATCLUSTER_VER="1.0.2c"
+
+FROM ubuntu:jammy as app
+
+ARG HEATCLUSTER_VER
+
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="HeatCluster"
+LABEL software.version="${HEATCLUSTER_VER}"
+LABEL description="Creates a heatmap from SNP-dists output"
+LABEL website="https://github.com/DrB-S/heatcluster"
+LABEL license="https://github.com/DrB-S/heatcluster/blob/main/LICENSE"
+LABEL maintainer="Erin Young"
+LABEL maintainer.email="eriny@utah.gov"
+
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ wget \
+ procps \
+ ca-certificates \
+ python3 \
+ python3-pip && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+WORKDIR /heatcluster
+
+RUN pip3 install pandas numpy seaborn matplotlib pathlib
+
+RUN wget -q https://github.com/DrB-S/heatcluster/archive/refs/tags/${HEATCLUSTER_VER}.tar.gz && \
+ tar -xzf ${HEATCLUSTER_VER}.tar.gz && \
+ ls && \
+ cp heatcluster-${HEATCLUSTER_VER}/heatcluster.py /heatcluster/heatcluster.py && \
+ chmod +x /heatcluster/heatcluster.py && \
+ rm -rf heatcluster-${HEATCLUSTER_VER} && \
+ rm ${HEATCLUSTER_VER}.tar.gz && \
+ mkdir /data
+
+ENV PATH="/heatcluster/:$PATH" \
+ LC_ALL=C
+
+# 'CMD' instructions set a default command when the container is run. This is typically 'tool --help.'
+CMD [ "heatcluster.py", "--help" ]
+
+# 'WORKDIR' sets working directory
+WORKDIR /data
+
+# A second FROM insruction creates a new stage
+FROM app as test
+
+# set working directory so that all test inputs & outputs are kept in /test
+WORKDIR /test
+
+ARG HEATCLUSTER_VER
+
+RUN heatcluster.py --help && heatcluster.py --version
+
+RUN wget -q https://github.com/DrB-S/heatcluster/archive/refs/tags/${HEATCLUSTER_VER}.tar.gz && \
+ tar -xzf ${HEATCLUSTER_VER}.tar.gz
+
+WORKDIR /test/test_small
+
+RUN heatcluster.py -i /test/heatcluster-${HEATCLUSTER_VER}/test/small_matrix.csv && \
+ ls SNP_matrix.pdf sorted_matrix.csv
+
+WORKDIR /test/test_med
+
+RUN heatcluster.py -i /test/heatcluster-${HEATCLUSTER_VER}/test/med_matrix.txt -o test5 && \
+ ls sorted_matrix.csv test5.pdf
diff --git a/heatcluster/1.0.2c/README.md b/heatcluster/1.0.2c/README.md
new file mode 100644
index 000000000..5ad90919d
--- /dev/null
+++ b/heatcluster/1.0.2c/README.md
@@ -0,0 +1,21 @@
+# HeatCluster container
+
+Main tool: [HeatCluster](https://github.com/DrB-S/heatcluster)
+
+Code repository: https://github.com/DrB-S/heatcluster
+
+Basic information on how to use this tool:
+- executable: heatcluster.py
+- help: -h
+- version: -v
+- description: Creates heatmap from SNP matrix generated from SNP dists
+
+Does not currently support molten output, but may in the future.
+
+Full documentation: https://github.com/DrB-S/heatcluster
+
+## Example Usage
+
+```bash
+heatcluster.py -i matrix.csv
+```
diff --git a/hmmer/3.4/Dockerfile b/hmmer/3.4/Dockerfile
new file mode 100644
index 000000000..aff896798
--- /dev/null
+++ b/hmmer/3.4/Dockerfile
@@ -0,0 +1,53 @@
+ARG HMMER_VER="3.4"
+
+## Builder ##
+FROM ubuntu:jammy as builder
+
+ARG HMMER_VER
+
+RUN apt-get update && apt-get install --no-install-recommends -y \
+ wget \
+ build-essential &&\
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+RUN wget http://eddylab.org/software/hmmer/hmmer-${HMMER_VER}.tar.gz &&\
+ tar -xvf hmmer-${HMMER_VER}.tar.gz &&\
+ cd hmmer-${HMMER_VER} &&\
+ ./configure &&\
+ make && make install
+
+## App ##
+FROM ubuntu:jammy as app
+
+ARG HMMER_VER
+
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="HMMER"
+LABEL software.version="${HMMER_VER}"
+LABEL description="Biological sequence analysis using profile hidden Markov models"
+LABEL website="http://hmmer.org/"
+LABEL license="https://github.com/EddyRivasLab/hmmer/blob/master/LICENSE"
+LABEL maintainer="Kutluhan Incekara"
+LABEL maintainer.email="kutluhan.incekara@ct.gov"
+
+# get compiled binaries from builder
+COPY --from=builder /usr/local/bin/ /usr/local/bin/
+
+ENV LC_ALL=C
+
+CMD hmmbuild -h && hmmsearch -h
+
+WORKDIR /data
+
+## Test ##
+FROM app as test
+
+ARG HMMER_VER
+
+# get test data from source package
+COPY --from=builder /hmmer-${HMMER_VER}/tutorial/* .
+
+RUN hmmbuild globins4.hmm globins4.sto &&\
+ hmmsearch globins4.hmm globins45.fa | tee test.out
+
diff --git a/hmmer/3.4/Readme.md b/hmmer/3.4/Readme.md
new file mode 100644
index 000000000..23080905b
--- /dev/null
+++ b/hmmer/3.4/Readme.md
@@ -0,0 +1,44 @@
+# HMMER container
+
+Main tool : [HMMER](http://hmmer.org/)
+
+Code repository: https://github.com/EddyRivasLab/hmmer
+
+Basic information on how to use this tool:
+- executables:
+ - alimask
+ - hmmalign
+ - hmmbuild
+ - hmmconvert
+ - hmmemit
+ - hmmfetch
+ - hmmlogo
+ - hmmpgmd
+ - hmmpgmd_shard
+ - hmmpress
+ - hmmscan
+ - hmmsearch
+ - hmmsim
+ - hmmstat
+ - jackhmmer
+ - makehmmerdb
+ - nhmmer
+ - nhmmscan
+ - phmmer
+
+- help: -h
+- version: -v
+- description:
+>HMMER searches biological sequence databases for homologous sequences, using either single sequences or multiple sequence alignments as queries. HMMER implements a technology called "profile hidden Markov models" (profile HMMs).
+
+Full documentation: http://eddylab.org/software/hmmer/Userguide.pdf
+
+# Example commands
+
+```bash
+# build a profile from an alignment
+hmmbuild hmm_file msa_file
+
+# search profile against a sequence database
+hmmsearch hmm_file seqs.fa
+```
diff --git a/htslib/1.19/Dockerfile b/htslib/1.19/Dockerfile
new file mode 100644
index 000000000..00be0e2b1
--- /dev/null
+++ b/htslib/1.19/Dockerfile
@@ -0,0 +1,85 @@
+# for easy upgrade later. ARG variables only persist during build time
+ARG HTSLIB_VER="1.19"
+
+FROM ubuntu:jammy as builder
+
+ARG HTSLIB_VER
+
+# install dependencies, cleanup apt garbage
+# It's helpful when they're all listed on https://github.com/samtools/htslib/blob/develop/INSTALL
+RUN apt-get update && apt-get install --no-install-recommends -y \
+ wget \
+ ca-certificates \
+ make \
+ bzip2 \
+ autoconf \
+ automake \
+ make \
+ gcc \
+ perl \
+ zlib1g-dev \
+ libbz2-dev \
+ liblzma-dev \
+ libcurl4-gnutls-dev \
+ libssl-dev \
+ procps && \
+ rm -rf /var/lib/apt/lists/* && apt-get autoclean
+
+# get htslib, compile, install, run test suite
+RUN wget -q https://github.com/samtools/htslib/releases/download/${HTSLIB_VER}/htslib-${HTSLIB_VER}.tar.bz2 && \
+ tar -vxjf htslib-${HTSLIB_VER}.tar.bz2 && \
+ rm -v htslib-${HTSLIB_VER}.tar.bz2 && \
+ cd htslib-${HTSLIB_VER} && \
+ make && \
+ make install && \
+ make test
+
+### start of app stage ###
+FROM ubuntu:jammy as app
+
+ARG HTSLIB_VER
+
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="htslib"
+LABEL software.version="${HTSLIB_VER}"
+LABEL description="A C library for reading/writing high-throughput sequencing data"
+LABEL website="https://github.com/samtools/htslib"
+LABEL license="https://github.com/samtools/htslib/blob/develop/LICENSE"
+LABEL maintainer="Erin Young"
+LABEL maintainer.email="eriny@utah.gov"
+LABEL maintainer2="Curtis Kapsak"
+LABEL maintainer2.email="kapsakcj@gmail.com"
+
+# install runtime dependencies & cleanup apt garbage
+# installed as recommend here: https://github.com/samtools/htslib/blob/develop/INSTALL#L31
+RUN apt-get update && apt-get install --no-install-recommends -y \
+ bzip2 \
+ zlib1g-dev \
+ libbz2-dev \
+ liblzma-dev \
+ libcurl4-gnutls-dev \
+ ca-certificates \
+ && apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+# copy in htslib executables from builder stage
+COPY --from=builder /usr/local/bin/* /usr/local/bin/
+
+# set locale settings for singularity compatibility
+ENV LC_ALL=C
+
+# set working directory
+WORKDIR /data
+
+# default command is to show help options
+CMD ["htsfile", "--help"]
+
+### start of test stage ###
+FROM app as test
+
+# check that these three executables are available
+RUN bgzip --help && tabix --help && htsfile --help
+
+# FYI Test suite "make test" now performed in the builder stage since app and
+# test stages do not include htslib source code.
+# This is to avoid having to re-download source code simply to run test suite
\ No newline at end of file
diff --git a/htslib/1.19/README.md b/htslib/1.19/README.md
new file mode 100644
index 000000000..7d03b6333
--- /dev/null
+++ b/htslib/1.19/README.md
@@ -0,0 +1,26 @@
+# htslib container
+
+Main tool:
+
+* [https://www.htslib.org/](https://www.htslib.org/)
+* [GitHub](https://github.com/samtools/htslib)
+
+Additional tools:
+
+* perl 5.34.0
+
+## Example Usage
+
+```bash
+# determine file formats for various BAM and SAM files
+$ htsfile tests/SARS-CoV-2/SRR13957123.primertrim.sorted.bam
+tests/SARS-CoV-2/SRR13957123.primertrim.sorted.bam: BAM version 1 compressed sequence data
+
+$ htsfile ce_tag_padded.sam
+ce_tag_padded.sam: SAM version 1.4 sequence text
+
+# compresses sample.fastq to sample.fastq.gz in BGZF format (blocked GNU Zip Format)
+$ bgzip sample.fastq
+```
+
+Better documentation can be found at [https://www.htslib.org/doc/samtools.html](https://www.htslib.org/doc/samtools.html)
diff --git a/htslib/1.20.c/Dockerfile b/htslib/1.20.c/Dockerfile
new file mode 100644
index 000000000..bc1b1d8ed
--- /dev/null
+++ b/htslib/1.20.c/Dockerfile
@@ -0,0 +1,97 @@
+# for easy upgrade later. ARG variables only persist during build time
+ARG HTSLIB_VER="1.20"
+
+FROM ubuntu:jammy as builder
+
+ARG HTSLIB_VER
+
+# install dependencies, cleanup apt garbage
+# It's helpful when they're all listed on https://github.com/samtools/htslib/blob/develop/INSTALL
+RUN apt-get update && apt-get install --no-install-recommends -y \
+ wget \
+ ca-certificates \
+ make \
+ bzip2 \
+ autoconf \
+ automake \
+ make \
+ gcc \
+ perl \
+ zlib1g-dev \
+ libbz2-dev \
+ liblzma-dev \
+ libcurl4-gnutls-dev \
+ libssl-dev \
+ libdeflate-dev \
+ procps && \
+ rm -rf /var/lib/apt/lists/* && apt-get autoclean
+
+# get htslib, compile, install, run test suite
+RUN wget -q https://github.com/samtools/htslib/releases/download/${HTSLIB_VER}/htslib-${HTSLIB_VER}.tar.bz2 && \
+ tar -vxjf htslib-${HTSLIB_VER}.tar.bz2 && \
+ rm -v htslib-${HTSLIB_VER}.tar.bz2 && \
+ cd htslib-${HTSLIB_VER} && \
+ ./configure && \
+ make && \
+ make install && \
+ make test
+
+### start of app stage ###
+FROM ubuntu:jammy as app
+
+ARG HTSLIB_VER
+
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="htslib"
+LABEL software.version="${HTSLIB_VER}"
+LABEL description="A C library for reading/writing high-throughput sequencing data"
+LABEL website="https://github.com/samtools/htslib"
+LABEL license="https://github.com/samtools/htslib/blob/develop/LICENSE"
+LABEL maintainer="Erin Young"
+LABEL maintainer.email="eriny@utah.gov"
+LABEL maintainer2="Curtis Kapsak"
+LABEL maintainer2.email="kapsakcj@gmail.com"
+
+# install runtime dependencies & cleanup apt garbage
+# installed as recommend here: https://github.com/samtools/htslib/blob/develop/INSTALL#L31
+RUN apt-get update && apt-get install --no-install-recommends -y \
+ bzip2 \
+ zlib1g \
+ libbz2-1.0 \
+ liblzma5 \
+ libcurl3-gnutls \
+ libdeflate0 \
+ ca-certificates \
+ && apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+# copy in htslib executables from builder stage
+COPY --from=builder /usr/local/bin/* /usr/local/bin/
+COPY --from=builder /usr/local/lib/ /usr/local/lib/
+COPY --from=builder /usr/local/include/ /usr/local/include/
+
+# set locale settings for singularity compatibility
+ENV LC_ALL=C
+
+# set working directory
+WORKDIR /data
+
+# default command is to show help options
+CMD ["htsfile", "--help"]
+
+### start of test stage ###
+FROM app as test
+
+# check that these three executables are available
+RUN bgzip --help && tabix --help && htsfile --help
+
+RUN apt-get update && apt-get install --no-install-recommends -y wget
+
+# use on actual files
+RUN wget -q https://github.com/StaPH-B/docker-builds/raw/master/tests/SARS-CoV-2/SRR13957123_1.fastq.gz && \
+ gunzip SRR13957123_1.fastq.gz && \
+ bgzip SRR13957123_1.fastq
+
+# FYI Test suite "make test" now performed in the builder stage since app and
+# test stages do not include htslib source code.
+# This is to avoid having to re-download source code simply to run test suite
\ No newline at end of file
diff --git a/htslib/1.20.c/README.md b/htslib/1.20.c/README.md
new file mode 100644
index 000000000..a165c9212
--- /dev/null
+++ b/htslib/1.20.c/README.md
@@ -0,0 +1,35 @@
+# htslib container
+
+Main tool: [htslib](https://www.htslib.org/)
+
+Code repository: https://github.com/samtools/htslib
+
+Additional tools:
+
+* perl 5.34.0
+
+Basic information on how to use this tool:
+- executable: htsfile
+- help: --help
+- version: --version
+- description: The htsfile utility attempts to identify what kind of high-throughput sequencing data files the specified files are, and provides minimal viewing capabilities for some kinds of data file.
+
+Additional information:
+
+This container includes htslib v1.20 compiled with **libdeflate** for a better cloud performance.
+
+Full documentation: https://www.htslib.org/doc/samtools.html
+
+## Example Usage
+
+```bash
+# determine file formats for various BAM and SAM files
+$ htsfile tests/SARS-CoV-2/SRR13957123.primertrim.sorted.bam
+tests/SARS-CoV-2/SRR13957123.primertrim.sorted.bam: BAM version 1 compressed sequence data
+
+$ htsfile ce_tag_padded.sam
+ce_tag_padded.sam: SAM version 1.4 sequence text
+
+# compresses sample.fastq to sample.fastq.gz in BGZF format (blocked GNU Zip Format)
+$ bgzip sample.fastq
+```
diff --git a/htslib/1.20/Dockerfile b/htslib/1.20/Dockerfile
new file mode 100644
index 000000000..af22fbeee
--- /dev/null
+++ b/htslib/1.20/Dockerfile
@@ -0,0 +1,94 @@
+# for easy upgrade later. ARG variables only persist during build time
+ARG HTSLIB_VER="1.20"
+
+FROM ubuntu:jammy as builder
+
+ARG HTSLIB_VER
+
+# install dependencies, cleanup apt garbage
+# It's helpful when they're all listed on https://github.com/samtools/htslib/blob/develop/INSTALL
+RUN apt-get update && apt-get install --no-install-recommends -y \
+ wget \
+ ca-certificates \
+ make \
+ bzip2 \
+ autoconf \
+ automake \
+ make \
+ gcc \
+ perl \
+ zlib1g-dev \
+ libbz2-dev \
+ liblzma-dev \
+ libcurl4-gnutls-dev \
+ libssl-dev \
+ procps && \
+ rm -rf /var/lib/apt/lists/* && apt-get autoclean
+
+# get htslib, compile, install, run test suite
+RUN wget -q https://github.com/samtools/htslib/releases/download/${HTSLIB_VER}/htslib-${HTSLIB_VER}.tar.bz2 && \
+ tar -vxjf htslib-${HTSLIB_VER}.tar.bz2 && \
+ rm -v htslib-${HTSLIB_VER}.tar.bz2 && \
+ cd htslib-${HTSLIB_VER} && \
+ make && \
+ make install && \
+ make test
+
+### start of app stage ###
+FROM ubuntu:jammy as app
+
+ARG HTSLIB_VER
+
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="htslib"
+LABEL software.version="${HTSLIB_VER}"
+LABEL description="A C library for reading/writing high-throughput sequencing data"
+LABEL website="https://github.com/samtools/htslib"
+LABEL license="https://github.com/samtools/htslib/blob/develop/LICENSE"
+LABEL maintainer="Erin Young"
+LABEL maintainer.email="eriny@utah.gov"
+LABEL maintainer2="Curtis Kapsak"
+LABEL maintainer2.email="kapsakcj@gmail.com"
+
+# install runtime dependencies & cleanup apt garbage
+# installed as recommend here: https://github.com/samtools/htslib/blob/develop/INSTALL#L31
+RUN apt-get update && apt-get install --no-install-recommends -y \
+ bzip2 \
+ zlib1g-dev \
+ libbz2-dev \
+ liblzma-dev \
+ libcurl4-gnutls-dev \
+ ca-certificates \
+ && apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+# copy in htslib executables from builder stage
+COPY --from=builder /usr/local/bin/* /usr/local/bin/
+COPY --from=builder /usr/local/lib/ /usr/local/lib/
+COPY --from=builder /usr/local/include/ /usr/local/include/
+
+# set locale settings for singularity compatibility
+ENV LC_ALL=C
+
+# set working directory
+WORKDIR /data
+
+# default command is to show help options
+CMD ["htsfile", "--help"]
+
+### start of test stage ###
+FROM app as test
+
+# check that these three executables are available
+RUN bgzip --help && tabix --help && htsfile --help
+
+RUN apt-get update && apt-get install --no-install-recommends -y wget
+
+# use on actual files
+RUN wget -q https://github.com/StaPH-B/docker-builds/raw/master/tests/SARS-CoV-2/SRR13957123_1.fastq.gz && \
+ gunzip SRR13957123_1.fastq.gz && \
+ bgzip SRR13957123_1.fastq
+
+# FYI Test suite "make test" now performed in the builder stage since app and
+# test stages do not include htslib source code.
+# This is to avoid having to re-download source code simply to run test suite
\ No newline at end of file
diff --git a/htslib/1.20/README.md b/htslib/1.20/README.md
new file mode 100644
index 000000000..7d03b6333
--- /dev/null
+++ b/htslib/1.20/README.md
@@ -0,0 +1,26 @@
+# htslib container
+
+Main tool:
+
+* [https://www.htslib.org/](https://www.htslib.org/)
+* [GitHub](https://github.com/samtools/htslib)
+
+Additional tools:
+
+* perl 5.34.0
+
+## Example Usage
+
+```bash
+# determine file formats for various BAM and SAM files
+$ htsfile tests/SARS-CoV-2/SRR13957123.primertrim.sorted.bam
+tests/SARS-CoV-2/SRR13957123.primertrim.sorted.bam: BAM version 1 compressed sequence data
+
+$ htsfile ce_tag_padded.sam
+ce_tag_padded.sam: SAM version 1.4 sequence text
+
+# compresses sample.fastq to sample.fastq.gz in BGZF format (blocked GNU Zip Format)
+$ bgzip sample.fastq
+```
+
+Better documentation can be found at [https://www.htslib.org/doc/samtools.html](https://www.htslib.org/doc/samtools.html)
diff --git a/iqtree2/2.2.2.7/Dockerfile b/iqtree2/2.2.2.7/Dockerfile
new file mode 100644
index 000000000..f65bbac4c
--- /dev/null
+++ b/iqtree2/2.2.2.7/Dockerfile
@@ -0,0 +1,52 @@
+ARG IQTREE2_VER="2.2.2.7"
+
+FROM ubuntu:jammy as app
+
+# for easy upgrade later. ARG variables only persist during build time.
+ARG IQTREE2_VER
+
+# metadata
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="IQ-Tree2"
+LABEL software.version="${IQTREE2_VER}"
+LABEL description="Efficient software for phylogenomic inference"
+LABEL website="http://www.iqtree.org/"
+LABEL source.code.website="https://github.com/iqtree/iqtree2"
+LABEL license="https://github.com/iqtree/iqtree2/blob/master/LICENSE"
+LABEL maintainer="Jade Wang"
+LABEL maintainer.email="jwang7@health.nyc.gov"
+LABEL maintainer2="Erin Young"
+LABEL maintainer2.email="eriny@utah.gov"
+
+#install dependencies
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ wget ca-certificates procps && \
+ apt-get autoclean && \
+ rm -rf /var/lib/apt/lists/*
+
+# download, uncompress iqtree2 tarball; make /data
+RUN wget https://github.com/iqtree/iqtree2/releases/download/v${IQTREE2_VER}/iqtree-${IQTREE2_VER}-Linux.tar.gz && \
+ tar -xvf iqtree-${IQTREE2_VER}-Linux.tar.gz && \
+ rm -v iqtree-${IQTREE2_VER}-Linux.tar.gz && \
+ mkdir /data
+
+# set PATH and locale settings for singularity compatibility
+ENV PATH="/iqtree-${IQTREE2_VER}-Linux/bin:${PATH}"\
+ LC_ALL=C
+
+# final working directory is /data
+WORKDIR /data
+
+# default command is to pull up help options
+CMD [ "iqtree2", "--help" ]
+
+FROM app as test
+
+ARG IQTREE2_VER
+
+# print version and help
+RUN iqtree2 --version && iqtree2 --help
+
+###TEST TREE TOPOLOGY
+RUN iqtree2 -s /iqtree-${IQTREE2_VER}-Linux/example.phy --rate
diff --git a/iqtree2/2.2.2.7/README.md b/iqtree2/2.2.2.7/README.md
new file mode 100644
index 000000000..4c53969e5
--- /dev/null
+++ b/iqtree2/2.2.2.7/README.md
@@ -0,0 +1,28 @@
+# IQ-TREE2 container
+
+Main tool : [iqtree2](https://github.com/iqtree/iqtree2)
+
+Full documentation: [https://github.com/rrwick/Polypolish/wiki](http://www.iqtree.org/doc/)
+
+| Efficient and versatile phylogenomic software by maximum likelihood
+
+## Example Usage
+
+An example phylip file (IQ-TREE2 also supports other file formats such as FASTA, NEXUS, CLUSTALW)
+
+```
+7 28
+Frog AAATTTGGTCCTGTGATTCAGCAGTGAT
+Turtle CTTCCACACCCCAGGACTCAGCAGTGAT
+Bird CTACCACACCCCAGGACTCAGCAGTAAT
+Human CTACCACACCCCAGGAAACAGCAGTGAT
+Cow CTACCACACCCCAGGAAACAGCAGTGAC
+Whale CTACCACGCCCCAGGACACAGCAGTGAT
+Mouse CTACCACACCCCAGGACTCAGCAGTGAT
+```
+
+Can be aligned with the following command:
+
+```bash
+iqtree2 -s example.phy --redo
+```
diff --git a/iqtree2/2.3.1/Dockerfile b/iqtree2/2.3.1/Dockerfile
new file mode 100644
index 000000000..0f41de41c
--- /dev/null
+++ b/iqtree2/2.3.1/Dockerfile
@@ -0,0 +1,52 @@
+ARG IQTREE2_VER="2.3.1"
+
+FROM ubuntu:jammy as app
+
+# for easy upgrade later. ARG variables only persist during build time.
+ARG IQTREE2_VER
+
+# metadata
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="IQ-Tree2"
+LABEL software.version="${IQTREE2_VER}"
+LABEL description="Efficient software for phylogenomic inference"
+LABEL website="http://www.iqtree.org/"
+LABEL source.code.website="https://github.com/iqtree/iqtree2"
+LABEL license="https://github.com/iqtree/iqtree2/blob/master/LICENSE"
+LABEL maintainer="Jade Wang"
+LABEL maintainer.email="jwang7@health.nyc.gov"
+LABEL maintainer2="Erin Young"
+LABEL maintainer2.email="eriny@utah.gov"
+
+#install dependencies
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ wget ca-certificates procps && \
+ apt-get autoclean && \
+ rm -rf /var/lib/apt/lists/*
+
+# download, uncompress iqtree2 tarball; make /data
+RUN wget https://github.com/iqtree/iqtree2/releases/download/v${IQTREE2_VER}/iqtree-${IQTREE2_VER}-Linux.tar.gz && \
+ tar -xvf iqtree-${IQTREE2_VER}-Linux.tar.gz && \
+ rm -v iqtree-${IQTREE2_VER}-Linux.tar.gz && \
+ mkdir /data
+
+# set PATH and locale settings for singularity compatibility
+ENV PATH="/iqtree-${IQTREE2_VER}-Linux/bin:${PATH}"\
+ LC_ALL=C
+
+# final working directory is /data
+WORKDIR /data
+
+# default command is to pull up help options
+CMD [ "iqtree2", "--help" ]
+
+FROM app as test
+
+ARG IQTREE2_VER
+
+# print version and help
+RUN iqtree2 --version && iqtree2 --help
+
+###TEST TREE TOPOLOGY
+RUN iqtree2 -s /iqtree-${IQTREE2_VER}-Linux/example.phy --rate
diff --git a/iqtree2/2.3.1/README.md b/iqtree2/2.3.1/README.md
new file mode 100644
index 000000000..4c53969e5
--- /dev/null
+++ b/iqtree2/2.3.1/README.md
@@ -0,0 +1,28 @@
+# IQ-TREE2 container
+
+Main tool : [iqtree2](https://github.com/iqtree/iqtree2)
+
+Full documentation: [https://github.com/rrwick/Polypolish/wiki](http://www.iqtree.org/doc/)
+
+| Efficient and versatile phylogenomic software by maximum likelihood
+
+## Example Usage
+
+An example phylip file (IQ-TREE2 also supports other file formats such as FASTA, NEXUS, CLUSTALW)
+
+```
+7 28
+Frog AAATTTGGTCCTGTGATTCAGCAGTGAT
+Turtle CTTCCACACCCCAGGACTCAGCAGTGAT
+Bird CTACCACACCCCAGGACTCAGCAGTAAT
+Human CTACCACACCCCAGGAAACAGCAGTGAT
+Cow CTACCACACCCCAGGAAACAGCAGTGAC
+Whale CTACCACGCCCCAGGACACAGCAGTGAT
+Mouse CTACCACACCCCAGGACTCAGCAGTGAT
+```
+
+Can be aligned with the following command:
+
+```bash
+iqtree2 -s example.phy --redo
+```
diff --git a/iqtree2/2.3.4/Dockerfile b/iqtree2/2.3.4/Dockerfile
new file mode 100644
index 000000000..323dbbf2a
--- /dev/null
+++ b/iqtree2/2.3.4/Dockerfile
@@ -0,0 +1,52 @@
+ARG IQTREE2_VER="2.3.4"
+
+FROM ubuntu:jammy as app
+
+# for easy upgrade later. ARG variables only persist during build time.
+ARG IQTREE2_VER
+
+# metadata
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="IQ-Tree2"
+LABEL software.version="${IQTREE2_VER}"
+LABEL description="Efficient software for phylogenomic inference"
+LABEL website="http://www.iqtree.org/"
+LABEL source.code.website="https://github.com/iqtree/iqtree2"
+LABEL license="https://github.com/iqtree/iqtree2/blob/master/LICENSE"
+LABEL maintainer="Jade Wang"
+LABEL maintainer.email="jwang7@health.nyc.gov"
+LABEL maintainer2="Erin Young"
+LABEL maintainer2.email="eriny@utah.gov"
+
+#install dependencies
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ wget ca-certificates procps && \
+ apt-get autoclean && \
+ rm -rf /var/lib/apt/lists/*
+
+# download, uncompress iqtree2 tarball; make /data
+RUN wget -q https://github.com/iqtree/iqtree2/releases/download/v${IQTREE2_VER}/iqtree-${IQTREE2_VER}-Linux-intel.tar.gz && \
+ tar -xvf iqtree-${IQTREE2_VER}-Linux-intel.tar.gz && \
+ rm -v iqtree-${IQTREE2_VER}-Linux-intel.tar.gz && \
+ mkdir /data
+
+# set PATH and locale settings for singularity compatibility
+ENV PATH="/iqtree-${IQTREE2_VER}-Linux-intel/bin:${PATH}"\
+ LC_ALL=C
+
+# final working directory is /data
+WORKDIR /data
+
+# default command is to pull up help options
+CMD [ "iqtree2", "--help" ]
+
+FROM app as test
+
+ARG IQTREE2_VER
+
+# print version and help
+RUN iqtree2 --version && iqtree2 --help
+
+###TEST TREE TOPOLOGY
+RUN iqtree2 -s /iqtree-${IQTREE2_VER}-Linux-intel/example.phy --rate
diff --git a/iqtree2/2.3.4/README.md b/iqtree2/2.3.4/README.md
new file mode 100644
index 000000000..4c53969e5
--- /dev/null
+++ b/iqtree2/2.3.4/README.md
@@ -0,0 +1,28 @@
+# IQ-TREE2 container
+
+Main tool : [iqtree2](https://github.com/iqtree/iqtree2)
+
+Full documentation: [https://github.com/rrwick/Polypolish/wiki](http://www.iqtree.org/doc/)
+
+| Efficient and versatile phylogenomic software by maximum likelihood
+
+## Example Usage
+
+An example phylip file (IQ-TREE2 also supports other file formats such as FASTA, NEXUS, CLUSTALW)
+
+```
+7 28
+Frog AAATTTGGTCCTGTGATTCAGCAGTGAT
+Turtle CTTCCACACCCCAGGACTCAGCAGTGAT
+Bird CTACCACACCCCAGGACTCAGCAGTAAT
+Human CTACCACACCCCAGGAAACAGCAGTGAT
+Cow CTACCACACCCCAGGAAACAGCAGTGAC
+Whale CTACCACGCCCCAGGACACAGCAGTGAT
+Mouse CTACCACACCCCAGGACTCAGCAGTGAT
+```
+
+Can be aligned with the following command:
+
+```bash
+iqtree2 -s example.phy --redo
+```
diff --git a/irma/1.1.4/Dockerfile b/irma/1.1.4/Dockerfile
new file mode 100644
index 000000000..68213a3f6
--- /dev/null
+++ b/irma/1.1.4/Dockerfile
@@ -0,0 +1,45 @@
+FROM ubuntu:jammy as app
+
+ARG IRMA_VER="1.1.4"
+
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="IRMA"
+LABEL software.version=$IRMA_VER
+LABEL description="IRMA was designed for the robust assembly, variant calling, and phasing of highly variable RNA viruses. Currently IRMA is deployed with modules for influenza, ebolavirus and coronavirus."
+LABEL website="https://wonder.cdc.gov/amd/flu/irma/"
+LABEL license="https://wonder.cdc.gov/amd/flu/irma/disclaimer.html"
+LABEL maintainer="John Arnn"
+LABEL maintainer.email="jarnn@utah.gov"
+
+ARG DEBIAN_FRONTEND=noninteractive
+
+RUN apt-get update && apt-get install --no-install-recommends -y \
+ perl \
+ r-base \
+ unzip \
+ wget && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+# install IRMA
+RUN wget https://wonder.cdc.gov/amd/flu/irma/flu-amd-202402.zip &&\
+ unzip flu-amd-202402.zip &&\
+ rm flu-amd-202402.zip
+
+ENV PATH="${PATH}:/flu-amd" \
+ LC_ALL=C
+
+CMD ["IRMA"]
+
+WORKDIR /data
+
+## Test ##
+FROM app as test
+
+RUN cd /flu-amd/tests && \
+ ./test_run.sh
+
+RUN wget ftp://ftp.sra.ebi.ac.uk/vol1/fastq/SRR179/072/SRR17940172/SRR17940172_1.fastq.gz && \
+ wget ftp://ftp.sra.ebi.ac.uk/vol1/fastq/SRR179/072/SRR17940172/SRR17940172_2.fastq.gz
+
+RUN IRMA FLU SRR17940172_1.fastq.gz SRR17940172_2.fastq.gz SRR17940172
diff --git a/irma/1.1.4/README.md b/irma/1.1.4/README.md
new file mode 100644
index 000000000..ce658ee0f
--- /dev/null
+++ b/irma/1.1.4/README.md
@@ -0,0 +1,37 @@
+# IRMA container
+Main tool: [IRMA](https://wonder.cdc.gov/amd/flu/irma/)
+
+Basic information on how to use this tool:
+- executable: IRMA
+- help:
+- version:
+- description: IRMA was designed for the robust assembly, variant calling, and phasing of highly variable RNA viruses. Currently IRMA is deployed with modules for influenza, ebolavirus and coronavirus.
+
+Additional information:
+
+The IRMA team at the CDC maintain a docker image as well at https://hub.docker.com/r/cdcgov/irma. The StaPH-B docker image is not maintained by IRMA developers at the CDC, so if users encounter issues with this docker image specifically they should file an issue on this github repo and do not contact CDC for support.
+
+Full documentation: https://wonder.cdc.gov/amd/flu/irma/
+
+# Example Usage
+```{bash}
+# Paired-end files:
+# USAGE: IRMA
+
+IRMA FLU Sample1_R1.fastq.gz Sample1_R2.fastq.gz Sample1
+
+IRMA EBOLA Patient1_R1.fastq Patient1_R2.fastq MyPatient
+
+IRMA FLU-utr Sample1_R1.fastq.gz Sample1_R2.fastq.gz Sample1WithUTRs
+
+# Single read files:
+# USAGE: IRMA
+
+IRMA FLU SingleEndIllumina.fastq.gz MyIlluminaSample
+
+IRMA FLU-pacbio ccs_reads.fastq MyPacBioSample
+
+IRMA FLU-pgm pgm_reads.fastq MyIonTorrentSample
+
+```
+
diff --git a/ispcr/33/Dockerfile b/ispcr/33/Dockerfile
new file mode 100644
index 000000000..230c6b4f6
--- /dev/null
+++ b/ispcr/33/Dockerfile
@@ -0,0 +1,57 @@
+ARG ISPCR_VER="33"
+
+## Builder ##
+FROM ubuntu:jammy as builder
+
+ARG ISPCR_VER
+ARG MACHTYPE="x86_64-pc-linux-gnu"
+
+RUN apt-get update && apt-get install -y \
+ build-essential \
+ wget \
+ unzip
+
+RUN wget https://hgwdev.gi.ucsc.edu/~kent/src/isPcr${ISPCR_VER}.zip &&\
+ unzip isPcr${ISPCR_VER}.zip &&\
+ cd isPcrSrc &&\
+ sed -i 's/-Werror//g' inc/common.mk &&\
+ mkdir -p bin/$MACHTYPE &&\
+ mkdir -p lib/$MACHTYPE &&\
+ make HOME=$PWD MACHTYPE=${MACHTYPE} C_INCLUDE_PATH=/usr/include LIBRARY_PATH=/usr/lib CFLAGS="-fcommon" &&\
+ mv bin/$MACHTYPE/* /usr/local/bin/
+
+## App ##
+FROM ubuntu:jammy as app
+
+ARG ISPCR_VER
+
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="isPcr"
+LABEL software.version="${ISPCR_VER}"
+LABEL description="In-Slico PCR"
+LABEL website="https://users.soe.ucsc.edu/~kent/"
+LABEL license="All modules are copyright 2000-2004 by Jim Kent. License is hereby granted for personal, academic, and non-profit use."
+LABEL maintainer="Kutluhan Incekara"
+LABEL maintainer.email="kutluhan.incekara@ct.gov"
+
+COPY --from=builder /usr/local/bin/* /usr/local/bin/
+
+ENV LC_ALL=C
+
+CMD [ "isPcr" ]
+
+WORKDIR /data
+
+## Test ##
+FROM app as test
+
+# prepare inputs
+RUN apt-get update && apt-get install -y wget &&\
+ wget https://hgdownload.soe.ucsc.edu/goldenPath/wuhCor1/bigZips/wuhCor1.fa.gz &&\
+ gunzip wuhCor1.fa.gz &&\
+ echo "orf1a CTAGGACCTCTTTCTGCTCA ACACTCTCCTAGCACCATCA" > primers
+
+# run a test
+RUN isPcr wuhCor1.fa primers stdout
+
diff --git a/ispcr/33/README.md b/ispcr/33/README.md
new file mode 100644
index 000000000..f373a7641
--- /dev/null
+++ b/ispcr/33/README.md
@@ -0,0 +1,29 @@
+# isPcr container
+
+Main tool: [isPcr](https://users.soe.ucsc.edu/~kent/)
+
+Code repository: https://hgwdev.gi.ucsc.edu/~kent/src/
+
+Basic information on how to use this tool:
+- executable: isPcr
+- help:
+- version:
+- description: In-Slico PCR
+
+Additional information:
+
+```
+usage:
+ isPcr database query output
+where database is a fasta, nib, or twoBit file or a text file containing
+a list of these files, query is a text file file containing three columns: name,
+forward primer, and reverse primer, and output is where the results go.
+The names 'stdin' and 'stdout' can be used as file names to make using the
+program in pipes easier.
+```
+
+## Example Usage
+
+```bash
+isPcr template.fa primers.txt output
+```
diff --git a/ivar/1.4.3/Dockerfile b/ivar/1.4.3/Dockerfile
new file mode 100644
index 000000000..5ce2d06b0
--- /dev/null
+++ b/ivar/1.4.3/Dockerfile
@@ -0,0 +1,125 @@
+ARG SAMTOOLSVER=1.20
+ARG HTSLIB_VER=${SAMTOOLSVER}
+ARG IVARVER=1.4.3
+
+FROM ubuntu:jammy as builder
+
+ARG SAMTOOLSVER
+ARG HTSLIB_VER
+ARG IVARVER
+
+# installing htslib
+RUN apt-get update && apt-get install --no-install-recommends -y \
+ build-essential \
+ wget \
+ ca-certificates \
+ make \
+ bzip2 \
+ autoconf \
+ automake \
+ make \
+ gcc \
+ perl \
+ zlib1g-dev \
+ libbz2-dev \
+ liblzma-dev \
+ libcurl4-gnutls-dev \
+ libssl-dev \
+ libncurses5-dev \
+ procps
+
+# get htslib, compile, install, run test suite
+RUN wget -q https://github.com/samtools/htslib/releases/download/${HTSLIB_VER}/htslib-${HTSLIB_VER}.tar.bz2 && \
+ tar -vxjf htslib-${HTSLIB_VER}.tar.bz2 && \
+ rm -v htslib-${HTSLIB_VER}.tar.bz2 && \
+ cd htslib-${HTSLIB_VER} && \
+ make && \
+ make install && \
+ make test
+
+# download, compile, and install samtools
+RUN wget -q https://github.com/samtools/samtools/releases/download/${SAMTOOLSVER}/samtools-${SAMTOOLSVER}.tar.bz2 && \
+ tar -xjf samtools-${SAMTOOLSVER}.tar.bz2 && \
+ cd samtools-${SAMTOOLSVER} && \
+ ./configure && \
+ make && \
+ make install && \
+ make test
+
+# installing iVar; make /data
+RUN wget -q https://github.com/andersen-lab/ivar/archive/v${IVARVER}.tar.gz && \
+ tar -xf v${IVARVER}.tar.gz && \
+ rm -rf v${IVARVER}.tar.gz && \
+ cd ivar-${IVARVER} && \
+ ./autogen.sh && \
+ ./configure && \
+ make && \
+ make install
+
+FROM ubuntu:jammy as app
+
+ARG IVARVER
+
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="iVar"
+LABEL software.version=${IVARVER}
+LABEL description="Computational package that contains functions broadly useful for viral amplicon-based sequencing."
+LABEL website="https://github.com/andersen-lab/ivar"
+LABEL license="https://github.com/andersen-lab/ivar/blob/master/LICENSE"
+LABEL maintainer="Erin Young"
+LABEL maintainer.email="eriny@utah.gov"
+LABEL maintainer2="Curtis Kapsak"
+LABEL maintainer2.email="kapsakcj@gmail.com"
+LABEL modified.from="https://github.com/andersen-lab/ivar/blob/master/Dockerfile"
+LABEL original.maintainer="Kathik G"
+LABEL original.maintainer.email="gkarthik@scripps.edu"
+
+# install dependencies, cleanup apt garbage.
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ ca-certificates \
+ procps \
+ libcurl3-gnutls && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+COPY --from=builder /usr/local/bin/ /usr/local/bin/
+COPY --from=builder /usr/local/lib/ /usr/local/lib/
+COPY --from=builder /usr/local/include/ /usr/local/include/
+
+WORKDIR /data
+
+ENV LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/lib"
+
+CMD ivar help
+
+FROM app as test
+
+WORKDIR /test
+
+RUN ivar help && ivar version && samtools --version
+
+RUN apt-get update && apt-get install -y wget
+
+# getting files
+RUN wget -q https://github.com/StaPH-B/docker-builds/blob/master/tests/SARS-CoV-2/SRR13957123.sorted.bam?raw=true -O SRR13957123.sorted.bam && \
+ samtools view -s 0.25 -b SRR13957123.sorted.bam | samtools sort -o SRR13957123.subsampled.bam - && samtools index SRR13957123.subsampled.bam && \
+ wget -q https://raw.githubusercontent.com/artic-network/artic-ncov2019/master/primer_schemes/nCoV-2019/V3/nCoV-2019.reference.fasta -O MN908947.3.fasta && \
+ wget -q https://raw.githubusercontent.com/artic-network/artic-ncov2019/master/primer_schemes/nCoV-2019/V3/nCoV-2019.primer.bed && \
+ wget -q https://github.com/StaPH-B/docker-builds/blob/83ee344304794f4ffa162d1c082bb35f916badcf/tests/SARS-CoV-2/SRR13957123_1.fastq.gz?raw=true -O SRR13957123_1.fastq.gz && \
+ wget -q https://github.com/StaPH-B/docker-builds/blob/83ee344304794f4ffa162d1c082bb35f916badcf/tests/SARS-CoV-2/SRR13957123_2.fastq.gz?raw=true -O SRR13957123_2.fastq.gz
+
+# primer trimming
+RUN ivar trim -e -i SRR13957123.subsampled.bam -b nCoV-2019.primer.bed -p SRR13957123.primertrim && \
+ samtools sort SRR13957123.primertrim.bam -o SRR13957123.primertrim.sorted.bam
+
+# creating a consensus - using smaller -d for github actions
+RUN samtools mpileup -A -d 40 -B -Q 0 --reference MN908947.3.fasta SRR13957123.primertrim.sorted.bam | \
+ ivar consensus -q 20 -t 0.6 -n N -m 20 -p SRR13957123.consensus && \
+ wc -c SRR13957123.consensus*
+
+# piping into ivar takes too long, but here's what the test would be
+# RUN bwa index MN908947.3.fasta && \
+# bwa mem MN908947.3.fasta SRR13957123_1.fastq.gz SRR13957123_2.fastq.gz | \
+# ivar trim -b nCoV-2019.primer.bed -x 3 -m 30 | \
+# samtools sort | samtools mpileup -aa -A -Q 0 -B -d 200 --reference MN908947.3.fasta - | \
+# ivar consensus -p test_consensus -m 10 -n N -t 0.5
diff --git a/ivar/1.4.3/README.md b/ivar/1.4.3/README.md
new file mode 100644
index 000000000..214ef3a90
--- /dev/null
+++ b/ivar/1.4.3/README.md
@@ -0,0 +1,39 @@
+# iVar container
+
+Main tool : [iVar](https://andersen-lab.github.io/ivar/html/manualpage.html)
+
+> iVar is a computational package that contains functions broadly useful for viral amplicon-based sequencing
+
+Additional tools (required):
+
+* [HTSlib](https://github.com/samtools/htslib) 1.20
+* [samtools](http://www.htslib.org/) 1.20
+
+## Example Usage
+
+```bash
+ivar trim -e -i {bam} -b {primer bed} -p {sample}.primertrim
+```
+
+```bash
+samtools mpileup -A -d 8000 -B -Q 0 --reference {reference.fasta} {bam} | \
+ ivar variants -p {sample}.variants -q 20 -t 0.6 -r {reference.fasta} -g {reference.gff}
+```
+
+```bash
+samtools mpileup -A -d 8000 -B -Q 0 --reference {reference.fasta} {bam} | \
+ ivar consensus -t 0.6 -p {sample}.consensus -n N
+```
+
+Starting with iVar version 1.4.1, the output of an aligner such as minimap2 and bwa (both included) can be piped into ivar trim directly
+```bash
+# index reference
+bwa index reference.fasta
+
+# run bwa and pipe into ivar (single line is split with \ for clarity)
+bwa mem reference.fasta read_1.fastq.gz read_2.fastq.gz | \
+ ivar trim -b primer.bed -x 3 -m 30 | \
+ samtools sort | \
+ samtools mpileup -aa -A -Q 0 -B -d 2000 - | \
+ ivar consensus -p output_prefix -m 10 -n N -t 0.5
+```
diff --git a/kaptive/2.0.8/Dockerfile b/kaptive/2.0.8/Dockerfile
new file mode 100644
index 000000000..d755b6966
--- /dev/null
+++ b/kaptive/2.0.8/Dockerfile
@@ -0,0 +1,111 @@
+FROM ubuntu:jammy as app
+
+ARG KAPTIVE_VER="2.0.8"
+# note: blast version 2.15 causes errors
+ARG blastVer="2.3.0"
+ARG VP_GENOMOSEROTYPING_VER="1.0"
+# so that apt doesn't try to ask for user input
+ARG BIOPYTHON_VER="1.81"
+
+ARG DEBIAN_FRONTEND=noninteractive
+
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="Kaptive"
+LABEL software.version="${KAPTIVE_VER}"
+LABEL description="Report information about surface polysaccharide loci for Klebsiella pneumoniae species complex and Acinetobacter baumannii genome assemblies"
+LABEL website="https://github.com/klebgenomics/Kaptive/"
+LABEL license="https://github.com/klebgenomics/Kaptive/blob/master/LICENSE"
+LABEL website.VPdatabase="https://github.com/aldertzomer/vibrio_parahaemolyticus_genomoserotyping"
+LABEL license.VPdatabase="https://github.com/aldertzomer/vibrio_parahaemolyticus_genomoserotyping/blob/main/LICENSE"
+LABEL maintainer="Tamas Stirling"
+LABEL maintainer.email="stirling.tamas@gmail.com"
+LABEL maintainer2="Curtis Kapsak"
+LABEL maintainer2.email="kapsakcj@gmail.com"
+LABEL maintainer3="Erin Young"
+LABEL maintainer3.email="eriny@utah.gov"
+
+# install some dependencies via apt; cleanup apt garbage
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ locales \
+ python3 \
+ python3-pip \
+ python3-setuptools \
+ software-properties-common \
+ wget \
+ ca-certificates \
+ procps \
+ unzip && \
+ rm -rf /var/lib/apt/lists/* && apt-get autoclean
+
+# set locale
+RUN locale-gen en_US.UTF-8 && update-locale LANG=en_US.UTF-8
+ENV LANG=en_US.UTF-8
+
+# ncbi-blast+
+RUN wget -q ftp://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/${blastVer}/ncbi-blast-${blastVer}+-x64-linux.tar.gz && \
+ tar -zxpf ncbi-blast-${blastVer}+-x64-linux.tar.gz && \
+ rm -v ncbi-blast-${blastVer}+-x64-linux.tar.gz
+
+# kaptive
+RUN wget -q https://github.com/klebgenomics/Kaptive/archive/refs/tags/v${KAPTIVE_VER}.tar.gz && \
+ tar -xzf v${KAPTIVE_VER}.tar.gz && \
+ rm -vf v${KAPTIVE_VER}.tar.gz && \
+ mv -v /Kaptive-${KAPTIVE_VER} /kaptive
+
+# install biopython globally via system pip
+RUN pip3 install biopython==${BIOPYTHON_VER}
+
+# download Vibrio parahemolyticus database; rename directory to static location
+RUN wget -q https://github.com/aldertzomer/vibrio_parahaemolyticus_genomoserotyping/archive/refs/tags/${VP_GENOMOSEROTYPING_VER}.tar.gz && \
+ tar -xzf ${VP_GENOMOSEROTYPING_VER}.tar.gz && \
+ rm -v ${VP_GENOMOSEROTYPING_VER}.tar.gz && \
+ mv -v vibrio_parahaemolyticus_genomoserotyping-${VP_GENOMOSEROTYPING_VER}/*gbk /kaptive/reference_database/. && \
+ rm -rf vibrio_parahaemolyticus_genomoserotyping-${VP_GENOMOSEROTYPING_VER}
+
+# set $PATH, with /kaptive at the highest priority
+ENV PATH="/kaptive:/ncbi-blast-${blastVer}+/bin:${PATH}"
+
+# final working directory is /data
+WORKDIR /data
+
+# default command is to print help options
+CMD [ "kaptive.py", "--help"]
+
+# test layer
+FROM app as test
+
+WORKDIR /test1
+
+# test with A. baumannii; testing both k and o locus
+RUN echo "downloading an A. baumannii genome & testing Kaptive..." && \
+ wget -q https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/016/486/705/GCA_016486705.1_PDT000751301.1/GCA_016486705.1_PDT000751301.1_genomic.fna.gz && \
+ gzip -d GCA_016486705.1_PDT000751301.1_genomic.fna.gz && \
+ kaptive.py -a GCA_016486705.1_PDT000751301.1_genomic.fna -k /kaptive/reference_database/Acinetobacter_baumannii_k_locus_primary_reference.gbk -o /test1/Abaum && \
+ kaptive.py -a GCA_016486705.1_PDT000751301.1_genomic.fna -k /kaptive/reference_database/Acinetobacter_baumannii_OC_locus_primary_reference.gbk -o /test1/Abaum
+
+WORKDIR /test2
+
+# test with K. pneumoniae; testing both k and o locus
+RUN echo "downloading an K. pneumoniae genome & testing Kaptive..." && \
+ wget -q https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/022/268/055/GCA_022268055.1_PDT000434809.1/GCA_022268055.1_PDT000434809.1_genomic.fna.gz && \
+ gzip -d GCA_022268055.1_PDT000434809.1_genomic.fna.gz && \
+ kaptive.py -a GCA_022268055.1_PDT000434809.1_genomic.fna -k /kaptive/reference_database/Klebsiella_k_locus_primary_reference.gbk -o /test2/kpneu && \
+ kaptive.py -a GCA_022268055.1_PDT000434809.1_genomic.fna -k /kaptive/reference_database/Klebsiella_o_locus_primary_reference.gbk -o /test2/kpneu
+
+WORKDIR /test3
+
+### test with at 2 Vibrio parahaemolyticus genomes with a known serotype. These 2 are pulled from the publication describing custom database ##
+# GCA_001558495.2 - expect OL1 and KL1
+# GCA_001728135.1 - expect OL4 KL53
+# more info on test genome here: https://www.ncbi.nlm.nih.gov/data-hub/genome/GCF_001558495.2/
+# strain: ATCC17802
+# more info on 2nd test genome here: https://www.ncbi.nlm.nih.gov/data-hub/genome/GCF_001728135.1/
+# strain: CDC_K5009W
+RUN echo "downloading an 2 V. parahaemolyticus genomes & testing Kaptive..." && \
+ wget -q https://ftp.ncbi.nlm.nih.gov/genomes/all/GCF/001/558/495/GCF_001558495.2_ASM155849v2/GCF_001558495.2_ASM155849v2_genomic.fna.gz && \
+ wget -q https://ftp.ncbi.nlm.nih.gov/genomes/all/GCF/001/728/135/GCF_001728135.1_ASM172813v1/GCF_001728135.1_ASM172813v1_genomic.fna.gz && \
+ gzip -d GCF_001558495.2_ASM155849v2_genomic.fna.gz && \
+ gzip -d GCF_001728135.1_ASM172813v1_genomic.fna.gz && \
+ kaptive.py -a *.fna -k /kaptive/reference_database/VibrioPara_Kaptivedb_K.gbk -o /test3/Vparahaemolyticus && \
+ kaptive.py -a *.fna -k /kaptive/reference_database/VibrioPara_Kaptivedb_O.gbk -o /test3/Vparahaemolyticus
diff --git a/kaptive/2.0.8/README.md b/kaptive/2.0.8/README.md
new file mode 100644
index 000000000..90d517b00
--- /dev/null
+++ b/kaptive/2.0.8/README.md
@@ -0,0 +1,58 @@
+# Kaptive
+
+Main tool: [Kaptive](https://github.com/klebgenomics/Kaptive)
+
+Additional tools:
+
+- ncbi-blast+ 2.3.0
+- python 3.8.10
+- biopython 1.81
+
+## Kaptive databases
+
+There are few databases included in this docker image for Kaptive v2.0.8:
+
+- Klebsiella pneumoniae species complex
+ - included w/ Kaptive
+- Acinetobacter baumannii
+ - included w/ Kaptive
+- Vibrio parahaemolyticus
+ - Located in separate GitHub repo: https://github.com/aldertzomer/vibrio_parahaemolyticus_genomoserotyping
+ - Publication: https://www.microbiologyresearch.org/content/journal/mgen/10.1099/mgen.0.001007
+
+The databases (Genbank/GBK files) are located as follows in the container filesystem:
+
+```bash
+# Klebsiella pneumoniae species complex
+/kaptive/reference_database/Klebsiella_k_locus_primary_reference.gbk
+/kaptive/reference_database/Klebsiella_o_locus_primary_reference.gbk
+
+# Acinetobacter baumannii
+/kaptive/reference_database/Acinetobacter_baumannii_k_locus_primary_reference.gbk
+/kaptive/reference_database/Acinetobacter_baumannii_OC_locus_primary_reference.gbk
+
+# Vibrio parahaeolyticus
+/kaptive/reference_database/VibrioPara_Kaptivedb_K.gbk
+/kaptive/reference_database/VibrioPara_Kaptivedb_O.gbk
+```
+
+Example commands for each of these databases can be found below.
+
+## Example Usage
+
+```bash
+# K locus, A. baumannii
+kaptive.py -a assembly.fasta -k /kaptive/reference_database/Acinetobacter_baumannii_k_locus_primary_reference.gbk
+# O locus, A. baumannii
+kaptive.py -a assembly.fasta -k /kaptive/reference_database/Acinetobacter_baumannii_OC_locus_primary_reference.gbk
+
+# K locus, K. pneumoniae
+kaptive.py -a assembly.fasta -k /kaptive/reference_database/Klebsiella_k_locus_primary_reference.gbk
+# O locus, K. pneumoniae
+kaptive.py -a assembly.fasta -k /kaptive/reference_database/Klebsiella_o_locus_primary_reference.gbk
+
+# K locus, V. parahaemolyticus
+kaptive.py -a assembly.fasta -k /kaptive/reference_database/VibrioPara_Kaptivedb_K.gbk
+# O locus, V. parahaemolyticus
+kaptive.py -a assembly.fasta -k /kaptive/reference_database/VibrioPara_Kaptivedb_O.gbk
+```
\ No newline at end of file
diff --git a/kleborate/2.4.1/Dockerfile b/kleborate/2.4.1/Dockerfile
new file mode 100644
index 000000000..553e98bdc
--- /dev/null
+++ b/kleborate/2.4.1/Dockerfile
@@ -0,0 +1,89 @@
+FROM ubuntu:focal as app
+
+# for easy upgrade later. ARG variables only persist during image build time
+ARG KLEBORATE_VER="2.4.1"
+ARG BLAST_VER="2.9.0"
+ARG MASH_VER="2.3"
+ARG KAPTIVE_VER="2.0.8"
+
+LABEL base.image="ubuntu:focal"
+LABEL dockerfile.version="1"
+LABEL software="Kleborate"
+LABEL software.version="${KLEBORATE_VER}"
+LABEL description="tool to screen genome assemblies of Klebsiella pneumoniae and the Klebsiella pneumoniae species complex (KpSC)"
+LABEL website="https://github.com/katholt/Kleborate"
+LABEL license="https://github.com/katholt/Kleborate/blob/master/LICENSE"
+LABEL maintainer="Curtis Kapsak"
+LABEL maintainer.email="kapsakcj@gmail.com"
+LABEL maintainer2="Frank Ambrosio"
+LABEL maintainer2.email="frank.ambrosio@theiagen.com"
+
+# install prerequisites. Cleanup apt garbage
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ python3 \
+ python3-pip \
+ python3-setuptools \
+ wget \
+ ca-certificates \
+ bzip2 \
+ locales \
+ git \
+ procps && \
+ rm -rf /var/lib/apt/lists/* && apt-get autoclean
+
+# to avoid encoding issues during kleborate setup.py install step
+RUN locale-gen en_US.UTF-8 && update-locale LANG=en_US.UTF-8
+ENV LANG=en_US.UTF-8
+
+# so that we get a more recent version of biopython instead of what is available via apt
+# trying to get rid of biopython warning "BiopythonExperimentalWarning: Bio.Align.substitution_matrices ......"
+RUN python3 -m pip install biopython
+
+# mash; update UID and GID of mash files; make /data
+# UID and GID changes because the original owner is UID: 1081147385 and GID: 1360859114 which does NOT play well with systems that limits GIDs and UIDs
+RUN wget https://github.com/marbl/Mash/releases/download/v${MASH_VER}/mash-Linux64-v${MASH_VER}.tar && \
+ tar -xvf mash-Linux64-v${MASH_VER}.tar && \
+ rm -rf mash-Linux64-v${MASH_VER}.tar && \
+ chown root:root /mash-Linux64-v${MASH_VER}/* && \
+ mkdir /data
+
+# ncbi-blast+
+RUN wget ftp://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/${BLAST_VER}/ncbi-blast-${BLAST_VER}+-x64-linux.tar.gz && \
+ tar -xzf ncbi-blast-${BLAST_VER}+-x64-linux.tar.gz && \
+ rm ncbi-blast-${BLAST_VER}+-x64-linux.tar.gz
+
+# set PATH and TERM to avoid warnings
+ENV PATH="/mash-Linux64-v${MASH_VER}:\
+/ncbi-blast-${BLAST_VER}+/bin/:\
+${PATH}" \
+ TERM=xterm-256color
+
+# kleborate install
+# as per author instructions. Have to use git clone and git checkout since kaptive is a git submodule. cannot use tarballs
+RUN git clone --recursive https://github.com/katholt/Kleborate.git && \
+ cd Kleborate && \
+ git checkout v${KLEBORATE_VER} && \
+ cd kaptive && \
+ git pull https://github.com/katholt/Kaptive v${KAPTIVE_VER} && \
+ cd ../ && \
+ python3 setup.py install
+
+# set working directory
+WORKDIR /data
+
+CMD kleborate --help
+
+FROM app as test
+
+# run Kleborate on assembly supplied with Kleborate code
+RUN kleborate --resistance --kaptive --all \
+ --assemblies /Kleborate/test/test_genomes/172.fasta.gz \
+ --outfile /data/strain172-kleborate-test-out.tsv
+
+# install pytest; run unit tests included with Kleborate
+RUN apt-get update && apt-get install -y --no-install-recommends python3-pytest && \
+ cd /Kleborate && \
+ python3 -m pytest
+
+# print help and version info
+RUN kleborate --help && kleborate --version
\ No newline at end of file
diff --git a/kleborate/2.4.1/README.md b/kleborate/2.4.1/README.md
new file mode 100644
index 000000000..2377e2406
--- /dev/null
+++ b/kleborate/2.4.1/README.md
@@ -0,0 +1,53 @@
+# Kleborate container
+
+Main tool : [Kleborate](https://github.com/katholt/Kleborate) 2.4.1
+
+Additional tools:
+
+- [kaptive](https://github.com/katholt/Kaptive) 2.0.8
+- ncbi-blast+ 2.9.0
+- [mash](https://github.com/marbl/Mash) 2.3
+- python 3.8.2
+- biopython 1.81
+
+Full documentation: [https://github.com/katholt/Kleborate/wiki](https://github.com/katholt/Kleborate/wiki)
+
+Kleborate is a tool to screen genome assemblies of Klebsiella pneumoniae and the Klebsiella pneumoniae species complex (KpSC) for:
+
+- MLST sequence type
+- species (e.g. K. pneumoniae, K. quasipneumoniae, K. variicola, etc.)
+- ICEKp associated virulence loci: yersiniabactin (ybt), colibactin (clb), salmochelin (iro), hypermucoidy (rmpA)
+- virulence plasmid associated loci: salmochelin (iro), aerobactin (iuc), hypermucoidy (rmpA, rmpA2)
+- antimicrobial resistance determinants: acquired genes, SNPs, gene truncations and intrinsic β-lactamases
+- K (capsule) and O antigen (LPS) serotype prediction, via wzi alleles and Kaptive
+
+## Why is there `staphb/kleborate:2.3.2` and `staphb/kleborate:2.3.2-2023-05`? What is the difference?
+
+A small change was made to the Kleborate v2.3.2 dockerfile to account for an odd UID (1081147385) and GID (1360859114) that owns the `mash` executable and license file. This can cause problems in "rootless" environments or environments where `docker` is run inside of a docker container such as in GitPod. These environments have more limits placed on UIDs and GIDs than your typical linux computers. Error shown below:
+
+```
+$ docker pull staphb/kleborate:2.3.2
+2.3.2: Pulling from staphb/kleborate
+47c764472391: Pull complete
+f1582e59f07e: Pull complete
+a2c96ce05542: Pull complete
+213b944f2044: Pull complete
+e136842d98e3: Extracting [==================================================>] 1.847MB/1.847MB
+d99354f29fdd: Download complete
+499193a95fe3: Download complete
+4f4fb700ef54: Download complete
+failed to register layer: ApplyLayer exit status 1 stdout: stderr: failed to Lchown "/mash-Linux64-v2.3/LICENSE.txt" for UID 1081147385, GID 1360859114 (try increasing the number of subordinate IDs in /etc/subuid and /etc/subgid): lchown /mash-Linux64-v2.3/LICENSE.txt: invalid argument
+```
+
+The dockerfile now has a step to `chown` these files so that the `root` user owns them, which prevents these odd errors.
+
+The updated docker image is available under the docker image name: `staphb/kleborate:2.3.2-2023-05`
+
+## Example Usage
+
+```bash
+# run Kleborate on assembly supplied with Kleborate code
+kleborate --resistance --kaptive --all \
+ --assemblies /Kleborate/test/test_genomes/172.fasta.gz \
+ --outfile /data/strain172-kleborate-test-out.tsv
+```
diff --git a/kma/1.4.14/Dockerfile b/kma/1.4.14/Dockerfile
new file mode 100644
index 000000000..feded7860
--- /dev/null
+++ b/kma/1.4.14/Dockerfile
@@ -0,0 +1,61 @@
+ARG KMA_VER="1.4.14"
+
+## Builder ##
+FROM ubuntu:jammy as builder
+
+ARG KMA_VER
+
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ gcc \
+ libz-dev \
+ make \
+ ca-certificates \
+ git && \
+ rm -rf /var/lib/apt/lists/* && apt-get autoclean
+
+RUN git clone -b ${KMA_VER} --single-branch https://bitbucket.org/genomicepidemiology/kma.git &&\
+ cd kma &&\
+ make &&\
+ mv kma kma_index kma_shm kma_update /usr/local/bin/
+
+## App ##
+FROM ubuntu:jammy as app
+
+ARG KMA_VER
+
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="kma"
+LABEL software.version="$KMA_VER"
+LABEL description="K-mer alignment of raw reads against a database"
+LABEL website="https://bitbucket.org/genomicepidemiology/kma/src/master/"
+LABEL license="https://bitbucket.org/genomicepidemiology/kma/src/master/"
+LABEL license.type="Apache License, V2.0"
+LABEL maintainer="Curtis Kapsak"
+LABEL maintainer.email="kapsakcj@gmail.com"
+LABEL maintainer2="Kutluhan Incekara"
+LABEL maintainer2.email="kutluhan.incekara@ct.gov"
+
+COPY --from=builder /usr/local/bin/* /usr/local/bin/
+
+ENV LC_ALL=C
+
+CMD ["kma", "-h"]
+
+WORKDIR /data
+
+## Test ##
+FROM app as test
+
+RUN apt-get update && apt-get install -y --no-install-recommends wget
+
+# Downloads E.coli genome and runs kma index on it
+RUN wget -q --no-check-certificate https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/012/224/845/GCA_012224845.2_ASM1222484v2/GCA_012224845.2_ASM1222484v2_genomic.fna.gz && \
+ gunzip GCA_012224845.2_ASM1222484v2_genomic.fna.gz && \
+ kma index -i GCA_012224845.2_ASM1222484v2_genomic.fna -o database
+
+# Downloads read files and uses them for kma mapping against database; print kma version
+RUN wget -q --no-check-certificate ftp://ftp.sra.ebi.ac.uk/vol1/fastq/SRR690/006/SRR6903006/SRR6903006_1.fastq.gz && \
+ wget -q --no-check-certificate ftp://ftp.sra.ebi.ac.uk/vol1/fastq/SRR690/006/SRR6903006/SRR6903006_2.fastq.gz && \
+ kma -ipe SRR6903006_1.fastq.gz SRR6903006_2.fastq.gz -o test_output -t_db database -tmp /tmp/ && \
+ kma -v
diff --git a/kma/1.4.14/README.md b/kma/1.4.14/README.md
new file mode 100644
index 000000000..c2fc6c438
--- /dev/null
+++ b/kma/1.4.14/README.md
@@ -0,0 +1,25 @@
+# kma container
+
+Main tool : [kma](https://bitbucket.org/genomicepidemiology/kma/)
+
+Code repository: https://bitbucket.org/genomicepidemiology/kma/src/master/
+
+Basic information on how to use this tool:
+- executable: kma
+- help: -h
+- version: -v
+- description: k-mer mapping of raw reads to a redundant database
+
+Full documentation: https://bitbucket.org/genomicepidemiology/kma/src/master/
+
+## Example Usage
+
+```bash
+# Database needs to be indexed to use kma for mapping:
+kma index -i templates.fsa.gz -o database/name
+
+# kma mapping of paired and unpaired read files:
+kma -ipe SRR13957123_*.fastq.gz -o test.output -t_db DB_name
+
+kma -i singleEndReads.fq.gz -ipe pairedEnd_*.fq.gz -o output/name -t_db database/name -1t1`
+```
diff --git a/krakenuniq/1.0.4/Dockerfile b/krakenuniq/1.0.4/Dockerfile
new file mode 100644
index 000000000..57667c815
--- /dev/null
+++ b/krakenuniq/1.0.4/Dockerfile
@@ -0,0 +1,67 @@
+ARG KRAKENUNIQ_VER="1.0.4"
+
+FROM ubuntu:jammy as app
+
+ARG KRAKENUNIQ_VER
+
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="KrakenUniq"
+LABEL software.version="${KRAKENUNIQ_VER}"
+LABEL description="Taxonomic sequence classifier"
+LABEL website="https://github.com/fbreitwieser/krakenuniq"
+LABEL license="https://github.com/fbreitwieser/krakenuniq/blob/master/LICENSE.GPL-3.0"
+LABEL maintainer="Erin Young"
+LABEL maintainer.email="eriny@utah.gov"
+LABEL maintainer2="Kutluhan Incekara"
+LABEL maintainer2.email="kutluhan.incekara@ct.gov"
+
+RUN apt-get update && apt-get install --no-install-recommends -y \
+ curl \
+ perl \
+ cpanminus \
+ make \
+ g++ \
+ libbz2-dev \
+ zlib1g-dev \
+ ca-certificates \
+ ncbi-blast+ \
+ && apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+# krakenuniq requires jellyfish v1.x.x
+RUN curl -LJO https://github.com/gmarcais/Jellyfish/releases/download/v1.1.12/jellyfish-linux &&\
+ mv jellyfish-linux /usr/local/bin/jellyfish &&\
+ chmod u+x /usr/local/bin/jellyfish
+
+# required perl libraries
+RUN cpanm File::Copy LWP::Simple Getopt::Std
+
+RUN curl -LJO https://github.com/fbreitwieser/krakenuniq/archive/refs/tags/v${KRAKENUNIQ_VER}.tar.gz && \
+ tar -xvf krakenuniq-${KRAKENUNIQ_VER}.tar.gz && rm krakenuniq-${KRAKENUNIQ_VER}.tar.gz &&\
+ cd krakenuniq-${KRAKENUNIQ_VER} && \
+ ./install_krakenuniq.sh /usr/local/bin
+
+ENV PATH=$PATH:/krakenuniq-${KRAKENUNIQ_VER}/scripts \
+ LC_ALL=C
+
+CMD krakenuniq --help
+
+WORKDIR /data
+
+## Test ##
+FROM app as test
+
+RUN krakenuniq --help && \
+ krakenuniq-build --help && \
+ krakenuniq-filter --help && \
+ krakenuniq-mpa-report --help && \
+ krakenuniq-report --help && \
+ krakenuniq-translate --help
+
+# doswload & build test database
+RUN krakenuniq-download --dust --db DB refseq/archaea/Chromosome taxonomy &&\
+ krakenuniq-build --db DB --threads 2 --kmer-len 21 --minimizer-len 12 --taxids-for-genomes --taxids-for-sequences --jellyfish-bin /usr/local/bin/jellyfish
+
+# test kraken uniq with test db
+RUN krakenuniq -db DB --report-file kuniq-report.txt ./DB/library/archaea/Chromosome/Thermococcus_aggregans_strain_TY-tax110163-GCF_024022995.1_ASM2402299v1_genomic-dustmasked.fna &&\
+ head kuniq-report.txt
\ No newline at end of file
diff --git a/krakenuniq/1.0.4/README.md b/krakenuniq/1.0.4/README.md
new file mode 100644
index 000000000..1e7726af5
--- /dev/null
+++ b/krakenuniq/1.0.4/README.md
@@ -0,0 +1,26 @@
+# KrakenUniq container
+
+Main tool: [KrakenUniq](https://github.com/fbreitwieser/krakenuniq)
+
+Code repository: https://github.com/fbreitwieser/krakenuniq
+
+Additional tools:
+- ncbi-blast+ : 2.12.0+
+
+Basic information on how to use this tool:
+- executable: krakenuniq
+- help: --help
+- version: --version
+- description: KrakenUniq is a metagenomics classifier that combines the fast k-mer-based classification of Kraken with an efficient algorithm for assessing the coverage of unique k-mers found in each species in a dataset.
+
+Additional information:
+
+KrakenUniq database can be downloaded from https://benlangmead.github.io/aws-indexes/k2
+
+Full documentation: https://github.com/fbreitwieser/krakenuniq/blob/master/MANUAL.md
+
+## Example Usage
+
+```bash
+krakenuniq --db /path/to/db --report-file report.txt --paired r1.fastq.gz r2.fastq.gz
+```
diff --git a/ksnp4/4.1/Dockerfile b/ksnp4/4.1/Dockerfile
new file mode 100644
index 000000000..cb4b68b73
--- /dev/null
+++ b/ksnp4/4.1/Dockerfile
@@ -0,0 +1,41 @@
+FROM ubuntu:jammy as app
+
+ARG KSNPVER=4.1
+
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="kSNP"
+LABEL software.version="${KSNPVER}"
+LABEL description="K-mer-based phylogenetic inference"
+LABEL website="https://sourceforge.net/projects/ksnp/"
+LABEL license="https://github.com/kissake/kSNP${KSNPVER}/blob/%40/THE%20BSD%20OPENSOURCE%20LICENSE.pdf"
+LABEL maintainer="Jeremiah Nisbet"
+LABEL maintainer.email="ksnp-dev@kissake.net"
+LABEL maintainer2="Kutluhan Incekara"
+LABEL maintainer2.email="kutluhan.incekara@ct.gov"
+
+RUN apt-get update && apt-get install --no-install-recommends -y \
+ wget \
+ ca-certificates \
+ unzip \
+ python3 \
+ libgomp1 && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+RUN wget -O kSNP.zip https://sourceforge.net/projects/ksnp/files/kSNP${KSNPVER}%20Linux%20package.zip && \
+ unzip -j kSNP.zip "kSNP${KSNPVER} Linux package/kSNP${KSNPVER}pkg/*" -d "/usr/local/bin/" &&\
+ rm kSNP.zip
+
+ENV LC_ALL=C
+
+CMD [kSNP4]
+
+WORKDIR /data
+
+## Test ##
+FROM app as test
+
+COPY kSNP_test.sh RunExamples.sh ./
+
+RUN bash ./kSNP_test.sh
+
diff --git a/ksnp4/4.1/README.md b/ksnp4/4.1/README.md
new file mode 100644
index 000000000..b0403214f
--- /dev/null
+++ b/ksnp4/4.1/README.md
@@ -0,0 +1,27 @@
+# kSNP4 container
+
+Main tool: kSNP4 https://sourceforge.net/projects/ksnp/files/
+
+Additional tools: None
+
+Full documentation: https://sourceforge.net/projects/ksnp/files/kSNP4%20User%20Guide.pdf/download
+
+Summary:
+
+kSNP4 is a program that identifies the pan-genome SNPs in a set of genome sequences, and estimates
+phylogenetic trees based upon those SNPs. Because there are many potential downstream applications of SNP
+information, kSNP4 also provides output files that include a multiple alignment of all of the SNP positions and
+files that provide information about the positions of each SNP in each genome and annotations. kSNP4 can
+analyze both complete (finished) genomes and unfinished genomes in assembled contigs or raw, unassembled
+reads. Finished and unfinished genomes can be analyzed together, and kSNP4 can automatically download
+Genbank files of the finished genomes (and annotated genome assemblies) and incorporate the information in
+those files into the SNP annotation. Core SNPs, those present in all of the genomes, can optionally be
+analyzed separately to generate a multiple SNP alignment and trees based on only the core SNPs. kSNP4 also
+can provide a separate analysis of those SNPS that occur in at least a user-determined fraction of the genomes.
+
+
+# Example Usage
+
+```bash
+kSNP4 -in Eco100.in -k 21 -outdir Run1 -annotate annotatedGenomes
+```
diff --git a/ksnp4/4.1/RunExamples.sh b/ksnp4/4.1/RunExamples.sh
new file mode 100755
index 000000000..043b015bf
--- /dev/null
+++ b/ksnp4/4.1/RunExamples.sh
@@ -0,0 +1,116 @@
+#!/bin/bash
+
+# For debugging, use below as first line.
+#!/bin/bash -vx
+
+# Examples are default in Example/Example<#>/...
+
+# Since this script will be in the source, default to making sure that the
+# binary dependencies (jellyfish, mummer, consense, etc.) are available:
+
+MISSINGEXAMPLES=0
+echo "Checking for required example files:"
+[ -d Examples/ ] || MISSINGEXAMPLES=1
+
+if [ ${MISSINGEXAMPLES} -gt 0 ]
+then
+ echo "Missing critical files under Examples/; are you sure you have unpacked the Examples?"
+ exit 1
+else
+ echo "... Found examples."
+fi
+
+
+# Typically the in_list file must be modified to run the examples.
+
+# The output directory and log output locations can be specified. There may
+# be hidden path dependencies such that the output directory must be a sub-
+# directory of the current.
+
+# Current working directory:
+CURRENT=`pwd`
+
+# Create our test directory (temporary directory)
+mkdir TestResults
+TEMPDIR="TestResults"
+INLIST1="${TEMPDIR}/in_list1"
+ANNDGENOMES1="${CURRENT}/Examples/Example1/Results/annotatedGenomes"
+
+RUN11DIR="${TEMPDIR}/Run11"
+RUN11LOG="${TEMPDIR}/Run11Log"
+RUN11ERRORLOG="${TEMPDIR}/Run11ErrorLog"
+
+RUN12DIR="${TEMPDIR}/Run12"
+RUN12LOG="${TEMPDIR}/Run12Log"
+RUN12ERRORLOG="${TEMPDIR}/Run12ErrorLog"
+
+RUN13DIR="${TEMPDIR}/Run13"
+RUN13LOG="${TEMPDIR}/Run13Log"
+RUN13ERRORLOG="${TEMPDIR}/Run13ErrorLog"
+
+INLIST2="${TEMPDIR}/in_list2"
+ANNDGENOMES2="${CURRENT}/Examples/Example2/Results/annotatedGenomes"
+
+RUN21DIR="${TEMPDIR}/Run21"
+RUN21LOG="${TEMPDIR}/Run21Log"
+RUN21ERRORLOG="${TEMPDIR}/Run21ErrorLog"
+
+RUN22DIR="${TEMPDIR}/Run22"
+RUN22LOG="${TEMPDIR}/Run22Log"
+RUN22ERRORLOG="${TEMPDIR}/Run22ErrorLog"
+
+# Copy first in_list into place
+# sed -e "s/^.*\/Genomes/Genomes/" < Examples/Example1/ExampleRuns/in_list | while read LINE ; do echo "${CURRENT}/Examples/Example1/${LINE}" ; done > "${INLIST1}"
+MakeKSNP4infile -indir Examples/Example1/Genomes/ -outfile "${INLIST1}"
+echo "Generated in_list for Example1:"
+cat "${INLIST1}"
+
+### # Example 1
+### Run1:
+### kSNP4 -in in_list -outdir Run1 -k 13 | tee Run1Log
+###
+### Run2:
+### kSNP4 -in in_list -outdir Run2 -k 13 -annotate annotated_genomes | tee Run2Log
+###
+### Run3:
+### kSNP4 -in in_list -outdir Run3 -k 13 -annotate annotated_genomes -ML -NJ -vcf -core -min_frac 0.75 | tee Run3Log
+###
+
+kSNP4 -in "${INLIST1}" -outdir "${RUN11DIR}" -k 13 2>&1 | tee "${RUN11LOG}"
+
+kSNP4 -in "${INLIST1}" -outdir "${RUN12DIR}" -k 13 -annotate "${ANNDGENOMES1}" 2>&1 | tee "${RUN12LOG}"
+
+kSNP4 -in "${INLIST1}" -outdir "${RUN13DIR}" -k 13 -annotate "${ANNDGENOMES1}" -ML -NJ -vcf -core -min_frac 0.75 2>&1 | tee "${RUN13LOG}"
+
+### # Example2
+###
+### Run1:
+### kSNP4 -in in_list -outdir Run1 -k 19 -annotate annotated_genomes | tee Run1Log
+###
+### Run2: Note: replace ### with the path to SNPs_all in the Run1 directory! If any directory names in the path contain spaces be sure to enclose those directory names in quotes (" ").
+###
+### kSNP4 -in in_list2 -outdir Run2 -k 19 -annotate annotated_genomes -SNPs_all ###Examples/Example2/ExampleRuns/Run1/SNPs_all### | tee Run2Log
+
+# Copy in_list into place
+# sed -e "s/^.*\/Genomes/Genomes/" < Examples/Example2/in_list | while read LINE ; do echo "${CURRENT}/Examples/Example2/${LINE}" ; done > "${INLIST21}"
+MakeKSNP4infile -indir Examples/Example2/Genomes/ -outfile "${INLIST2}"
+echo "Generated in_list for example2, run 1:"
+cat "${INLIST2}"
+
+# Copy in_list into place
+# sed -e "s/^.*\/Genomes/Genomes/" < Examples/Example2/in_list2 | while read LINE ; do echo "${CURRENT}/Examples/Example2/${LINE}" ; done > "${INLIST22}"
+# echo "Generated in_list for example2, run 2:"
+# cat "${INLIST22}"
+
+
+{ # The second has a dependency on the first.
+ kSNP4 -in "${INLIST2}" -outdir "${RUN21DIR}" -k 21 -annotate "${ANNDGENOMES2}" 2>&1 | tee "${RUN21LOG}"
+
+# kSNP4 -in "${INLIST22}" -outdir "${RUN22DIR}" -k 19 -annotate "${ANNDGENOMES2}" -SNPs_all "${RUN21DIR}/SNPs_all" 2>&1 | tee "${RUN22LOG}"
+}
+
+echo "Waiting for all examples to complete."
+wait
+
+echo "Exiting for review: ${TEMPDIR}"
+
diff --git a/ksnp4/4.1/kSNP_test.sh b/ksnp4/4.1/kSNP_test.sh
new file mode 100755
index 000000000..94f3df4bc
--- /dev/null
+++ b/ksnp4/4.1/kSNP_test.sh
@@ -0,0 +1,7 @@
+#!/bin/bash
+
+wget https://sourceforge.net/projects/ksnp/files/Examples.zip/download
+mv download Examples.zip
+unzip Examples.zip
+./RunExamples.sh
+
diff --git a/label/0.6.4/Dockerfile b/label/0.6.4/Dockerfile
new file mode 100644
index 000000000..c5e647c82
--- /dev/null
+++ b/label/0.6.4/Dockerfile
@@ -0,0 +1,50 @@
+FROM ubuntu:jammy as app
+
+ARG LABEL_VER="0.6.4"
+ARG LABEL_DATE="202209"
+
+# 'LABEL' instructions tag the image with metadata that might be important to the user
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="Label"
+LABEL software.version="${LABEL_VER}"
+LABEL description="Rapid annotation of influenza"
+LABEL website="https://wonder.cdc.gov/amd/flu/label/"
+LABEL license="https://github.com/StaPH-B/docker-builds/blob/master/LICENSE"
+LABEL maintainer="Erin Young"
+LABEL maintainer.email="eriny@utah.gov"
+
+# MAFFT version v7.490
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ wget \
+ procps \
+ ca-certificates \
+ mafft \
+ unzip \
+ zip && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+# install fasttree
+WORKDIR /usr/local/bin/
+
+WORKDIR /
+
+RUN wget -q https://wonder.cdc.gov/amd/flu/label/flu-amd-LABEL-${LABEL_DATE}.zip && \
+ unzip flu-amd-LABEL-${LABEL_DATE}.zip && \
+ rm flu-amd-LABEL-${LABEL_DATE}.zip
+
+ENV PATH="/flu-amd/:$PATH" \
+ LC_ALL=C
+
+CMD label -h
+
+WORKDIR /data
+
+FROM app as test
+
+WORKDIR /test
+
+RUN LABEL -h
+
+RUN LABEL /flu-amd/test.fa test\_proj H9v2011 && \
+ head *txt
\ No newline at end of file
diff --git a/label/0.6.4/README.md b/label/0.6.4/README.md
new file mode 100644
index 000000000..9aa3d2eb6
--- /dev/null
+++ b/label/0.6.4/README.md
@@ -0,0 +1,25 @@
+# LABEL container
+
+Main tool: [LABEL](https://wonder.cdc.gov/amd/flu/label/)
+
+Code repository: https://wonder.cdc.gov/amd/flu/label/
+
+Additional tools:
+- mafft: v7.490
+
+Note: muscle and fasttree are downloaded with LABEL
+
+Basic information on how to use this tool:
+- executable: label
+- help: -h
+- version: NA
+- description: |
+ > LABEL was designed for the rapid annotation of influenza (or other virus) clades using profile Hidden Markov models and support vector machines. In particular, LABEL comes with modules to annotate clades for influenza A(H5N1) hemagluttinin gene segments as described by the WHO/FAO/OIE H5N1 nomenclature working group.
+
+Full documentation: link to documentation or wiki
+
+## Example Usage
+
+```bash
+LABEL /flu-amd/test.fa test\_proj H9v2011
+```
diff --git a/lima/2.9.0-Rscripts/Dockerfile b/lima/2.9.0-Rscripts/Dockerfile
new file mode 100644
index 000000000..a1ba37a5e
--- /dev/null
+++ b/lima/2.9.0-Rscripts/Dockerfile
@@ -0,0 +1,71 @@
+ARG LIMA_VER="2.9.0"
+
+## Builder ##
+FROM ubuntu:jammy as builder
+
+ARG LIMA_VER
+ARG DEBIAN_FRONTEND=noninteractive
+
+RUN apt-get update && apt-get install -y \
+ wget \
+ build-essential \
+ gfortran \
+ r-base
+
+# build required R packages
+RUN R -e "install.packages(c('ggplot2', 'dplyr', 'tidyr' ,'viridis', 'scales', 'data.table', 'hexbin'), quietly = TRUE, warn.conflicts = FALSE, repos = 'http://cran.us.r-project.org')"
+
+# Rscripts
+RUN wget -P /usr/local/bin/ https://github.com/PacificBiosciences/barcoding/raw/master/scripts/r/report_summary.R \
+ https://github.com/PacificBiosciences/barcoding/raw/master/scripts/r/report_detail.R &&\
+ chmod +x /usr/local/bin/report_summary.R /usr/local/bin/report_detail.R
+
+## App ##
+FROM ubuntu:jammy as app
+
+ARG LIMA_VER
+
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="Lima"
+LABEL software.version="${LIMA_VER}"
+LABEL description="The PacBio Barcode Demultiplixer & Primer Remover"
+LABEL website="https://github.com/PacificBiosciences/barcoding"
+LABEL license="https://github.com/PacificBiosciences/barcoding/blob/master/LICENSE"
+LABEL maintainer="Kutluhan Incekara"
+LABEL maintainer.email="kutluhan.incekara@ct.gov"
+
+RUN apt-get update && apt-get install --no-install-recommends -y \
+ wget \
+ r-base &&\
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+COPY --from=builder /usr/local/lib/R/site-library/ /usr/local/lib/R/site-library/
+COPY --from=builder /usr/local/bin/ /usr/local/bin/
+
+RUN wget https://github.com/PacificBiosciences/barcoding/releases/download/v${LIMA_VER}/lima.tar.gz &&\
+ tar -C /usr/local/bin -xvf lima.tar.gz &&\
+ rm lima.tar.gz
+
+ENV LC_ALL=C
+
+CMD lima -h && lima-undo -h
+
+WORKDIR /data
+
+FROM app as test
+# download test files
+RUN wget -q https://downloads.pacbcloud.com/public/dataset/HiFiViral/Jan_2022/HiFiViral_Barcoded_M13_Primer_Plate.fasta \
+ https://downloads.pacbcloud.com/public/dataset/HiFiViral/Jan_2022/InqabaOmicronSamples_Barcoded_Sample.csv \
+ https://downloads.pacbcloud.com/public/dataset/HiFiViral/Jan_2022/m64187e_211217_130958.hifi_reads.bam
+# run test
+RUN lima m64187e_211217_130958.hifi_reads.bam HiFiViral_Barcoded_M13_Primer_Plate.fasta demux.hifi.bam --biosample-csv InqabaOmicronSamples_Barcoded_Sample.csv --hifi-preset ASYMMETRIC &&\
+ cat demux.hifi.lima.summary
+
+RUN report_summary.R demux.hifi.lima.report &&\
+ ls | grep png
+
+
+
+
+
diff --git a/lima/2.9.0-Rscripts/README.md b/lima/2.9.0-Rscripts/README.md
new file mode 100644
index 000000000..442eb148c
--- /dev/null
+++ b/lima/2.9.0-Rscripts/README.md
@@ -0,0 +1,31 @@
+# Lima container with Rscripts
+
+Main tool: [lima](https://lima.how/)
+
+Code repository: https://github.com/PacificBiosciences/barcoding
+
+Additional tools:
+- report_detail.R
+- report_summary.R
+
+Basic information on how to use this tool:
+- executables: lima, lima-undo
+- help: -h
+- version: --version
+- description: lima is the standard tool to identify barcode and primer sequences in PacBio single-molecule sequencing data.
+
+Additional information:
+
+This container includes two Rscripts that can visualize various metrics from the lima report.
+
+Full documentation: https://lima.how/
+
+## Example Usage
+```bash
+lima [options]
+
+report_summry.R lima.report
+
+report_detail.R lima.report [pdf|png] [barcode_pair_names]
+```
+
diff --git a/lima/2.9.0/Dockerfile b/lima/2.9.0/Dockerfile
new file mode 100644
index 000000000..79de20404
--- /dev/null
+++ b/lima/2.9.0/Dockerfile
@@ -0,0 +1,41 @@
+FROM ubuntu:jammy as app
+
+ARG LIMA_VER="2.9.0"
+
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="Lima"
+LABEL software.version="${LIMA_VER}"
+LABEL description="The PacBio Barcode Demultiplixer & Primer Remover"
+LABEL website="https://github.com/PacificBiosciences/barcoding"
+LABEL license="https://github.com/PacificBiosciences/barcoding/blob/master/LICENSE"
+LABEL maintainer="Kutluhan Incekara"
+LABEL maintainer.email="kutluhan.incekara@ct.gov"
+
+RUN apt-get update && apt-get install --no-install-recommends -y \
+ wget &&\
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+RUN wget --no-check-certificate https://github.com/PacificBiosciences/barcoding/releases/download/v${LIMA_VER}/lima.tar.gz &&\
+ tar -C /usr/local/bin -xvf lima.tar.gz &&\
+ rm lima.tar.gz
+
+ENV LC_ALL=C
+
+CMD lima -h && lima-undo -h
+
+WORKDIR /data
+
+FROM app as test
+# download test files
+RUN wget -q --no-check-certificate https://downloads.pacbcloud.com/public/dataset/HiFiViral/Jan_2022/HiFiViral_Barcoded_M13_Primer_Plate.fasta \
+ https://downloads.pacbcloud.com/public/dataset/HiFiViral/Jan_2022/InqabaOmicronSamples_Barcoded_Sample.csv \
+ https://downloads.pacbcloud.com/public/dataset/HiFiViral/Jan_2022/m64187e_211217_130958.hifi_reads.bam
+# run test
+RUN lima m64187e_211217_130958.hifi_reads.bam HiFiViral_Barcoded_M13_Primer_Plate.fasta demux.hifi.bam --biosample-csv InqabaOmicronSamples_Barcoded_Sample.csv --hifi-preset ASYMMETRIC &&\
+ cat demux.hifi.lima.summary
+
+
+
+
+
diff --git a/lima/2.9.0/README.md b/lima/2.9.0/README.md
new file mode 100644
index 000000000..513ad9c97
--- /dev/null
+++ b/lima/2.9.0/README.md
@@ -0,0 +1,18 @@
+# Lima container
+
+Main tool: [lima](https://lima.how/)
+
+Code repository: https://github.com/PacificBiosciences/barcoding
+
+Basic information on how to use this tool:
+- executables: lima, lima-undo
+- help: -h
+- version: --version
+- description: lima is the standard tool to identify barcode and primer sequences in PacBio single-molecule sequencing data.
+
+Full documentation: https://lima.how/
+
+## Example Usage
+```bash
+lima [options]
+```
diff --git a/longshot/1.0.0/Dockerfile b/longshot/1.0.0/Dockerfile
new file mode 100644
index 000000000..5328b2d66
--- /dev/null
+++ b/longshot/1.0.0/Dockerfile
@@ -0,0 +1,74 @@
+FROM mambaorg/micromamba:1.5.8 as app
+
+# List all software versions are ARGs near the top of the dockerfile
+# 'ARG' sets environment variables during the build stage
+# 'ARG' variables are ONLY available during image build, they do not persist in the final image
+ARG LONGSHOT_VERSION="1.0.0"
+
+# build and run as root users since micromamba image has 'mambauser' set as the $USER
+USER root
+# set workdir to default for building; set to /data at the end
+WORKDIR /
+
+# 'LABEL' instructions tag the image with metadata that might be important to the user
+LABEL base.image="mambaorg/micromamba:1.5.8"
+LABEL dockerfile.version="1"
+LABEL software="longshot"
+LABEL software.version="${LONGSHOT_VERSION}"
+LABEL description="A variant calling tool for noisy reads"
+LABEL website="https://github.com/pjedge/longshot"
+LABEL license="https://github.com/pjedge/longshot/blob/master/LICENSE"
+LABEL maintainer="Erin Young"
+LABEL maintainer.email="eriny@utah.gov"
+
+# Example apt-get command for commonly-missing dependencies
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ wget \
+ ca-certificates \
+ procps && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+# Install your desired software into the base conda/micromamba environment, pinning the version
+# clean up conda garbage
+# make /data to use as a working directory
+RUN micromamba install --name base -c conda-forge -c bioconda -c defaults longshot=${LONGSHOT_VERSION} && \
+ micromamba clean -a -y && \
+ mkdir /data
+
+# 'ENV' instructions set environment variables that persist from the build into the resulting image
+# set the environment, add base conda/micromamba bin directory into path
+# set locale settings to UTF-8
+ENV PATH="/opt/conda/bin/:${PATH}" \
+ LC_ALL=C.UTF-8
+
+# 'CMD' instructions set a default command when the container is run. This is typically 'tool --help.'
+CMD longshot --help
+
+# set final working directory to /data
+WORKDIR /data
+
+##### ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- #####
+##### Step 2. Set up the testing stage. #####
+##### The docker image is built to the 'test' stage before merging, but #####
+##### the test stage (or any stage after 'app') will be lost. #####
+##### ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- #####
+
+# A second FROM insruction creates a new stage
+# new base for testing
+FROM app as test
+
+# set working directory so that all test inputs & outputs are kept in /test
+WORKDIR /test
+
+# print help and version info; check dependencies (not all software has these options available)
+# Mostly this ensures the tool of choice is in path and is executable
+RUN longshot --help && \
+ longshot --version
+
+RUN wget -q https://raw.githubusercontent.com/pjedge/longshot/master/example_data/genome.fa && \
+ wget -q https://raw.githubusercontent.com/pjedge/longshot/master/example_data/genome.fa.fai && \
+ wget -q https://raw.githubusercontent.com/pjedge/longshot/master/example_data/ground_truth_variants.vcf && \
+ wget -q https://raw.githubusercontent.com/pjedge/longshot/master/example_data/pacbio_reads_30x.bam && \
+ wget -q https://raw.githubusercontent.com/pjedge/longshot/master/example_data/pacbio_reads_30x.bam.bai && \
+ longshot --bam pacbio_reads_30x.bam --ref genome.fa --out longshot_output.vcf && \
+ head *vcf
\ No newline at end of file
diff --git a/longshot/1.0.0/README.md b/longshot/1.0.0/README.md
new file mode 100644
index 000000000..b3a7626c8
--- /dev/null
+++ b/longshot/1.0.0/README.md
@@ -0,0 +1,23 @@
+# longshot container
+
+Main tool : [longshot](https://github.com/pjedge/longshot)
+
+Code repository: https://github.com/pjedge/longshot
+
+Basic information on how to use this tool:
+- executable: longshot
+- help: <--help>
+- version: <--version>
+- description: Longshot is a variant calling tool for diploid genomes using long error-prone reads such as Pacific Biosciences (PacBio) SMRT and Oxford Nanopore Technologies (ONT).
+
+Additional information:
+
+Longshot takes as input an aligned BAM/CRAM file and outputs a phased VCF file with variants and haplotype information. It can also genotype and phase input VCF files. It can output haplotype-separated BAM files that can be used for downstream analysis. Currently, it only calls single nucleotide variants (SNVs), but it can genotype indels if they are given in an input VCF.
+
+Full documentation: [https://github.com/artic-network/fieldbioinformatics](https://github.com/artic-network/fieldbioinformatics)
+
+## Example Usage
+
+```bash
+longshot --bam example_data/pacbio_reads_30x.bam --ref example_data/genome.fa --out example_data/longshot_output.vcf
+```
diff --git a/mafft/7.520/Dockerfile b/mafft/7.520/Dockerfile
new file mode 100644
index 000000000..247d411af
--- /dev/null
+++ b/mafft/7.520/Dockerfile
@@ -0,0 +1,51 @@
+# base image
+FROM ubuntu:jammy as app
+
+# For easy upgrade in the future. ARG variables only persist during build time.
+ARG MAFFT_VER="7.520"
+
+# metadata
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="MAFFT"
+LABEL software.version=${MAFFT_VER}
+LABEL description="Multiple alignment program for amino acid or nucleotide sequences"
+LABEL website="https://gitlab.com/sysimm/mafft"
+LABEL documentation="https://mafft.cbrc.jp/alignment/software/"
+LABEL license="https://mafft.cbrc.jp/alignment/software/license.txt"
+LABEL maintainer="Erin Young"
+LABEL maintainer.email="eriny@utah.gov"
+
+# install wget, remove apt garbage
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ wget \
+ ca-certificates \
+ procps && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+# install mafft binary and make /data
+RUN wget https://mafft.cbrc.jp/alignment/software/mafft_${MAFFT_VER}-1_amd64.deb && \
+ dpkg -i mafft_${MAFFT_VER}-1_amd64.deb && \
+ rm mafft_${MAFFT_VER}-1_amd64.deb && \
+ mkdir /data
+
+CMD mafft help
+
+WORKDIR /data
+
+FROM staphb/ncbi-datasets:16.8.1 as datasets
+
+WORKDIR /test
+
+RUN datasets download virus genome accession OQ344199.2 OQ344200.2 OQ344201.2 --filename sarscov2.zip && unzip sarscov2.zip
+
+FROM app as test
+
+WORKDIR /test
+
+COPY --from=datasets /test/ncbi_dataset/data/genomic.fna /test/genomic.fna
+
+# this works, but it writes to stderr
+# RUN maff --help && mafft --version
+
+RUN mafft --auto genomic.fna > aligned.fna && wc -l *fna
diff --git a/mafft/7.520/README.md b/mafft/7.520/README.md
new file mode 100644
index 000000000..46c2a8f36
--- /dev/null
+++ b/mafft/7.520/README.md
@@ -0,0 +1,20 @@
+# MAFFT container
+
+Main tool : [MAFFT](https://mafft.cbrc.jp/alignment/software/)
+
+MAFFT is a multiple sequence alignment program for unix-like operating systems.
+
+# Example Usage
+
+```
+# have mafft detect what to do
+mafft --auto input > output
+# filter out sequences with too many ambiguous values with --maxambiguous (only available in version greater than 7.473) and compare to reference
+mafft --auto --maxambiguous 0.05 --addfragments othersequences referencesequence > output
+```
+
+## Other noteworthy options include
+```
+--thread # allows parallelization
+--large # reduces memory burden
+```
diff --git a/mafft/7.526/Dockerfile b/mafft/7.526/Dockerfile
new file mode 100644
index 000000000..904183601
--- /dev/null
+++ b/mafft/7.526/Dockerfile
@@ -0,0 +1,51 @@
+# base image
+FROM ubuntu:jammy as app
+
+# For easy upgrade in the future. ARG variables only persist during build time.
+ARG MAFFT_VER="7.526"
+
+# metadata
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="MAFFT"
+LABEL software.version=${MAFFT_VER}
+LABEL description="Multiple alignment program for amino acid or nucleotide sequences"
+LABEL website="https://gitlab.com/sysimm/mafft"
+LABEL documentation="https://mafft.cbrc.jp/alignment/software/"
+LABEL license="https://mafft.cbrc.jp/alignment/software/license.txt"
+LABEL maintainer="Erin Young"
+LABEL maintainer.email="eriny@utah.gov"
+
+# install wget, remove apt garbage
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ wget \
+ ca-certificates \
+ procps && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+# install mafft binary and make /data
+RUN wget https://mafft.cbrc.jp/alignment/software/mafft_${MAFFT_VER}-1_amd64.deb && \
+ dpkg -i mafft_${MAFFT_VER}-1_amd64.deb && \
+ rm mafft_${MAFFT_VER}-1_amd64.deb && \
+ mkdir /data
+
+CMD mafft help
+
+WORKDIR /data
+
+FROM staphb/ncbi-datasets:16.8.1 as datasets
+
+WORKDIR /test
+
+RUN datasets download virus genome accession OQ344199.2 OQ344200.2 OQ344201.2 --filename sarscov2.zip && unzip sarscov2.zip
+
+FROM app as test
+
+WORKDIR /test
+
+COPY --from=datasets /test/ncbi_dataset/data/genomic.fna /test/genomic.fna
+
+# this works, but it writes to stderr
+# RUN maff --help && mafft --version
+
+RUN mafft --auto genomic.fna > aligned.fna && wc -l *fna
diff --git a/mafft/7.526/README.md b/mafft/7.526/README.md
new file mode 100644
index 000000000..46c2a8f36
--- /dev/null
+++ b/mafft/7.526/README.md
@@ -0,0 +1,20 @@
+# MAFFT container
+
+Main tool : [MAFFT](https://mafft.cbrc.jp/alignment/software/)
+
+MAFFT is a multiple sequence alignment program for unix-like operating systems.
+
+# Example Usage
+
+```
+# have mafft detect what to do
+mafft --auto input > output
+# filter out sequences with too many ambiguous values with --maxambiguous (only available in version greater than 7.473) and compare to reference
+mafft --auto --maxambiguous 0.05 --addfragments othersequences referencesequence > output
+```
+
+## Other noteworthy options include
+```
+--thread # allows parallelization
+--large # reduces memory burden
+```
diff --git a/mashtree/1.4.6/Dockerfile b/mashtree/1.4.6/Dockerfile
new file mode 100644
index 000000000..ab7f429bd
--- /dev/null
+++ b/mashtree/1.4.6/Dockerfile
@@ -0,0 +1,101 @@
+FROM ubuntu:jammy as app
+
+# for easy upgrade later. ARG variables only persist during image build time
+ARG mashtreeVer="1.4.6"
+ARG mashVer="2.3"
+ARG quicktreeVer="2.5"
+
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="mashtree"
+LABEL software.version="${mashtreeVer}"
+LABEL description="Create a tree using Mash distances"
+LABEL website="https://github.com/lskatz/mashtree"
+LABEL license="https://github.com/lskatz/mashtree/blob/master/LICENSE"
+LABEL maintainer="Abigail Shockey"
+LABEL maintainer.email="abigail.shockey@slh.wisc.edu"
+LABEL maintainer2="Curtis Kapsak"
+LABEL maintainer2.email="pjx8@cdc.gov"
+LABEL maintainer3="Muhammad yasir Nawaz"
+LABEL maintainer3.email="nawazm@michigan.gov"
+
+# install dependencies
+RUN apt-get update && apt-get -y install \
+ perl \
+ build-essential \
+ sqlite3 \
+ libsqlite3-dev \
+ libjson-perl \
+ make \
+ wget \
+ cpanminus \
+ libexpat1-dev \
+ liblwp-protocol-https-perl \
+ libnet-ssleay-perl && \
+ apt-get clean && apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+# install perl modules
+RUN cpanm --force --notest BioPerl \
+ Bio::Perl \
+ Bio::DB::GenBank \
+ LWP::Protocol::https \
+ IO::Socket::SSL \
+ Bio::Sketch::Mash \
+ Bio::Kmer \
+ DBD::SQLite \
+ DBI \
+ File::Which
+
+# install mash
+RUN wget https://github.com/marbl/Mash/releases/download/v${mashVer}/mash-Linux64-v${mashVer}.tar && \
+ tar -xf mash-Linux64-v${mashVer}.tar && \
+ rm -rf mash-Linux64-v${mashVer}.tar && \
+ chown root:root /mash-Linux64-v${mashVer}/*
+
+# install quicktree
+RUN wget https://github.com/khowe/quicktree/archive/v${quicktreeVer}.tar.gz && \
+ tar -xzf v${quicktreeVer}.tar.gz && \
+ rm -rf v${quicktreeVer}.tar.gz && \
+ cd quicktree-${quicktreeVer} && \
+ make quicktree
+
+# add mash and quicktree to the path to allow mashtree to pass tests
+ENV PATH="${PATH}:/mash-Linux64-v${mashVer}:\
+/quicktree-${quicktreeVer}"
+
+# install mashtree
+RUN wget https://github.com/lskatz/mashtree/archive/v${mashtreeVer}.tar.gz && \
+ tar -xzf v${mashtreeVer}.tar.gz && \
+ rm -rf v${mashtreeVer}.tar.gz && \
+ cd mashtree-${mashtreeVer}/ && \
+ perl Makefile.PL && \
+ mkdir /data
+
+# set PATH to include mashtree. LC_ALL for singularity compatibility
+ENV PATH="${PATH}:/mashtree-${mashtreeVer}/bin"\
+ LC_ALL=C
+
+WORKDIR /data
+
+CMD mashtree --help
+
+####################################
+########### test stage #############
+####################################
+
+# getting a fasta file with datasets
+FROM staphb/ncbi-datasets:14.3.0 as fasta
+
+WORKDIR /fasta_test
+
+RUN datasets download genome accession GCA_007765495.1,GCF_000006945.2,GCF_016028495.1 --filename datasets.zip && \
+ unzip datasets.zip
+
+FROM app as test
+
+WORKDIR /test
+
+COPY --from=fasta /fasta_test/ncbi_dataset/data/*/*.fna .
+
+RUN mashtree *.fna > tree.dnd
+RUN mashtree --help
diff --git a/mashtree/1.4.6/README.md b/mashtree/1.4.6/README.md
new file mode 100644
index 000000000..64ff1b180
--- /dev/null
+++ b/mashtree/1.4.6/README.md
@@ -0,0 +1,22 @@
+# mashtree container
+
+Main tool: [mashtree](https://github.com/lskatz/mashtree)
+
+Code repository: https://github.com/lskatz/mashtree
+
+Additional tools:
+- mash: 2.3
+- quicktree: 2.5
+
+Basic information on how to use this tool:
+- executable: mashtree
+- help: --help
+- description: Create a tree using Mash distances.
+
+Full documentation: https://github.com/lskatz/mashtree
+
+## Example Usage
+
+```bash
+mashtree --numcpus 4 sample1.fasta sample2.fasta sample3.fasta --outtree mashtree.nwk
+```
diff --git a/metaphlan/4.1.0/Dockerfile b/metaphlan/4.1.0/Dockerfile
new file mode 100644
index 000000000..cd9672a51
--- /dev/null
+++ b/metaphlan/4.1.0/Dockerfile
@@ -0,0 +1,45 @@
+FROM mambaorg/micromamba:1.5.6 as app
+
+ARG METAPHLAN_VER="4.1.0"
+
+USER root
+
+WORKDIR /
+
+LABEL base.image="mambaorg/micromamba:1.5.6"
+LABEL dockerfile.version="1"
+LABEL software="MetaPhlAn"
+LABEL software.version="${METAPHLAN_VER}"
+LABEL description="MetaPhlAn is a computational tool for species-level microbial profiling from metagenomic shotgun sequencing data"
+LABEL website="https://github.com/biobakery/MetaPhlAn"
+LABEL license="https://github.com/biobakery/MetaPhlAn/blob/master/license.txt"
+LABEL maintainer="Kutluhan Incekara"
+LABEL maintainer.email="kutluhan.incekara@ct.gov"
+
+RUN apt-get update && apt-get install --no-install-recommends -y \
+ procps &&\
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+RUN micromamba install --name base -c conda-forge -c bioconda metaphlan=${METAPHLAN_VER} &&\
+ micromamba clean -a -y
+
+ENV PATH="/opt/conda/bin/:${PATH}" \
+ LC_ALL=C.UTF-8
+
+CMD [ "metaphlan", "--help" ]
+
+WORKDIR /data
+
+## Test ##
+FROM app as test
+
+ENV ENV_NAME="base"
+ARG MAMBA_DOCKERFILE_ACTIVATE=1
+
+# get test sample
+RUN wget https://github.com/biobakery/MetaPhlAn/releases/download/4.1.0/SRS014476-Supragingival_plaque.fasta.gz
+# download toy db
+RUN metaphlan --install --index mpa_vJan21_TOY_CHOCOPhlAnSGB_202103 --bowtie2db /toy
+# metaphlan test
+RUN metaphlan SRS014476-Supragingival_plaque.fasta.gz --input_type fasta --bowtie2db /toy --index mpa_vJan21_TOY_CHOCOPhlAnSGB_202103 > test.txt &&\
+ cat test.txt
\ No newline at end of file
diff --git a/metaphlan/4.1.0/README.md b/metaphlan/4.1.0/README.md
new file mode 100644
index 000000000..4e96e7dd4
--- /dev/null
+++ b/metaphlan/4.1.0/README.md
@@ -0,0 +1,26 @@
+# MetaPhlAn container
+
+Main tool: [MetaPhlAn](https://github.com/biobakery/MetaPhlAn/wiki/MetaPhlAn-4.1)
+
+Code repository: https://github.com/biobakery/MetaPhlAn
+
+Basic information on how to use this tool:
+- executable: metaphlan
+- help: -h
+- version: -v
+- description: MetaPhlAn is a computational tool for species-level microbial profiling (bacteria, archaea, eukaryotes, and viruses) from metagenomic shotgun sequencing data. StrainPhlAn (available within MetaPhlAn) allows strain-level microbial population genomics.
+
+Additional information:
+
+The MetaPhlAn 4 database has been substantially increased (~21GB) in comparison with the previous 3.1 version. Thus, for running MetaPhlAn 4, a minimum of 25GB or memory is needed.
+The database can be downloaded from [Segatalab FTP](http://cmprod1.cibio.unitn.it/biobakery4/metaphlan_databases/) or via metaphlan with the following command:
+
+```metaphlan --install```
+
+Full documentation: https://github.com/biobakery/MetaPhlAn/wiki/MetaPhlAn-4.1
+
+## Example Usage
+
+```bash
+metaphlan metagenome.fastq --input_type fastq -o profiled_metagenome.txt
+```
\ No newline at end of file
diff --git a/metaphlan/4.1.1/Dockerfile b/metaphlan/4.1.1/Dockerfile
new file mode 100644
index 000000000..689e3b785
--- /dev/null
+++ b/metaphlan/4.1.1/Dockerfile
@@ -0,0 +1,44 @@
+FROM mambaorg/micromamba:1.5.8 as app
+
+ARG METAPHLAN_VER="4.1.1"
+
+USER root
+
+WORKDIR /
+
+LABEL base.image="mambaorg/micromamba:1.5.8"
+LABEL dockerfile.version="1"
+LABEL software="MetaPhlAn"
+LABEL software.version="${METAPHLAN_VER}"
+LABEL description="MetaPhlAn is a computational tool for species-level microbial profiling from metagenomic shotgun sequencing data"
+LABEL website="https://github.com/biobakery/MetaPhlAn"
+LABEL license="https://github.com/biobakery/MetaPhlAn/blob/master/license.txt"
+LABEL maintainer="Kutluhan Incekara"
+LABEL maintainer.email="kutluhan.incekara@ct.gov"
+
+RUN apt-get update && apt-get install --no-install-recommends -y \
+ procps &&\
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+RUN micromamba install --name base -c conda-forge -c bioconda metaphlan=${METAPHLAN_VER} &&\
+ micromamba clean -afy
+
+ENV PATH="/opt/conda/bin/:${PATH}" \
+ LC_ALL=C.UTF-8
+
+CMD [ "metaphlan", "--help" ]
+
+WORKDIR /data
+
+## Test ##
+FROM app as test
+
+RUN metaphlan --help
+
+# get test sample
+RUN wget https://github.com/biobakery/MetaPhlAn/releases/download/4.1.0/SRS014476-Supragingival_plaque.fasta.gz
+# download toy db
+RUN metaphlan --install --index mpa_vJan21_TOY_CHOCOPhlAnSGB_202103 --bowtie2db /toy
+# metaphlan test
+RUN metaphlan SRS014476-Supragingival_plaque.fasta.gz --input_type fasta --bowtie2db /toy --index mpa_vJan21_TOY_CHOCOPhlAnSGB_202103 > test.txt &&\
+ cat test.txt
diff --git a/metaphlan/4.1.1/README.md b/metaphlan/4.1.1/README.md
new file mode 100644
index 000000000..4e96e7dd4
--- /dev/null
+++ b/metaphlan/4.1.1/README.md
@@ -0,0 +1,26 @@
+# MetaPhlAn container
+
+Main tool: [MetaPhlAn](https://github.com/biobakery/MetaPhlAn/wiki/MetaPhlAn-4.1)
+
+Code repository: https://github.com/biobakery/MetaPhlAn
+
+Basic information on how to use this tool:
+- executable: metaphlan
+- help: -h
+- version: -v
+- description: MetaPhlAn is a computational tool for species-level microbial profiling (bacteria, archaea, eukaryotes, and viruses) from metagenomic shotgun sequencing data. StrainPhlAn (available within MetaPhlAn) allows strain-level microbial population genomics.
+
+Additional information:
+
+The MetaPhlAn 4 database has been substantially increased (~21GB) in comparison with the previous 3.1 version. Thus, for running MetaPhlAn 4, a minimum of 25GB or memory is needed.
+The database can be downloaded from [Segatalab FTP](http://cmprod1.cibio.unitn.it/biobakery4/metaphlan_databases/) or via metaphlan with the following command:
+
+```metaphlan --install```
+
+Full documentation: https://github.com/biobakery/MetaPhlAn/wiki/MetaPhlAn-4.1
+
+## Example Usage
+
+```bash
+metaphlan metagenome.fastq --input_type fastq -o profiled_metagenome.txt
+```
\ No newline at end of file
diff --git a/minimap2/2.26/Dockerfile b/minimap2/2.26/Dockerfile
new file mode 100644
index 000000000..5a5f6207b
--- /dev/null
+++ b/minimap2/2.26/Dockerfile
@@ -0,0 +1,59 @@
+FROM ubuntu:jammy as app
+
+# for easy upgrade later. ARG variables only persist during image build time
+ARG MINIMAP2_VER="2.26"
+
+# metadata
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="Minimap2"
+LABEL software.version="${MINIMAP2_VER}"
+LABEL description="versatile sequence alignment program that aligns DNA or mRNA sequences against a large reference database"
+LABEL website="https://github.com/lh3/minimap2"
+LABEL license="https://github.com/lh3/minimap2/blob/master/LICENSE.txt"
+LABEL maintainer="Kelsey Florek"
+LABEL maintainer.email="Kelsey.florek@slh.wisc.edu"
+LABEL maintainer2="Curtis Kapsak"
+LABEL maintainer2.email="kapsakcj@gmail.com"
+
+# install deps and cleanup apt garbage
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ curl \
+ ca-certificates \
+ bzip2 \
+ procps && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+# install minimap2 binary; make /data
+RUN curl -L https://github.com/lh3/minimap2/releases/download/v${MINIMAP2_VER}/minimap2-${MINIMAP2_VER}_x64-linux.tar.bz2 | tar -jxvf - && \
+ mkdir /data
+
+# set final PATH and LC_ALL for singularity compatibility
+ENV PATH="${PATH}:/minimap2-${MINIMAP2_VER}_x64-linux" \
+LC_ALL=C
+
+# set final working directory as /data
+WORKDIR /data
+
+CMD minimap2 -h
+
+# test layer
+FROM app as test
+
+# use /test as working directory for tests
+WORKDIR /test
+
+# git clone minimap2 github repo solely for the purpose of getting test data files
+# the minimap2 command used below is that installed in the 'app' layer, proven by the output of "command -v minimap2"
+# lastly, I'm using the test commands listed here: https://github.com/lh3/minimap2#getting-started
+RUN apt-get update && apt-get install -y --no-install-recommends git && \
+ git clone https://github.com/lh3/minimap2 && \
+ cd minimap2 && \
+ echo && \
+ echo "double checking that the 'minimap2' command used below is the executable installed in the app stage of the docker image. Here is the path:" && \
+ command -v minimap2 && \
+ echo && \
+ minimap2 -a test/MT-human.fa test/MT-orang.fa > test.sam && \
+ minimap2 -x map-ont -d MT-human-ont.mmi test/MT-human.fa && \
+ minimap2 -a MT-human-ont.mmi test/MT-orang.fa > test.sam && \
+ minimap2 --version
diff --git a/minimap2/2.26/README.md b/minimap2/2.26/README.md
new file mode 100644
index 000000000..cc6542196
--- /dev/null
+++ b/minimap2/2.26/README.md
@@ -0,0 +1,31 @@
+# minimap2 container
+
+Main tool : [minimap2](https://github.com/lh3/minimap2)
+
+Additional tools:
+
+- none (apart from basic linux utilties included in `ubuntu:jammy` base docker image, like `ls`, `mkdir`, etc.)
+
+Publication: [https://academic.oup.com/bioinformatics/article/34/18/3094/4994778?login=false](https://academic.oup.com/bioinformatics/article/34/18/3094/4994778?login=false)
+
+Minimap2 is a versatile sequence alignment program that aligns DNA or mRNA sequences against a large reference database.
+
+## Example Usage
+
+These example commands were copy/pasted directly from: [https://github.com/lh3/minimap2#getting-started](https://github.com/lh3/minimap2#getting-started)
+
+```bash
+# use presets (no test data)
+minimap2 -ax map-pb ref.fa pacbio.fq.gz > aln.sam # PacBio CLR genomic reads
+minimap2 -ax map-ont ref.fa ont.fq.gz > aln.sam # Oxford Nanopore genomic reads
+minimap2 -ax map-hifi ref.fa pacbio-ccs.fq.gz > aln.sam # PacBio HiFi/CCS genomic reads (v2.19 or later)
+minimap2 -ax asm20 ref.fa pacbio-ccs.fq.gz > aln.sam # PacBio HiFi/CCS genomic reads (v2.18 or earlier)
+minimap2 -ax sr ref.fa read1.fa read2.fa > aln.sam # short genomic paired-end reads
+minimap2 -ax splice ref.fa rna-reads.fa > aln.sam # spliced long reads (strand unknown)
+minimap2 -ax splice -uf -k14 ref.fa reads.fa > aln.sam # noisy Nanopore Direct RNA-seq
+minimap2 -ax splice:hq -uf ref.fa query.fa > aln.sam # Final PacBio Iso-seq or traditional cDNA
+minimap2 -ax splice --junc-bed anno.bed12 ref.fa query.fa > aln.sam # prioritize on annotated junctions
+minimap2 -cx asm5 asm1.fa asm2.fa > aln.paf # intra-species asm-to-asm alignment
+minimap2 -x ava-pb reads.fa reads.fa > overlaps.paf # PacBio read overlap
+minimap2 -x ava-ont reads.fa reads.fa > overlaps.paf # Nanopore read overlap
+```
diff --git a/minimap2/2.27/Dockerfile b/minimap2/2.27/Dockerfile
new file mode 100644
index 000000000..5b2c124cd
--- /dev/null
+++ b/minimap2/2.27/Dockerfile
@@ -0,0 +1,68 @@
+FROM ubuntu:jammy as app
+
+# for easy upgrade later. ARG variables only persist during image build time
+ARG MINIMAP2_VER="2.27"
+
+# metadata
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="Minimap2"
+LABEL software.version="${MINIMAP2_VER}"
+LABEL description="versatile sequence alignment program that aligns DNA or mRNA sequences against a large reference database"
+LABEL website="https://github.com/lh3/minimap2"
+LABEL license="https://github.com/lh3/minimap2/blob/master/LICENSE.txt"
+LABEL maintainer="Kelsey Florek"
+LABEL maintainer.email="Kelsey.florek@slh.wisc.edu"
+LABEL maintainer2="Curtis Kapsak"
+LABEL maintainer2.email="kapsakcj@gmail.com"
+
+# install deps and cleanup apt garbage
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ curl \
+ ca-certificates \
+ bzip2 \
+ procps && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+# install minimap2 binary; make /data
+RUN curl -L https://github.com/lh3/minimap2/releases/download/v${MINIMAP2_VER}/minimap2-${MINIMAP2_VER}_x64-linux.tar.bz2 | tar -jxvf - --no-same-owner && \
+ mkdir /data
+
+# set final PATH and LC_ALL for singularity compatibility
+ENV PATH="${PATH}:/minimap2-${MINIMAP2_VER}_x64-linux" \
+LC_ALL=C
+
+# set final working directory as /data
+WORKDIR /data
+
+CMD minimap2 -h
+
+# test layer
+FROM app as test
+
+RUN minimap2 -h
+
+# use /test as working directory for tests
+WORKDIR /test
+
+# git clone minimap2 github repo solely for the purpose of getting test data files
+# the minimap2 command used below is that installed in the 'app' layer, proven by the output of "command -v minimap2"
+# lastly, I'm using the test commands listed here: https://github.com/lh3/minimap2#getting-started
+RUN apt-get update && apt-get install -y --no-install-recommends git wget && \
+ git clone https://github.com/lh3/minimap2 && \
+ cd minimap2 && \
+ echo && \
+ echo "double checking that the 'minimap2' command used below is the executable installed in the app stage of the docker image. Here is the path:" && \
+ command -v minimap2 && \
+ echo && \
+ minimap2 -a test/MT-human.fa test/MT-orang.fa > test.sam && \
+ minimap2 -x map-ont -d MT-human-ont.mmi test/MT-human.fa && \
+ minimap2 -a MT-human-ont.mmi test/MT-orang.fa > test.sam && \
+ minimap2 --version
+
+# downloading some actual data
+RUN wget https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/943/119/195/GCA_943119195.1_2015LSAL00020/GCA_943119195.1_2015LSAL00020_genomic.fna.gz && \
+ gzip -d GCA_943119195.1_2015LSAL00020_genomic.fna.gz && \
+ wget https://zenodo.org/records/10733190/files/df_test_files.tar.gz && \
+ tar -xvf df_test_files.tar.gz && \
+ minimap2 -x lr:hq -a GCA_943119195.1_2015LSAL00020_genomic.fna test_files/test.fastq.gz > lrhq_test.sam
\ No newline at end of file
diff --git a/minimap2/2.27/README.md b/minimap2/2.27/README.md
new file mode 100644
index 000000000..ac93a8045
--- /dev/null
+++ b/minimap2/2.27/README.md
@@ -0,0 +1,31 @@
+# minimap2 container
+
+Main tool : [minimap2](https://github.com/lh3/minimap2)
+
+Additional tools:
+
+- none (apart from basic linux utilties included in `ubuntu:jammy` base docker image, like `ls`, `mkdir`, etc.)
+
+Publication: [https://academic.oup.com/bioinformatics/article/34/18/3094/4994778?login=false](https://academic.oup.com/bioinformatics/article/34/18/3094/4994778?login=false)
+
+Minimap2 is a versatile sequence alignment program that aligns DNA or mRNA sequences against a large reference database.
+
+## Example Usage
+
+These example commands were copy/pasted directly from: [https://github.com/lh3/minimap2#getting-started](https://github.com/lh3/minimap2#getting-started)
+
+```bash
+# use presets (no test data)
+minimap2 -ax map-pb ref.fa pacbio.fq.gz > aln.sam # PacBio CLR genomic reads
+minimap2 -ax map-ont ref.fa ont.fq.gz > aln.sam # Oxford Nanopore genomic reads
+minimap2 -ax map-hifi ref.fa pacbio-ccs.fq.gz > aln.sam # PacBio HiFi/CCS genomic reads (v2.19 or later)
+minimap2 -ax lr:hq ref.fa ont-Q20.fq.gz > aln.sam # Nanopore Q20 genomic reads (v2.27 or later)
+minimap2 -ax sr ref.fa read1.fa read2.fa > aln.sam # short genomic paired-end reads
+minimap2 -ax splice ref.fa rna-reads.fa > aln.sam # spliced long reads (strand unknown)
+minimap2 -ax splice -uf -k14 ref.fa reads.fa > aln.sam # noisy Nanopore Direct RNA-seq
+minimap2 -ax splice:hq -uf ref.fa query.fa > aln.sam # Final PacBio Iso-seq or traditional cDNA
+minimap2 -ax splice --junc-bed anno.bed12 ref.fa query.fa > aln.sam # prioritize on annotated junctions
+minimap2 -cx asm5 asm1.fa asm2.fa > aln.paf # intra-species asm-to-asm alignment
+minimap2 -x ava-pb reads.fa reads.fa > overlaps.paf # PacBio read overlap
+minimap2 -x ava-ont reads.fa reads.fa > overlaps.paf # Nanopore read overlap
+```
diff --git a/minimap2/2.28/Dockerfile b/minimap2/2.28/Dockerfile
new file mode 100644
index 000000000..d9f55addf
--- /dev/null
+++ b/minimap2/2.28/Dockerfile
@@ -0,0 +1,68 @@
+FROM ubuntu:jammy as app
+
+# for easy upgrade later. ARG variables only persist during image build time
+ARG MINIMAP2_VER="2.28"
+
+# metadata
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="Minimap2"
+LABEL software.version="${MINIMAP2_VER}"
+LABEL description="versatile sequence alignment program that aligns DNA or mRNA sequences against a large reference database"
+LABEL website="https://github.com/lh3/minimap2"
+LABEL license="https://github.com/lh3/minimap2/blob/master/LICENSE.txt"
+LABEL maintainer="Kelsey Florek"
+LABEL maintainer.email="Kelsey.florek@slh.wisc.edu"
+LABEL maintainer2="Curtis Kapsak"
+LABEL maintainer2.email="kapsakcj@gmail.com"
+
+# install deps and cleanup apt garbage
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ curl \
+ ca-certificates \
+ bzip2 \
+ procps && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+# install minimap2 binary; make /data
+RUN curl -L https://github.com/lh3/minimap2/releases/download/v${MINIMAP2_VER}/minimap2-${MINIMAP2_VER}_x64-linux.tar.bz2 | tar -jxvf - --no-same-owner && \
+ mkdir /data
+
+# set final PATH and LC_ALL for singularity compatibility
+ENV PATH="${PATH}:/minimap2-${MINIMAP2_VER}_x64-linux" \
+LC_ALL=C
+
+# set final working directory as /data
+WORKDIR /data
+
+CMD minimap2 -h
+
+# test layer
+FROM app as test
+
+RUN minimap2 -h
+
+# use /test as working directory for tests
+WORKDIR /test
+
+# git clone minimap2 github repo solely for the purpose of getting test data files
+# the minimap2 command used below is that installed in the 'app' layer, proven by the output of "command -v minimap2"
+# lastly, I'm using the test commands listed here: https://github.com/lh3/minimap2#getting-started
+RUN apt-get update && apt-get install -y --no-install-recommends git wget && \
+ git clone https://github.com/lh3/minimap2 && \
+ cd minimap2 && \
+ echo && \
+ echo "double checking that the 'minimap2' command used below is the executable installed in the app stage of the docker image. Here is the path:" && \
+ command -v minimap2 && \
+ echo && \
+ minimap2 -a test/MT-human.fa test/MT-orang.fa > test.sam && \
+ minimap2 -x map-ont -d MT-human-ont.mmi test/MT-human.fa && \
+ minimap2 -a MT-human-ont.mmi test/MT-orang.fa > test.sam && \
+ minimap2 --version
+
+# downloading some actual data
+RUN wget https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/943/119/195/GCA_943119195.1_2015LSAL00020/GCA_943119195.1_2015LSAL00020_genomic.fna.gz && \
+ gzip -d GCA_943119195.1_2015LSAL00020_genomic.fna.gz && \
+ wget https://zenodo.org/records/10733190/files/df_test_files.tar.gz && \
+ tar -xvf df_test_files.tar.gz && \
+ minimap2 -x lr:hq -a GCA_943119195.1_2015LSAL00020_genomic.fna test_files/test.fastq.gz > lrhq_test.sam
\ No newline at end of file
diff --git a/minimap2/2.28/README.md b/minimap2/2.28/README.md
new file mode 100644
index 000000000..ac93a8045
--- /dev/null
+++ b/minimap2/2.28/README.md
@@ -0,0 +1,31 @@
+# minimap2 container
+
+Main tool : [minimap2](https://github.com/lh3/minimap2)
+
+Additional tools:
+
+- none (apart from basic linux utilties included in `ubuntu:jammy` base docker image, like `ls`, `mkdir`, etc.)
+
+Publication: [https://academic.oup.com/bioinformatics/article/34/18/3094/4994778?login=false](https://academic.oup.com/bioinformatics/article/34/18/3094/4994778?login=false)
+
+Minimap2 is a versatile sequence alignment program that aligns DNA or mRNA sequences against a large reference database.
+
+## Example Usage
+
+These example commands were copy/pasted directly from: [https://github.com/lh3/minimap2#getting-started](https://github.com/lh3/minimap2#getting-started)
+
+```bash
+# use presets (no test data)
+minimap2 -ax map-pb ref.fa pacbio.fq.gz > aln.sam # PacBio CLR genomic reads
+minimap2 -ax map-ont ref.fa ont.fq.gz > aln.sam # Oxford Nanopore genomic reads
+minimap2 -ax map-hifi ref.fa pacbio-ccs.fq.gz > aln.sam # PacBio HiFi/CCS genomic reads (v2.19 or later)
+minimap2 -ax lr:hq ref.fa ont-Q20.fq.gz > aln.sam # Nanopore Q20 genomic reads (v2.27 or later)
+minimap2 -ax sr ref.fa read1.fa read2.fa > aln.sam # short genomic paired-end reads
+minimap2 -ax splice ref.fa rna-reads.fa > aln.sam # spliced long reads (strand unknown)
+minimap2 -ax splice -uf -k14 ref.fa reads.fa > aln.sam # noisy Nanopore Direct RNA-seq
+minimap2 -ax splice:hq -uf ref.fa query.fa > aln.sam # Final PacBio Iso-seq or traditional cDNA
+minimap2 -ax splice --junc-bed anno.bed12 ref.fa query.fa > aln.sam # prioritize on annotated junctions
+minimap2 -cx asm5 asm1.fa asm2.fa > aln.paf # intra-species asm-to-asm alignment
+minimap2 -x ava-pb reads.fa reads.fa > overlaps.paf # PacBio read overlap
+minimap2 -x ava-ont reads.fa reads.fa > overlaps.paf # Nanopore read overlap
+```
diff --git a/mlst/2.23.0-2024-01/Dockerfile b/mlst/2.23.0-2024-01/Dockerfile
new file mode 100644
index 000000000..66890c269
--- /dev/null
+++ b/mlst/2.23.0-2024-01/Dockerfile
@@ -0,0 +1,81 @@
+FROM ubuntu:jammy as app
+
+ARG MLST_VER="2.23.0"
+ARG ANY2FASTA_VER="0.4.2"
+
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="mlst"
+LABEL software.version="${MLST_VER}"
+LABEL description="Scan contig files against PubMLST typing schemes"
+LABEL website="https://github.com/tseemann/mlst"
+LABEL license="https://github.com/tseemann/mlst/blob/master/LICENSE"
+LABEL maintainer="Inês Mendes"
+LABEL maintainer.email="ines.mendes@theiagen.com"
+
+# copy README for posterity
+COPY README.md .
+
+# install dependencies via apt; cleanup apt garbage
+# blast from ubuntu:jammy is v2.12.0 (as of 2023-07-05)
+# deps needed specifically for db download scripts: libfile-which-perl, curl, parallel
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ wget \
+ ca-certificates \
+ libmoo-perl \
+ liblist-moreutils-perl \
+ libjson-perl \
+ gzip \
+ file \
+ ncbi-blast+ \
+ libfile-which-perl \
+ curl \
+ parallel \
+ procps && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+# get any2fasta; move binary to /usr/local/bin which is already in $PATH
+RUN wget https://github.com/tseemann/any2fasta/archive/refs/tags/v${ANY2FASTA_VER}.tar.gz && \
+ tar xzf v${ANY2FASTA_VER}.tar.gz && \
+ rm v${ANY2FASTA_VER}.tar.gz && \
+ chmod +x any2fasta-${ANY2FASTA_VER}/any2fasta && \
+ mv -v any2fasta-${ANY2FASTA_VER}/any2fasta /usr/local/bin
+
+# get mlst
+RUN wget https://github.com/tseemann/mlst/archive/v${MLST_VER}.tar.gz && \
+ tar -xzf v${MLST_VER}.tar.gz && \
+ rm v${MLST_VER}.tar.gz
+
+# set PATH and perl local settings
+ENV PATH="${PATH}:/mlst-${MLST_VER}/bin:" \
+ LC_ALL=C.UTF-8
+
+# check dependencies and list available schemes
+RUN mlst --check && mlst --list
+
+# update databases, following steps from here, but modified after much trial and error: https://github.com/tseemann/mlst#updating-the-database
+# delete the old databases instead of renaming & saving the dir
+RUN cd /mlst-${MLST_VER}/scripts && \
+ mkdir db-downloaded-$(date -I) && \
+ ./mlst-download_pub_mlst -d db-downloaded-$(date -I) | bash && \
+ rm -rv /mlst-${MLST_VER}/db/pubmlst && \
+ mv -v db-downloaded-$(date -I) /mlst-${MLST_VER}/db/pubmlst && \
+ ./mlst-make_blast_db && \
+ mlst --list
+
+WORKDIR /data
+
+# default command is to pull up help options; can be overridden of course
+CMD ["mlst", "--help"]
+
+FROM app as test
+
+# copy in test script; run script
+# test commands stolen shamelessly from https://github.com/tseemann/mlst/blob/master/.travis.yml
+COPY mlst-tests.sh .
+RUN bash mlst-tests.sh
+
+### Example command to run mlst (broken into two lines for readability)
+### If you have an assembly named contigs.fasta in your PWD:
+# $ docker run -v ${PWD}:/data staphb/mlst:latest \
+# mlst contigs.fasta >mlst-results.tsv
\ No newline at end of file
diff --git a/mlst/2.23.0-2024-01/README.md b/mlst/2.23.0-2024-01/README.md
new file mode 100644
index 000000000..fbbedb250
--- /dev/null
+++ b/mlst/2.23.0-2024-01/README.md
@@ -0,0 +1,56 @@
+# mlst container
+
+Main tool : [mlst](https://github.com/tseemann/mlst)
+
+Additional tools:
+
+- ncbi-blast+ 2.9.0
+- perl 5.30.0
+- any2fasta 0.4.2
+
+Full documentation: [https://github.com/tseemann/mlst](https://github.com/tseemann/mlst)
+
+Scan contig files against PubMLST typing schemes
+
+## pubMLST databases
+
+Available schemes found here: [https://github.com/tseemann/mlst/tree/master/db/pubmlst](https://github.com/tseemann/mlst/tree/master/db/pubmlst)
+
+This docker image was built in January of 2024 and databases were updated during the docker image build process. See Dockerfile for update commands.
+
+```bash
+# sorted list of available mlst schemes
+$ mlst --list 2>/dev/null | tr ' ' '\n' | sort | tr '\n' ' ' | fold -s -w80
+aactinomycetemcomitans abaumannii abaumannii_2 achromobacter aeromonas
+aphagocytophilum arcobacter bbacilliformis bcc bcereus bfragilis bhenselae
+blicheniformis_14 bordetella_3 borrelia bpseudomallei brachyspira brachyspira_2
+brachyspira_3 brachyspira_4 brachyspira_5 brucella bsubtilis bwashoensis
+campylobacter campylobacter_nonjejuni campylobacter_nonjejuni_2
+campylobacter_nonjejuni_3 campylobacter_nonjejuni_4 campylobacter_nonjejuni_5
+campylobacter_nonjejuni_6 campylobacter_nonjejuni_7 campylobacter_nonjejuni_8
+campylobacter_nonjejuni_9 cbotulinum cdifficile cfreundii chlamydiales
+cmaltaromaticum cperfringens cronobacter csepticum diphtheria_3 dnodosus
+ecloacae ecoli ecoli_achtman_4 edwardsiella efaecalis efaecium fpsychrophilum
+gallibacterium geotrichum hcinaedi helicobacter hinfluenzae hparasuis hsuis
+kaerogenes kingella klebsiella koxytoca leptospira leptospira_2 leptospira_3
+liberibacter listeria_2 llactis_phage lsalivarius mabscessus magalactiae
+manserisalpingitidis mbovis_2 mcanis mcaseolyticus mcatarrhalis_achtman_6
+mflocculare mgallisepticum mgallisepticum_2 mhaemolytica mhominis_3
+mhyopneumoniae mhyorhinis miowae mplutonius mpneumoniae msciuri msynoviae
+mycobacteria_2 neisseria oralstrep orhinotracheale otsutsugamushi pacnes_3
+paeruginosa pdamselae pfluorescens pgingivalis plarvae pmultocida pmultocida_2
+ppentosaceus pputida psalmonis ranatipestifer rhodococcus sagalactiae saureus
+sbsec scanis schromogenes sdysgalactiae senterica_achtman_2 sepidermidis
+sgallolyticus shaemolyticus shewanella shominis sinorhizobium smaltophilia
+spneumoniae spseudintermedius spyogenes ssuis staphlugdunensis sthermophilus
+streptomyces streptothermophilus suberis szooepidemicus taylorella
+tenacibaculum tpallidum ureaplasma vcholerae vcholerae_2 vibrio
+vparahaemolyticus vtapetis vvulnificus wolbachia xfastidiosa
+ypseudotuberculosis_achtman_3 yruckeri
+```
+
+## Example Usage
+
+```bash
+mlst --nopath contigs.fasta > mlst-results.tsv
+```
diff --git a/mlst/2.23.0-2024-01/mlst-tests.sh b/mlst/2.23.0-2024-01/mlst-tests.sh
new file mode 100755
index 000000000..65a77824a
--- /dev/null
+++ b/mlst/2.23.0-2024-01/mlst-tests.sh
@@ -0,0 +1,29 @@
+#!/bin/bash
+# test commands stolen shamelessly from https://github.com/tseemann/mlst/blob/master/.travis.yml
+
+# change into mlst root dir where it's installed in the docker image, e.g. /mlst-2.22.0
+cd /mlst-*
+
+# all below commands should exit code 0
+set -euxo pipefail
+
+mlst --check
+mlst --version
+mlst --help
+! mlst --doesnotexist
+! mlst -q /etc
+! mlst -q /etc/shadow
+mlst --list | grep saureus
+mlst --longlist | grep saureus
+mlst -q test/example.fna.gz | grep -w 184
+mlst -q test/example.gbk.gz | grep -w 184
+mlst -q test/novel.fasta.bz2 | grep -w spneumoniae
+gzip -d -c test/example.fna.gz | mlst -q /dev/stdin | grep -w 184
+gzip -d -c test/example.gbk.gz | mlst -q /dev/stdin | grep -w 184
+mlst -q --legacy --scheme sepidermidis test/example.fna.gz test/example.gbk.gz
+mlst -q --csv test/example.fna.gz | grep ',184,'
+mlst -q test/example.gbk.gz --json out.json && grep 'sequence_type' out.json
+! mlst -q --label double_trouble test/example.gbk.gz test/example.fna.gz
+mlst -q --label GDAYMATE test/example.fna.gz | grep GDAYMATE
+mlst -q --novel novel.fa test/novel.fasta.bz2 && grep 'recP' novel.fa
+scripts/mlst-show_seqs -s efaecium -t 111
diff --git a/mlst/2.23.0-2024-03/Dockerfile b/mlst/2.23.0-2024-03/Dockerfile
new file mode 100644
index 000000000..7670a9fef
--- /dev/null
+++ b/mlst/2.23.0-2024-03/Dockerfile
@@ -0,0 +1,109 @@
+FROM ubuntu:jammy as app
+
+ARG MLST_VER="2.23.0"
+ARG ANY2FASTA_VER="0.4.2"
+
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="mlst"
+LABEL software.version="${MLST_VER}"
+LABEL description="Scan contig files against PubMLST typing schemes"
+LABEL website="https://github.com/tseemann/mlst"
+LABEL license="https://github.com/tseemann/mlst/blob/master/LICENSE"
+LABEL maintainer="Inês Mendes"
+LABEL maintainer.email="ines.mendes@theiagen.com"
+LABEL maintainer2="Curtis Kapsak"
+LABEL maintainer2.email="kapsakcj@gmail.com"
+
+# install dependencies via apt; cleanup apt garbage
+# blast from ubuntu:jammy is v2.12.0 (as of 2023-07-05)
+# deps needed specifically for db download scripts: libfile-which-perl, curl, parallel
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ wget \
+ ca-certificates \
+ libmoo-perl \
+ liblist-moreutils-perl \
+ libjson-perl \
+ gzip \
+ file \
+ ncbi-blast+ \
+ libfile-which-perl \
+ curl \
+ parallel \
+ procps && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+# get any2fasta; move binary to /usr/local/bin which is already in $PATH
+RUN wget https://github.com/tseemann/any2fasta/archive/refs/tags/v${ANY2FASTA_VER}.tar.gz && \
+ tar xzf v${ANY2FASTA_VER}.tar.gz && \
+ rm v${ANY2FASTA_VER}.tar.gz && \
+ chmod +x any2fasta-${ANY2FASTA_VER}/any2fasta && \
+ mv -v any2fasta-${ANY2FASTA_VER}/any2fasta /usr/local/bin
+
+# get mlst
+RUN wget https://github.com/tseemann/mlst/archive/v${MLST_VER}.tar.gz && \
+ tar -xzf v${MLST_VER}.tar.gz && \
+ rm -v v${MLST_VER}.tar.gz
+
+# set PATH and perl local settings
+ENV PATH="${PATH}:/mlst-${MLST_VER}/bin:" \
+ LC_ALL=C.UTF-8
+
+# check dependencies and list available schemes
+RUN mlst --check && mlst --list
+
+# update databases, following steps from here, but modified after much trial and error: https://github.com/tseemann/mlst#updating-the-database
+# delete the old databases instead of renaming & saving the dir
+RUN cd /mlst-${MLST_VER}/scripts && \
+ mkdir -v db-downloaded-$(date -I) && \
+ ./mlst-download_pub_mlst -d db-downloaded-$(date -I) | bash && \
+ rm -rv /mlst-${MLST_VER}/db/pubmlst && \
+ mv -v db-downloaded-$(date -I) /mlst-${MLST_VER}/db/pubmlst && \
+ ./mlst-make_blast_db && \
+ mlst --list
+
+WORKDIR /data
+
+# default command is to pull up help options; can be overridden of course
+CMD ["mlst", "--help"]
+
+### start of test stage ###
+# using app stage as base image for test stage
+FROM app as test
+
+# copy in test script; run script
+# test commands stolen shamelessly from https://github.com/tseemann/mlst/blob/master/.travis.yml
+COPY mlst-tests.sh .
+RUN bash mlst-tests.sh
+
+# need unzip for the datasets tool
+RUN apt-get update && apt-get install -y --no-install-recommends unzip
+
+# for pinning the version of NCBI datasets that is downloaded for this test
+ARG DATASETS_VER="16.2.0"
+
+# install ncbi datasets tool (pre-compiled binary)
+RUN wget https://github.com/ncbi/datasets/releases/download/v${DATASETS_VER}/linux-amd64.cli.package.zip && \
+ unzip linux-amd64.cli.package.zip && \
+ rm linux-amd64.cli.package.zip && \
+ chmod +x dataformat datasets
+
+# downloading an E. coli (from CT) with a known newer sequence type ST15199 which was designated on 2023-10-16
+# MLST scheme info here (from Enterobase): https://pubmlst.org/bigsdb?page=profileInfo&db=pubmlst_escherichia_seqdef&scheme_id=1&profile_id=15199
+# E. coli genome: https://www.ncbi.nlm.nih.gov/datasets/genome/GCA_032604515.1/
+# BioSample: SAMN37796909
+ARG GENBANK_ACCESSION="GCA_032604515.1"
+RUN datasets download genome accession ${GENBANK_ACCESSION} --filename ${GENBANK_ACCESSION}.zip && \
+ mkdir -v ${GENBANK_ACCESSION}-download && \
+ unzip ${GENBANK_ACCESSION}.zip -d ${GENBANK_ACCESSION}-download && \
+ rm -v ${GENBANK_ACCESSION}.zip && \
+ mv -v ${GENBANK_ACCESSION}-download/ncbi_dataset/data/${GENBANK_ACCESSION}/${GENBANK_ACCESSION}*.fna ${GENBANK_ACCESSION}-download/ncbi_dataset/data/${GENBANK_ACCESSION}/${GENBANK_ACCESSION}.genomic.fna && \
+ mlst ${GENBANK_ACCESSION}-download/ncbi_dataset/data/${GENBANK_ACCESSION}/${GENBANK_ACCESSION}.genomic.fna | tee mlst.${GENBANK_ACCESSION}.tsv && \
+ echo && \
+ echo "Checking for ST15199 in the mlst results now..." && \
+ grep "15199" mlst.${GENBANK_ACCESSION}.tsv
+
+### Example command to run mlst (broken into two lines for readability)
+### If you have an assembly named contigs.fasta in your PWD:
+# $ docker run -v ${PWD}:/data staphb/mlst:latest \
+# mlst contigs.fasta >mlst-results.tsv
\ No newline at end of file
diff --git a/mlst/2.23.0-2024-03/README.md b/mlst/2.23.0-2024-03/README.md
new file mode 100644
index 000000000..077ad07b7
--- /dev/null
+++ b/mlst/2.23.0-2024-03/README.md
@@ -0,0 +1,56 @@
+# mlst container
+
+Main tool : [mlst](https://github.com/tseemann/mlst)
+
+Additional tools:
+
+- ncbi-blast+ 2.9.0
+- perl 5.30.0
+- any2fasta 0.4.2
+
+Full documentation: [https://github.com/tseemann/mlst](https://github.com/tseemann/mlst)
+
+Scan contig files against PubMLST typing schemes
+
+## pubMLST databases
+
+Available schemes found here: [https://github.com/tseemann/mlst/tree/master/db/pubmlst](https://github.com/tseemann/mlst/tree/master/db/pubmlst)
+
+This docker image was built in March of 2024 and databases were updated during the docker image build process. See Dockerfile for update commands.
+
+```bash
+# sorted list of available mlst schemes
+$ mlst --list 2>/dev/null | tr ' ' '\n' | sort | tr '\n' ' ' | fold -s -w80
+aactinomycetemcomitans abaumannii abaumannii_2 achromobacter aeromonas
+aphagocytophilum arcobacter bbacilliformis bcc bcereus bfragilis bhenselae
+blicheniformis_14 bordetella_3 borrelia bpseudomallei brachyspira brachyspira_2
+brachyspira_3 brachyspira_4 brachyspira_5 brucella bsubtilis bwashoensis
+campylobacter campylobacter_nonjejuni campylobacter_nonjejuni_2
+campylobacter_nonjejuni_3 campylobacter_nonjejuni_4 campylobacter_nonjejuni_5
+campylobacter_nonjejuni_6 campylobacter_nonjejuni_7 campylobacter_nonjejuni_8
+campylobacter_nonjejuni_9 cbotulinum cdifficile cfreundii chlamydiales
+cmaltaromaticum cperfringens cronobacter csepticum diphtheria_3 dnodosus
+ecloacae ecoli ecoli_achtman_4 edwardsiella efaecalis efaecium fpsychrophilum
+gallibacterium geotrichum hcinaedi helicobacter hinfluenzae hparasuis hsuis
+kaerogenes kingella klebsiella koxytoca leptospira leptospira_2 leptospira_3
+liberibacter listeria_2 llactis_phage lsalivarius mabscessus magalactiae
+manserisalpingitidis mbovis_2 mcanis mcaseolyticus mcatarrhalis_achtman_6
+mflocculare mgallisepticum mgallisepticum_2 mhaemolytica mhominis_3
+mhyopneumoniae mhyorhinis miowae mplutonius mpneumoniae msciuri msynoviae
+mycobacteria_2 neisseria oralstrep orhinotracheale otsutsugamushi pacnes_3
+paeruginosa pdamselae pfluorescens pgingivalis plarvae pmultocida pmultocida_2
+ppentosaceus pputida psalmonis ranatipestifer rhodococcus sagalactiae saureus
+sbsec scanis schromogenes sdysgalactiae senterica_achtman_2 sepidermidis
+sgallolyticus shaemolyticus shewanella shominis sinorhizobium smaltophilia
+spneumoniae spseudintermedius spyogenes ssuis staphlugdunensis sthermophilus
+streptomyces streptothermophilus suberis szooepidemicus taylorella
+tenacibaculum tpallidum ureaplasma vcholerae vcholerae_2 vibrio
+vparahaemolyticus vtapetis vvulnificus wolbachia xfastidiosa
+ypseudotuberculosis_achtman_3 yruckeri
+```
+
+## Example Usage
+
+```bash
+mlst --nopath contigs.fasta > mlst-results.tsv
+```
diff --git a/mlst/2.23.0-2024-03/mlst-tests.sh b/mlst/2.23.0-2024-03/mlst-tests.sh
new file mode 100755
index 000000000..b84a82a9a
--- /dev/null
+++ b/mlst/2.23.0-2024-03/mlst-tests.sh
@@ -0,0 +1,30 @@
+#!/bin/bash
+# test commands stolen shamelessly from https://github.com/tseemann/mlst/blob/master/.travis.yml
+
+# change into mlst root dir where it's installed in the docker image, e.g. /mlst-2.22.0
+cd /mlst-*
+
+# all below commands should exit code 0
+set -euxo pipefail
+
+mlst --check
+mlst --version
+mlst --help
+! mlst --doesnotexist
+! mlst -q /etc
+! mlst -q /etc/shadow
+mlst --list | grep saureus
+mlst --longlist | grep saureus
+mlst -q test/example.fna.gz | grep -w 184
+mlst -q test/example.gbk.gz | grep -w 184
+mlst -q test/novel.fasta.bz2 | grep -w spneumoniae
+gzip -d -c test/example.fna.gz | mlst -q /dev/stdin | grep -w 184
+gzip -d -c test/example.gbk.gz | mlst -q /dev/stdin | grep -w 184
+mlst -q --legacy --scheme sepidermidis test/example.fna.gz test/example.gbk.gz
+mlst -q --csv test/example.fna.gz | grep ',184,'
+mlst -q test/example.gbk.gz --json out.json && grep 'sequence_type' out.json
+! mlst -q --label double_trouble test/example.gbk.gz test/example.fna.gz
+mlst -q --label GDAYMATE test/example.fna.gz | grep GDAYMATE
+# LOL commenting this test out because the recP is no longer novel. It has an allele number and contributes to an ST.
+#mlst -q --novel novel.fa test/novel.fasta.bz2 && grep 'recP' novel.fa
+scripts/mlst-show_seqs -s efaecium -t 111
diff --git a/multiqc/1.18/Dockerfile b/multiqc/1.18/Dockerfile
new file mode 100644
index 000000000..68d8d0955
--- /dev/null
+++ b/multiqc/1.18/Dockerfile
@@ -0,0 +1,60 @@
+FROM ubuntu:jammy as app
+
+ARG MULTIQC_VER="1.18"
+
+# metadata
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="MultiQC"
+LABEL software.version="${MULTIQC_VER}"
+LABEL description="Aggregate bioinformatics results across many samples into a single report."
+LABEL website="https://github.com/ewels/MultiQC"
+LABEL license="https://github.com/ewels/MultiQC/blob/master/LICENSE"
+LABEL maintainer="Erin Young"
+LABEL maintainer.email="eriny@utah.gov"
+# Although... let's be honest. Most of this is copied and pasted from Abigail Shockey
+
+# install remaining dependencies
+ARG DEBIAN_FRONTEND=noninteractive
+RUN apt-get update && apt-get install -y \
+ wget \
+ git \
+ python3 \
+ python3-dev \
+ python3-pip \
+ locales \
+ pandoc \
+ texlive-xetex && \
+ locale-gen en_US.UTF-8 && \
+ apt-get clean && apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+# install multiqc
+RUN pip3 install "multiqc==${MULTIQC_VER}"
+
+
+# add pandoc to path
+ENV PATH="${PATH}" \
+ LC_ALL='C.UTF-8' LANG='C.UTF-8'
+
+CMD multiqc --help
+
+RUN mkdir /data
+WORKDIR /data
+
+# testing layer starts here
+FROM app as test
+
+# to ensure multiqc is in PATH
+RUN multiqc --help
+
+# set working directory so that all test inputs & outputs are kept in /test
+RUN mkdir /test
+WORKDIR /test
+
+# getting multiqc test data and testing pandoc
+RUN git clone https://github.com/ewels/MultiQC_TestData && \
+ multiqc . && \
+ ls multiqc_report.html
+
+RUN multiqc /test/MultiQC_TestData/data/modules/BUSCO --filename multiqc_report2.html -o multiqc_data2 --pdf && \
+ ls multiqc_data2/multiqc_report2.html multiqc_data2/multiqc_report2_data
diff --git a/multiqc/1.18/README.md b/multiqc/1.18/README.md
new file mode 100644
index 000000000..879cb9cd8
--- /dev/null
+++ b/multiqc/1.18/README.md
@@ -0,0 +1,13 @@
+# MultiQC container
+
+Main tool : [MultiQC](https://multiqc.info/)
+
+Aggregate results from bioinformatics analyses across many samples into a single report.
+
+Full documentation: [Docs] (https://multiqc.info/docs/)
+
+# Example Usage
+
+```
+multiqc -f --cl_config "prokka_fn_snames: True" .
+```
diff --git a/multiqc/1.19/Dockerfile b/multiqc/1.19/Dockerfile
new file mode 100644
index 000000000..071e98ad0
--- /dev/null
+++ b/multiqc/1.19/Dockerfile
@@ -0,0 +1,60 @@
+FROM ubuntu:jammy as app
+
+ARG MULTIQC_VER="1.19"
+
+# metadata
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="MultiQC"
+LABEL software.version="${MULTIQC_VER}"
+LABEL description="Aggregate bioinformatics results across many samples into a single report."
+LABEL website="https://github.com/ewels/MultiQC"
+LABEL license="https://github.com/ewels/MultiQC/blob/master/LICENSE"
+LABEL maintainer="Erin Young"
+LABEL maintainer.email="eriny@utah.gov"
+# Although... let's be honest. Most of this is copied and pasted from Abigail Shockey
+
+# install remaining dependencies
+ARG DEBIAN_FRONTEND=noninteractive
+RUN apt-get update && apt-get install -y \
+ wget \
+ git \
+ python3 \
+ python3-dev \
+ python3-pip \
+ locales \
+ pandoc \
+ texlive-xetex && \
+ locale-gen en_US.UTF-8 && \
+ apt-get clean && apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+# install multiqc
+RUN pip3 install "multiqc==${MULTIQC_VER}"
+
+
+# add pandoc to path
+ENV PATH="${PATH}" \
+ LC_ALL='C.UTF-8' LANG='C.UTF-8'
+
+CMD multiqc --help
+
+RUN mkdir /data
+WORKDIR /data
+
+# testing layer starts here
+FROM app as test
+
+# to ensure multiqc is in PATH
+RUN multiqc --help
+
+# set working directory so that all test inputs & outputs are kept in /test
+RUN mkdir /test
+WORKDIR /test
+
+# getting multiqc test data and testing pandoc
+RUN git clone https://github.com/ewels/MultiQC_TestData && \
+ multiqc . && \
+ ls multiqc_report.html
+
+RUN multiqc /test/MultiQC_TestData/data/modules/BUSCO --filename multiqc_report2.html -o multiqc_data2 --pdf && \
+ ls multiqc_data2/multiqc_report2.html multiqc_data2/multiqc_report2_data
diff --git a/multiqc/1.19/README.md b/multiqc/1.19/README.md
new file mode 100644
index 000000000..879cb9cd8
--- /dev/null
+++ b/multiqc/1.19/README.md
@@ -0,0 +1,13 @@
+# MultiQC container
+
+Main tool : [MultiQC](https://multiqc.info/)
+
+Aggregate results from bioinformatics analyses across many samples into a single report.
+
+Full documentation: [Docs] (https://multiqc.info/docs/)
+
+# Example Usage
+
+```
+multiqc -f --cl_config "prokka_fn_snames: True" .
+```
diff --git a/multiqc/1.22.2/Dockerfile b/multiqc/1.22.2/Dockerfile
new file mode 100644
index 000000000..66ac73df8
--- /dev/null
+++ b/multiqc/1.22.2/Dockerfile
@@ -0,0 +1,48 @@
+FROM ubuntu:jammy as app
+
+ARG MULTIQC_VER="1.22.2"
+
+# metadata
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="MultiQC"
+LABEL software.version="${MULTIQC_VER}"
+LABEL description="Aggregate bioinformatics results across many samples into a single report."
+LABEL website="https://github.com/MultiQC/MultiQC"
+LABEL license="https://github.com/MultiQC/MultiQC/blob/main/LICENSE"
+LABEL maintainer="Erin Young"
+LABEL maintainer.email="eriny@utah.gov"
+
+RUN apt-get update && apt-get install --no-install-recommends -y \
+ python3-pip && \
+ apt-get clean && apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+# install multiqc
+RUN pip3 install --no-cache-dir "multiqc==${MULTIQC_VER}"
+
+ENV LC_ALL='C.UTF-8' \
+ LANG='C.UTF-8'
+
+CMD multiqc --help
+
+RUN mkdir /data
+WORKDIR /data
+
+# testing layer starts here
+FROM app as test
+
+# getting git
+RUN apt-get update && apt-get install -y git
+
+# to ensure multiqc is in PATH
+RUN multiqc --help
+
+# set working directory so that all test inputs & outputs are kept in /test
+RUN mkdir /test
+WORKDIR /test
+
+# getting multiqc test data
+RUN git clone https://github.com/ewels/MultiQC_TestData && \
+ multiqc . && \
+ ls multiqc_report.html
+
diff --git a/multiqc/1.22.2/README.md b/multiqc/1.22.2/README.md
new file mode 100644
index 000000000..879cb9cd8
--- /dev/null
+++ b/multiqc/1.22.2/README.md
@@ -0,0 +1,13 @@
+# MultiQC container
+
+Main tool : [MultiQC](https://multiqc.info/)
+
+Aggregate results from bioinformatics analyses across many samples into a single report.
+
+Full documentation: [Docs] (https://multiqc.info/docs/)
+
+# Example Usage
+
+```
+multiqc -f --cl_config "prokka_fn_snames: True" .
+```
diff --git a/multiqc/1.22.3/Dockerfile b/multiqc/1.22.3/Dockerfile
new file mode 100644
index 000000000..3428584c4
--- /dev/null
+++ b/multiqc/1.22.3/Dockerfile
@@ -0,0 +1,48 @@
+FROM ubuntu:jammy as app
+
+ARG MULTIQC_VER="1.22.3"
+
+# metadata
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="MultiQC"
+LABEL software.version="${MULTIQC_VER}"
+LABEL description="Aggregate bioinformatics results across many samples into a single report."
+LABEL website="https://github.com/MultiQC/MultiQC"
+LABEL license="https://github.com/MultiQC/MultiQC/blob/main/LICENSE"
+LABEL maintainer="Erin Young"
+LABEL maintainer.email="eriny@utah.gov"
+
+RUN apt-get update && apt-get install --no-install-recommends -y \
+ python3-pip && \
+ apt-get clean && apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+# install multiqc
+RUN pip3 install --no-cache-dir "multiqc==${MULTIQC_VER}"
+
+ENV LC_ALL='C.UTF-8' \
+ LANG='C.UTF-8'
+
+CMD multiqc --help
+
+RUN mkdir /data
+WORKDIR /data
+
+# testing layer starts here
+FROM app as test
+
+# getting git
+RUN apt-get update && apt-get install -y git
+
+# to ensure multiqc is in PATH
+RUN multiqc --help
+
+# set working directory so that all test inputs & outputs are kept in /test
+RUN mkdir /test
+WORKDIR /test
+
+# getting multiqc test data
+RUN git clone https://github.com/ewels/MultiQC_TestData && \
+ multiqc . && \
+ ls multiqc_report.html
+
diff --git a/multiqc/1.22.3/README.md b/multiqc/1.22.3/README.md
new file mode 100644
index 000000000..879cb9cd8
--- /dev/null
+++ b/multiqc/1.22.3/README.md
@@ -0,0 +1,13 @@
+# MultiQC container
+
+Main tool : [MultiQC](https://multiqc.info/)
+
+Aggregate results from bioinformatics analyses across many samples into a single report.
+
+Full documentation: [Docs] (https://multiqc.info/docs/)
+
+# Example Usage
+
+```
+multiqc -f --cl_config "prokka_fn_snames: True" .
+```
diff --git a/mykrobe/0.13.0/Dockerfile b/mykrobe/0.13.0/Dockerfile
new file mode 100755
index 000000000..11acbea4b
--- /dev/null
+++ b/mykrobe/0.13.0/Dockerfile
@@ -0,0 +1,105 @@
+FROM mambaorg/micromamba:1.4.1 as app
+
+# build and run as root users since micromamba image has 'mambauser' set as the $USER
+USER root
+# set workdir to default for building; set to /data at the end
+WORKDIR /
+
+# ARG variables only persist during build time
+ARG MYKROBE_VER="0.13.0"
+
+# metadata labels
+LABEL base.image="mambaorg/micromamba:1.4.1"
+LABEL dockerfile.version="1"
+LABEL software="Mykrobe"
+LABEL software.version="${MYKROBE_VER}"
+LABEL description="Antibiotic resistance prediction in minutes"
+LABEL website="https://github.com/Mykrobe-tools/mykrobe"
+LABEL license="https://github.com/Mykrobe-tools/mykrobe/blob/master/LICENSE"
+LABEL maintainer="Erin Young"
+LABEL maintainer.email="eriny@utah.gov"
+
+# install dependencies; cleanup apt garbage
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ wget \
+ ca-certificates \
+ procps \
+ jq && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+
+# set the PATH and LC_ALL for singularity compatibility
+ENV PATH="${PATH}:/opt/conda/envs/mykrobe/bin/" \
+ LC_ALL=C.UTF-8
+
+# create the conda environment, install mykrobe via bioconda package; cleanup conda garbage
+# an attempt to install this from source was made, but ran into issues with MCCORTEX
+RUN micromamba create -n mykrobe -y -c conda-forge -c bioconda -c defaults \
+ mykrobe=${MYKROBE_VER} \
+ python \
+ pip \
+ pandas && \
+ micromamba clean -a -y
+
+# so that mamba/conda env is active when running below commands
+ENV ENV_NAME="mykrobe"
+ARG MAMBA_DOCKERFILE_ACTIVATE=1
+
+# get the latest databases (AKA "panels")
+RUN mykrobe panels update_metadata && \
+ mykrobe panels update_species all && \
+ mykrobe panels describe
+
+WORKDIR /data
+
+CMD mykrobe --help
+
+# new base for testing
+FROM app as test
+
+# set working directory to /test
+WORKDIR /test
+
+# so that mamba/conda env is active when running below commands
+ENV ENV_NAME="mykrobe"
+ARG MAMBA_DOCKERFILE_ACTIVATE=1
+
+RUN mykrobe --help && mykrobe --version
+
+# test with TB FASTQs
+RUN wget -O test_reads.fq.gz https://ndownloader.figshare.com/files/21059229 && \
+ mykrobe predict -s SAMPLE -S tb -o out.json --format json -i test_reads.fq.gz && \
+ cat out.json && \
+ mykrobe panels describe
+
+### OUTPUT FROM mykrobe panels describe run on 2023-11-09: ###
+#0 12.57 Gathering data from /usr/local/lib/python3.9/site-packages/mykrobe/data
+#0 12.57
+#0 12.57 Species summary:
+#0 12.57
+#0 12.57 Species Update_available Installed_version Installed_url Latest_version Latest_url
+#0 12.57 sonnei no 20210201 https://ndownloader.figshare.com/files/26274424 20210201 https://ndownloader.figshare.com/files/26274424
+#0 12.57 staph no 20201001 https://ndownloader.figshare.com/files/24914930 20201001 https://ndownloader.figshare.com/files/24914930
+#0 12.57 tb no 20230928 https://figshare.com/ndownloader/files/42494211 20230928 https://figshare.com/ndownloader/files/42494211
+#0 12.57 typhi no 20221208 https://ndownloader.figshare.com/files/38478086 20221208 https://ndownloader.figshare.com/files/38478086
+#0 12.57
+#0 12.57 sonnei default panel: 20210201
+#0 12.57 sonnei panels:
+#0 12.57 Panel Reference Description
+#0 12.57 20201012 NC_016822.1 Genotyping panel for Shigella sonnei based on scheme defined in Hawkey 2020, and panel for variants in the quinolone resistance determining regions in gyrA and parC
+#0 12.57 20210201 NC_016822.1 Genotyping panel for Shigella sonnei based on scheme defined in Hawkey 2020, and panel for variants in the quinolone resistance determining regions in gyrA and parC (same as 20201012, but with lineage3.7.30 added)
+#0 12.57
+#0 12.57 staph default panel: 20170217
+#0 12.57 staph panels:
+#0 12.57 Panel Reference Description
+#0 12.57 20170217 BX571856.1 AMR panel described in Bradley, P et al. Rapid antibiotic-resistance predictions from genome sequence data for Staphylococcus aureus and Mycobacterium tuberculosis. Nat. Commun. 6:10063 doi: 10.1038/ncomms10063 (2015)
+#0 12.57
+#0 12.57 tb default panel: 202309
+#0 12.57 tb panels:
+#0 12.57 Panel Reference Description
+#0 12.57 201901 NC_000962.3 AMR panel based on first line drugs from NEJM-2018 variants (DOI 10.1056/NEJMoa1800474), and second line drugs from Walker 2015 panel
+#0 12.57 202010 NC_000962.3 AMR panel based on first line drugs from NEJM-2018 variants (DOI 10.1056/NEJMoa1800474), second line drugs from Walker 2015 panel, and lineage scheme from Chiner-Oms 2020
+#0 12.57 202206 NC_000962.3 AMR panel '202010' combined with the WHO 2021 catalogue (doi:10/h298 and doi:10/h299), and lineage scheme from Chiner-Oms 2020
+#0 12.57 202309 NC_000962.3 AMR panel '202010' combined with the WHO 2021 catalogue (doi:10/h298 and doi:10/h299), lineage scheme from Chiner-Oms 2020, and updated species based on GTDB r214 (doi:10.1093/nar/gkab776)
+#0 12.57 bradley-2015 NC_000962.3 AMR panel described in Bradley, P et al. Rapid antibiotic-resistance predictions from genome sequence data for Staphylococcus aureus and Mycobacterium tuberculosis. Nat. Commun. 6:10063 doi: 10.1038/ncomms10063 (2015)
+#0 12.57 walker-2015 NC_000962.3 AMR panel described in Walker, Timothy M et al. Whole-genome sequencing for prediction of Mycobacterium tuberculosis drug susceptibility and resistance: a retrospective cohort study. The Lancet Infectious Diseases , Volume 15 , Issue 10 , 1193 - 1202
diff --git a/mykrobe/0.13.0/README.md b/mykrobe/0.13.0/README.md
new file mode 100644
index 000000000..66e673a38
--- /dev/null
+++ b/mykrobe/0.13.0/README.md
@@ -0,0 +1,51 @@
+# Mykrobe docker image
+
+Main tool : [Mykrobe](https://github.com/Mykrobe-tools/mykrobe)
+
+Full documentation: [https://github.com/Mykrobe-tools/mykrobe/wiki](https://github.com/Mykrobe-tools/mykrobe/wiki)
+
+This docker image was created with the intention of analyses involved with _Mycobacterium tuberculosis_ and other similar Mycobacterium species, so genotyphi and sonneityping are not included in this image.
+
+## Included Mykrobe databases (AKA panels)
+
+The docker image for Mykrobe was built on 2023-11-08, and thus contains the most recent database that was available at the time.
+
+```bash
+### OUTPUT FROM mykrobe panels describe run on 2023-11-08: ###
+$ mykrobe panels describe
+#0 12.57 Gathering data from /usr/local/lib/python3.9/site-packages/mykrobe/data
+#0 12.57
+#0 12.57 Species summary:
+#0 12.57
+#0 12.57 Species Update_available Installed_version Installed_url Latest_version Latest_url
+#0 12.57 sonnei no 20210201 https://ndownloader.figshare.com/files/26274424 20210201 https://ndownloader.figshare.com/files/26274424
+#0 12.57 staph no 20201001 https://ndownloader.figshare.com/files/24914930 20201001 https://ndownloader.figshare.com/files/24914930
+#0 12.57 tb no 20230928 https://figshare.com/ndownloader/files/42494211 20230928 https://figshare.com/ndownloader/files/42494211
+#0 12.57 typhi no 20221208 https://ndownloader.figshare.com/files/38478086 20221208 https://ndownloader.figshare.com/files/38478086
+#0 12.57
+#0 12.57 sonnei default panel: 20210201
+#0 12.57 sonnei panels:
+#0 12.57 Panel Reference Description
+#0 12.57 20201012 NC_016822.1 Genotyping panel for Shigella sonnei based on scheme defined in Hawkey 2020, and panel for variants in the quinolone resistance determining regions in gyrA and parC
+#0 12.57 20210201 NC_016822.1 Genotyping panel for Shigella sonnei based on scheme defined in Hawkey 2020, and panel for variants in the quinolone resistance determining regions in gyrA and parC (same as 20201012, but with lineage3.7.30 added)
+#0 12.57
+#0 12.57 staph default panel: 20170217
+#0 12.57 staph panels:
+#0 12.57 Panel Reference Description
+#0 12.57 20170217 BX571856.1 AMR panel described in Bradley, P et al. Rapid antibiotic-resistance predictions from genome sequence data for Staphylococcus aureus and Mycobacterium tuberculosis. Nat. Commun. 6:10063 doi: 10.1038/ncomms10063 (2015)
+#0 12.57
+#0 12.57 tb default panel: 202309
+#0 12.57 tb panels:
+#0 12.57 Panel Reference Description
+#0 12.57 201901 NC_000962.3 AMR panel based on first line drugs from NEJM-2018 variants (DOI 10.1056/NEJMoa1800474), and second line drugs from Walker 2015 panel
+#0 12.57 202010 NC_000962.3 AMR panel based on first line drugs from NEJM-2018 variants (DOI 10.1056/NEJMoa1800474), second line drugs from Walker 2015 panel, and lineage scheme from Chiner-Oms 2020
+#0 12.57 202206 NC_000962.3 AMR panel '202010' combined with the WHO 2021 catalogue (doi:10/h298 and doi:10/h299), and lineage scheme from Chiner-Oms 2020
+#0 12.57 202309 NC_000962.3 AMR panel '202010' combined with the WHO 2021 catalogue (doi:10/h298 and doi:10/h299), lineage scheme from Chiner-Oms 2020, and updated species based on GTDB r214 (doi:10.1093/nar/gkab776)
+#0 12.57 bradley-2015 NC_000962.3 AMR panel described in Bradley, P et al. Rapid antibiotic-resistance predictions from genome sequence data for Staphylococcus aureus and Mycobacterium tuberculosis. Nat. Commun. 6:10063 doi: 10.1038/ncomms10063 (2015)
+#0 12.57 walker-2015 NC_000962.3 AMR panel described in Walker, Timothy M et al. Whole-genome sequencing for prediction of Mycobacterium tuberculosis drug susceptibility and resistance: a retrospective cohort study. The Lancet Infectious Diseases , Volume 15 , Issue 10 , 1193 - 1202
+```
+
+## Example Usage
+```bash
+mykrobe predict -s SAMPLE -S tb -o out.json --format json -i test_reads.fq.gz
+```
\ No newline at end of file
diff --git a/nanoplot/1.42.0/Dockerfile b/nanoplot/1.42.0/Dockerfile
new file mode 100644
index 000000000..a84d4a302
--- /dev/null
+++ b/nanoplot/1.42.0/Dockerfile
@@ -0,0 +1,60 @@
+FROM ubuntu:jammy as app
+
+# for easy upgrade later. ARG variables only persist during image build time.
+ARG NANOPLOT_VER="1.42.0"
+
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="nanoplot"
+LABEL software.version="${NANOPLOT_VER}"
+LABEL description="Plotting suite for Oxford Nanopore sequencing data and alignments"
+LABEL website="https://github.com/wdecoster/NanoPlot"
+LABEL license="https://github.com/wdecoster/NanoPlot/blob/master/LICENSE"
+LABEL maintainer="Curtis Kapsak"
+LABEL maintainer.email="kapsakcj@gmail.com"
+LABEL maintainer2="Kate Prussing"
+LABEL maintainer2.email="catharine.prussing@health.ny.gov"
+LABEL maintainer3="Erin Young"
+LABEL maintainer3.email="eriny@utah.gov"
+
+# install dependencies via apt; cleanup apt garbage; set locale to en_US.UTF-8
+RUN apt-get update && apt-get install -y zlib1g-dev \
+ bzip2 \
+ libbz2-dev \
+ liblzma-dev \
+ libcurl4-gnutls-dev \
+ libncurses5-dev \
+ libssl-dev \
+ python3 \
+ python3-pip \
+ python3-setuptools \
+ locales && \
+ locale-gen en_US.UTF-8 && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+# for singularity compatibility
+ENV LC_ALL=C
+
+# install NanoPlot via pypi using pip3; make /data directory
+RUN pip3 install matplotlib psutil requests NanoPlot==${NANOPLOT_VER} && \
+ mkdir /data
+
+WORKDIR /data
+
+CMD NanoPlot --help
+
+# testing layer
+FROM app as test
+
+# print help options and version
+RUN NanoPlot --help && NanoPlot --version
+
+# install wget for downloading test data
+RUN apt-get update && apt-get install -y wget
+
+# download ONT data for a Salmonella isolate, run NanoPlot on the FASTQ file
+# Go here for more info: https://www.ebi.ac.uk/ena/browser/view/SRR19787768?show=reads
+RUN wget https://ftp.sra.ebi.ac.uk/vol1/fastq/SRR197/068/SRR19787768/SRR19787768_1.fastq.gz && \
+ NanoPlot --fastq SRR19787768_1.fastq.gz --log --N50 -o /data/nanoplot-test && \
+ ls -lh /data/nanoplot-test && \
+ cat /data/nanoplot-test/NanoStats.txt
diff --git a/nanoplot/1.42.0/README.md b/nanoplot/1.42.0/README.md
new file mode 100644
index 000000000..f9a55226f
--- /dev/null
+++ b/nanoplot/1.42.0/README.md
@@ -0,0 +1,14 @@
+# NanoPlot container
+
+Main tool : [NanoPlot](https://github.com/wdecoster/NanoPlot)
+
+Full documentation: [https://github.com/wdecoster/NanoPlot](https://github.com/wdecoster/NanoPlot)
+
+Plotting tool for long read sequencing data and alignments.
+
+## Example Usage
+
+```bash
+# pass in the sequencing_summary.txt file produced by Guppy/Dorado basecaller
+NanoPlot --summary sequencing_summary.txt --N50 --loglength -t 4 -o nanoplot-out
+```
diff --git a/ncbi-amrfinderplus/3.11.26-2023-11-15.1/Dockerfile b/ncbi-amrfinderplus/3.11.26-2023-11-15.1/Dockerfile
new file mode 100644
index 000000000..59df0e34a
--- /dev/null
+++ b/ncbi-amrfinderplus/3.11.26-2023-11-15.1/Dockerfile
@@ -0,0 +1,99 @@
+FROM ubuntu:jammy as app
+
+ARG AMRFINDER_VER="3.11.26"
+ARG AMRFINDER_DB_VER="2023-11-15.1"
+ARG BLAST_VER="2.14.0"
+
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="NCBI AMRFinderPlus"
+LABEL software.version="${AMRFINDER_VER}"
+LABEL description="NCBI resistance gene detection tool"
+LABEL website="https://github.com/ncbi/amr"
+LABEL license="https://github.com/ncbi/amr/blob/master/LICENSE"
+LABEL maintainer="Kelsey Florek"
+LABEL maintainer.email="kelsey.florek@slh.wisc.edu"
+LABEL maintainer2="Curtis Kapsak"
+LABEL maintainer2.email="kapsakcj@gmail.com"
+LABEL maintainer3="Anders Goncalves da Silva"
+LABEL maintainer3.email="andersgs@gmail.com"
+LABEL maintainer4="Erin Young"
+LABEL maintainer4.email="eriny@utah.gov"
+LABEL maintainer5="Holly McQueary"
+LABEL maintainer5.email="holly.c.mcqueary@mass.gov"
+
+# ncbi-blast+ installed via apt is v2.12.0 - DISABLING so that we can manually install v2.14.0
+# see here for reason why I'm manualy installing 2.14.0 instead of using apt-get: https://github.com/ncbi/amr/releases/tag/amrfinder_v3.11.8
+
+# hmmer installed via apt is v3.3.2
+# removed because likely unnecessary since we are not compiling from source: make g++
+# libgomp1 required for makeblastdb
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ ca-certificates \
+ wget \
+ curl \
+ libgomp1 \
+ hmmer \
+ procps \
+ gzip && \
+ apt-get autoclean && \
+ rm -rf /var/lib/apt/lists/*
+
+# download and install amrfinderplus pre-compiled binaries; make /data
+RUN mkdir amrfinder && cd /amrfinder && \
+ wget https://github.com/ncbi/amr/releases/download/amrfinder_v${AMRFINDER_VER}/amrfinder_binaries_v${AMRFINDER_VER}.tar.gz && \
+ tar zxf amrfinder_binaries_v${AMRFINDER_VER}.tar.gz && \
+ rm amrfinder_binaries_v${AMRFINDER_VER}.tar.gz && \
+ mkdir /data
+
+# install ncbi-blast linux binaries
+RUN wget https://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/${BLAST_VER}/ncbi-blast-${BLAST_VER}+-x64-linux.tar.gz && \
+ tar -xzf ncbi-blast-${BLAST_VER}+-x64-linux.tar.gz && \
+ rm -v ncbi-blast-${BLAST_VER}+-x64-linux.tar.gz
+
+# set PATH and locale settings for singularity compatibiliity, set amrfinder and manually-installed blast as higher priority in PATH
+ENV PATH="/amrfinder:/ncbi-blast-${BLAST_VER}+/bin:$PATH" \
+ LC_ALL=C
+
+# download databases and index them
+# done in this manner to pin the database version instead of pulling the latest version with `amrfinder -u`
+# softlink is required for `amrfinder -l` and typical `amrfinder` use cases to work properly
+RUN mkdir -p /amrfinder/data/${AMRFINDER_DB_VER} && \
+ wget -q -P /amrfinder/data/${AMRFINDER_DB_VER} ftp://ftp.ncbi.nlm.nih.gov/pathogen/Antimicrobial_resistance/AMRFinderPlus/database/3.11/${AMRFINDER_DB_VER}/* && \
+ amrfinder_index /amrfinder/data/${AMRFINDER_DB_VER} && \
+ ln -s /amrfinder/data/${AMRFINDER_DB_VER} /amrfinder/data/latest
+
+# set final working directory
+WORKDIR /data
+
+# default command is to print help options
+CMD [ "amrfinder", "--help" ]
+
+## Test stage
+FROM app as test
+
+# list database version and available --organism options
+RUN amrfinder -l
+
+# run recommended tests from amrfinder
+RUN amrfinder --threads 1 --plus -p /amrfinder/test_prot.fa -g /amrfinder/test_prot.gff -O Escherichia --print_node > test_prot.got && \
+ diff /amrfinder/test_prot.expected test_prot.got && \
+ amrfinder --threads 1 --plus -n /amrfinder/test_dna.fa -O Escherichia --print_node > test_dna.got && \
+ diff /amrfinder/test_dna.expected test_dna.got && \
+ amrfinder --threads 1 --plus -n /amrfinder/test_dna.fa -p /amrfinder/test_prot.fa -g /amrfinder/test_prot.gff -O Escherichia --print_node > test_both.got && \
+ diff /amrfinder/test_both.expected test_both.got
+
+# run amrfinder on Salmonella, without and with --organism option
+RUN wget https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/010/941/835/GCA_010941835.1_PDT000052640.3/GCA_010941835.1_PDT000052640.3_genomic.fna.gz && \
+ gzip -d GCA_010941835.1_PDT000052640.3_genomic.fna.gz && \
+ amrfinder --threads 1 --plus --nucleotide GCA_010941835.1_PDT000052640.3_genomic.fna --output test1.txt && \
+ amrfinder --threads 1 --plus --nucleotide GCA_010941835.1_PDT000052640.3_genomic.fna --organism Salmonella --output test2.txt && \
+ cat test1.txt test2.txt
+
+# run amrfinder on Klebesiella oxytoca using --organism/-O flag
+RUN wget https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/003/812/925/GCA_003812925.1_ASM381292v1/GCA_003812925.1_ASM381292v1_genomic.fna.gz && \
+ gzip -d GCA_003812925.1_ASM381292v1_genomic.fna.gz && \
+ amrfinder --threads 1 --plus --name GCA_003812925.1 -n GCA_003812925.1_ASM381292v1_genomic.fna -O Klebsiella_oxytoca -o GCA_003812925.1-amrfinder.tsv
+
+# test that gunzip is installed
+RUN gunzip --help
diff --git a/ncbi-amrfinderplus/3.11.26-2023-11-15.1/README.md b/ncbi-amrfinderplus/3.11.26-2023-11-15.1/README.md
new file mode 100644
index 000000000..6f01b7914
--- /dev/null
+++ b/ncbi-amrfinderplus/3.11.26-2023-11-15.1/README.md
@@ -0,0 +1,68 @@
+# NCBI AMRFinderPlus docker image
+
+Main tool : [NCBI AMRFinderPlus](https://github.com/ncbi/amr)
+
+Additional tools:
+
+- hmmer v3.3.2
+- ncbi-blast+ v2.14.0
+
+## Database information
+
+The database included at time of docker image build is **`2023-11-15.1`**. More information can be found in the changes.txt on [NCBI's FTP](https://ftp.ncbi.nlm.nih.gov/pathogen/Antimicrobial_resistance/AMRFinderPlus/database/3.11/2023-11-15.1/changelog.txt).
+
+Full documentation: [https://github.com/ncbi/amr/wiki](https://github.com/ncbi/amr/wiki)
+
+## Docker Image Tags
+
+Beginning with AMRFinderPlus v3.11.2, we will include the version of AMRFinderPlus followed by the database version in the docker image tag so that it is more informative to users. The format is as follows:
+
+```bash
+# general format
+staphb/ncbi-amrfinderplus:-
+
+# example
+staphb/ncbi-amrfinderplus:3.11.14-2023-04-17.1
+```
+
+You can view all available docker images on [dockerhub](https://hub.docker.com/r/staphb/ncbi-amrfinderplus/tags) and [quay.io](https://quay.io/repository/staphb/ncbi-amrfinderplus?tab=tags)
+
+## Example Usage
+
+```bash
+# list out the available organisms for the -O/--organism flag
+$ amrfinder -l
+Running: amrfinder -l
+Software directory: '/amrfinder/'
+Software version: 3.11.26
+Database directory: '/amrfinder/data/2023-11-15.1'
+Database version: 2023-11-15.1
+
+Available --organism options: Acinetobacter_baumannii, Burkholderia_cepacia, Burkholderia_pseudomallei, Campylobacter,
+Citrobacter_freundii, Clostridioides_difficile, Enterobacter_asburiae, Enterobacter_cloacae, Enterococcus_faecalis,
+Enterococcus_faecium, Escherichia, Klebsiella_oxytoca, Klebsiella_pneumoniae, Neisseria_gonorrhoeae,
+Neisseria_meningitidis, Pseudomonas_aeruginosa, Salmonella, Serratia_marcescens, Staphylococcus_aureus,
+Staphylococcus_pseudintermedius, Streptococcus_agalactiae, Streptococcus_pneumoniae, Streptococcus_pyogenes,
+Vibrio_cholerae, Vibrio_parahaemolyticus, Vibrio_vulnificus
+
+# download Klebsiella oxytoca genome FASTA/FNA to use as a test
+$ wget "https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/003/812/925/GCA_003812925.1_ASM381292v1/GCA_003812925.1_ASM381292v1_genomic.fna.gz"
+
+# uncompress the FNA file
+$ gzip -d GCA_003812925.1_ASM381292v1_genomic.fna.gz
+
+# run amrfinder (nucleotide mode) on the uncompressed FNA file
+$ amrfinder --plus --name GCA_003812925.1 -n GCA_003812925.1_ASM381292v1_genomic.fna -O Klebsiella_oxytoca -o GCA_003812925.1-amrfinder.tsv
+
+# view output TSV
+$ column -t -s $'\t' -n GCA_003812925.1-amrfinder.tsv
+Name Protein identifier Contig id Start Stop Strand Gene symbol Sequence name Scope Element type Element subtype Class Subclass Method Target length Reference sequence length % Coverage of reference sequence % Identity to reference sequence Alignment length Accession of closest sequence Name of closest sequence HMM id HMM description
+GCA_003812925.1 NA CP033844.1 369234 370406 + oqxA multidrug efflux RND transporter periplasmic adaptor subunit OqxA core AMR AMR PHENICOL/QUINOLONE PHENICOL/QUINOLONE BLASTX 391 391 100.00 90.79 391 WP_002914189.1 multidrug efflux RND transporter periplasmic adaptor subunit OqxA NA NA
+GCA_003812925.1 NA CP033844.1 370433 373582 + oqxB multidrug efflux RND transporter permease subunit OqxB core AMR AMR PHENICOL/QUINOLONE PHENICOL/QUINOLONE BLASTX 1050 1050 100.00 96.86 1050 WP_023323140.1 multidrug efflux RND transporter permease subunit OqxB15 NA NA
+GCA_003812925.1 NA CP033844.1 636118 637917 - ybtQ yersiniabactin ABC transporter ATP-binding/permease protein YbtQ plus VIRULENCE VIRULENCE NA NA BLASTX 600 600 100.00 89.17 600 AAC69584.1 yersiniabactin ABC transporter ATP-binding/permease protein YbtQ NA NA
+GCA_003812925.1 NA CP033844.1 637913 639706 - ybtP yersiniabactin ABC transporter ATP-binding/permease protein YbtP plus VIRULENCE VIRULENCE NA NA BLASTX 598 600 99.67 89.30 598 CAA21388.1 yersiniabactin ABC transporter ATP-binding/permease protein YbtP NA NA
+GCA_003812925.1 NA CP033844.1 3473617 3474798 + emrD multidrug efflux MFS transporter EmrD plus AMR AMR EFFLUX EFFLUX BLASTX 394 394 100.00 94.16 394 ACN65732.1 multidrug efflux MFS transporter EmrD NA NA
+GCA_003812925.1 NA CP033844.1 5085488 5086357 - blaOXY-2-1 extended-spectrum class A beta-lactamase OXY-2-1 core AMR AMR BETA-LACTAM CEPHALOSPORIN ALLELEX 290 290 100.00 100.00 290 WP_032727905.1 extended-spectrum class A beta-lactamase OXY-2-1 NA NA
+GCA_003812925.1 NA CP033845.1 5102 5632 - ant(2'')-Ia aminoglycoside nucleotidyltransferase ANT(2'')-Ia core AMR AMR AMINOGLYCOSIDE GENTAMICIN/KANAMYCIN/TOBRAMYCIN BLASTX 177 177 100.00 98.31 177 WP_000381803.1 aminoglycoside nucleotidyltransferase ANT(2'')-Ia NA NA
+GCA_003812925.1 NA CP033846.1 748 1932 - tet(39) tetracycline efflux MFS transporter Tet(39) core AMR AMR TETRACYCLINE TETRACYCLINE EXACTX 395 395 100.00 100.00 395 WP_004856455.1 tetracycline efflux MFS transporter Tet(39) NA NA
+```
diff --git a/ncbi-amrfinderplus/3.12.8-2024-01-31.1/Dockerfile b/ncbi-amrfinderplus/3.12.8-2024-01-31.1/Dockerfile
new file mode 100644
index 000000000..a74044d43
--- /dev/null
+++ b/ncbi-amrfinderplus/3.12.8-2024-01-31.1/Dockerfile
@@ -0,0 +1,101 @@
+FROM ubuntu:jammy as app
+
+ARG AMRFINDER_VER="3.12.8"
+ARG AMRFINDER_DB_VER="2024-01-31.1"
+ARG BLAST_VER="2.14.0"
+
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="NCBI AMRFinderPlus"
+LABEL software.version="${AMRFINDER_VER}"
+LABEL description="NCBI resistance gene detection tool"
+LABEL website="https://github.com/ncbi/amr"
+LABEL license="https://github.com/ncbi/amr/blob/master/LICENSE"
+LABEL maintainer="Kelsey Florek"
+LABEL maintainer.email="kelsey.florek@slh.wisc.edu"
+LABEL maintainer2="Curtis Kapsak"
+LABEL maintainer2.email="kapsakcj@gmail.com"
+LABEL maintainer3="Anders Goncalves da Silva"
+LABEL maintainer3.email="andersgs@gmail.com"
+LABEL maintainer4="Erin Young"
+LABEL maintainer4.email="eriny@utah.gov"
+LABEL maintainer5="Holly McQueary"
+LABEL maintainer5.email="holly.c.mcqueary@mass.gov"
+
+# ncbi-blast+ installed via apt is v2.12.0 - DISABLING so that we can manually install v2.14.0
+# see here for reason why I'm manualy installing 2.14.0 instead of using apt-get: https://github.com/ncbi/amr/releases/tag/amrfinder_v3.11.8
+
+# hmmer installed via apt is v3.3.2
+# removed because likely unnecessary since we are not compiling from source: make g++
+# libgomp1 required for makeblastdb
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ ca-certificates \
+ wget \
+ curl \
+ libgomp1 \
+ hmmer \
+ procps \
+ gzip && \
+ apt-get autoclean && \
+ rm -rf /var/lib/apt/lists/*
+
+# download and install amrfinderplus pre-compiled binaries; make /data
+RUN mkdir amrfinder && cd /amrfinder && \
+ echo "downloading amrfinderplus v${AMRFINDER_VER} pre-compiled binaries from GitHub..." && \
+ wget -q https://github.com/ncbi/amr/releases/download/amrfinder_v${AMRFINDER_VER}/amrfinder_binaries_v${AMRFINDER_VER}.tar.gz && \
+ tar zxf amrfinder_binaries_v${AMRFINDER_VER}.tar.gz && \
+ rm amrfinder_binaries_v${AMRFINDER_VER}.tar.gz && \
+ mkdir /data
+
+# install ncbi-blast linux binaries
+RUN echo "downloading ncbi-blast-${BLAST_VER}+ linux binaries from NCBI FTP..." && \
+ wget -q https://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/${BLAST_VER}/ncbi-blast-${BLAST_VER}+-x64-linux.tar.gz && \
+ tar -xzf ncbi-blast-${BLAST_VER}+-x64-linux.tar.gz && \
+ rm -v ncbi-blast-${BLAST_VER}+-x64-linux.tar.gz
+
+# set PATH and locale settings for singularity compatibiliity, set amrfinder and manually-installed blast as higher priority in PATH
+ENV PATH="/amrfinder:/ncbi-blast-${BLAST_VER}+/bin:$PATH" \
+ LC_ALL=C
+
+# download databases and index them
+# done in this manner to pin the database version instead of pulling the latest version with `amrfinder -u`
+# softlink is required for `amrfinder -l` and typical `amrfinder` use cases to work properly
+RUN mkdir -p /amrfinder/data/${AMRFINDER_DB_VER} && \
+ wget -q -P /amrfinder/data/${AMRFINDER_DB_VER} ftp://ftp.ncbi.nlm.nih.gov/pathogen/Antimicrobial_resistance/AMRFinderPlus/database/3.12/${AMRFINDER_DB_VER}/* && \
+ amrfinder_index /amrfinder/data/${AMRFINDER_DB_VER} && \
+ ln -s /amrfinder/data/${AMRFINDER_DB_VER} /amrfinder/data/latest
+
+# set final working directory
+WORKDIR /data
+
+# default command is to print help options
+CMD [ "amrfinder", "--help" ]
+
+## Test stage
+FROM app as test
+
+# list database version and available --organism options
+RUN amrfinder -l
+
+# run recommended tests from amrfinder
+RUN amrfinder --threads 1 --plus -p /amrfinder/test_prot.fa -g /amrfinder/test_prot.gff -O Escherichia --print_node > test_prot.got && \
+ diff /amrfinder/test_prot.expected test_prot.got && \
+ amrfinder --threads 1 --plus -n /amrfinder/test_dna.fa -O Escherichia --print_node > test_dna.got && \
+ diff /amrfinder/test_dna.expected test_dna.got && \
+ amrfinder --threads 1 --plus -n /amrfinder/test_dna.fa -p /amrfinder/test_prot.fa -g /amrfinder/test_prot.gff -O Escherichia --print_node > test_both.got && \
+ diff /amrfinder/test_both.expected test_both.got
+
+# run amrfinder on Salmonella, without and with --organism option
+RUN wget https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/010/941/835/GCA_010941835.1_PDT000052640.3/GCA_010941835.1_PDT000052640.3_genomic.fna.gz && \
+ gzip -d GCA_010941835.1_PDT000052640.3_genomic.fna.gz && \
+ amrfinder --threads 1 --plus --nucleotide GCA_010941835.1_PDT000052640.3_genomic.fna --output test1.txt && \
+ amrfinder --threads 1 --plus --nucleotide GCA_010941835.1_PDT000052640.3_genomic.fna --organism Salmonella --output test2.txt && \
+ cat test1.txt test2.txt
+
+# run amrfinder on Klebesiella oxytoca using --organism/-O flag
+RUN wget https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/003/812/925/GCA_003812925.1_ASM381292v1/GCA_003812925.1_ASM381292v1_genomic.fna.gz && \
+ gzip -d GCA_003812925.1_ASM381292v1_genomic.fna.gz && \
+ amrfinder --threads 1 --plus --name GCA_003812925.1 -n GCA_003812925.1_ASM381292v1_genomic.fna -O Klebsiella_oxytoca -o GCA_003812925.1-amrfinder.tsv
+
+# test that gunzip is installed
+RUN gunzip --help
diff --git a/ncbi-amrfinderplus/3.12.8-2024-01-31.1/README.md b/ncbi-amrfinderplus/3.12.8-2024-01-31.1/README.md
new file mode 100644
index 000000000..dd354cbdd
--- /dev/null
+++ b/ncbi-amrfinderplus/3.12.8-2024-01-31.1/README.md
@@ -0,0 +1,68 @@
+# NCBI AMRFinderPlus docker image
+
+Main tool : [NCBI AMRFinderPlus](https://github.com/ncbi/amr)
+
+Additional tools:
+
+- hmmer v3.3.2
+- ncbi-blast+ v2.14.0
+
+## Database information
+
+The database included at time of docker image build is **`2024-01-31.1`**. More information can be found in the changes.txt on [NCBI's FTP](https://ftp.ncbi.nlm.nih.gov/pathogen/Antimicrobial_resistance/AMRFinderPlus/database/3.12/2024-01-31.1/changelog.txt).
+
+Full documentation: [https://github.com/ncbi/amr/wiki](https://github.com/ncbi/amr/wiki)
+
+## Docker Image Tags
+
+Beginning with AMRFinderPlus v3.11.2, we will include the version of AMRFinderPlus followed by the database version in the docker image tag so that it is more informative to users. The format is as follows:
+
+```bash
+# general format
+staphb/ncbi-amrfinderplus:-
+
+# example
+staphb/ncbi-amrfinderplus:3.11.14-2023-04-17.1
+```
+
+You can view all available docker images on [dockerhub](https://hub.docker.com/r/staphb/ncbi-amrfinderplus/tags) and [quay.io](https://quay.io/repository/staphb/ncbi-amrfinderplus?tab=tags)
+
+## Example Usage
+
+```bash
+# list out the available organisms for the -O/--organism flag
+$ amrfinder -l
+Running: amrfinder -l
+Software directory: '/amrfinder/'
+Software version: 3.12.8
+Database directory: '/amrfinder/data/2024-01-31.1'
+Database version: 2024-01-31.1
+
+Available --organism options: Acinetobacter_baumannii, Burkholderia_cepacia, Burkholderia_pseudomallei, Campylobacter,
+Citrobacter_freundii, Clostridioides_difficile, Enterobacter_asburiae, Enterobacter_cloacae, Enterococcus_faecalis,
+Enterococcus_faecium, Escherichia, Klebsiella_oxytoca, Klebsiella_pneumoniae, Neisseria_gonorrhoeae,
+Neisseria_meningitidis, Pseudomonas_aeruginosa, Salmonella, Serratia_marcescens, Staphylococcus_aureus,
+Staphylococcus_pseudintermedius, Streptococcus_agalactiae, Streptococcus_pneumoniae, Streptococcus_pyogenes,
+Vibrio_cholerae, Vibrio_parahaemolyticus, Vibrio_vulnificus
+
+# download Klebsiella oxytoca genome FASTA/FNA to use as a test
+$ wget "https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/003/812/925/GCA_003812925.1_ASM381292v1/GCA_003812925.1_ASM381292v1_genomic.fna.gz"
+
+# uncompress the FNA file
+$ gzip -d GCA_003812925.1_ASM381292v1_genomic.fna.gz
+
+# run amrfinder (nucleotide mode) on the uncompressed FNA file
+$ amrfinder --plus --name GCA_003812925.1 -n GCA_003812925.1_ASM381292v1_genomic.fna -O Klebsiella_oxytoca -o GCA_003812925.1-amrfinder.tsv
+
+# view output TSV
+$ column -t -s $'\t' -n GCA_003812925.1-amrfinder.tsv
+Name Protein identifier Contig id Start Stop Strand Gene symbol Sequence name Scope Element type Element subtype Class Subclass Method Target length Reference sequence length % Coverage of reference sequence % Identity to reference sequence Alignment length Accession of closest sequence Name of closest sequence HMM id HMM description
+GCA_003812925.1 NA CP033844.1 369234 370406 + oqxA multidrug efflux RND transporter periplasmic adaptor subunit OqxA core AMR AMR PHENICOL/QUINOLONE PHENICOL/QUINOLONE BLASTX 391 391 100.00 90.79 391 WP_002914189.1 multidrug efflux RND transporter periplasmic adaptor subunit OqxA NA NA
+GCA_003812925.1 NA CP033844.1 370433 373582 + oqxB multidrug efflux RND transporter permease subunit OqxB core AMR AMR PHENICOL/QUINOLONE PHENICOL/QUINOLONE BLASTX 1050 1050 100.00 96.86 1050 WP_023323140.1 multidrug efflux RND transporter permease subunit OqxB15 NA NA
+GCA_003812925.1 NA CP033844.1 636118 637917 - ybtQ yersiniabactin ABC transporter ATP-binding/permease protein YbtQ plus VIRULENCE VIRULENCE NA NA BLASTX 600 600 100.00 89.17 600 AAC69584.1 yersiniabactin ABC transporter ATP-binding/permease protein YbtQ NA NA
+GCA_003812925.1 NA CP033844.1 637913 639706 - ybtP yersiniabactin ABC transporter ATP-binding/permease protein YbtP plus VIRULENCE VIRULENCE NA NA BLASTX 598 600 99.67 89.30 598 CAA21388.1 yersiniabactin ABC transporter ATP-binding/permease protein YbtP NA NA
+GCA_003812925.1 NA CP033844.1 3473617 3474798 + emrD multidrug efflux MFS transporter EmrD plus AMR AMR EFFLUX EFFLUX BLASTX 394 394 100.00 94.16 394 ACN65732.1 multidrug efflux MFS transporter EmrD NA NA
+GCA_003812925.1 NA CP033844.1 5085488 5086357 - blaOXY-2-1 extended-spectrum class A beta-lactamase OXY-2-1 core AMR AMR BETA-LACTAM CEPHALOSPORIN ALLELEX 290 290 100.00 100.00 290 WP_032727905.1 extended-spectrum class A beta-lactamase OXY-2-1 NA NA
+GCA_003812925.1 NA CP033845.1 5102 5632 - ant(2'')-Ia aminoglycoside nucleotidyltransferase ANT(2'')-Ia core AMR AMR AMINOGLYCOSIDE GENTAMICIN/KANAMYCIN/TOBRAMYCIN BLASTX 177 177 100.00 98.31 177 WP_000381803.1 aminoglycoside nucleotidyltransferase ANT(2'')-Ia NA NA
+GCA_003812925.1 NA CP033846.1 748 1932 - tet(39) tetracycline efflux MFS transporter Tet(39) core AMR AMR TETRACYCLINE TETRACYCLINE EXACTX 395 395 100.00 100.00 395 WP_004856455.1 tetracycline efflux MFS transporter Tet(39)
+```
diff --git a/ncbi-amrfinderplus/3.12.8-2024-01-31.1_2/Dockerfile b/ncbi-amrfinderplus/3.12.8-2024-01-31.1_2/Dockerfile
new file mode 100755
index 000000000..b6a09aee3
--- /dev/null
+++ b/ncbi-amrfinderplus/3.12.8-2024-01-31.1_2/Dockerfile
@@ -0,0 +1,101 @@
+FROM ubuntu:jammy as app
+
+ARG AMRFINDER_VER="3.12.8"
+ARG AMRFINDER_DB_VER="2024-01-31.1"
+ARG BLAST_VER="2.15.0"
+
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="NCBI AMRFinderPlus"
+LABEL software.version="${AMRFINDER_VER}"
+LABEL description="NCBI resistance gene detection tool"
+LABEL website="https://github.com/ncbi/amr"
+LABEL license="https://github.com/ncbi/amr/blob/master/LICENSE"
+LABEL maintainer="Kelsey Florek"
+LABEL maintainer.email="kelsey.florek@slh.wisc.edu"
+LABEL maintainer2="Curtis Kapsak"
+LABEL maintainer2.email="kapsakcj@gmail.com"
+LABEL maintainer3="Anders Goncalves da Silva"
+LABEL maintainer3.email="andersgs@gmail.com"
+LABEL maintainer4="Erin Young"
+LABEL maintainer4.email="eriny@utah.gov"
+LABEL maintainer5="Holly McQueary"
+LABEL maintainer5.email="holly.c.mcqueary@mass.gov"
+
+# ncbi-blast+ installed via apt is v2.12.0 - DISABLING so that we can manually install v2.14.0
+# see here for reason why I'm manualy installing 2.14.0 instead of using apt-get: https://github.com/ncbi/amr/releases/tag/amrfinder_v3.11.8
+
+# hmmer installed via apt is v3.3.2
+# removed because likely unnecessary since we are not compiling from source: make g++
+# libgomp1 required for makeblastdb
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ ca-certificates \
+ wget \
+ curl \
+ libgomp1 \
+ hmmer \
+ procps \
+ gzip && \
+ apt-get autoclean && \
+ rm -rf /var/lib/apt/lists/*
+
+# download and install amrfinderplus pre-compiled binaries; make /data
+RUN mkdir amrfinder && cd /amrfinder && \
+ echo "downloading amrfinderplus v${AMRFINDER_VER} pre-compiled binaries from GitHub..." && \
+ wget -q https://github.com/ncbi/amr/releases/download/amrfinder_v${AMRFINDER_VER}/amrfinder_binaries_v${AMRFINDER_VER}.tar.gz && \
+ tar zxf amrfinder_binaries_v${AMRFINDER_VER}.tar.gz && \
+ rm amrfinder_binaries_v${AMRFINDER_VER}.tar.gz && \
+ mkdir /data
+
+# install ncbi-blast linux binaries
+RUN echo "downloading ncbi-blast-${BLAST_VER}+ linux binaries from NCBI FTP..." && \
+ wget -q https://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/${BLAST_VER}/ncbi-blast-${BLAST_VER}+-x64-linux.tar.gz && \
+ tar -xzf ncbi-blast-${BLAST_VER}+-x64-linux.tar.gz && \
+ rm -v ncbi-blast-${BLAST_VER}+-x64-linux.tar.gz
+
+# set PATH and locale settings for singularity compatibiliity, set amrfinder and manually-installed blast as higher priority in PATH
+ENV PATH="/amrfinder:/ncbi-blast-${BLAST_VER}+/bin:$PATH" \
+ LC_ALL=C
+
+# download databases and index them
+# done in this manner to pin the database version instead of pulling the latest version with `amrfinder -u`
+# softlink is required for `amrfinder -l` and typical `amrfinder` use cases to work properly
+RUN mkdir -p /amrfinder/data/${AMRFINDER_DB_VER} && \
+ wget -q -P /amrfinder/data/${AMRFINDER_DB_VER} ftp://ftp.ncbi.nlm.nih.gov/pathogen/Antimicrobial_resistance/AMRFinderPlus/database/3.12/${AMRFINDER_DB_VER}/* && \
+ amrfinder_index /amrfinder/data/${AMRFINDER_DB_VER} && \
+ ln -s /amrfinder/data/${AMRFINDER_DB_VER} /amrfinder/data/latest
+
+# set final working directory
+WORKDIR /data
+
+# default command is to print help options
+CMD [ "amrfinder", "--help" ]
+
+## Test stage
+FROM app as test
+
+# list database version and available --organism options
+RUN amrfinder -l
+
+# run recommended tests from amrfinder
+RUN amrfinder --threads 1 --plus -p /amrfinder/test_prot.fa -g /amrfinder/test_prot.gff -O Escherichia --print_node > test_prot.got && \
+ diff /amrfinder/test_prot.expected test_prot.got && \
+ amrfinder --threads 1 --plus -n /amrfinder/test_dna.fa -O Escherichia --print_node > test_dna.got && \
+ diff /amrfinder/test_dna.expected test_dna.got && \
+ amrfinder --threads 1 --plus -n /amrfinder/test_dna.fa -p /amrfinder/test_prot.fa -g /amrfinder/test_prot.gff -O Escherichia --print_node > test_both.got && \
+ diff /amrfinder/test_both.expected test_both.got
+
+# run amrfinder on Salmonella, without and with --organism option
+RUN wget https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/010/941/835/GCA_010941835.1_PDT000052640.3/GCA_010941835.1_PDT000052640.3_genomic.fna.gz && \
+ gzip -d GCA_010941835.1_PDT000052640.3_genomic.fna.gz && \
+ amrfinder --threads 1 --plus --nucleotide GCA_010941835.1_PDT000052640.3_genomic.fna --output test1.txt && \
+ amrfinder --threads 1 --plus --nucleotide GCA_010941835.1_PDT000052640.3_genomic.fna --organism Salmonella --output test2.txt && \
+ cat test1.txt test2.txt
+
+# run amrfinder on Klebesiella oxytoca using --organism/-O flag
+RUN wget https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/003/812/925/GCA_003812925.1_ASM381292v1/GCA_003812925.1_ASM381292v1_genomic.fna.gz && \
+ gzip -d GCA_003812925.1_ASM381292v1_genomic.fna.gz && \
+ amrfinder --threads 1 --plus --name GCA_003812925.1 -n GCA_003812925.1_ASM381292v1_genomic.fna -O Klebsiella_oxytoca -o GCA_003812925.1-amrfinder.tsv
+
+# test that gunzip is installed
+RUN gunzip --help
diff --git a/ncbi-amrfinderplus/3.12.8-2024-01-31.1_2/README.md b/ncbi-amrfinderplus/3.12.8-2024-01-31.1_2/README.md
new file mode 100755
index 000000000..c41477d5d
--- /dev/null
+++ b/ncbi-amrfinderplus/3.12.8-2024-01-31.1_2/README.md
@@ -0,0 +1,68 @@
+# NCBI AMRFinderPlus docker image
+
+Main tool : [NCBI AMRFinderPlus](https://github.com/ncbi/amr)
+
+Additional tools:
+
+- hmmer v3.3.2
+- ncbi-blast+ v2.15.0
+
+## Database information
+
+The database included at time of docker image build is **`2024-01-31.1`**. More information can be found in the changes.txt on [NCBI's FTP](https://ftp.ncbi.nlm.nih.gov/pathogen/Antimicrobial_resistance/AMRFinderPlus/database/3.12/2024-01-31.1/changelog.txt).
+
+Full documentation: [https://github.com/ncbi/amr/wiki](https://github.com/ncbi/amr/wiki)
+
+## Docker Image Tags
+
+Beginning with AMRFinderPlus v3.11.2, we will include the version of AMRFinderPlus followed by the database version in the docker image tag so that it is more informative to users. The format is as follows:
+
+```bash
+# general format
+staphb/ncbi-amrfinderplus:-
+
+# example
+staphb/ncbi-amrfinderplus:3.11.14-2023-04-17.1
+```
+
+You can view all available docker images on [dockerhub](https://hub.docker.com/r/staphb/ncbi-amrfinderplus/tags) and [quay.io](https://quay.io/repository/staphb/ncbi-amrfinderplus?tab=tags)
+
+## Example Usage
+
+```bash
+# list out the available organisms for the -O/--organism flag
+$ amrfinder -l
+Running: amrfinder -l
+Software directory: '/amrfinder/'
+Software version: 3.12.8
+Database directory: '/amrfinder/data/2024-01-31.1'
+Database version: 2024-01-31.1
+
+Available --organism options: Acinetobacter_baumannii, Burkholderia_cepacia, Burkholderia_pseudomallei, Campylobacter,
+Citrobacter_freundii, Clostridioides_difficile, Enterobacter_asburiae, Enterobacter_cloacae, Enterococcus_faecalis,
+Enterococcus_faecium, Escherichia, Klebsiella_oxytoca, Klebsiella_pneumoniae, Neisseria_gonorrhoeae,
+Neisseria_meningitidis, Pseudomonas_aeruginosa, Salmonella, Serratia_marcescens, Staphylococcus_aureus,
+Staphylococcus_pseudintermedius, Streptococcus_agalactiae, Streptococcus_pneumoniae, Streptococcus_pyogenes,
+Vibrio_cholerae, Vibrio_parahaemolyticus, Vibrio_vulnificus
+
+# download Klebsiella oxytoca genome FASTA/FNA to use as a test
+$ wget "https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/003/812/925/GCA_003812925.1_ASM381292v1/GCA_003812925.1_ASM381292v1_genomic.fna.gz"
+
+# uncompress the FNA file
+$ gzip -d GCA_003812925.1_ASM381292v1_genomic.fna.gz
+
+# run amrfinder (nucleotide mode) on the uncompressed FNA file
+$ amrfinder --plus --name GCA_003812925.1 -n GCA_003812925.1_ASM381292v1_genomic.fna -O Klebsiella_oxytoca -o GCA_003812925.1-amrfinder.tsv
+
+# view output TSV
+$ column -t -s $'\t' -n GCA_003812925.1-amrfinder.tsv
+Name Protein identifier Contig id Start Stop Strand Gene symbol Sequence name Scope Element type Element subtype Class Subclass Method Target length Reference sequence length % Coverage of reference sequence % Identity to reference sequence Alignment length Accession of closest sequence Name of closest sequence HMM id HMM description
+GCA_003812925.1 NA CP033844.1 369234 370406 + oqxA multidrug efflux RND transporter periplasmic adaptor subunit OqxA core AMR AMR PHENICOL/QUINOLONE PHENICOL/QUINOLONE BLASTX 391 391 100.00 90.79 391 WP_002914189.1 multidrug efflux RND transporter periplasmic adaptor subunit OqxA NA NA
+GCA_003812925.1 NA CP033844.1 370433 373582 + oqxB multidrug efflux RND transporter permease subunit OqxB core AMR AMR PHENICOL/QUINOLONE PHENICOL/QUINOLONE BLASTX 1050 1050 100.00 96.86 1050 WP_023323140.1 multidrug efflux RND transporter permease subunit OqxB15 NA NA
+GCA_003812925.1 NA CP033844.1 636118 637917 - ybtQ yersiniabactin ABC transporter ATP-binding/permease protein YbtQ plus VIRULENCE VIRULENCE NA NA BLASTX 600 600 100.00 89.17 600 AAC69584.1 yersiniabactin ABC transporter ATP-binding/permease protein YbtQ NA NA
+GCA_003812925.1 NA CP033844.1 637913 639706 - ybtP yersiniabactin ABC transporter ATP-binding/permease protein YbtP plus VIRULENCE VIRULENCE NA NA BLASTX 598 600 99.67 89.30 598 CAA21388.1 yersiniabactin ABC transporter ATP-binding/permease protein YbtP NA NA
+GCA_003812925.1 NA CP033844.1 3473617 3474798 + emrD multidrug efflux MFS transporter EmrD plus AMR AMR EFFLUX EFFLUX BLASTX 394 394 100.00 94.16 394 ACN65732.1 multidrug efflux MFS transporter EmrD NA NA
+GCA_003812925.1 NA CP033844.1 5085488 5086357 - blaOXY-2-1 extended-spectrum class A beta-lactamase OXY-2-1 core AMR AMR BETA-LACTAM CEPHALOSPORIN ALLELEX 290 290 100.00 100.00 290 WP_032727905.1 extended-spectrum class A beta-lactamase OXY-2-1 NA NA
+GCA_003812925.1 NA CP033845.1 5102 5632 - ant(2'')-Ia aminoglycoside nucleotidyltransferase ANT(2'')-Ia core AMR AMR AMINOGLYCOSIDE GENTAMICIN/KANAMYCIN/TOBRAMYCIN BLASTX 177 177 100.00 98.31 177 WP_000381803.1 aminoglycoside nucleotidyltransferase ANT(2'')-Ia NA NA
+GCA_003812925.1 NA CP033846.1 748 1932 - tet(39) tetracycline efflux MFS transporter Tet(39) core AMR AMR TETRACYCLINE TETRACYCLINE EXACTX 395 395 100.00 100.00 395 WP_004856455.1 tetracycline efflux MFS transporter Tet(39)
+```
diff --git a/ncbi-amrfinderplus/3.12.8-2024-05-02.2/Dockerfile b/ncbi-amrfinderplus/3.12.8-2024-05-02.2/Dockerfile
new file mode 100755
index 000000000..75ce6bdd6
--- /dev/null
+++ b/ncbi-amrfinderplus/3.12.8-2024-05-02.2/Dockerfile
@@ -0,0 +1,101 @@
+FROM ubuntu:jammy as app
+
+ARG AMRFINDER_VER="3.12.8"
+ARG AMRFINDER_DB_VER="2024-05-02.2"
+ARG BLAST_VER="2.15.0"
+
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="NCBI AMRFinderPlus"
+LABEL software.version="${AMRFINDER_VER}"
+LABEL description="NCBI resistance gene detection tool"
+LABEL website="https://github.com/ncbi/amr"
+LABEL license="https://github.com/ncbi/amr/blob/master/LICENSE"
+LABEL maintainer="Kelsey Florek"
+LABEL maintainer.email="kelsey.florek@slh.wisc.edu"
+LABEL maintainer2="Curtis Kapsak"
+LABEL maintainer2.email="kapsakcj@gmail.com"
+LABEL maintainer3="Anders Goncalves da Silva"
+LABEL maintainer3.email="andersgs@gmail.com"
+LABEL maintainer4="Erin Young"
+LABEL maintainer4.email="eriny@utah.gov"
+LABEL maintainer5="Holly McQueary"
+LABEL maintainer5.email="holly.c.mcqueary@mass.gov"
+
+# ncbi-blast+ installed via apt is v2.12.0 - DISABLING so that we can manually install v2.14.0
+# see here for reason why I'm manualy installing 2.14.0 instead of using apt-get: https://github.com/ncbi/amr/releases/tag/amrfinder_v3.11.8
+
+# hmmer installed via apt is v3.3.2
+# removed because likely unnecessary since we are not compiling from source: make g++
+# libgomp1 required for makeblastdb
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ ca-certificates \
+ wget \
+ curl \
+ libgomp1 \
+ hmmer \
+ procps \
+ gzip && \
+ apt-get autoclean && \
+ rm -rf /var/lib/apt/lists/*
+
+# download and install amrfinderplus pre-compiled binaries; make /data
+RUN mkdir amrfinder && cd /amrfinder && \
+ echo "downloading amrfinderplus v${AMRFINDER_VER} pre-compiled binaries from GitHub..." && \
+ wget -q https://github.com/ncbi/amr/releases/download/amrfinder_v${AMRFINDER_VER}/amrfinder_binaries_v${AMRFINDER_VER}.tar.gz && \
+ tar zxf amrfinder_binaries_v${AMRFINDER_VER}.tar.gz && \
+ rm amrfinder_binaries_v${AMRFINDER_VER}.tar.gz && \
+ mkdir /data
+
+# install ncbi-blast linux binaries
+RUN echo "downloading ncbi-blast-${BLAST_VER}+ linux binaries from NCBI FTP..." && \
+ wget -q https://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/${BLAST_VER}/ncbi-blast-${BLAST_VER}+-x64-linux.tar.gz && \
+ tar -xzf ncbi-blast-${BLAST_VER}+-x64-linux.tar.gz && \
+ rm -v ncbi-blast-${BLAST_VER}+-x64-linux.tar.gz
+
+# set PATH and locale settings for singularity compatibiliity, set amrfinder and manually-installed blast as higher priority in PATH
+ENV PATH="/amrfinder:/ncbi-blast-${BLAST_VER}+/bin:$PATH" \
+ LC_ALL=C
+
+# download databases and index them
+# done in this manner to pin the database version instead of pulling the latest version with `amrfinder -u`
+# softlink is required for `amrfinder -l` and typical `amrfinder` use cases to work properly
+RUN mkdir -p /amrfinder/data/${AMRFINDER_DB_VER} && \
+ wget -q -P /amrfinder/data/${AMRFINDER_DB_VER} ftp://ftp.ncbi.nlm.nih.gov/pathogen/Antimicrobial_resistance/AMRFinderPlus/database/3.12/${AMRFINDER_DB_VER}/* && \
+ amrfinder_index /amrfinder/data/${AMRFINDER_DB_VER} && \
+ ln -s /amrfinder/data/${AMRFINDER_DB_VER} /amrfinder/data/latest
+
+# set final working directory
+WORKDIR /data
+
+# default command is to print help options
+CMD [ "amrfinder", "--help" ]
+
+## Test stage
+FROM app as test
+
+# list database version and available --organism options
+RUN amrfinder -l
+
+# run recommended tests from amrfinder
+RUN amrfinder --threads 1 --plus -p /amrfinder/test_prot.fa -g /amrfinder/test_prot.gff -O Escherichia --print_node > test_prot.got && \
+ diff /amrfinder/test_prot.expected test_prot.got && \
+ amrfinder --threads 1 --plus -n /amrfinder/test_dna.fa -O Escherichia --print_node > test_dna.got && \
+ diff /amrfinder/test_dna.expected test_dna.got && \
+ amrfinder --threads 1 --plus -n /amrfinder/test_dna.fa -p /amrfinder/test_prot.fa -g /amrfinder/test_prot.gff -O Escherichia --print_node > test_both.got && \
+ diff /amrfinder/test_both.expected test_both.got
+
+# run amrfinder on Salmonella, without and with --organism option
+RUN wget https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/010/941/835/GCA_010941835.1_PDT000052640.3/GCA_010941835.1_PDT000052640.3_genomic.fna.gz && \
+ gzip -d GCA_010941835.1_PDT000052640.3_genomic.fna.gz && \
+ amrfinder --threads 1 --plus --nucleotide GCA_010941835.1_PDT000052640.3_genomic.fna --output test1.txt && \
+ amrfinder --threads 1 --plus --nucleotide GCA_010941835.1_PDT000052640.3_genomic.fna --organism Salmonella --output test2.txt && \
+ cat test1.txt test2.txt
+
+# run amrfinder on Klebesiella oxytoca using --organism/-O flag
+RUN wget https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/003/812/925/GCA_003812925.1_ASM381292v1/GCA_003812925.1_ASM381292v1_genomic.fna.gz && \
+ gzip -d GCA_003812925.1_ASM381292v1_genomic.fna.gz && \
+ amrfinder --threads 1 --plus --name GCA_003812925.1 -n GCA_003812925.1_ASM381292v1_genomic.fna -O Klebsiella_oxytoca -o GCA_003812925.1-amrfinder.tsv
+
+# test that gunzip is installed
+RUN gunzip --help
diff --git a/ncbi-amrfinderplus/3.12.8-2024-05-02.2/README.md b/ncbi-amrfinderplus/3.12.8-2024-05-02.2/README.md
new file mode 100755
index 000000000..bb6c38a11
--- /dev/null
+++ b/ncbi-amrfinderplus/3.12.8-2024-05-02.2/README.md
@@ -0,0 +1,68 @@
+# NCBI AMRFinderPlus docker image
+
+Main tool : [NCBI AMRFinderPlus](https://github.com/ncbi/amr)
+
+Additional tools:
+
+- hmmer v3.3.2
+- ncbi-blast+ v2.15.0
+
+## Database information
+
+The database included at time of docker image build is **`2024-05-02.2`**. More information can be found in the [changelog.txt on NCBI's FTP](https://ftp.ncbi.nlm.nih.gov/pathogen/Antimicrobial_resistance/AMRFinderPlus/database/3.12/2024-05-02.2/changelog.txt).
+
+Full documentation: [https://github.com/ncbi/amr/wiki](https://github.com/ncbi/amr/wiki)
+
+## Docker Image Tags
+
+Beginning with AMRFinderPlus v3.11.2, we will include the version of AMRFinderPlus followed by the database version in the docker image tag so that it is more informative to users. The format is as follows:
+
+```bash
+# general format
+staphb/ncbi-amrfinderplus:-
+
+# example
+staphb/ncbi-amrfinderplus:3.11.14-2023-04-17.1
+```
+
+You can view all available docker images on [dockerhub](https://hub.docker.com/r/staphb/ncbi-amrfinderplus/tags) and [quay.io](https://quay.io/repository/staphb/ncbi-amrfinderplus?tab=tags)
+
+## Example Usage
+
+```bash
+# list out the available organisms for the -O/--organism flag
+$ amrfinder -l
+Running: amrfinder -l
+Software directory: '/amrfinder/'
+Software version: 3.12.8
+Database directory: '/amrfinder/data/2024-01-31.1'
+Database version: 2024-01-31.1
+
+Available --organism options: Acinetobacter_baumannii, Burkholderia_cepacia, Burkholderia_pseudomallei, Campylobacter,
+Citrobacter_freundii, Clostridioides_difficile, Enterobacter_asburiae, Enterobacter_cloacae, Enterococcus_faecalis,
+Enterococcus_faecium, Escherichia, Klebsiella_oxytoca, Klebsiella_pneumoniae, Neisseria_gonorrhoeae,
+Neisseria_meningitidis, Pseudomonas_aeruginosa, Salmonella, Serratia_marcescens, Staphylococcus_aureus,
+Staphylococcus_pseudintermedius, Streptococcus_agalactiae, Streptococcus_pneumoniae, Streptococcus_pyogenes,
+Vibrio_cholerae, Vibrio_parahaemolyticus, Vibrio_vulnificus
+
+# download Klebsiella oxytoca genome FASTA/FNA to use as a test
+$ wget "https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/003/812/925/GCA_003812925.1_ASM381292v1/GCA_003812925.1_ASM381292v1_genomic.fna.gz"
+
+# uncompress the FNA file
+$ gzip -d GCA_003812925.1_ASM381292v1_genomic.fna.gz
+
+# run amrfinder (nucleotide mode) on the uncompressed FNA file
+$ amrfinder --plus --name GCA_003812925.1 -n GCA_003812925.1_ASM381292v1_genomic.fna -O Klebsiella_oxytoca -o GCA_003812925.1-amrfinder.tsv
+
+# view output TSV
+$ column -t -s $'\t' -n GCA_003812925.1-amrfinder.tsv
+Name Protein identifier Contig id Start Stop Strand Gene symbol Sequence name Scope Element type Element subtype Class Subclass Method Target length Reference sequence length % Coverage of reference sequence % Identity to reference sequence Alignment length Accession of closest sequence Name of closest sequence HMM id HMM description
+GCA_003812925.1 NA CP033844.1 369234 370406 + oqxA multidrug efflux RND transporter periplasmic adaptor subunit OqxA core AMR AMR PHENICOL/QUINOLONE PHENICOL/QUINOLONE BLASTX 391 391 100.00 90.79 391 WP_002914189.1 multidrug efflux RND transporter periplasmic adaptor subunit OqxA NA NA
+GCA_003812925.1 NA CP033844.1 370433 373582 + oqxB multidrug efflux RND transporter permease subunit OqxB core AMR AMR PHENICOL/QUINOLONE PHENICOL/QUINOLONE BLASTX 1050 1050 100.00 96.86 1050 WP_023323140.1 multidrug efflux RND transporter permease subunit OqxB15 NA NA
+GCA_003812925.1 NA CP033844.1 636118 637917 - ybtQ yersiniabactin ABC transporter ATP-binding/permease protein YbtQ plus VIRULENCE VIRULENCE NA NA BLASTX 600 600 100.00 89.17 600 AAC69584.1 yersiniabactin ABC transporter ATP-binding/permease protein YbtQ NA NA
+GCA_003812925.1 NA CP033844.1 637913 639706 - ybtP yersiniabactin ABC transporter ATP-binding/permease protein YbtP plus VIRULENCE VIRULENCE NA NA BLASTX 598 600 99.67 89.30 598 CAA21388.1 yersiniabactin ABC transporter ATP-binding/permease protein YbtP NA NA
+GCA_003812925.1 NA CP033844.1 3473617 3474798 + emrD multidrug efflux MFS transporter EmrD plus AMR AMR EFFLUX EFFLUX BLASTX 394 394 100.00 94.16 394 ACN65732.1 multidrug efflux MFS transporter EmrD NA NA
+GCA_003812925.1 NA CP033844.1 5085488 5086357 - blaOXY-2-1 extended-spectrum class A beta-lactamase OXY-2-1 core AMR AMR BETA-LACTAM CEPHALOSPORIN ALLELEX 290 290 100.00 100.00 290 WP_032727905.1 extended-spectrum class A beta-lactamase OXY-2-1 NA NA
+GCA_003812925.1 NA CP033845.1 5102 5632 - ant(2'')-Ia aminoglycoside nucleotidyltransferase ANT(2'')-Ia core AMR AMR AMINOGLYCOSIDE GENTAMICIN/KANAMYCIN/TOBRAMYCIN BLASTX 177 177 100.00 98.31 177 WP_000381803.1 aminoglycoside nucleotidyltransferase ANT(2'')-Ia NA NA
+GCA_003812925.1 NA CP033846.1 748 1932 - tet(39) tetracycline efflux MFS transporter Tet(39) core AMR AMR TETRACYCLINE TETRACYCLINE EXACTX 395 395 100.00 100.00 395 WP_004856455.1 tetracycline efflux MFS transporter Tet(39)
+```
diff --git a/ncbi-amrfinderplus/3.12.8-2024-07-22.1/Dockerfile b/ncbi-amrfinderplus/3.12.8-2024-07-22.1/Dockerfile
new file mode 100755
index 000000000..3a1bde8fe
--- /dev/null
+++ b/ncbi-amrfinderplus/3.12.8-2024-07-22.1/Dockerfile
@@ -0,0 +1,99 @@
+FROM ubuntu:jammy as app
+
+ARG AMRFINDER_VER="3.12.8"
+ARG AMRFINDER_DB_VER="2024-07-22.1"
+ARG BLAST_VER="2.16.0"
+
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="NCBI AMRFinderPlus"
+LABEL software.version="${AMRFINDER_VER}"
+LABEL description="NCBI resistance gene detection tool"
+LABEL website="https://github.com/ncbi/amr"
+LABEL license="https://github.com/ncbi/amr/blob/master/LICENSE"
+LABEL maintainer="Kelsey Florek"
+LABEL maintainer.email="kelsey.florek@slh.wisc.edu"
+LABEL maintainer2="Curtis Kapsak"
+LABEL maintainer2.email="kapsakcj@gmail.com"
+LABEL maintainer3="Anders Goncalves da Silva"
+LABEL maintainer3.email="andersgs@gmail.com"
+LABEL maintainer4="Erin Young"
+LABEL maintainer4.email="eriny@utah.gov"
+LABEL maintainer5="Holly McQueary"
+LABEL maintainer5.email="holly.c.mcqueary@mass.gov"
+
+# ncbi-blast+ installed via apt is v2.12.0 - DISABLING so that we can manually install v2.14.0
+# see here for reason why I'm manualy installing 2.14.0 instead of using apt-get: https://github.com/ncbi/amr/releases/tag/amrfinder_v3.11.8
+
+# hmmer installed via apt is v3.3.2
+# removed because likely unnecessary since we are not compiling from source: make g++
+# libgomp1 required for makeblastdb
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ ca-certificates \
+ wget \
+ curl \
+ libgomp1 \
+ hmmer \
+ procps \
+ gzip && \
+ apt-get autoclean && \
+ rm -rf /var/lib/apt/lists/*
+
+# download and install amrfinderplus pre-compiled binaries; make /data
+RUN mkdir amrfinder && cd /amrfinder && \
+ echo "downloading amrfinderplus v${AMRFINDER_VER} pre-compiled binaries from GitHub..." && \
+ wget -q https://github.com/ncbi/amr/releases/download/amrfinder_v${AMRFINDER_VER}/amrfinder_binaries_v${AMRFINDER_VER}.tar.gz && \
+ tar zxf amrfinder_binaries_v${AMRFINDER_VER}.tar.gz && \
+ rm amrfinder_binaries_v${AMRFINDER_VER}.tar.gz && \
+ mkdir /data
+
+# install ncbi-blast linux binaries
+RUN echo "downloading ncbi-blast-${BLAST_VER}+ linux binaries from NCBI FTP..." && \
+ wget -q https://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/${BLAST_VER}/ncbi-blast-${BLAST_VER}+-x64-linux.tar.gz && \
+ tar -xzf ncbi-blast-${BLAST_VER}+-x64-linux.tar.gz && \
+ rm -v ncbi-blast-${BLAST_VER}+-x64-linux.tar.gz
+
+# set PATH and locale settings for singularity compatibiliity, set amrfinder and manually-installed blast as higher priority in PATH
+ENV PATH="/amrfinder:/ncbi-blast-${BLAST_VER}+/bin:$PATH" \
+ LC_ALL=C
+
+# download databases and index them
+# done in this manner to pin the database version instead of pulling the latest version with `amrfinder -u`
+# softlink is required for `amrfinder -l` and typical `amrfinder` use cases to work properly
+RUN mkdir -p /amrfinder/data/${AMRFINDER_DB_VER} && \
+ wget -q -P /amrfinder/data/${AMRFINDER_DB_VER} ftp://ftp.ncbi.nlm.nih.gov/pathogen/Antimicrobial_resistance/AMRFinderPlus/database/3.12/${AMRFINDER_DB_VER}/* && \
+ amrfinder_index /amrfinder/data/${AMRFINDER_DB_VER} && \
+ ln -s /amrfinder/data/${AMRFINDER_DB_VER} /amrfinder/data/latest
+
+# set final working directory
+WORKDIR /data
+
+# default command is to print help options
+CMD [ "amrfinder", "--help" ]
+
+## Test stage
+FROM app as test
+
+# list database version and available --organism options
+RUN amrfinder -l
+
+# run recommended tests from amrfinder
+RUN amrfinder --threads 1 --plus -p /amrfinder/test_prot.fa -g /amrfinder/test_prot.gff -O Escherichia --print_node > test_prot.got && \
+ diff /amrfinder/test_prot.expected test_prot.got && \
+ amrfinder --threads 1 --plus -n /amrfinder/test_dna.fa -O Escherichia --print_node > test_dna.got && \
+ diff /amrfinder/test_dna.expected test_dna.got && \
+ amrfinder --threads 1 --plus -n /amrfinder/test_dna.fa -p /amrfinder/test_prot.fa -g /amrfinder/test_prot.gff -O Escherichia --print_node > test_both.got && \
+ diff /amrfinder/test_both.expected test_both.got
+
+# run amrfinder on Salmonella, without and with --organism option
+RUN wget https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/010/941/835/GCA_010941835.1_PDT000052640.3/GCA_010941835.1_PDT000052640.3_genomic.fna.gz && \
+ amrfinder --threads 4 --plus --nucleotide GCA_010941835.1_PDT000052640.3_genomic.fna.gz --output test1.txt && \
+ amrfinder --threads 4 --plus --nucleotide GCA_010941835.1_PDT000052640.3_genomic.fna.gz --organism Salmonella --output test2.txt && \
+ cat test1.txt test2.txt
+
+# run amrfinder on Klebesiella oxytoca using --organism/-O flag
+RUN wget https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/003/812/925/GCA_003812925.1_ASM381292v1/GCA_003812925.1_ASM381292v1_genomic.fna.gz && \
+ amrfinder --threads 4 --plus --name GCA_003812925.1 -n GCA_003812925.1_ASM381292v1_genomic.fna.gz -O Klebsiella_oxytoca -o GCA_003812925.1-amrfinder.tsv
+
+# test that gunzip is installed
+RUN gunzip --help
diff --git a/ncbi-amrfinderplus/3.12.8-2024-07-22.1/README.md b/ncbi-amrfinderplus/3.12.8-2024-07-22.1/README.md
new file mode 100755
index 000000000..3e51dda5d
--- /dev/null
+++ b/ncbi-amrfinderplus/3.12.8-2024-07-22.1/README.md
@@ -0,0 +1,68 @@
+# NCBI AMRFinderPlus docker image
+
+Main tool : [NCBI AMRFinderPlus](https://github.com/ncbi/amr)
+
+Additional tools:
+
+- hmmer v3.3.2
+- ncbi-blast+ v2.16.0
+
+## Database information
+
+The database included at time of docker image build is **`2024-07-22.1`**. More information can be found in the [changelog.txt on NCBI's FTP](https://ftp.ncbi.nlm.nih.gov/pathogen/Antimicrobial_resistance/AMRFinderPlus/database/3.12/2024-07-22.1/changelog.txt).
+
+Full documentation: [https://github.com/ncbi/amr/wiki](https://github.com/ncbi/amr/wiki)
+
+## Docker Image Tags
+
+Beginning with AMRFinderPlus v3.11.2, we will include the version of AMRFinderPlus followed by the database version in the docker image tag so that it is more informative to users. The format is as follows:
+
+```bash
+# general format
+staphb/ncbi-amrfinderplus:-
+
+# example
+staphb/ncbi-amrfinderplus:3.11.14-2023-04-17.1
+```
+
+You can view all available docker images on [dockerhub](https://hub.docker.com/r/staphb/ncbi-amrfinderplus/tags) and [quay.io](https://quay.io/repository/staphb/ncbi-amrfinderplus?tab=tags)
+
+## Example Usage
+
+```bash
+# list out the available organisms for the -O/--organism flag
+$ amrfinder -l
+Running: amrfinder -l
+Software directory: '/amrfinder/'
+Software version: 3.12.8
+Database directory: '/amrfinder/data/2024-01-31.1'
+Database version: 2024-01-31.1
+
+Available --organism options: Acinetobacter_baumannii, Burkholderia_cepacia, Burkholderia_pseudomallei, Campylobacter,
+Citrobacter_freundii, Clostridioides_difficile, Enterobacter_asburiae, Enterobacter_cloacae, Enterococcus_faecalis,
+Enterococcus_faecium, Escherichia, Klebsiella_oxytoca, Klebsiella_pneumoniae, Neisseria_gonorrhoeae,
+Neisseria_meningitidis, Pseudomonas_aeruginosa, Salmonella, Serratia_marcescens, Staphylococcus_aureus,
+Staphylococcus_pseudintermedius, Streptococcus_agalactiae, Streptococcus_pneumoniae, Streptococcus_pyogenes,
+Vibrio_cholerae, Vibrio_parahaemolyticus, Vibrio_vulnificus
+
+# download Klebsiella oxytoca genome FASTA/FNA to use as a test
+$ wget "https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/003/812/925/GCA_003812925.1_ASM381292v1/GCA_003812925.1_ASM381292v1_genomic.fna.gz"
+
+# uncompress the FNA file
+$ gzip -d GCA_003812925.1_ASM381292v1_genomic.fna.gz
+
+# run amrfinder (nucleotide mode) on the uncompressed FNA file
+$ amrfinder --plus --name GCA_003812925.1 -n GCA_003812925.1_ASM381292v1_genomic.fna -O Klebsiella_oxytoca -o GCA_003812925.1-amrfinder.tsv
+
+# view output TSV
+$ column -t -s $'\t' -n GCA_003812925.1-amrfinder.tsv
+Name Protein identifier Contig id Start Stop Strand Gene symbol Sequence name Scope Element type Element subtype Class Subclass Method Target length Reference sequence length % Coverage of reference sequence % Identity to reference sequence Alignment length Accession of closest sequence Name of closest sequence HMM id HMM description
+GCA_003812925.1 NA CP033844.1 369234 370406 + oqxA multidrug efflux RND transporter periplasmic adaptor subunit OqxA core AMR AMR PHENICOL/QUINOLONE PHENICOL/QUINOLONE BLASTX 391 391 100.00 90.79 391 WP_002914189.1 multidrug efflux RND transporter periplasmic adaptor subunit OqxA NA NA
+GCA_003812925.1 NA CP033844.1 370433 373582 + oqxB multidrug efflux RND transporter permease subunit OqxB core AMR AMR PHENICOL/QUINOLONE PHENICOL/QUINOLONE BLASTX 1050 1050 100.00 96.86 1050 WP_023323140.1 multidrug efflux RND transporter permease subunit OqxB15 NA NA
+GCA_003812925.1 NA CP033844.1 636118 637917 - ybtQ yersiniabactin ABC transporter ATP-binding/permease protein YbtQ plus VIRULENCE VIRULENCE NA NA BLASTX 600 600 100.00 89.17 600 AAC69584.1 yersiniabactin ABC transporter ATP-binding/permease protein YbtQ NA NA
+GCA_003812925.1 NA CP033844.1 637913 639706 - ybtP yersiniabactin ABC transporter ATP-binding/permease protein YbtP plus VIRULENCE VIRULENCE NA NA BLASTX 598 600 99.67 89.30 598 CAA21388.1 yersiniabactin ABC transporter ATP-binding/permease protein YbtP NA NA
+GCA_003812925.1 NA CP033844.1 3473617 3474798 + emrD multidrug efflux MFS transporter EmrD plus AMR AMR EFFLUX EFFLUX BLASTX 394 394 100.00 94.16 394 ACN65732.1 multidrug efflux MFS transporter EmrD NA NA
+GCA_003812925.1 NA CP033844.1 5085488 5086357 - blaOXY-2-1 extended-spectrum class A beta-lactamase OXY-2-1 core AMR AMR BETA-LACTAM CEPHALOSPORIN ALLELEX 290 290 100.00 100.00 290 WP_032727905.1 extended-spectrum class A beta-lactamase OXY-2-1 NA NA
+GCA_003812925.1 NA CP033845.1 5102 5632 - ant(2'')-Ia aminoglycoside nucleotidyltransferase ANT(2'')-Ia core AMR AMR AMINOGLYCOSIDE GENTAMICIN/KANAMYCIN/TOBRAMYCIN BLASTX 177 177 100.00 98.31 177 WP_000381803.1 aminoglycoside nucleotidyltransferase ANT(2'')-Ia NA NA
+GCA_003812925.1 NA CP033846.1 748 1932 - tet(39) tetracycline efflux MFS transporter Tet(39) core AMR AMR TETRACYCLINE TETRACYCLINE EXACTX 395 395 100.00 100.00 395 WP_004856455.1 tetracycline efflux MFS transporter Tet(39)
+```
diff --git a/ncbi-datasets/15.31.1/Dockerfile b/ncbi-datasets/15.31.1/Dockerfile
new file mode 100644
index 000000000..bf5a656e7
--- /dev/null
+++ b/ncbi-datasets/15.31.1/Dockerfile
@@ -0,0 +1,46 @@
+FROM ubuntu:jammy as app
+
+ARG DATASETS_VER="15.31.1"
+
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="NCBI's datasets and dataformat"
+LABEL software.version="${DATASETS_VER}"
+LABEL description="Downloads biological sequence data from NCBI"
+LABEL website="https://www.ncbi.nlm.nih.gov/datasets/docs/v1/"
+LABEL license="https://github.com/ncbi/datasets/blob/master/pkgs/ncbi-datasets-cli/LICENSE.md"
+LABEL maintainer="Erin Young"
+LABEL maintainer.email="eriny@utah.gov"
+
+# unzip isn't needed for datasets/dataformat, but it is often used after downloading files with datasets
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ wget \
+ ca-certificates \
+ unzip && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+WORKDIR /usr/local/bin
+
+# install ncbi datasets tool (pre-compiled binary)
+RUN wget https://github.com/ncbi/datasets/releases/download/v${DATASETS_VER}/linux-amd64.cli.package.zip && \
+ unzip linux-amd64.cli.package.zip && \
+ rm linux-amd64.cli.package.zip && \
+ chmod +x dataformat datasets
+
+ENV LC_ALL=C
+
+WORKDIR /data
+
+# datasets is generally datasets --help, but just typing in 'datasets' should bring up a help menu
+CMD [ "datasets" ]
+
+FROM app as test
+
+RUN dataformat --help && datasets --help
+
+# stolen from Curtis at https://github.com/StaPH-B/docker-builds/blob/master/pangolin/4.1.2/Dockerfile
+RUN datasets download virus genome accession ON924087.1 --filename ON924087.1.zip && \
+ unzip ON924087.1.zip && \
+ rm ON924087.1.zip && \
+ cp ncbi_dataset/data/genomic.fna ON924087.1.fna && \
+ wc -c ON924087.1.fna
diff --git a/ncbi-datasets/15.31.1/README.md b/ncbi-datasets/15.31.1/README.md
new file mode 100644
index 000000000..6474b9282
--- /dev/null
+++ b/ncbi-datasets/15.31.1/README.md
@@ -0,0 +1,20 @@
+# NCBI datasets and dataformat container
+
+Main tool : [datasets](https://www.ncbi.nlm.nih.gov/datasets/docs/v1/download-and-install/#use-the-datasets-tool-to-download-biological-data) and [dataformat](https://www.ncbi.nlm.nih.gov/datasets/docs/v1/download-and-install/#use-the-dataformat-tool-to-convert-data-reports-to-other-formats)
+
+Full documentation: [https://www.ncbi.nlm.nih.gov/datasets/docs/v1/how-tos/](https://www.ncbi.nlm.nih.gov/datasets/docs/v1/how-tos/)
+
+> Use NCBI Datasets to gather metadata, download data packages, view reports and more
+
+## Example Usage
+
+```bash
+# will download the fasta for ON924087.1 in a zipped directory
+datasets download virus genome accession ON924087.1 --filename ON924087.1.zip
+
+# unzipping the directory and the fasta file will be located at ncbi_dataset/data/genomic.fna
+unzip ON924087.1.zip
+
+# copying the file into something with a better name
+cp ncbi_dataset/data/genomic.fna ncbi_dataset/data/ON924087.1.genomic.fna
+```
diff --git a/ncbi-datasets/16.10.3/Dockerfile b/ncbi-datasets/16.10.3/Dockerfile
new file mode 100644
index 000000000..ce9352b68
--- /dev/null
+++ b/ncbi-datasets/16.10.3/Dockerfile
@@ -0,0 +1,47 @@
+FROM ubuntu:jammy as app
+
+ARG DATASETS_VER="16.10.3"
+
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="NCBI's datasets and dataformat"
+LABEL software.version="${DATASETS_VER}"
+LABEL description="Downloads biological sequence data from NCBI"
+LABEL website="https://github.com/ncbi/datasets"
+LABEL documentation="https://www.ncbi.nlm.nih.gov/datasets/docs/v1/"
+LABEL license="https://github.com/ncbi/datasets/blob/master/pkgs/ncbi-datasets-cli/LICENSE.md"
+LABEL maintainer="Erin Young"
+LABEL maintainer.email="eriny@utah.gov"
+
+# unzip isn't needed for datasets/dataformat, but it is often used after downloading files with datasets
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ wget \
+ ca-certificates \
+ unzip && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+WORKDIR /usr/local/bin
+
+# install ncbi datasets tool (pre-compiled binary)
+RUN wget https://github.com/ncbi/datasets/releases/download/v${DATASETS_VER}/linux-amd64.cli.package.zip && \
+ unzip linux-amd64.cli.package.zip && \
+ rm linux-amd64.cli.package.zip && \
+ chmod +x dataformat datasets
+
+ENV LC_ALL=C
+
+WORKDIR /data
+
+# datasets is generally datasets --help, but just typing in 'datasets' should bring up a help menu
+CMD [ "datasets", "--help" ]
+
+FROM app as test
+
+RUN dataformat --help && datasets --help
+
+# stolen from Curtis at https://github.com/StaPH-B/docker-builds/blob/master/pangolin/4.1.2/Dockerfile
+RUN datasets download virus genome accession ON924087.1 --filename ON924087.1.zip && \
+ unzip ON924087.1.zip && \
+ rm ON924087.1.zip && \
+ cp ncbi_dataset/data/genomic.fna ON924087.1.fna && \
+ wc -c ON924087.1.fna
diff --git a/ncbi-datasets/16.10.3/README.md b/ncbi-datasets/16.10.3/README.md
new file mode 100644
index 000000000..6474b9282
--- /dev/null
+++ b/ncbi-datasets/16.10.3/README.md
@@ -0,0 +1,20 @@
+# NCBI datasets and dataformat container
+
+Main tool : [datasets](https://www.ncbi.nlm.nih.gov/datasets/docs/v1/download-and-install/#use-the-datasets-tool-to-download-biological-data) and [dataformat](https://www.ncbi.nlm.nih.gov/datasets/docs/v1/download-and-install/#use-the-dataformat-tool-to-convert-data-reports-to-other-formats)
+
+Full documentation: [https://www.ncbi.nlm.nih.gov/datasets/docs/v1/how-tos/](https://www.ncbi.nlm.nih.gov/datasets/docs/v1/how-tos/)
+
+> Use NCBI Datasets to gather metadata, download data packages, view reports and more
+
+## Example Usage
+
+```bash
+# will download the fasta for ON924087.1 in a zipped directory
+datasets download virus genome accession ON924087.1 --filename ON924087.1.zip
+
+# unzipping the directory and the fasta file will be located at ncbi_dataset/data/genomic.fna
+unzip ON924087.1.zip
+
+# copying the file into something with a better name
+cp ncbi_dataset/data/genomic.fna ncbi_dataset/data/ON924087.1.genomic.fna
+```
diff --git a/ncbi-datasets/16.15.0/Dockerfile b/ncbi-datasets/16.15.0/Dockerfile
new file mode 100644
index 000000000..b986aca3e
--- /dev/null
+++ b/ncbi-datasets/16.15.0/Dockerfile
@@ -0,0 +1,47 @@
+FROM ubuntu:jammy as app
+
+ARG DATASETS_VER="16.15.0"
+
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="NCBI's datasets and dataformat"
+LABEL software.version="${DATASETS_VER}"
+LABEL description="Downloads biological sequence data from NCBI"
+LABEL website="https://github.com/ncbi/datasets"
+LABEL documentation="https://www.ncbi.nlm.nih.gov/datasets/docs/v1/"
+LABEL license="https://github.com/ncbi/datasets/blob/master/pkgs/ncbi-datasets-cli/LICENSE.md"
+LABEL maintainer="Erin Young"
+LABEL maintainer.email="eriny@utah.gov"
+
+# unzip isn't needed for datasets/dataformat, but it is often used after downloading files with datasets
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ wget \
+ ca-certificates \
+ unzip && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+WORKDIR /usr/local/bin
+
+# install ncbi datasets tool (pre-compiled binary)
+RUN wget https://github.com/ncbi/datasets/releases/download/v${DATASETS_VER}/linux-amd64.cli.package.zip && \
+ unzip linux-amd64.cli.package.zip && \
+ rm linux-amd64.cli.package.zip && \
+ chmod +x dataformat datasets
+
+ENV LC_ALL=C
+
+WORKDIR /data
+
+# datasets is generally datasets --help, but just typing in 'datasets' should bring up a help menu
+CMD [ "datasets", "--help" ]
+
+FROM app as test
+
+RUN dataformat --help && datasets --help
+
+# stolen from Curtis at https://github.com/StaPH-B/docker-builds/blob/master/pangolin/4.1.2/Dockerfile
+RUN datasets download virus genome accession ON924087.1 --filename ON924087.1.zip && \
+ unzip ON924087.1.zip && \
+ rm ON924087.1.zip && \
+ cp ncbi_dataset/data/genomic.fna ON924087.1.fna && \
+ wc -c ON924087.1.fna
diff --git a/ncbi-datasets/16.15.0/README.md b/ncbi-datasets/16.15.0/README.md
new file mode 100644
index 000000000..6474b9282
--- /dev/null
+++ b/ncbi-datasets/16.15.0/README.md
@@ -0,0 +1,20 @@
+# NCBI datasets and dataformat container
+
+Main tool : [datasets](https://www.ncbi.nlm.nih.gov/datasets/docs/v1/download-and-install/#use-the-datasets-tool-to-download-biological-data) and [dataformat](https://www.ncbi.nlm.nih.gov/datasets/docs/v1/download-and-install/#use-the-dataformat-tool-to-convert-data-reports-to-other-formats)
+
+Full documentation: [https://www.ncbi.nlm.nih.gov/datasets/docs/v1/how-tos/](https://www.ncbi.nlm.nih.gov/datasets/docs/v1/how-tos/)
+
+> Use NCBI Datasets to gather metadata, download data packages, view reports and more
+
+## Example Usage
+
+```bash
+# will download the fasta for ON924087.1 in a zipped directory
+datasets download virus genome accession ON924087.1 --filename ON924087.1.zip
+
+# unzipping the directory and the fasta file will be located at ncbi_dataset/data/genomic.fna
+unzip ON924087.1.zip
+
+# copying the file into something with a better name
+cp ncbi_dataset/data/genomic.fna ncbi_dataset/data/ON924087.1.genomic.fna
+```
diff --git a/ncbi-datasets/16.2.0/Dockerfile b/ncbi-datasets/16.2.0/Dockerfile
new file mode 100644
index 000000000..531b3bef0
--- /dev/null
+++ b/ncbi-datasets/16.2.0/Dockerfile
@@ -0,0 +1,46 @@
+FROM ubuntu:jammy as app
+
+ARG DATASETS_VER="16.2.0"
+
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="NCBI's datasets and dataformat"
+LABEL software.version="${DATASETS_VER}"
+LABEL description="Downloads biological sequence data from NCBI"
+LABEL website="https://www.ncbi.nlm.nih.gov/datasets/docs/v1/"
+LABEL license="https://github.com/ncbi/datasets/blob/master/pkgs/ncbi-datasets-cli/LICENSE.md"
+LABEL maintainer="Erin Young"
+LABEL maintainer.email="eriny@utah.gov"
+
+# unzip isn't needed for datasets/dataformat, but it is often used after downloading files with datasets
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ wget \
+ ca-certificates \
+ unzip && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+WORKDIR /usr/local/bin
+
+# install ncbi datasets tool (pre-compiled binary)
+RUN wget https://github.com/ncbi/datasets/releases/download/v${DATASETS_VER}/linux-amd64.cli.package.zip && \
+ unzip linux-amd64.cli.package.zip && \
+ rm linux-amd64.cli.package.zip && \
+ chmod +x dataformat datasets
+
+ENV LC_ALL=C
+
+WORKDIR /data
+
+# datasets is generally datasets --help, but just typing in 'datasets' should bring up a help menu
+CMD [ "datasets" ]
+
+FROM app as test
+
+RUN dataformat --help && datasets --help
+
+# stolen from Curtis at https://github.com/StaPH-B/docker-builds/blob/master/pangolin/4.1.2/Dockerfile
+RUN datasets download virus genome accession ON924087.1 --filename ON924087.1.zip && \
+ unzip ON924087.1.zip && \
+ rm ON924087.1.zip && \
+ cp ncbi_dataset/data/genomic.fna ON924087.1.fna && \
+ wc -c ON924087.1.fna
diff --git a/ncbi-datasets/16.2.0/README.md b/ncbi-datasets/16.2.0/README.md
new file mode 100644
index 000000000..6474b9282
--- /dev/null
+++ b/ncbi-datasets/16.2.0/README.md
@@ -0,0 +1,20 @@
+# NCBI datasets and dataformat container
+
+Main tool : [datasets](https://www.ncbi.nlm.nih.gov/datasets/docs/v1/download-and-install/#use-the-datasets-tool-to-download-biological-data) and [dataformat](https://www.ncbi.nlm.nih.gov/datasets/docs/v1/download-and-install/#use-the-dataformat-tool-to-convert-data-reports-to-other-formats)
+
+Full documentation: [https://www.ncbi.nlm.nih.gov/datasets/docs/v1/how-tos/](https://www.ncbi.nlm.nih.gov/datasets/docs/v1/how-tos/)
+
+> Use NCBI Datasets to gather metadata, download data packages, view reports and more
+
+## Example Usage
+
+```bash
+# will download the fasta for ON924087.1 in a zipped directory
+datasets download virus genome accession ON924087.1 --filename ON924087.1.zip
+
+# unzipping the directory and the fasta file will be located at ncbi_dataset/data/genomic.fna
+unzip ON924087.1.zip
+
+# copying the file into something with a better name
+cp ncbi_dataset/data/genomic.fna ncbi_dataset/data/ON924087.1.genomic.fna
+```
diff --git a/ncbi-datasets/16.22.1/Dockerfile b/ncbi-datasets/16.22.1/Dockerfile
new file mode 100644
index 000000000..5de0780ff
--- /dev/null
+++ b/ncbi-datasets/16.22.1/Dockerfile
@@ -0,0 +1,47 @@
+FROM ubuntu:jammy as app
+
+ARG DATASETS_VER="16.22.1"
+
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="NCBI's datasets and dataformat"
+LABEL software.version="${DATASETS_VER}"
+LABEL description="Downloads biological sequence data from NCBI"
+LABEL website="https://github.com/ncbi/datasets"
+LABEL documentation="https://www.ncbi.nlm.nih.gov/datasets/docs/v1/"
+LABEL license="https://github.com/ncbi/datasets/blob/master/pkgs/ncbi-datasets-cli/LICENSE.md"
+LABEL maintainer="Erin Young"
+LABEL maintainer.email="eriny@utah.gov"
+
+# unzip isn't needed for datasets/dataformat, but it is often used after downloading files with datasets
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ wget \
+ ca-certificates \
+ unzip && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+WORKDIR /usr/local/bin
+
+# install ncbi datasets tool (pre-compiled binary)
+RUN wget https://github.com/ncbi/datasets/releases/download/v${DATASETS_VER}/linux-amd64.cli.package.zip && \
+ unzip linux-amd64.cli.package.zip && \
+ rm linux-amd64.cli.package.zip && \
+ chmod +x dataformat datasets
+
+ENV LC_ALL=C
+
+WORKDIR /data
+
+# datasets is generally datasets --help, but just typing in 'datasets' should bring up a help menu
+CMD [ "datasets", "--help" ]
+
+FROM app as test
+
+RUN dataformat --help && datasets --help
+
+# stolen from Curtis at https://github.com/StaPH-B/docker-builds/blob/master/pangolin/4.1.2/Dockerfile
+RUN datasets download virus genome accession ON924087.1 --filename ON924087.1.zip && \
+ unzip ON924087.1.zip && \
+ rm ON924087.1.zip && \
+ cp ncbi_dataset/data/genomic.fna ON924087.1.fna && \
+ wc -c ON924087.1.fna
diff --git a/ncbi-datasets/16.22.1/README.md b/ncbi-datasets/16.22.1/README.md
new file mode 100644
index 000000000..6474b9282
--- /dev/null
+++ b/ncbi-datasets/16.22.1/README.md
@@ -0,0 +1,20 @@
+# NCBI datasets and dataformat container
+
+Main tool : [datasets](https://www.ncbi.nlm.nih.gov/datasets/docs/v1/download-and-install/#use-the-datasets-tool-to-download-biological-data) and [dataformat](https://www.ncbi.nlm.nih.gov/datasets/docs/v1/download-and-install/#use-the-dataformat-tool-to-convert-data-reports-to-other-formats)
+
+Full documentation: [https://www.ncbi.nlm.nih.gov/datasets/docs/v1/how-tos/](https://www.ncbi.nlm.nih.gov/datasets/docs/v1/how-tos/)
+
+> Use NCBI Datasets to gather metadata, download data packages, view reports and more
+
+## Example Usage
+
+```bash
+# will download the fasta for ON924087.1 in a zipped directory
+datasets download virus genome accession ON924087.1 --filename ON924087.1.zip
+
+# unzipping the directory and the fasta file will be located at ncbi_dataset/data/genomic.fna
+unzip ON924087.1.zip
+
+# copying the file into something with a better name
+cp ncbi_dataset/data/genomic.fna ncbi_dataset/data/ON924087.1.genomic.fna
+```
diff --git a/ncbi-datasets/16.8.1/Dockerfile b/ncbi-datasets/16.8.1/Dockerfile
new file mode 100644
index 000000000..c74a87b88
--- /dev/null
+++ b/ncbi-datasets/16.8.1/Dockerfile
@@ -0,0 +1,47 @@
+FROM ubuntu:jammy as app
+
+ARG DATASETS_VER="16.8.1"
+
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="NCBI's datasets and dataformat"
+LABEL software.version="${DATASETS_VER}"
+LABEL description="Downloads biological sequence data from NCBI"
+LABEL website="https://github.com/ncbi/datasets"
+LABEL documentation="https://www.ncbi.nlm.nih.gov/datasets/docs/v1/"
+LABEL license="https://github.com/ncbi/datasets/blob/master/pkgs/ncbi-datasets-cli/LICENSE.md"
+LABEL maintainer="Erin Young"
+LABEL maintainer.email="eriny@utah.gov"
+
+# unzip isn't needed for datasets/dataformat, but it is often used after downloading files with datasets
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ wget \
+ ca-certificates \
+ unzip && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+WORKDIR /usr/local/bin
+
+# install ncbi datasets tool (pre-compiled binary)
+RUN wget https://github.com/ncbi/datasets/releases/download/v${DATASETS_VER}/linux-amd64.cli.package.zip && \
+ unzip linux-amd64.cli.package.zip && \
+ rm linux-amd64.cli.package.zip && \
+ chmod +x dataformat datasets
+
+ENV LC_ALL=C
+
+WORKDIR /data
+
+# datasets is generally datasets --help, but just typing in 'datasets' should bring up a help menu
+CMD [ "datasets", "--help" ]
+
+FROM app as test
+
+RUN dataformat --help && datasets --help
+
+# stolen from Curtis at https://github.com/StaPH-B/docker-builds/blob/master/pangolin/4.1.2/Dockerfile
+RUN datasets download virus genome accession ON924087.1 --filename ON924087.1.zip && \
+ unzip ON924087.1.zip && \
+ rm ON924087.1.zip && \
+ cp ncbi_dataset/data/genomic.fna ON924087.1.fna && \
+ wc -c ON924087.1.fna
diff --git a/ncbi-datasets/16.8.1/README.md b/ncbi-datasets/16.8.1/README.md
new file mode 100644
index 000000000..6474b9282
--- /dev/null
+++ b/ncbi-datasets/16.8.1/README.md
@@ -0,0 +1,20 @@
+# NCBI datasets and dataformat container
+
+Main tool : [datasets](https://www.ncbi.nlm.nih.gov/datasets/docs/v1/download-and-install/#use-the-datasets-tool-to-download-biological-data) and [dataformat](https://www.ncbi.nlm.nih.gov/datasets/docs/v1/download-and-install/#use-the-dataformat-tool-to-convert-data-reports-to-other-formats)
+
+Full documentation: [https://www.ncbi.nlm.nih.gov/datasets/docs/v1/how-tos/](https://www.ncbi.nlm.nih.gov/datasets/docs/v1/how-tos/)
+
+> Use NCBI Datasets to gather metadata, download data packages, view reports and more
+
+## Example Usage
+
+```bash
+# will download the fasta for ON924087.1 in a zipped directory
+datasets download virus genome accession ON924087.1 --filename ON924087.1.zip
+
+# unzipping the directory and the fasta file will be located at ncbi_dataset/data/genomic.fna
+unzip ON924087.1.zip
+
+# copying the file into something with a better name
+cp ncbi_dataset/data/genomic.fna ncbi_dataset/data/ON924087.1.genomic.fna
+```
diff --git a/ncbi-table2asn/1.28.1021/Dockerfile b/ncbi-table2asn/1.28.1021/Dockerfile
new file mode 100644
index 000000000..0ae1521bf
--- /dev/null
+++ b/ncbi-table2asn/1.28.1021/Dockerfile
@@ -0,0 +1,98 @@
+ARG RELEASE_DATE="2024-06-18"
+
+FROM ubuntu:jammy as app
+
+# version doesn't show appear anywhere on ftp; only can be determined via command-line
+# this docker image was built 2022-12-13 and this was the current version
+ARG TABLE2ASN_VER="1.28.1021"
+ARG RELEASE_DATE
+
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="NCBI's table2asn"
+LABEL software.version="${TABLE2ASN_VER}"
+LABEL description="Converts files of various formats to ASN.1"
+LABEL website="https://www.ncbi.nlm.nih.gov/genbank/table2asn/"
+LABEL license="Public Domain"
+LABEL maintainer="Sage Wright"
+LABEL maintainer.email="sage.wright@theiagen.com"
+
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ wget \
+ ca-certificates \
+ gzip \
+ libidn12 && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/* && \
+ ln -s /usr/lib/x86_64-linux-gnu/libidn.so.12 /usr/lib/x86_64-linux-gnu/libidn.so.11
+
+WORKDIR /usr/local/bin
+
+ENV STAPHB_TOOLS="agp_validate \
+ asn2all \
+ asn2asn \
+ asn2fasta \
+ asn2flat \
+ asn2fsa \
+ asn2gb \
+ asn2idx \
+ asn2xml \
+ asndisc \
+ asnmacro \
+ asnval \
+ asnvalidate \
+ fastaedit_public \
+ gap_stats \
+ gene2xml \
+ insdseqget \
+ sqn2agp \
+ srcchk \
+ table2asn "
+
+RUN for tool in ${STAPHB_TOOLS} ; do \
+ echo "Downloading ${tool}" && \
+ wget -q https://ftp.ncbi.nlm.nih.gov/asn1-converters/versions/${RELEASE_DATE}/by_program/${tool}/linux64.${tool}.gz && \
+ gunzip linux64.${tool}.gz && \
+ mv linux64.${tool} ${tool} && \
+ chmod +x ${tool} ; done
+
+ENV LC_ALL=C
+
+CMD table2asn -help
+
+WORKDIR /data
+
+FROM app as test
+
+ARG RELEASE_DATE
+
+# NOTE: Not all of these tools support the '-help' or '-version flag'
+# This ensures that all tools are in $PATH and executable
+RUN for tool in ${STAPHB_TOOLS} ; do echo "Checking ${tool}" && ${tool} -help && ${tool} -version ; done
+
+WORKDIR /test
+
+ARG FILES="GFF3Guidance.docx \
+ README \
+ SubmissionTemplate.sbt \
+ VERSIONS \
+ asn2gb_readme.txt \
+ euk_NoLocusTagsORmRNAs.gff \
+ euk_NoLocusTagsORmRNAs.sqn \
+ euk_withLocusTag_and_mRNAs.gff \
+ euk_withLocusTag_and_mRNAs.sqn \
+ euk_withLocusTags_butNOmRNAs.gff \
+ euk_withLocusTags_butNOmRNAs.sqn \
+ fastaedit_public_readme.txt \
+ gene2xml_readme.txt \
+ prok_NoLocusTags.gff \
+ prok_NoLocusTags.sqn \
+ prok_withLocusTags.gff \
+ prok_withLocusTags.sqn \
+ short.fsa \
+ table2asn_readme.txt \
+ tbl2asn_readme.txt"
+
+RUN for file in ${FILES}; do wget -q https://ftp.ncbi.nlm.nih.gov/asn1-converters/versions/${RELEASE_DATE}/documentation/${file}; done && \
+ fastaedit_public -in short.fsa -trim_ambig_bases -out_seq_file trimmed.fasta -out trimmed.xml && \
+ table2asn -i short.fsa && \
+ table2asn -t SubmissionTemplate.sbt -i short.fsa -o helicase.sqn
diff --git a/ncbi-table2asn/1.28.1021/README.md b/ncbi-table2asn/1.28.1021/README.md
new file mode 100644
index 000000000..5cea961b2
--- /dev/null
+++ b/ncbi-table2asn/1.28.1021/README.md
@@ -0,0 +1,46 @@
+# NCBI table2asn
+
+Main tool : [table2asn](https://www.ncbi.nlm.nih.gov/genbank/table2asn/)
+
+Full documentation: [README](https://ftp.ncbi.nlm.nih.gov/asn1-converters/by_program/table2asn/DOCUMENTATION/table2asn_readme.txt)
+
+> table2asn is a command-line program that creates sequence records for submission to GenBank
+
+There are also a collection of related tools that are included in the image
+
+Versions pulled from https://ftp.ncbi.nlm.nih.gov/asn1-converters/versions/2024-06-18/documentation/VERSIONS
+agp_validate: 2.28.1021
+asn2all 14.7
+asn2asn: 1.28.1021
+asn2fasta: 1.0.3
+asn2flat: 6.28.1021
+asn2fsa 6.1
+asn2gb 18.7
+asn2idx 1.1
+asn2xml 1.0
+asndisc 2.3
+asnmacro 1.8
+asnval 15.7
+asnvalidate: 3.28.1021
+gap_stats: 4.2.1021 (Build for external use)
+gene2xml 1.6
+insdseqget 1.1
+sqn2agp 1.9
+srcchk: 0.0.1021
+table2asn: 1.28.1021
+
+## Example Usage
+
+```bash
+# Single non-genome submission: a particular .fsa file, and only 1 sequence in the .fsa file and the source information is in the definition line of the .fsa file:
+table2asn -t template.sbt -i x.fsa -V v
+
+# Batch non-genome submission: a directory that contains .fsa files, and multiple sequences per file, and the source information is in the definition line of the .fsa files:
+table2asn -t template.sbt -indir path_to_files -a s -V v
+
+# Genome submission: a directory that contains multiple .fsa files of a single genome, and one or more sequences per file and the source information is in the definition line of the .fsa files:
+table2asn -t template.sbt -indir path_to_files -M n -Z
+
+# Genome submission for the most common gapped situation (= runs of 10 or more Ns represent a gap, and there are no gaps of completely unknown size, and the evidence for linkage across the gaps is "paired-ends"), and the source information is in the definition line of the .fsa files:
+table2asn -t template -indir path_to_files -M n -Z -gaps-min 10 -l paired-ends
+```
diff --git a/ncbi-table2asn/1.28.943/Dockerfile b/ncbi-table2asn/1.28.943/Dockerfile
new file mode 100644
index 000000000..3c9775d61
--- /dev/null
+++ b/ncbi-table2asn/1.28.943/Dockerfile
@@ -0,0 +1,98 @@
+ARG RELEASE_DATE="2023-10-05"
+
+FROM ubuntu:jammy as app
+
+# version doesn't show appear anywhere on ftp; only can be determined via command-line
+# this docker image was built 2022-12-13 and this was the current version
+ARG TABLE2ASN_VER="1.28.943"
+ARG RELEASE_DATE
+
+LABEL base.image="ubuntu:focal"
+LABEL dockerfile.version="1"
+LABEL software="NCBI's table2asn"
+LABEL software.version="${TABLE2ASN_VER}"
+LABEL description="Converts files of various formats to ASN.1"
+LABEL website="https://www.ncbi.nlm.nih.gov/genbank/table2asn/"
+LABEL license="unknown"
+LABEL maintainer="Sage Wright"
+LABEL maintainer.email="sage.wright@theiagen.com"
+
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ wget \
+ ca-certificates \
+ gzip \
+ libidn12 && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/* && \
+ ln -s /usr/lib/x86_64-linux-gnu/libidn.so.12 /usr/lib/x86_64-linux-gnu/libidn.so.11
+
+WORKDIR /usr/local/bin
+
+ENV STAPHB_TOOLS="agp_validate \
+ asn2all \
+ asn2asn \
+ asn2fasta \
+ asn2flat \
+ asn2fsa \
+ asn2gb \
+ asn2idx \
+ asn2xml \
+ asndisc \
+ asnmacro \
+ asnval \
+ asnvalidate \
+ fastaedit_public \
+ gap_stats \
+ gene2xml \
+ insdseqget \
+ sqn2agp \
+ srcchk \
+ table2asn "
+
+RUN for tool in ${STAPHB_TOOLS} ; do \
+ echo "Downloading ${tool}" && \
+ wget -q https://ftp.ncbi.nlm.nih.gov/asn1-converters/versions/${RELEASE_DATE}/by_program/${tool}/linux64.${tool}.gz && \
+ gunzip linux64.${tool}.gz && \
+ mv linux64.${tool} ${tool} && \
+ chmod +x ${tool} ; done
+
+ENV LC_ALL=C
+
+CMD table2asn -help
+
+WORKDIR /data
+
+FROM app as test
+
+ARG RELEASE_DATE
+
+# NOTE: Not all of these tools support the '-help' or '-version flag'
+# This ensures that all tools are in $PATH and executable
+RUN for tool in ${STAPHB_TOOLS} ; do echo "Checking ${tool}" && ${tool} -help && ${tool} -version ; done
+
+WORKDIR /test
+
+ARG FILES="GFF3Guidance.docx \
+ README \
+ SubmissionTemplate.sbt \
+ VERSIONS \
+ asn2gb_readme.txt \
+ euk_NoLocusTagsORmRNAs.gff \
+ euk_NoLocusTagsORmRNAs.sqn \
+ euk_withLocusTag_and_mRNAs.gff \
+ euk_withLocusTag_and_mRNAs.sqn \
+ euk_withLocusTags_butNOmRNAs.gff \
+ euk_withLocusTags_butNOmRNAs.sqn \
+ fastaedit_public_readme.txt \
+ gene2xml_readme.txt \
+ prok_NoLocusTags.gff \
+ prok_NoLocusTags.sqn \
+ prok_withLocusTags.gff \
+ prok_withLocusTags.sqn \
+ short.fsa \
+ table2asn_readme.txt \
+ tbl2asn_readme.txt"
+
+RUN for file in ${FILES}; do wget -q https://ftp.ncbi.nlm.nih.gov/asn1-converters/versions/${RELEASE_DATE}/documentation/${file}; done && \
+ fastaedit_public -in short.fsa -trim_ambig_bases -out_seq_file trimmed.fasta -out trimmed.xml && \
+ table2asn -i short.fsa && \
+ table2asn -t SubmissionTemplate.sbt -i short.fsa -o helicase.sqn
diff --git a/ncbi-table2asn/1.28.943/README.md b/ncbi-table2asn/1.28.943/README.md
new file mode 100644
index 000000000..5f5df12a3
--- /dev/null
+++ b/ncbi-table2asn/1.28.943/README.md
@@ -0,0 +1,46 @@
+# NCBI table2asn
+
+Main tool : [table2asn](https://www.ncbi.nlm.nih.gov/genbank/table2asn/)
+
+Full documentation: [README](https://ftp.ncbi.nlm.nih.gov/asn1-converters/by_program/table2asn/DOCUMENTATION/table2asn_readme.txt)
+
+> table2asn is a command-line program that creates sequence records for submission to GenBank
+
+There are also a collection of related tools that are included in the image
+
+agp_validate: 2.28.943
+asn2all: 14.7
+asn2asn: 1.28.943
+asn2fasta: 1.0.3
+asn2flat: 6.28.943
+asn2fsa: 6.1
+asn2gb: 18.7
+asn2idx: 1.1
+asn2xml: 1.0
+asndisc: 2.3
+asnmacro: 1.8
+asnval: 15.7
+asnvalidate: 3.28.943
+fastaedit_public: 29.4.0
+gap_stats: 4.2.943 (Build for external use)
+gene2xml: 1.6
+insdseqget: 1.1
+sqn2agp: 1.9
+srcchk: 0.0.943
+table2asn: 1.28.943
+
+## Example Usage
+
+```bash
+# Single non-genome submission: a particular .fsa file, and only 1 sequence in the .fsa file and the source information is in the definition line of the .fsa file:
+table2asn -t template.sbt -i x.fsa -V v
+
+# Batch non-genome submission: a directory that contains .fsa files, and multiple sequences per file, and the source information is in the definition line of the .fsa files:
+table2asn -t template.sbt -indir path_to_files -a s -V v
+
+# Genome submission: a directory that contains multiple .fsa files of a single genome, and one or more sequences per file and the source information is in the definition line of the .fsa files:
+table2asn -t template.sbt -indir path_to_files -M n -Z
+
+# Genome submission for the most common gapped situation (= runs of 10 or more Ns represent a gap, and there are no gaps of completely unknown size, and the evidence for linkage across the gaps is "paired-ends"), and the source information is in the definition line of the .fsa files:
+table2asn -t template -indir path_to_files -M n -Z -gaps-min 10 -l paired-ends
+```
diff --git a/ontime/0.2.3/Dockerfile b/ontime/0.2.3/Dockerfile
new file mode 100644
index 000000000..b1c40ae8b
--- /dev/null
+++ b/ontime/0.2.3/Dockerfile
@@ -0,0 +1,70 @@
+ARG ONTIME_VER="0.2.3"
+ARG TARGET="x86_64-unknown-linux-musl"
+
+FROM rust:1.70 AS builder
+
+ARG ONTIME_VER
+ARG TARGET
+
+RUN apt update \
+ && apt install -y musl-tools
+
+RUN wget -q https://github.com/mbhall88/ontime/archive/refs/tags/${ONTIME_VER}.tar.gz && \
+ tar zxf ${ONTIME_VER}.tar.gz && \
+ rm ${ONTIME_VER}.tar.gz && \
+ ls / && \
+ cd /ontime-${ONTIME_VER} && \
+ rustup target add "${TARGET}" && \
+ cargo build --release --target "${TARGET}" && \
+ strip target/${TARGET}/release/ontime
+
+FROM ubuntu:jammy as app
+
+ARG ONTIME_VER
+ARG TARGET
+
+# 'LABEL' instructions tag the image with metadata that might be important to the user
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="ontime"
+LABEL software.version="${ONTIME_VER}"
+LABEL description="Filters nanopore reads by time"
+LABEL website="https://github.com/mbhall88/ontime"
+LABEL license="https://github.com/mbhall88/ontime/blob/main/LICENSE"
+LABEL maintainer="Erin Young"
+LABEL maintainer.email="eriny@utah.gov"
+
+COPY --from=builder /ontime-${ONTIME_VER}/target/${TARGET}/release/ontime /bin/
+
+# for playing nice with workflow managers
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ ca-certificates \
+ procps && \
+ apt-get autoclean && \
+ rm -rf /var/lib/apt/lists/*
+
+ENV PATH="$PATH" \
+ LC_ALL=C
+
+# 'CMD' instructions set a default command when the container is run. This is typically 'tool --help.'
+CMD ontime --help
+
+# 'WORKDIR' sets working directory
+WORKDIR /data
+
+# A second FROM insruction creates a new stage
+# The test stage must be downstream from 'app'
+FROM app as test
+
+# set working directory so that all test inputs & outputs are kept in /test
+WORKDIR /test
+
+# print help and version info; check dependencies (not all software has these options available)
+# Mostly this ensures the tool of choice is in path and is executable
+RUN ontime --help && \
+ ontime --version
+
+COPY tests/test.fastq.gz .
+
+RUN ontime --to 1h test.fastq.gz -o ontime.test.txt && \
+ head ontime.test.txt
\ No newline at end of file
diff --git a/ontime/0.2.3/README.md b/ontime/0.2.3/README.md
new file mode 100644
index 000000000..1ed35bf95
--- /dev/null
+++ b/ontime/0.2.3/README.md
@@ -0,0 +1,28 @@
+# ontime container
+
+Main tool: [ONTime](https://github.com/mbhall88/ontime/tree/main)
+
+Code repository: https://github.com/mbhall88/ontime
+
+Basic information on how to use this tool:
+- executable: ontime
+- help: --help
+- version: --version
+- description: Extracts nanopore reads based on when in the run reads were generated.
+
+Full documentation: https://github.com/mbhall88/ontime/tree/main
+
+WARNING : the nanopore fastq file MUST still have the time stamp on the reads in the fastq fime, so this tool is **NOT** expected to run on reads downloaded from public repositories.
+
+## Example Usage
+
+```bash
+# reads from the first five hours
+ontime --to 5h in.fq
+# reads after the first 24 hours
+ontime --from 24h in.fq
+# Check what the earliest and latest start times in the fastq are
+ontime --show in.fq
+```
+
+
\ No newline at end of file
diff --git a/ontime/0.2.3/tests/test.fastq.gz b/ontime/0.2.3/tests/test.fastq.gz
new file mode 100755
index 000000000..6121038a0
Binary files /dev/null and b/ontime/0.2.3/tests/test.fastq.gz differ
diff --git a/ontime/0.3.1/Dockerfile b/ontime/0.3.1/Dockerfile
new file mode 100644
index 000000000..08d88c9fe
--- /dev/null
+++ b/ontime/0.3.1/Dockerfile
@@ -0,0 +1,72 @@
+ARG ONTIME_VER="0.3.1"
+ARG TARGET="x86_64-unknown-linux-musl"
+
+FROM rust:1.76 AS builder
+
+ARG ONTIME_VER
+ARG TARGET
+
+RUN apt update \
+ && apt install -y musl-tools
+
+RUN wget -q https://github.com/mbhall88/ontime/archive/refs/tags/${ONTIME_VER}.tar.gz && \
+ tar zxf ${ONTIME_VER}.tar.gz && \
+ rm ${ONTIME_VER}.tar.gz && \
+ ls / && \
+ cd /ontime-${ONTIME_VER} && \
+ rustup target add "${TARGET}" && \
+ cargo build --release --target "${TARGET}" && \
+ strip target/${TARGET}/release/ontime
+
+FROM ubuntu:jammy as app
+
+ARG ONTIME_VER
+ARG TARGET
+
+# 'LABEL' instructions tag the image with metadata that might be important to the user
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="ontime"
+LABEL software.version="${ONTIME_VER}"
+LABEL description="Filters nanopore reads by time"
+LABEL website="https://github.com/mbhall88/ontime"
+LABEL license="https://github.com/mbhall88/ontime/blob/main/LICENSE"
+LABEL maintainer="Erin Young"
+LABEL maintainer.email="eriny@utah.gov"
+
+COPY --from=builder /ontime-${ONTIME_VER}/target/${TARGET}/release/ontime /bin/
+
+# for playing nice with workflow managers
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ ca-certificates \
+ procps && \
+ apt-get autoclean && \
+ rm -rf /var/lib/apt/lists/*
+
+ENV PATH="$PATH" \
+ LC_ALL=C
+
+# 'CMD' instructions set a default command when the container is run. This is typically 'tool --help.'
+CMD ontime --help
+
+# 'WORKDIR' sets working directory
+WORKDIR /data
+
+# A second FROM insruction creates a new stage
+# The test stage must be downstream from 'app'
+FROM app as test
+
+# set working directory so that all test inputs & outputs are kept in /test
+WORKDIR /test
+
+# print help and version info; check dependencies (not all software has these options available)
+# Mostly this ensures the tool of choice is in path and is executable
+RUN ontime --help && \
+ ontime --version
+
+# testing with files uploaded with prior version
+RUN apt-get update && apt-get install -y wget
+
+RUN wget -q https://github.com/StaPH-B/docker-builds/raw/master/ontime/0.2.3/tests/test.fastq.gz && \
+ ontime --to 1h test.fastq.gz -o ontime.test.fastq.gz && \
+ ls -alh test.fastq.gz ontime.test.fastq.gz
diff --git a/ontime/0.3.1/README.md b/ontime/0.3.1/README.md
new file mode 100644
index 000000000..d55884651
--- /dev/null
+++ b/ontime/0.3.1/README.md
@@ -0,0 +1,26 @@
+# ontime container
+
+Main tool: [ONTime](https://github.com/mbhall88/ontime/tree/main)
+
+Code repository: https://github.com/mbhall88/ontime
+
+Basic information on how to use this tool:
+- executable: ontime
+- help: --help
+- version: --version
+- description: Extracts nanopore reads based on when in the run reads were generated.
+
+Full documentation: https://github.com/mbhall88/ontime/tree/main
+
+WARNING : the nanopore fastq file MUST still have the time stamp on the reads in the fastq fime, so this tool is **NOT** expected to run on reads downloaded from public repositories.
+
+## Example Usage
+
+```bash
+# reads from the first five hours
+ontime --to 5h in.fq
+# reads after the first 24 hours
+ontime --from 24h in.fq
+# Check what the earliest and latest start times in the fastq are
+ontime --show in.fq
+```
diff --git a/panaroo/1.3.4/Dockerfile b/panaroo/1.3.4/Dockerfile
new file mode 100644
index 000000000..6c7771deb
--- /dev/null
+++ b/panaroo/1.3.4/Dockerfile
@@ -0,0 +1,65 @@
+FROM mambaorg/micromamba:0.24.0 as app
+
+# Version arguments
+# ARG variables only persist during build time
+# THIS ARG ONLY USED FOR A LABEL. VERSION SPECIFIED IN PANAROO-ENVIRONMENT.YML
+ARG PANAROO_SOFTWARE_VERSION="1.3.4"
+
+# build and run as root users since micromamba image has 'mambauser' set as the $USER
+USER root
+# set workdir to default for building; set to /data at the end
+WORKDIR /
+
+LABEL base.image="mambaorg/micromamba:0.24.0"
+LABEL dockerfile.version="1"
+LABEL software="Panaroo"
+LABEL software.version=${PANAROO_SOFTWARE_VERSION}
+LABEL description="An updated pipeline for pangenome investigation"
+LABEL website="https://github.com/gtonkinhill/panaroo"
+LABEL license="https://github.com/gtonkinhill/panaroo/blob/master/LICENSE"
+LABEL maintainer="Kevin Libuit"
+LABEL maintainer.email="kevin.libuit@theiagen.com"
+
+# install dependencies; cleanup apt garbage
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ wget \
+ ca-certificates \
+ procps && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+# Install Panaroo conda environment into base environment
+# clean up conda garbage
+# conda environment includes optional tools prokka, prank, mafft, clustal, and mash
+RUN micromamba install -y -n base -c conda-forge -c bioconda -c defaults python=3.9 panaroo=${PANAROO_SOFTWARE_VERSION} && \
+ micromamba clean -a -y
+
+# set the environment, put new conda env in PATH by default
+ENV PATH="/opt/conda/bin:/opt/conda/envs/base/bin:${PATH}" \
+ LC_ALL=C.UTF-8
+
+# set working directory to /data
+WORKDIR /data
+
+# set default command
+CMD panaroo -h
+
+# new base for testing
+FROM app as test
+
+# checks to see if tool is in PATH
+RUN panaroo --version && panaroo -h
+
+WORKDIR /test
+
+# Grab test data from 1.2.10
+RUN wget -q https://raw.githubusercontent.com/StaPH-B/docker-builds/master/panaroo/1.2.10/tests/ecoli_1.gff && \
+ wget -q https://raw.githubusercontent.com/StaPH-B/docker-builds/master/panaroo/1.2.10/tests/ecoli_2.gff && \
+ wget -q https://raw.githubusercontent.com/StaPH-B/docker-builds/master/panaroo/1.2.10/tests/gene_data.csv && \
+ wget -q https://raw.githubusercontent.com/StaPH-B/docker-builds/master/panaroo/1.2.10/tests/summary_statistics.txt
+
+# Run Panaroo
+RUN panaroo --clean-mode strict -i *.gff -o panaroo_results/
+
+RUN head panaroo_results/summary_statistics.txt && \
+ head summary_statistics.txt && \
+ cmp summary_statistics.txt panaroo_results/summary_statistics.txt
diff --git a/panaroo/1.3.4/README.md b/panaroo/1.3.4/README.md
new file mode 100644
index 000000000..22ed4b599
--- /dev/null
+++ b/panaroo/1.3.4/README.md
@@ -0,0 +1,18 @@
+# Panaroo Container
+
+Main tool : [Panaroo](https://github.com/gtonkinhill/panaroo)
+
+Full documentation: https://gtonkinhill.github.io/panaroo/#/
+
+Panaroo is an updated pipeline for pangenome investigation.
+
+[Tonkin-Hill G, MacAlasdair N, Ruis C, Weimann A, Horesh G, Lees JA, Gladstone RA, Lo S, Beaudoin C, Floto RA, Frost SDW, Corander J, Bentley SD, Parkhill J. 2020. Producing polished prokaryotic pangenomes with the Panaroo pipeline. Genome Biol 21:180.](https://genomebiology.biomedcentral.com/articles/10.1186/s13059-020-02090-4)
+
+
+## Example Usage
+
+```bash
+# Using GFFs in the same format as output by Prokka run:
+mkdir results
+panaroo -i *.gff -o results --clean-mode strict
+```
diff --git a/panaroo/1.5.0/Dockerfile b/panaroo/1.5.0/Dockerfile
new file mode 100644
index 000000000..b988480db
--- /dev/null
+++ b/panaroo/1.5.0/Dockerfile
@@ -0,0 +1,67 @@
+FROM mambaorg/micromamba:1.5.7 as app
+
+# Version arguments
+# ARG variables only persist during build time
+# THIS ARG ONLY USED FOR A LABEL. VERSION SPECIFIED IN PANAROO-ENVIRONMENT.YML
+ARG PANAROO_SOFTWARE_VERSION="1.5.0"
+
+# build and run as root users since micromamba image has 'mambauser' set as the $USER
+USER root
+# set workdir to default for building; set to /data at the end
+WORKDIR /
+
+LABEL base.image="mambaorg/micromamba:1.5.7"
+LABEL dockerfile.version="1"
+LABEL software="Panaroo"
+LABEL software.version=${PANAROO_SOFTWARE_VERSION}
+LABEL description="An updated pipeline for pangenome investigation"
+LABEL website="https://github.com/gtonkinhill/panaroo"
+LABEL license="https://github.com/gtonkinhill/panaroo/blob/master/LICENSE"
+LABEL maintainer="Kevin Libuit"
+LABEL maintainer.email="kevin.libuit@theiagen.com"
+LABEL maintainer2="Erin Young"
+LABEL maintainer2.email="eriny@utah.gov"
+
+# install dependencies; cleanup apt garbage
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ wget \
+ ca-certificates \
+ procps && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+# Install Panaroo conda environment into base environment
+# clean up conda garbage
+# conda environment includes optional tools prokka, prank, mafft, clustal, and mash
+RUN micromamba install -y -n base -c conda-forge -c bioconda -c defaults python=3.9 panaroo=${PANAROO_SOFTWARE_VERSION} && \
+ micromamba clean -a -y
+
+# set the environment, put new conda env in PATH by default
+ENV PATH="/opt/conda/bin:/opt/conda/envs/base/bin:${PATH}" \
+ LC_ALL=C.UTF-8
+
+# set working directory to /data
+WORKDIR /data
+
+# set default command
+CMD panaroo -h
+
+# new base for testing
+FROM app as test
+
+# checks to see if tool is in PATH
+RUN panaroo --version && panaroo -h
+
+WORKDIR /test
+
+# Grab test data from 1.2.10
+RUN wget -q https://raw.githubusercontent.com/StaPH-B/docker-builds/master/panaroo/1.2.10/tests/ecoli_1.gff && \
+ wget -q https://raw.githubusercontent.com/StaPH-B/docker-builds/master/panaroo/1.2.10/tests/ecoli_2.gff && \
+ wget -q https://raw.githubusercontent.com/StaPH-B/docker-builds/master/panaroo/1.2.10/tests/gene_data.csv && \
+ wget -q https://raw.githubusercontent.com/StaPH-B/docker-builds/master/panaroo/1.2.10/tests/summary_statistics.txt
+
+# Run Panaroo
+RUN panaroo --clean-mode strict -i *.gff -o panaroo_results/
+
+RUN head panaroo_results/summary_statistics.txt && \
+ head summary_statistics.txt && \
+ cmp summary_statistics.txt panaroo_results/summary_statistics.txt
diff --git a/panaroo/1.5.0/README.md b/panaroo/1.5.0/README.md
new file mode 100644
index 000000000..22ed4b599
--- /dev/null
+++ b/panaroo/1.5.0/README.md
@@ -0,0 +1,18 @@
+# Panaroo Container
+
+Main tool : [Panaroo](https://github.com/gtonkinhill/panaroo)
+
+Full documentation: https://gtonkinhill.github.io/panaroo/#/
+
+Panaroo is an updated pipeline for pangenome investigation.
+
+[Tonkin-Hill G, MacAlasdair N, Ruis C, Weimann A, Horesh G, Lees JA, Gladstone RA, Lo S, Beaudoin C, Floto RA, Frost SDW, Corander J, Bentley SD, Parkhill J. 2020. Producing polished prokaryotic pangenomes with the Panaroo pipeline. Genome Biol 21:180.](https://genomebiology.biomedcentral.com/articles/10.1186/s13059-020-02090-4)
+
+
+## Example Usage
+
+```bash
+# Using GFFs in the same format as output by Prokka run:
+mkdir results
+panaroo -i *.gff -o results --clean-mode strict
+```
diff --git a/pango_aliasor/0.3.0/Dockerfile b/pango_aliasor/0.3.0/Dockerfile
new file mode 100644
index 000000000..eb5ac5e57
--- /dev/null
+++ b/pango_aliasor/0.3.0/Dockerfile
@@ -0,0 +1,61 @@
+FROM ubuntu:jammy as app
+
+ARG PANGO_ALIASOR_VER="0.3.0"
+
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="Pango Aliasor"
+LABEL software.version="${PANGO_ALIASOR_VER}"
+LABEL description="Links sublineages to parent pangolin lineages"
+LABEL website="https://github.com/corneliusroemer/pango_aliasor"
+LABEL license="https://github.com/corneliusroemer/pango_aliasor/blob/main/LICENSE"
+LABEL maintainer="Erin Young"
+LABEL maintainer.email="eriny@utah.gov"
+
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ python3 \
+ python3-pip \
+ python-is-python3 \
+ wget \
+ procps && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+RUN wget -q https://github.com/corneliusroemer/pango_aliasor/archive/refs/tags/v${PANGO_ALIASOR_VER}.tar.gz && \
+ pip install v${PANGO_ALIASOR_VER}.tar.gz && \
+ rm v${PANGO_ALIASOR_VER}.tar.gz && \
+ pip install --no-cache pandas && \
+ mkdir /data
+
+ENV PATH="$PATH" LC_ALL=C
+
+COPY aliasor.py /usr/bin/.
+
+WORKDIR /key
+
+RUN wget -q https://raw.githubusercontent.com/cov-lineages/pango-designation/master/pango_designation/alias_key.json
+
+WORKDIR /data
+
+CMD [ "aliasor.py", "--help" ]
+
+FROM staphb/pangolin:4.3.1-pdata-1.28 as pangolin
+
+RUN apt-get update && apt-get install -y --no-install-recommends zstd
+
+RUN wget -q https://github.com/corneliusroemer/pango-sequences/raw/main/data/pango-consensus-sequences_genome-nuc.fasta.zst && \
+ zstd -d pango-consensus-sequences_genome-nuc.fasta.zst && \
+ pangolin pango-consensus-sequences_genome-nuc.fasta
+
+FROM app as test
+
+WORKDIR /test
+
+RUN aliasor.py --help
+
+COPY --from=pangolin /data/lineage_report.csv .
+
+RUN aliasor.py --input lineage_report.csv --output aliased_lineage_report_github.tsv && \
+ aliasor.py --input lineage_report.csv --output aliased_lineage_report.tsv --alias-key /key/alias_key.json && \
+ wc -l aliased_lineage_report_github.tsv aliased_lineage_report.tsv && \
+ head aliased_lineage_report_github.tsv aliased_lineage_report.tsv
+
diff --git a/pango_aliasor/0.3.0/README.md b/pango_aliasor/0.3.0/README.md
new file mode 100644
index 000000000..ad264d465
--- /dev/null
+++ b/pango_aliasor/0.3.0/README.md
@@ -0,0 +1,78 @@
+
+# pango_aliasor container
+
+Main tool: [pango_aliasor](https://github.com/corneliusroemer/pango_aliasor)
+
+Code repository: https://github.com/corneliusroemer/pango_aliasor
+
+Basic information on how to use this tool:
+- executable: NA
+- help: NA
+- version: NA
+- description: pango_aliasor is a python library for determining parent pangolin lineages
+
+Additional information:
+- Although not an official use by any means, `aliasor.py` is included in this image. This python script was written by [@erinyoung](https://github.com/erinyoung) for some quick use cases of finding parent lineages from pangolin results. Usage is below.
+- A alias key is found at `/key/alias_key.json` in the containers spun from this image. When used, pango_aliasor does not download the latest key from github, which is useful for some cloud infrastructures.
+
+Full documentation: [https://github.com/corneliusroemer/pango_aliasor](https://github.com/corneliusroemer/pango_aliasor)
+
+## Example Usage
+
+```python
+import pandas as pd
+from pango_aliasor.aliasor import Aliasor
+import argparse
+
+
+def add_unaliased_column(tsv_file_path, pango_column='pango_lineage', unaliased_column='pango_lineage_unaliased'):
+ aliasor = Aliasor()
+ def uncompress_lineage(lineage):
+ if not lineage or pd.isna(lineage):
+ return "?"
+ return aliasor.uncompress(lineage)
+
+ df = pd.read_csv(tsv_file_path, sep='\t')
+ df[unaliased_column] = df[pango_column].apply(uncompress_lineage)
+ return df
+
+
+if __name__ == "__main__":
+ parser = argparse.ArgumentParser(description='Add unaliased Pango lineage column to a TSV file.')
+ parser.add_argument('--input-tsv', required=True, help='Path to the input TSV file.')
+ parser.add_argument('--pango-column', default='pango_lineage', help='Name of the Pango lineage column in the input file.')
+ parser.add_argument('--unaliased-column', default='pango_lineage_unaliased', help='Name of the column to use for the unaliased Pango lineage column in output.')
+ args = parser.parse_args()
+ df = add_unaliased_column(args.input_tsv, args.pango_column, args.unaliased_column)
+ print(df.to_csv(sep='\t', index=False))
+```
+
+## Example Usage of aliasor.py
+
+The help message
+```bash
+usage: aliasor.py [-h] --input INPUT [--output OUTPUT] [--pango-column PANGO_COLUMN] [--unaliased-column UNALIASED_COLUMN] [--alias-key ALIAS_KEY]
+
+Add unaliased Pango lineage column to a TSV file.
+
+options:
+ -h, --help show this help message and exit
+ --input INPUT Path to the input file (should end in tsv or csv for best results).
+ --output OUTPUT Name of tab-delimited output file
+ --pango-column PANGO_COLUMN
+ Name of the Pango lineage column in the input file.
+ --unaliased-column UNALIASED_COLUMN
+ Name of the column to use for the unaliased Pango lineage column in output.
+ --alias-key ALIAS_KEY
+ Alias Key as json file. If none provided, will download the latest version from github.
+```
+
+Examples for using aliasor.py with the lineage_report.csv file generated via pangolin (lineage_report.csv)
+```bash
+# downloading the latest alias key from github
+aliasor.py --input lineage_report.csv --output unaliased_lineage_report.tsv
+
+# using included alias key
+aliasor.py --input lineage_report.csv --output unaliased_lineage_report.tsv --alias-key /key/alias_key.json
+```
+The unaliased column will be the last column in the output file.
\ No newline at end of file
diff --git a/pango_aliasor/0.3.0/aliasor.py b/pango_aliasor/0.3.0/aliasor.py
new file mode 100755
index 000000000..f34dcc061
--- /dev/null
+++ b/pango_aliasor/0.3.0/aliasor.py
@@ -0,0 +1,45 @@
+#!/usr/bin/env python3
+
+#####
+# Mostly stolen from https://github.com/corneliusroemer/pango_aliasor?tab=readme-ov-file#convenience-script
+# and https://github.com/UPHL-BioNGS/Wastewater-genomic-analysis/blob/pooja-dev/utils/freyja_custom_lin_processing.py
+#####
+
+import pandas as pd
+from pango_aliasor.aliasor import Aliasor
+import argparse
+
+def add_unaliased_column(tsv_file_path, pango_column='lineage', unaliased_column='unaliased_lineage', alias_key = ''):
+ if alias_key:
+ aliasor = Aliasor(alias_key)
+ else:
+ aliasor = Aliasor()
+
+ def uncompress_lineage(lineage):
+ if not lineage or pd.isna(lineage):
+ return "?"
+ return aliasor.uncompress(lineage)
+
+ df = pd.DataFrame()
+
+ if tsv_file_path.endswith('.tsv'):
+ df = pd.read_csv(tsv_file_path, sep='\t')
+ elif tsv_file_path.endswith('.csv'):
+ df = pd.read_csv(tsv_file_path, sep=',')
+ else:
+ df = pd.read_csv(tsv_file_path, sep='\t')
+
+ df[unaliased_column] = df[pango_column].apply(uncompress_lineage)
+ return df
+
+if __name__ == "__main__":
+ parser = argparse.ArgumentParser(description='Add unaliased Pango lineage column to a TSV file.')
+ parser.add_argument('--input', required=True, help='Path to the input file (should end in tsv or csv for best results).')
+ parser.add_argument('--output', default='unaliased_lineage_report.tsv', help='Name of tab-delimited output file' )
+ parser.add_argument('--pango-column', default='lineage', help='Name of the Pango lineage column in the input file.')
+ parser.add_argument('--unaliased-column', default='unaliased_lineage', help='Name of the column to use for the unaliased Pango lineage column in output.')
+ parser.add_argument('--alias-key', default='', help="Alias Key as json file. If none provided, will download the latest version from github.")
+ args = parser.parse_args()
+
+ df = add_unaliased_column(args.input, args.pango_column, args.unaliased_column, args.alias_key)
+ df.to_csv(args.output, sep='\t', index=False)
\ No newline at end of file
diff --git a/pangolin/4.3.1-pdata-1.23.1-1/Dockerfile b/pangolin/4.3.1-pdata-1.23.1-1/Dockerfile
new file mode 100644
index 000000000..2bd6df147
--- /dev/null
+++ b/pangolin/4.3.1-pdata-1.23.1-1/Dockerfile
@@ -0,0 +1,165 @@
+FROM mambaorg/micromamba:1.5.1 as app
+
+# build and run as root users since micromamba image has 'mambauser' set as the $USER
+USER root
+# set workdir to default for building; set to /data at the end
+WORKDIR /
+
+# ARG variables only persist during build time
+# had to include the v for some of these due to GitHub tags.
+# using pangolin-data github tag, NOT what is in the GH release title "v1.2.133"
+ARG PANGOLIN_VER="v4.3.1"
+ARG PANGOLIN_DATA_VER="v1.23.1"
+ARG SCORPIO_VER="v0.3.19"
+ARG CONSTELLATIONS_VER="v0.1.12"
+ARG USHER_VER="0.6.3"
+
+# metadata labels
+LABEL base.image="mambaorg/micromamba:1.5.1"
+LABEL dockerfile.version="1"
+LABEL software="pangolin"
+LABEL software.version=${PANGOLIN_VER}
+LABEL description="Conda environment for Pangolin. Pangolin: Software package for assigning SARS-CoV-2 genome sequences to global lineages."
+LABEL website="https://github.com/cov-lineages/pangolin"
+LABEL license="GNU General Public License v3.0"
+LABEL license.url="https://github.com/cov-lineages/pangolin/blob/master/LICENSE.txt"
+LABEL maintainer="Curtis Kapsak"
+LABEL maintainer.email="kapsakcj@gmail.com"
+
+# install dependencies; cleanup apt garbage
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ wget \
+ ca-certificates \
+ git \
+ procps \
+ bsdmainutils && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+# get the pangolin repo
+RUN wget "https://github.com/cov-lineages/pangolin/archive/${PANGOLIN_VER}.tar.gz" && \
+ tar -xf ${PANGOLIN_VER}.tar.gz && \
+ rm -v ${PANGOLIN_VER}.tar.gz && \
+ mv -v pangolin-* pangolin
+
+# set the environment; PATH is unnecessary here, but leaving anyways. It's reset later in dockerfile
+ENV PATH="$PATH" \
+ LC_ALL=C.UTF-8
+
+# modify environment.yml to pin specific versions during install
+# create the conda environment using modified environment.yml
+RUN sed -i "s|usher.*|usher=${USHER_VER}|" /pangolin/environment.yml && \
+ sed -i "s|scorpio.git|scorpio.git@${SCORPIO_VER}|" /pangolin/environment.yml && \
+ sed -i "s|pangolin-data.git|pangolin-data.git@${PANGOLIN_DATA_VER}|" /pangolin/environment.yml && \
+ sed -i "s|constellations.git|constellations.git@${CONSTELLATIONS_VER}|" /pangolin/environment.yml && \
+ micromamba create -n pangolin -y -f /pangolin/environment.yml
+
+# so that mamba/conda env is active when running below commands
+ENV ENV_NAME="pangolin"
+ARG MAMBA_DOCKERFILE_ACTIVATE=1
+
+WORKDIR /pangolin
+
+# run pip install step; download optional pre-computed assignment hashes for UShER (useful for running on large batches of samples)
+# best to skip using the assigment-cache if running on one sample for speed
+# print versions
+RUN pip install . && \
+ pangolin --add-assignment-cache && \
+ micromamba clean -a -y && \
+ mkdir /data && \
+ pangolin --all-versions && \
+ usher --version
+
+WORKDIR /data
+
+# hardcode pangolin executable into the PATH variable
+ENV PATH="${PATH}:/opt/conda/envs/pangolin/bin/" XDG_CACHE_HOME=/tmp
+
+# default command is to pull up help options for virulencefinder; can be overridden of course
+CMD ["pangolin", "-h"]
+
+# new base for testing
+FROM app as test
+
+# so that mamba/conda env is active when running below commands
+ENV ENV_NAME="pangolin"
+ARG MAMBA_DOCKERFILE_ACTIVATE=1
+
+# test on test sequences supplied with Pangolin code
+RUN pangolin /pangolin/pangolin/test/test_seqs.fasta --analysis-mode usher -o /data/test_seqs-output-pusher && \
+ column -t -s, /data/test_seqs-output-pusher/lineage_report.csv
+
+# test functionality of assignment-cache option
+RUN pangolin --use-assignment-cache /pangolin/pangolin/test/test_seqs.fasta
+
+# download B.1.1.7 genome from Utah
+ADD https://raw.githubusercontent.com/StaPH-B/docker-builds/master/tests/SARS-CoV-2/SRR13957123.consensus.fa /test-data/SRR13957123.consensus.fa
+
+# test on a B.1.1.7 genome
+RUN pangolin /test-data/SRR13957123.consensus.fa --analysis-mode usher -o /test-data/SRR13957123-pusher && \
+ column -t -s, /test-data/SRR13957123-pusher/lineage_report.csv
+
+ # install unzip for unzipping zip archive from NCBI
+RUN apt-get update && apt-get install -y --no-install-recommends unzip
+
+# install ncbi datasets tool (pre-compiled binary); place in $PATH
+RUN wget https://ftp.ncbi.nlm.nih.gov/pub/datasets/command-line/LATEST/linux-amd64/datasets && \
+ chmod +x datasets && \
+ mv -v datasets /usr/local/bin
+
+# download assembly for a BA.1 from Florida (https://www.ncbi.nlm.nih.gov/biosample?term=SAMN29506515 and https://www.ncbi.nlm.nih.gov/nuccore/ON924087)
+# run pangolin in usher analysis mode
+RUN datasets download virus genome accession ON924087.1 --filename ON924087.1.zip && \
+ unzip ON924087.1.zip && rm ON924087.1.zip && \
+ mv -v ncbi_dataset/data/genomic.fna ON924087.1.genomic.fna && \
+ rm -vr ncbi_dataset/ README.md && \
+ pangolin ON924087.1.genomic.fna --analysis-mode usher -o ON924087.1-usher && \
+ column -t -s, ON924087.1-usher/lineage_report.csv
+
+# test specific for new lineage, XBB.1.16, introduced in pangolin-data v1.19
+# using this assembly: https://www.ncbi.nlm.nih.gov/nuccore/2440446687
+# biosample here: https://www.ncbi.nlm.nih.gov/biosample?term=SAMN33060589
+# one of the sample included in initial pango-designation here: https://github.com/cov-lineages/pango-designation/issues/1723
+RUN datasets download virus genome accession OQ381818.1 --filename OQ381818.1.zip && \
+ unzip OQ381818.1.zip && rm OQ381818.1.zip && \
+ mv -v ncbi_dataset/data/genomic.fna OQ381818.1.genomic.fna && \
+ rm -vr ncbi_dataset/ README.md && \
+ pangolin OQ381818.1.genomic.fna --analysis-mode usher -o OQ381818.1-usher && \
+ column -t -s, OQ381818.1-usher/lineage_report.csv
+
+# testing another XBB.1.16, trying to test scorpio functionality. Want pangolin to NOT assign lineage based on pango hash match.
+# this test runs as expected, uses scorpio to check for constellation of mutations, then assign using PUSHER placement
+RUN datasets download virus genome accession OR177999.1 --filename OR177999.1.zip && \
+unzip OR177999.1.zip && rm OR177999.1.zip && \
+mv -v ncbi_dataset/data/genomic.fna OR177999.1.genomic.fna && \
+rm -vr ncbi_dataset/ README.md && \
+pangolin OR177999.1.genomic.fna --analysis-mode usher -o OR177999.1-usher && \
+column -t -s, OR177999.1-usher/lineage_report.csv
+
+ ## test for BA.2.86
+ # virus identified in MI: https://www.ncbi.nlm.nih.gov/nuccore/OR461132.1
+RUN datasets download virus genome accession OR461132.1 --filename OR461132.1.zip && \
+unzip OR461132.1.zip && rm OR461132.1.zip && \
+mv -v ncbi_dataset/data/genomic.fna OR461132.1.genomic.fna && \
+rm -vr ncbi_dataset/ README.md && \
+pangolin OR461132.1.genomic.fna --analysis-mode usher -o OR461132.1-usher && \
+column -t -s, OR461132.1-usher/lineage_report.csv
+
+ ## test for JN.2 (BA.2.86 sublineage) JN.2 is an alias of B.1.1.529.2.86.1.2
+ # NY CDC Quest sample: https://www.ncbi.nlm.nih.gov/nuccore/OR598183
+RUN datasets download virus genome accession OR598183.1 --filename OR598183.1.zip && \
+unzip OR598183.1.zip && rm OR598183.1.zip && \
+mv -v ncbi_dataset/data/genomic.fna OR598183.1.genomic.fna && \
+rm -vr ncbi_dataset/ README.md && \
+pangolin OR598183.1.genomic.fna --analysis-mode usher -o OR598183.1-usher && \
+column -t -s, OR598183.1-usher/lineage_report.csv
+
+## test for JQ.1 (BA.2.86.3 sublineage); JQ.1 is an alias of B.1.1.529.2.86.3.1
+# THANK YOU ERIN AND UPHL!! https://www.ncbi.nlm.nih.gov/nuccore/OR716684
+# this test is important due to the fact that this lineage was included in the UShER tree, despite being designated after the pangolin-designation 1.23 release
+# it previously caused and error/bug in pangolin, but now is fixed
+RUN datasets download virus genome accession OR716684.1 --filename OR716684.1.zip && \
+unzip OR716684.1.zip && rm OR716684.1.zip && \
+mv -v ncbi_dataset/data/genomic.fna OR716684.1.genomic.fna && \
+rm -vr ncbi_dataset/ README.md && \
+pangolin OR716684.1.genomic.fna --analysis-mode usher -o OR716684.1-usher && \
+column -t -s, OR716684.1-usher/lineage_report.csv
\ No newline at end of file
diff --git a/pangolin/4.3.1-pdata-1.23.1-1/README.md b/pangolin/4.3.1-pdata-1.23.1-1/README.md
new file mode 100644
index 000000000..4357ad80b
--- /dev/null
+++ b/pangolin/4.3.1-pdata-1.23.1-1/README.md
@@ -0,0 +1,53 @@
+# pangolin docker image
+
+Main tool : [pangolin](https://github.com/cov-lineages/pangolin)
+
+Full documentation: [https://cov-lineages.org/resources/pangolin.html](https://cov-lineages.org/resources/pangolin.html)
+
+Phylogenetic Assignment of Named Global Outbreak LINeages
+
+Additional tools:
+
+- [pangolin-data](https://github.com/cov-lineages/pangolin-data) 1.23.1
+- [pangolin-assignment](https://github.com/cov-lineages/pangolin-assignment) 1.23.1
+- [minimap2](https://github.com/lh3/minimap2) 2.26-r1175
+- [usher](https://github.com/yatisht/usher) 0.6.3
+- [faToVcf](https://github.com/yatisht/usher) 448
+- [scorpio](https://github.com/cov-lineages/scorpio) 0.3.19
+- [constellations](https://github.com/cov-lineages/constellations) 0.1.12
+- [gofasta](https://github.com/virus-evolution/gofasta) 1.2.1
+- [mafft](https://mafft.cbrc.jp/alignment/software/) 7.520
+- python 3.8.18
+
+## pangoLEARN deprecation
+
+As of pangolin version 4.3, pangoLEARN mode has been deprecated. [More info can be found here on the v4.3 release page.](https://github.com/cov-lineages/pangolin/releases/tag/v4.3)
+
+> If `--analysis-mode fast` or `--analysis-mode pangolearn` is given, pangolin v4.3 will print out a warning and use UShER mode instead, unless `--datadir` is also given specifying a directory with pangoLEARN model files. The next release of pangolin-data (v1.20) will no longer include the model files which have not been updated since v1.18.
+
+This docker image contains `pangolin-data` v1.23.1. The pangoLEARN model has not been updated since pangolin-data version 1.18. Only the the underlying UShER tree/protobuf file will be maintained for the forseeable future.
+
+**Please use the UShER mode of pangolin if you want to stay up-to-date with the most recent lineages.** [See pangolin-data release notes here for more details](https://github.com/cov-lineages/pangolin-data/releases)
+
+## Example Usage
+
+```bash
+# run Pangolin in the default mode (usher). Can optionally supply --analysis-mode usher
+$ pangolin /pangolin/pangolin/test/test_seqs.fasta -o /data/test_seqs-output-pusher
+
+# view the output CSV
+$ column -t -s, /data/test_seqs-output-pusher/lineage_report.csv
+taxon lineage conflict ambiguity_score scorpio_call scorpio_support scorpio_conflict scorpio_notes version pangolin_version scorpio_version constellation_version is_designated qc_status qc_notes note
+India seq B.1.617.1 0.0 B.1.617.1-like 1.0 0.0 scorpio call: Alt alleles 11; Ref alleles 0; Amb alleles 0; Oth alleles 0 PUSHER-v1.16 4.1.3 0.3.17 v0.1.10 False pass Ambiguous_content:0.02 Usher placements: B.1.617.1(1/1)
+b117 B.1.1.7 0.0 Alpha (B.1.1.7-like) 0.91 0.04 scorpio call: Alt alleles 21; Ref alleles 1; Amb alleles 1; Oth alleles 0 PUSHER-v1.16 4.1.3 0.3.17 v0.1.10 False pass Ambiguous_content:0.02 Usher placements: B.1.1.7(2/2)
+outgroup_A A 0.0 PUSHER-v1.16 4.1.3 0.3.17 v0.1.10 False pass Ambiguous_content:0.02 Usher placements: A(1/1)
+issue_57_torsten_seq Unassigned PUSHER-v1.16 4.1.3 0.3.17 v0.1.10 False fail failed to map
+This_seq_has_6000_Ns_in_18000_bases Unassigned PUSHER-v1.16 4.1.3 0.3.17 v0.1.10 False fail failed to map
+This_seq_has_no_seq Unassigned PUSHER-v1.16 4.1.3 0.3.17 v0.1.10 False fail failed to map
+This_seq_is_too_short Unassigned PUSHER-v1.16 4.1.3 0.3.17 v0.1.10 False fail Ambiguous_content:0.9
+This_seq_has_lots_of_Ns Unassigned PUSHER-v1.16 4.1.3 0.3.17 v0.1.10 False fail Ambiguous_content:0.98
+This_seq_is_literally_just_N Unassigned PUSHER-v1.16 4.1.3 0.3.17 v0.1.10 False fail failed to map
+Japan_seq B 0.0 PANGO-v1.16 4.1.3 0.3.17 v0.1.10 True pass Ambiguous_content:0.02 Assigned from designation hash.
+USA_seq B.1.314 0.0 PANGO-v1.16 4.1.3 0.3.17 v0.1.10 True pass Ambiguous_content:0.02 Assigned from designation hash.
+Unassigned_omicron_seq BA.1 0.0 Probable Omicron (BA.1-like) 0.71 0.08 scorpio call: Alt alleles 42; Ref alleles 5; Amb alleles 9; Oth alleles 3 PUSHER-v1.16 4.1.3 0.3.17 v0.1.10 False pass Ambiguous_content:0.03 Usher placements: BA.1(1/1)
+```
diff --git a/pangolin/4.3.1-pdata-1.24/Dockerfile b/pangolin/4.3.1-pdata-1.24/Dockerfile
new file mode 100644
index 000000000..733225181
--- /dev/null
+++ b/pangolin/4.3.1-pdata-1.24/Dockerfile
@@ -0,0 +1,166 @@
+FROM mambaorg/micromamba:1.5.1 as app
+
+# build and run as root users since micromamba image has 'mambauser' set as the $USER
+USER root
+# set workdir to default for building; set to /data at the end
+WORKDIR /
+
+# ARG variables only persist during build time
+# had to include the v for some of these due to GitHub tags.
+# using pangolin-data github tag, NOT what is in the GH release title "v1.2.133"
+ARG PANGOLIN_VER="v4.3.1"
+ARG PANGOLIN_DATA_VER="v1.24"
+ARG SCORPIO_VER="v0.3.19"
+ARG CONSTELLATIONS_VER="v0.1.12"
+ARG USHER_VER="0.6.3"
+
+# metadata labels
+LABEL base.image="mambaorg/micromamba:1.5.1"
+LABEL dockerfile.version="1"
+LABEL software="pangolin"
+LABEL software.version=${PANGOLIN_VER}
+LABEL description="Conda environment for Pangolin. Pangolin: Software package for assigning SARS-CoV-2 genome sequences to global lineages."
+LABEL website="https://github.com/cov-lineages/pangolin"
+LABEL license="GNU General Public License v3.0"
+LABEL license.url="https://github.com/cov-lineages/pangolin/blob/master/LICENSE.txt"
+LABEL maintainer="Curtis Kapsak"
+LABEL maintainer.email="kapsakcj@gmail.com"
+
+# install dependencies; cleanup apt garbage
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ wget \
+ ca-certificates \
+ git \
+ procps \
+ bsdmainutils && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+# get the pangolin repo
+RUN wget "https://github.com/cov-lineages/pangolin/archive/${PANGOLIN_VER}.tar.gz" && \
+ tar -xf ${PANGOLIN_VER}.tar.gz && \
+ rm -v ${PANGOLIN_VER}.tar.gz && \
+ mv -v pangolin-* pangolin
+
+# set the environment; PATH is unnecessary here, but leaving anyways. It's reset later in dockerfile
+ENV PATH="$PATH" \
+ LC_ALL=C.UTF-8
+
+# modify environment.yml to pin specific versions during install
+# create the conda environment using modified environment.yml
+RUN sed -i "s|usher.*|usher=${USHER_VER}|" /pangolin/environment.yml && \
+ sed -i "s|scorpio.git|scorpio.git@${SCORPIO_VER}|" /pangolin/environment.yml && \
+ sed -i "s|pangolin-data.git|pangolin-data.git@${PANGOLIN_DATA_VER}|" /pangolin/environment.yml && \
+ sed -i "s|constellations.git|constellations.git@${CONSTELLATIONS_VER}|" /pangolin/environment.yml && \
+ micromamba create -n pangolin -y -f /pangolin/environment.yml
+
+# so that mamba/conda env is active when running below commands
+ENV ENV_NAME="pangolin"
+ARG MAMBA_DOCKERFILE_ACTIVATE=1
+
+WORKDIR /pangolin
+
+# run pip install step; download optional pre-computed assignment hashes for UShER (useful for running on large batches of samples)
+# best to skip using the assigment-cache if running on one sample for speed
+# print versions
+RUN pip install . && \
+ pangolin --add-assignment-cache && \
+ micromamba clean -a -y && \
+ mkdir /data && \
+ pangolin --all-versions && \
+ usher --version
+
+# final working directory in "app" layer is /data for passing data in/out of container
+WORKDIR /data
+
+# hardcode pangolin executable into the PATH variable
+ENV PATH="${PATH}:/opt/conda/envs/pangolin/bin/" XDG_CACHE_HOME=/tmp
+
+# default command is to pull up help options for pangolin; can be overridden of course
+CMD ["pangolin", "-h"]
+
+# new base for testing
+FROM app as test
+
+# so that mamba/conda env is active when running below commands
+ENV ENV_NAME="pangolin"
+ARG MAMBA_DOCKERFILE_ACTIVATE=1
+
+# test on test sequences supplied with Pangolin code
+RUN pangolin /pangolin/pangolin/test/test_seqs.fasta --analysis-mode usher -o /data/test_seqs-output-pusher && \
+ column -t -s, /data/test_seqs-output-pusher/lineage_report.csv
+
+# test functionality of assignment-cache option
+RUN pangolin --use-assignment-cache /pangolin/pangolin/test/test_seqs.fasta
+
+# download B.1.1.7 genome from Utah
+ADD https://raw.githubusercontent.com/StaPH-B/docker-builds/master/tests/SARS-CoV-2/SRR13957123.consensus.fa /test-data/SRR13957123.consensus.fa
+
+# test on a B.1.1.7 genome
+RUN pangolin /test-data/SRR13957123.consensus.fa --analysis-mode usher -o /test-data/SRR13957123-pusher && \
+ column -t -s, /test-data/SRR13957123-pusher/lineage_report.csv
+
+ # install unzip for unzipping zip archive from NCBI
+RUN apt-get update && apt-get install -y --no-install-recommends unzip
+
+# install ncbi datasets tool (pre-compiled binary); place in $PATH
+RUN wget https://ftp.ncbi.nlm.nih.gov/pub/datasets/command-line/LATEST/linux-amd64/datasets && \
+ chmod +x datasets && \
+ mv -v datasets /usr/local/bin
+
+# download assembly for a BA.1 from Florida (https://www.ncbi.nlm.nih.gov/biosample?term=SAMN29506515 and https://www.ncbi.nlm.nih.gov/nuccore/ON924087)
+# run pangolin in usher analysis mode
+RUN datasets download virus genome accession ON924087.1 --filename ON924087.1.zip && \
+ unzip ON924087.1.zip && rm ON924087.1.zip && \
+ mv -v ncbi_dataset/data/genomic.fna ON924087.1.genomic.fna && \
+ rm -vr ncbi_dataset/ README.md && \
+ pangolin ON924087.1.genomic.fna --analysis-mode usher -o ON924087.1-usher && \
+ column -t -s, ON924087.1-usher/lineage_report.csv
+
+# test specific for new lineage, XBB.1.16, introduced in pangolin-data v1.19
+# using this assembly: https://www.ncbi.nlm.nih.gov/nuccore/2440446687
+# biosample here: https://www.ncbi.nlm.nih.gov/biosample?term=SAMN33060589
+# one of the sample included in initial pango-designation here: https://github.com/cov-lineages/pango-designation/issues/1723
+RUN datasets download virus genome accession OQ381818.1 --filename OQ381818.1.zip && \
+ unzip OQ381818.1.zip && rm OQ381818.1.zip && \
+ mv -v ncbi_dataset/data/genomic.fna OQ381818.1.genomic.fna && \
+ rm -vr ncbi_dataset/ README.md && \
+ pangolin OQ381818.1.genomic.fna --analysis-mode usher -o OQ381818.1-usher && \
+ column -t -s, OQ381818.1-usher/lineage_report.csv
+
+# testing another XBB.1.16, trying to test scorpio functionality. Want pangolin to NOT assign lineage based on pango hash match.
+# this test runs as expected, uses scorpio to check for constellation of mutations, then assign using PUSHER placement
+RUN datasets download virus genome accession OR177999.1 --filename OR177999.1.zip && \
+unzip OR177999.1.zip && rm OR177999.1.zip && \
+mv -v ncbi_dataset/data/genomic.fna OR177999.1.genomic.fna && \
+rm -vr ncbi_dataset/ README.md && \
+pangolin OR177999.1.genomic.fna --analysis-mode usher -o OR177999.1-usher && \
+column -t -s, OR177999.1-usher/lineage_report.csv
+
+ ## test for BA.2.86
+ # virus identified in MI: https://www.ncbi.nlm.nih.gov/nuccore/OR461132.1
+RUN datasets download virus genome accession OR461132.1 --filename OR461132.1.zip && \
+unzip OR461132.1.zip && rm OR461132.1.zip && \
+mv -v ncbi_dataset/data/genomic.fna OR461132.1.genomic.fna && \
+rm -vr ncbi_dataset/ README.md && \
+pangolin OR461132.1.genomic.fna --analysis-mode usher -o OR461132.1-usher && \
+column -t -s, OR461132.1-usher/lineage_report.csv
+
+ ## test for JN.2 (BA.2.86 sublineage) JN.2 is an alias of B.1.1.529.2.86.1.2
+ # NY CDC Quest sample: https://www.ncbi.nlm.nih.gov/nuccore/OR598183
+RUN datasets download virus genome accession OR598183.1 --filename OR598183.1.zip && \
+unzip OR598183.1.zip && rm OR598183.1.zip && \
+mv -v ncbi_dataset/data/genomic.fna OR598183.1.genomic.fna && \
+rm -vr ncbi_dataset/ README.md && \
+pangolin OR598183.1.genomic.fna --analysis-mode usher -o OR598183.1-usher && \
+column -t -s, OR598183.1-usher/lineage_report.csv
+
+## test for JQ.1 (BA.2.86.3 sublineage); JQ.1 is an alias of B.1.1.529.2.86.3.1
+# THANK YOU ERIN AND UPHL!! https://www.ncbi.nlm.nih.gov/nuccore/OR716684
+# this test is important due to the fact that this lineage was included in the UShER tree, despite being designated after the pangolin-designation 1.23 release
+# it previously caused and error/bug in pangolin, but now is fixed
+RUN datasets download virus genome accession OR716684.1 --filename OR716684.1.zip && \
+unzip OR716684.1.zip && rm OR716684.1.zip && \
+mv -v ncbi_dataset/data/genomic.fna OR716684.1.genomic.fna && \
+rm -vr ncbi_dataset/ README.md && \
+pangolin OR716684.1.genomic.fna --analysis-mode usher -o OR716684.1-usher && \
+column -t -s, OR716684.1-usher/lineage_report.csv
\ No newline at end of file
diff --git a/pangolin/4.3.1-pdata-1.24/README.md b/pangolin/4.3.1-pdata-1.24/README.md
new file mode 100644
index 000000000..497134306
--- /dev/null
+++ b/pangolin/4.3.1-pdata-1.24/README.md
@@ -0,0 +1,53 @@
+# pangolin docker image
+
+Main tool : [pangolin](https://github.com/cov-lineages/pangolin)
+
+Full documentation: [https://cov-lineages.org/resources/pangolin.html](https://cov-lineages.org/resources/pangolin.html)
+
+Phylogenetic Assignment of Named Global Outbreak LINeages
+
+Additional tools:
+
+- [pangolin-data](https://github.com/cov-lineages/pangolin-data) 1.24
+- [pangolin-assignment](https://github.com/cov-lineages/pangolin-assignment) 1.24
+- [minimap2](https://github.com/lh3/minimap2) 2.26-r1175
+- [usher](https://github.com/yatisht/usher) 0.6.3
+- [faToVcf](https://github.com/yatisht/usher) 448
+- [scorpio](https://github.com/cov-lineages/scorpio) 0.3.19
+- [constellations](https://github.com/cov-lineages/constellations) 0.1.12
+- [gofasta](https://github.com/virus-evolution/gofasta) 1.2.1
+- [mafft](https://mafft.cbrc.jp/alignment/software/) 7.520
+- python 3.8.18
+
+## pangoLEARN deprecation
+
+As of pangolin version 4.3, pangoLEARN mode has been deprecated. [More info can be found here on the v4.3 release page.](https://github.com/cov-lineages/pangolin/releases/tag/v4.3)
+
+> If `--analysis-mode fast` or `--analysis-mode pangolearn` is given, pangolin v4.3 will print out a warning and use UShER mode instead, unless `--datadir` is also given specifying a directory with pangoLEARN model files. The next release of pangolin-data (v1.20) will no longer include the model files which have not been updated since v1.18.
+
+This docker image contains `pangolin-data` v1.24. The pangoLEARN model has not been updated since pangolin-data version 1.18. Only the the underlying UShER tree/protobuf file will be maintained for the forseeable future.
+
+**Please use the UShER mode of pangolin if you want to stay up-to-date with the most recent lineages.** [See pangolin-data release notes here for more details](https://github.com/cov-lineages/pangolin-data/releases)
+
+## Example Usage
+
+```bash
+# run Pangolin in the default mode (usher). Can optionally supply --analysis-mode usher
+$ pangolin /pangolin/pangolin/test/test_seqs.fasta -o /data/test_seqs-output-pusher
+
+# view the output CSV
+$ column -t -s, /data/test_seqs-output-pusher/lineage_report.csv
+taxon lineage conflict ambiguity_score scorpio_call scorpio_support scorpio_conflict scorpio_notes version pangolin_version scorpio_version constellation_version is_designated qc_status qc_notes note
+India seq B.1.617.1 0.0 B.1.617.1-like 1.0 0.0 scorpio call: Alt alleles 11; Ref alleles 0; Amb alleles 0; Oth alleles 0 PUSHER-v1.16 4.1.3 0.3.17 v0.1.10 False pass Ambiguous_content:0.02 Usher placements: B.1.617.1(1/1)
+b117 B.1.1.7 0.0 Alpha (B.1.1.7-like) 0.91 0.04 scorpio call: Alt alleles 21; Ref alleles 1; Amb alleles 1; Oth alleles 0 PUSHER-v1.16 4.1.3 0.3.17 v0.1.10 False pass Ambiguous_content:0.02 Usher placements: B.1.1.7(2/2)
+outgroup_A A 0.0 PUSHER-v1.16 4.1.3 0.3.17 v0.1.10 False pass Ambiguous_content:0.02 Usher placements: A(1/1)
+issue_57_torsten_seq Unassigned PUSHER-v1.16 4.1.3 0.3.17 v0.1.10 False fail failed to map
+This_seq_has_6000_Ns_in_18000_bases Unassigned PUSHER-v1.16 4.1.3 0.3.17 v0.1.10 False fail failed to map
+This_seq_has_no_seq Unassigned PUSHER-v1.16 4.1.3 0.3.17 v0.1.10 False fail failed to map
+This_seq_is_too_short Unassigned PUSHER-v1.16 4.1.3 0.3.17 v0.1.10 False fail Ambiguous_content:0.9
+This_seq_has_lots_of_Ns Unassigned PUSHER-v1.16 4.1.3 0.3.17 v0.1.10 False fail Ambiguous_content:0.98
+This_seq_is_literally_just_N Unassigned PUSHER-v1.16 4.1.3 0.3.17 v0.1.10 False fail failed to map
+Japan_seq B 0.0 PANGO-v1.16 4.1.3 0.3.17 v0.1.10 True pass Ambiguous_content:0.02 Assigned from designation hash.
+USA_seq B.1.314 0.0 PANGO-v1.16 4.1.3 0.3.17 v0.1.10 True pass Ambiguous_content:0.02 Assigned from designation hash.
+Unassigned_omicron_seq BA.1 0.0 Probable Omicron (BA.1-like) 0.71 0.08 scorpio call: Alt alleles 42; Ref alleles 5; Amb alleles 9; Oth alleles 3 PUSHER-v1.16 4.1.3 0.3.17 v0.1.10 False pass Ambiguous_content:0.03 Usher placements: BA.1(1/1)
+```
diff --git a/pangolin/4.3.1-pdata-1.25.1/Dockerfile b/pangolin/4.3.1-pdata-1.25.1/Dockerfile
new file mode 100644
index 000000000..97491ade9
--- /dev/null
+++ b/pangolin/4.3.1-pdata-1.25.1/Dockerfile
@@ -0,0 +1,176 @@
+FROM mambaorg/micromamba:1.5.6 as app
+
+# build and run as root users since micromamba image has 'mambauser' set as the $USER
+USER root
+# set workdir to default for building; set to /data at the end
+WORKDIR /
+
+# ARG variables only persist during build time
+# had to include the v for some of these due to GitHub tags.
+# using pangolin-data github tag, NOT what is in the GH release title "v1.2.133"
+ARG PANGOLIN_VER="v4.3.1"
+ARG PANGOLIN_DATA_VER="v1.25.1"
+ARG SCORPIO_VER="v0.3.19"
+ARG CONSTELLATIONS_VER="v0.1.12"
+ARG USHER_VER="0.6.3"
+
+# metadata labels
+LABEL base.image="mambaorg/micromamba:1.5.6"
+LABEL dockerfile.version="1"
+LABEL software="pangolin"
+LABEL software.version=${PANGOLIN_VER}
+LABEL description="Conda environment for Pangolin. Pangolin: Software package for assigning SARS-CoV-2 genome sequences to global lineages."
+LABEL website="https://github.com/cov-lineages/pangolin"
+LABEL license="GNU General Public License v3.0"
+LABEL license.url="https://github.com/cov-lineages/pangolin/blob/master/LICENSE.txt"
+LABEL maintainer="Curtis Kapsak"
+LABEL maintainer.email="kapsakcj@gmail.com"
+
+# install dependencies; cleanup apt garbage
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ wget \
+ ca-certificates \
+ git \
+ procps \
+ bsdmainutils && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+# get the pangolin repo
+RUN wget "https://github.com/cov-lineages/pangolin/archive/${PANGOLIN_VER}.tar.gz" && \
+ tar -xf ${PANGOLIN_VER}.tar.gz && \
+ rm -v ${PANGOLIN_VER}.tar.gz && \
+ mv -v pangolin-* pangolin
+
+# set the environment; PATH is unnecessary here, but leaving anyways. It's reset later in dockerfile
+ENV PATH="$PATH" \
+ LC_ALL=C.UTF-8
+
+# modify environment.yml to pin specific versions during install
+# create the conda environment using modified environment.yml
+RUN sed -i "s|usher.*|usher=${USHER_VER}|" /pangolin/environment.yml && \
+ sed -i "s|scorpio.git|scorpio.git@${SCORPIO_VER}|" /pangolin/environment.yml && \
+ sed -i "s|pangolin-data.git|pangolin-data.git@${PANGOLIN_DATA_VER}|" /pangolin/environment.yml && \
+ sed -i "s|constellations.git|constellations.git@${CONSTELLATIONS_VER}|" /pangolin/environment.yml && \
+ micromamba create -n pangolin -y -f /pangolin/environment.yml
+
+# so that mamba/conda env is active when running below commands
+ENV ENV_NAME="pangolin"
+ARG MAMBA_DOCKERFILE_ACTIVATE=1
+
+WORKDIR /pangolin
+
+# run pip install step; download optional pre-computed assignment hashes for UShER (useful for running on large batches of samples)
+# best to skip using the assigment-cache if running on one sample for speed
+# print versions
+RUN pip install . && \
+ pangolin --add-assignment-cache && \
+ micromamba clean -a -y && \
+ mkdir /data && \
+ pangolin --all-versions && \
+ usher --version
+
+# final working directory in "app" layer is /data for passing data in/out of container
+WORKDIR /data
+
+# hardcode pangolin executable into the PATH variable
+ENV PATH="${PATH}:/opt/conda/envs/pangolin/bin/" XDG_CACHE_HOME=/tmp
+
+# default command is to pull up help options for pangolin; can be overridden of course
+CMD ["pangolin", "-h"]
+
+# new base for testing
+FROM app as test
+
+# so that mamba/conda env is active when running below commands
+ENV ENV_NAME="pangolin"
+ARG MAMBA_DOCKERFILE_ACTIVATE=1
+
+# test on test sequences supplied with Pangolin code
+RUN pangolin /pangolin/pangolin/test/test_seqs.fasta --analysis-mode usher -o /data/test_seqs-output-pusher && \
+ column -t -s, /data/test_seqs-output-pusher/lineage_report.csv
+
+# test functionality of assignment-cache option
+RUN pangolin --use-assignment-cache /pangolin/pangolin/test/test_seqs.fasta
+
+# download B.1.1.7 genome from Utah
+ADD https://raw.githubusercontent.com/StaPH-B/docker-builds/master/tests/SARS-CoV-2/SRR13957123.consensus.fa /test-data/SRR13957123.consensus.fa
+
+# test on a B.1.1.7 genome
+RUN pangolin /test-data/SRR13957123.consensus.fa --analysis-mode usher -o /test-data/SRR13957123-pusher && \
+ column -t -s, /test-data/SRR13957123-pusher/lineage_report.csv
+
+ # install unzip for unzipping zip archive from NCBI
+RUN apt-get update && apt-get install -y --no-install-recommends unzip
+
+# install ncbi datasets tool (pre-compiled binary); place in $PATH
+RUN wget https://ftp.ncbi.nlm.nih.gov/pub/datasets/command-line/LATEST/linux-amd64/datasets && \
+ chmod +x datasets && \
+ mv -v datasets /usr/local/bin
+
+# download assembly for a BA.1 from Florida (https://www.ncbi.nlm.nih.gov/biosample?term=SAMN29506515 and https://www.ncbi.nlm.nih.gov/nuccore/ON924087)
+# run pangolin in usher analysis mode
+RUN datasets download virus genome accession ON924087.1 --filename ON924087.1.zip && \
+ unzip ON924087.1.zip && rm ON924087.1.zip && \
+ mv -v ncbi_dataset/data/genomic.fna ON924087.1.genomic.fna && \
+ rm -vr ncbi_dataset/ README.md && \
+ pangolin ON924087.1.genomic.fna --analysis-mode usher -o ON924087.1-usher && \
+ column -t -s, ON924087.1-usher/lineage_report.csv
+
+# test specific for new lineage, XBB.1.16, introduced in pangolin-data v1.19
+# using this assembly: https://www.ncbi.nlm.nih.gov/nuccore/2440446687
+# biosample here: https://www.ncbi.nlm.nih.gov/biosample?term=SAMN33060589
+# one of the sample included in initial pango-designation here: https://github.com/cov-lineages/pango-designation/issues/1723
+RUN datasets download virus genome accession OQ381818.1 --filename OQ381818.1.zip && \
+ unzip OQ381818.1.zip && rm OQ381818.1.zip && \
+ mv -v ncbi_dataset/data/genomic.fna OQ381818.1.genomic.fna && \
+ rm -vr ncbi_dataset/ README.md && \
+ pangolin OQ381818.1.genomic.fna --analysis-mode usher -o OQ381818.1-usher && \
+ column -t -s, OQ381818.1-usher/lineage_report.csv
+
+# testing another XBB.1.16, trying to test scorpio functionality. Want pangolin to NOT assign lineage based on pango hash match.
+# this test runs as expected, uses scorpio to check for constellation of mutations, then assign using PUSHER placement
+RUN datasets download virus genome accession OR177999.1 --filename OR177999.1.zip && \
+unzip OR177999.1.zip && rm OR177999.1.zip && \
+mv -v ncbi_dataset/data/genomic.fna OR177999.1.genomic.fna && \
+rm -vr ncbi_dataset/ README.md && \
+pangolin OR177999.1.genomic.fna --analysis-mode usher -o OR177999.1-usher && \
+column -t -s, OR177999.1-usher/lineage_report.csv
+
+ ## test for BA.2.86
+ # virus identified in MI: https://www.ncbi.nlm.nih.gov/nuccore/OR461132.1
+RUN datasets download virus genome accession OR461132.1 --filename OR461132.1.zip && \
+unzip OR461132.1.zip && rm OR461132.1.zip && \
+mv -v ncbi_dataset/data/genomic.fna OR461132.1.genomic.fna && \
+rm -vr ncbi_dataset/ README.md && \
+pangolin OR461132.1.genomic.fna --analysis-mode usher -o OR461132.1-usher && \
+column -t -s, OR461132.1-usher/lineage_report.csv
+
+ ## test for JN.2 (BA.2.86 sublineage) JN.2 is an alias of B.1.1.529.2.86.1.2
+ # NY CDC Quest sample: https://www.ncbi.nlm.nih.gov/nuccore/OR598183
+RUN datasets download virus genome accession OR598183.1 --filename OR598183.1.zip && \
+unzip OR598183.1.zip && rm OR598183.1.zip && \
+mv -v ncbi_dataset/data/genomic.fna OR598183.1.genomic.fna && \
+rm -vr ncbi_dataset/ README.md && \
+pangolin OR598183.1.genomic.fna --analysis-mode usher -o OR598183.1-usher && \
+column -t -s, OR598183.1-usher/lineage_report.csv
+
+## test for JQ.1 (BA.2.86.3 sublineage); JQ.1 is an alias of B.1.1.529.2.86.3.1
+# THANK YOU ERIN AND UPHL!! https://www.ncbi.nlm.nih.gov/nuccore/OR716684
+# this test is important due to the fact that this lineage was included in the UShER tree, despite being designated after the pangolin-designation 1.23 release
+# it previously caused and error/bug in pangolin, but now is fixed
+RUN datasets download virus genome accession OR716684.1 --filename OR716684.1.zip && \
+unzip OR716684.1.zip && rm OR716684.1.zip && \
+mv -v ncbi_dataset/data/genomic.fna OR716684.1.genomic.fna && \
+rm -vr ncbi_dataset/ README.md && \
+pangolin OR716684.1.genomic.fna --analysis-mode usher -o OR716684.1-usher && \
+column -t -s, OR716684.1-usher/lineage_report.csv
+
+## test for JN.1.22 (BA.2.86.x sublineage; full unaliased lineage is B.1.1.529.2.86.1.1.22)
+# see here for commit where it was designated https://github.com/cov-lineages/pango-designation/commit/a90c8e31c154621ed86c985debfea09e17541cda
+# Here's the genome on NCBI, which was used to designate JN.1.22 lineage
+RUN datasets download virus genome accession PP189069.1 --filename PP189069.1.zip && \
+unzip PP189069.1.zip && rm PP189069.1.zip && \
+mv -v ncbi_dataset/data/genomic.fna PP189069.1.genomic.fna && \
+rm -vr ncbi_dataset/ README.md && \
+pangolin PP189069.1.genomic.fna --analysis-mode usher -o PP189069.1-usher && \
+column -t -s, PP189069.1-usher/lineage_report.csv
diff --git a/pangolin/4.3.1-pdata-1.25.1/README.md b/pangolin/4.3.1-pdata-1.25.1/README.md
new file mode 100644
index 000000000..c1c1f4232
--- /dev/null
+++ b/pangolin/4.3.1-pdata-1.25.1/README.md
@@ -0,0 +1,53 @@
+# pangolin docker image
+
+Main tool : [pangolin](https://github.com/cov-lineages/pangolin)
+
+Full documentation: [https://cov-lineages.org/resources/pangolin.html](https://cov-lineages.org/resources/pangolin.html)
+
+Phylogenetic Assignment of Named Global Outbreak LINeages
+
+Additional tools:
+
+- [pangolin-data](https://github.com/cov-lineages/pangolin-data) 1.25.1
+- [pangolin-assignment](https://github.com/cov-lineages/pangolin-assignment) 1.25.1
+- [minimap2](https://github.com/lh3/minimap2) 2.26-r1175
+- [usher](https://github.com/yatisht/usher) 0.6.3
+- [faToVcf](https://github.com/yatisht/usher) 448
+- [scorpio](https://github.com/cov-lineages/scorpio) 0.3.19
+- [constellations](https://github.com/cov-lineages/constellations) 0.1.12
+- [gofasta](https://github.com/virus-evolution/gofasta) 1.2.1
+- [mafft](https://mafft.cbrc.jp/alignment/software/) 7.520
+- python 3.8.18
+
+## pangoLEARN deprecation
+
+As of pangolin version 4.3, pangoLEARN mode has been deprecated. [More info can be found here on the v4.3 release page.](https://github.com/cov-lineages/pangolin/releases/tag/v4.3)
+
+> If `--analysis-mode fast` or `--analysis-mode pangolearn` is given, pangolin v4.3 will print out a warning and use UShER mode instead, unless `--datadir` is also given specifying a directory with pangoLEARN model files. The next release of pangolin-data (v1.20) will no longer include the model files which have not been updated since v1.18.
+
+This docker image contains `pangolin-data` v1.25.1. The pangoLEARN model has not been updated since pangolin-data version 1.18. Only the the underlying UShER tree/protobuf file will be maintained for the forseeable future.
+
+**Please use the UShER mode of pangolin if you want to stay up-to-date with the most recent lineages.** [See pangolin-data release notes here for more details](https://github.com/cov-lineages/pangolin-data/releases)
+
+## Example Usage
+
+```bash
+# run Pangolin in the default mode (usher). Can optionally supply --analysis-mode usher
+$ pangolin /pangolin/pangolin/test/test_seqs.fasta -o /data/test_seqs-output-pusher
+
+# view the output CSV
+$ column -t -s, /data/test_seqs-output-pusher/lineage_report.csv
+taxon lineage conflict ambiguity_score scorpio_call scorpio_support scorpio_conflict scorpio_notes version pangolin_version scorpio_version constellation_version is_designated qc_status qc_notes note
+India seq B.1.617.1 0.0 B.1.617.1-like 1.0 0.0 scorpio call: Alt alleles 11; Ref alleles 0; Amb alleles 0; Oth alleles 0 PUSHER-v1.16 4.1.3 0.3.17 v0.1.10 False pass Ambiguous_content:0.02 Usher placements: B.1.617.1(1/1)
+b117 B.1.1.7 0.0 Alpha (B.1.1.7-like) 0.91 0.04 scorpio call: Alt alleles 21; Ref alleles 1; Amb alleles 1; Oth alleles 0 PUSHER-v1.16 4.1.3 0.3.17 v0.1.10 False pass Ambiguous_content:0.02 Usher placements: B.1.1.7(2/2)
+outgroup_A A 0.0 PUSHER-v1.16 4.1.3 0.3.17 v0.1.10 False pass Ambiguous_content:0.02 Usher placements: A(1/1)
+issue_57_torsten_seq Unassigned PUSHER-v1.16 4.1.3 0.3.17 v0.1.10 False fail failed to map
+This_seq_has_6000_Ns_in_18000_bases Unassigned PUSHER-v1.16 4.1.3 0.3.17 v0.1.10 False fail failed to map
+This_seq_has_no_seq Unassigned PUSHER-v1.16 4.1.3 0.3.17 v0.1.10 False fail failed to map
+This_seq_is_too_short Unassigned PUSHER-v1.16 4.1.3 0.3.17 v0.1.10 False fail Ambiguous_content:0.9
+This_seq_has_lots_of_Ns Unassigned PUSHER-v1.16 4.1.3 0.3.17 v0.1.10 False fail Ambiguous_content:0.98
+This_seq_is_literally_just_N Unassigned PUSHER-v1.16 4.1.3 0.3.17 v0.1.10 False fail failed to map
+Japan_seq B 0.0 PANGO-v1.16 4.1.3 0.3.17 v0.1.10 True pass Ambiguous_content:0.02 Assigned from designation hash.
+USA_seq B.1.314 0.0 PANGO-v1.16 4.1.3 0.3.17 v0.1.10 True pass Ambiguous_content:0.02 Assigned from designation hash.
+Unassigned_omicron_seq BA.1 0.0 Probable Omicron (BA.1-like) 0.71 0.08 scorpio call: Alt alleles 42; Ref alleles 5; Amb alleles 9; Oth alleles 3 PUSHER-v1.16 4.1.3 0.3.17 v0.1.10 False pass Ambiguous_content:0.03 Usher placements: BA.1(1/1)
+```
diff --git a/pangolin/4.3.1-pdata-1.26/Dockerfile b/pangolin/4.3.1-pdata-1.26/Dockerfile
new file mode 100644
index 000000000..6187f1078
--- /dev/null
+++ b/pangolin/4.3.1-pdata-1.26/Dockerfile
@@ -0,0 +1,178 @@
+FROM mambaorg/micromamba:1.5.7 as app
+
+# build and run as root users since micromamba image has 'mambauser' set as the $USER
+USER root
+# set workdir to default for building; set to /data at the end
+WORKDIR /
+
+# ARG variables only persist during build time
+# had to include the v for some of these due to GitHub tags.
+# using pangolin-data github tag, NOT what is in the GH release title "v1.2.133"
+ARG PANGOLIN_VER="v4.3.1"
+ARG PANGOLIN_DATA_VER="v1.26"
+ARG SCORPIO_VER="v0.3.19"
+ARG CONSTELLATIONS_VER="v0.1.12"
+ARG USHER_VER="0.6.3"
+
+# metadata labels
+LABEL base.image="mambaorg/micromamba:1.5.7"
+LABEL dockerfile.version="1"
+LABEL software="pangolin"
+LABEL software.version=${PANGOLIN_VER}
+LABEL description="Conda environment for Pangolin. Pangolin: Software package for assigning SARS-CoV-2 genome sequences to global lineages."
+LABEL website="https://github.com/cov-lineages/pangolin"
+LABEL license="GNU General Public License v3.0"
+LABEL license.url="https://github.com/cov-lineages/pangolin/blob/master/LICENSE.txt"
+LABEL maintainer="Curtis Kapsak"
+LABEL maintainer.email="kapsakcj@gmail.com"
+
+# install dependencies; cleanup apt garbage
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ wget \
+ ca-certificates \
+ git \
+ procps \
+ bsdmainutils && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+# get the pangolin repo
+RUN wget "https://github.com/cov-lineages/pangolin/archive/${PANGOLIN_VER}.tar.gz" && \
+ tar -xf ${PANGOLIN_VER}.tar.gz && \
+ rm -v ${PANGOLIN_VER}.tar.gz && \
+ mv -v pangolin-* pangolin
+
+# set the environment; PATH is unnecessary here, but leaving anyways. It's reset later in dockerfile
+ENV PATH="$PATH" \
+ LC_ALL=C.UTF-8
+
+# modify environment.yml to pin specific versions during install
+# pin specific versions of usher, scorpio, pangolin-data, constellations, and pulp
+# create the conda environment using modified environment.yml
+RUN sed -i "s|usher.*|usher=${USHER_VER}|" /pangolin/environment.yml && \
+ sed -i "s|scorpio.git|scorpio.git@${SCORPIO_VER}|" /pangolin/environment.yml && \
+ sed -i "s|pangolin-data.git|pangolin-data.git@${PANGOLIN_DATA_VER}|" /pangolin/environment.yml && \
+ sed -i "s|constellations.git|constellations.git@${CONSTELLATIONS_VER}|" /pangolin/environment.yml && \
+ sed -i "12 a\ - pulp=2.7.0" /pangolin/environment.yml && \
+ micromamba create -n pangolin -y -f /pangolin/environment.yml
+
+# so that mamba/conda env is active when running below commands
+ENV ENV_NAME="pangolin"
+ARG MAMBA_DOCKERFILE_ACTIVATE=1
+
+WORKDIR /pangolin
+
+# run pip install step; download optional pre-computed assignment hashes for UShER (useful for running on large batches of samples)
+# best to skip using the assigment-cache if running on one sample for speed
+# print versions
+RUN pip install . && \
+ pangolin --add-assignment-cache && \
+ micromamba clean -a -y && \
+ mkdir /data && \
+ pangolin --all-versions && \
+ usher --version
+
+# final working directory in "app" layer is /data for passing data in/out of container
+WORKDIR /data
+
+# hardcode pangolin executable into the PATH variable
+ENV PATH="${PATH}:/opt/conda/envs/pangolin/bin/" XDG_CACHE_HOME=/tmp
+
+# default command is to pull up help options for pangolin; can be overridden of course
+CMD ["pangolin", "-h"]
+
+# new base for testing
+FROM app as test
+
+# so that mamba/conda env is active when running below commands
+ENV ENV_NAME="pangolin"
+ARG MAMBA_DOCKERFILE_ACTIVATE=1
+
+# test on test sequences supplied with Pangolin code
+RUN pangolin /pangolin/pangolin/test/test_seqs.fasta -o /data/test_seqs-output-pusher && \
+ column -t -s, /data/test_seqs-output-pusher/lineage_report.csv
+
+# test functionality of assignment-cache option
+RUN pangolin --use-assignment-cache /pangolin/pangolin/test/test_seqs.fasta
+
+# download B.1.1.7 genome from Utah
+ADD https://raw.githubusercontent.com/StaPH-B/docker-builds/master/tests/SARS-CoV-2/SRR13957123.consensus.fa /test-data/SRR13957123.consensus.fa
+
+# test on a B.1.1.7 genome
+RUN pangolin /test-data/SRR13957123.consensus.fa -o /test-data/SRR13957123-pusher && \
+ column -t -s, /test-data/SRR13957123-pusher/lineage_report.csv
+
+ # install unzip for unzipping zip archive from NCBI
+RUN apt-get update && apt-get install -y --no-install-recommends unzip
+
+# install ncbi datasets tool (pre-compiled binary); place in $PATH
+RUN wget https://ftp.ncbi.nlm.nih.gov/pub/datasets/command-line/LATEST/linux-amd64/datasets && \
+ chmod +x datasets && \
+ mv -v datasets /usr/local/bin
+
+# download assembly for a BA.1 from Florida (https://www.ncbi.nlm.nih.gov/biosample?term=SAMN29506515 and https://www.ncbi.nlm.nih.gov/nuccore/ON924087)
+# run pangolin in usher analysis mode
+RUN datasets download virus genome accession ON924087.1 --filename ON924087.1.zip && \
+ unzip ON924087.1.zip && rm ON924087.1.zip && \
+ mv -v ncbi_dataset/data/genomic.fna ON924087.1.genomic.fna && \
+ rm -vr ncbi_dataset/ README.md && \
+ pangolin ON924087.1.genomic.fna -o ON924087.1-usher && \
+ column -t -s, ON924087.1-usher/lineage_report.csv
+
+# test specific for new lineage, XBB.1.16, introduced in pangolin-data v1.19
+# using this assembly: https://www.ncbi.nlm.nih.gov/nuccore/2440446687
+# biosample here: https://www.ncbi.nlm.nih.gov/biosample?term=SAMN33060589
+# one of the sample included in initial pango-designation here: https://github.com/cov-lineages/pango-designation/issues/1723
+RUN datasets download virus genome accession OQ381818.1 --filename OQ381818.1.zip && \
+ unzip OQ381818.1.zip && rm OQ381818.1.zip && \
+ mv -v ncbi_dataset/data/genomic.fna OQ381818.1.genomic.fna && \
+ rm -vr ncbi_dataset/ README.md && \
+ pangolin OQ381818.1.genomic.fna -o OQ381818.1-usher && \
+ column -t -s, OQ381818.1-usher/lineage_report.csv
+
+# testing another XBB.1.16, trying to test scorpio functionality. Want pangolin to NOT assign lineage based on pango hash match.
+# this test runs as expected, uses scorpio to check for constellation of mutations, then assign using PUSHER placement
+RUN datasets download virus genome accession OR177999.1 --filename OR177999.1.zip && \
+unzip OR177999.1.zip && rm OR177999.1.zip && \
+mv -v ncbi_dataset/data/genomic.fna OR177999.1.genomic.fna && \
+rm -vr ncbi_dataset/ README.md && \
+pangolin OR177999.1.genomic.fna -o OR177999.1-usher && \
+column -t -s, OR177999.1-usher/lineage_report.csv
+
+ ## test for BA.2.86
+ # virus identified in MI: https://www.ncbi.nlm.nih.gov/nuccore/OR461132.1
+RUN datasets download virus genome accession OR461132.1 --filename OR461132.1.zip && \
+unzip OR461132.1.zip && rm OR461132.1.zip && \
+mv -v ncbi_dataset/data/genomic.fna OR461132.1.genomic.fna && \
+rm -vr ncbi_dataset/ README.md && \
+pangolin OR461132.1.genomic.fna -o OR461132.1-usher && \
+column -t -s, OR461132.1-usher/lineage_report.csv
+
+ ## test for JN.2 (BA.2.86 sublineage) JN.2 is an alias of B.1.1.529.2.86.1.2
+ # NY CDC Quest sample: https://www.ncbi.nlm.nih.gov/nuccore/OR598183
+RUN datasets download virus genome accession OR598183.1 --filename OR598183.1.zip && \
+unzip OR598183.1.zip && rm OR598183.1.zip && \
+mv -v ncbi_dataset/data/genomic.fna OR598183.1.genomic.fna && \
+rm -vr ncbi_dataset/ README.md && \
+pangolin OR598183.1.genomic.fna -o OR598183.1-usher && \
+column -t -s, OR598183.1-usher/lineage_report.csv
+
+## test for JQ.1 (BA.2.86.3 sublineage); JQ.1 is an alias of B.1.1.529.2.86.3.1
+# THANK YOU ERIN AND UPHL!! https://www.ncbi.nlm.nih.gov/nuccore/OR716684
+# this test is important due to the fact that this lineage was included in the UShER tree, despite being designated after the pangolin-designation 1.23 release
+# it previously caused and error/bug in pangolin, but now is fixed
+RUN datasets download virus genome accession OR716684.1 --filename OR716684.1.zip && \
+unzip OR716684.1.zip && rm OR716684.1.zip && \
+mv -v ncbi_dataset/data/genomic.fna OR716684.1.genomic.fna && \
+rm -vr ncbi_dataset/ README.md && \
+pangolin OR716684.1.genomic.fna -o OR716684.1-usher && \
+column -t -s, OR716684.1-usher/lineage_report.csv
+
+## test for JN.1.22 (BA.2.86.x sublineage; full unaliased lineage is B.1.1.529.2.86.1.1.22)
+# see here for commit where it was designated https://github.com/cov-lineages/pango-designation/commit/a90c8e31c154621ed86c985debfea09e17541cda
+# Here's the genome on NCBI, which was used to designate JN.1.22 lineage
+RUN datasets download virus genome accession PP189069.1 --filename PP189069.1.zip && \
+unzip PP189069.1.zip && rm PP189069.1.zip && \
+mv -v ncbi_dataset/data/genomic.fna PP189069.1.genomic.fna && \
+rm -vr ncbi_dataset/ README.md && \
+pangolin PP189069.1.genomic.fna -o PP189069.1-usher && \
+column -t -s, PP189069.1-usher/lineage_report.csv
diff --git a/pangolin/4.3.1-pdata-1.26/README.md b/pangolin/4.3.1-pdata-1.26/README.md
new file mode 100644
index 000000000..ba4c5d724
--- /dev/null
+++ b/pangolin/4.3.1-pdata-1.26/README.md
@@ -0,0 +1,53 @@
+# pangolin docker image
+
+Main tool : [pangolin](https://github.com/cov-lineages/pangolin)
+
+Full documentation: [https://cov-lineages.org/resources/pangolin.html](https://cov-lineages.org/resources/pangolin.html)
+
+Phylogenetic Assignment of Named Global Outbreak LINeages
+
+Additional tools:
+
+- [pangolin-data](https://github.com/cov-lineages/pangolin-data) 1.26
+- [pangolin-assignment](https://github.com/cov-lineages/pangolin-assignment) 1.26
+- [minimap2](https://github.com/lh3/minimap2) 2.26-r1175
+- [usher](https://github.com/yatisht/usher) 0.6.3
+- [faToVcf](https://github.com/yatisht/usher) 448
+- [scorpio](https://github.com/cov-lineages/scorpio) 0.3.19
+- [constellations](https://github.com/cov-lineages/constellations) 0.1.12
+- [gofasta](https://github.com/virus-evolution/gofasta) 1.2.1
+- [mafft](https://mafft.cbrc.jp/alignment/software/) 7.520
+- python 3.8.18
+
+## pangoLEARN deprecation
+
+As of pangolin version 4.3, pangoLEARN mode has been deprecated. [More info can be found here on the v4.3 release page.](https://github.com/cov-lineages/pangolin/releases/tag/v4.3)
+
+> If `--analysis-mode fast` or `--analysis-mode pangolearn` is given, pangolin v4.3 will print out a warning and use UShER mode instead, unless `--datadir` is also given specifying a directory with pangoLEARN model files. The next release of pangolin-data (v1.20) will no longer include the model files which have not been updated since v1.18.
+
+This docker image contains `pangolin-data` v1.26. The pangoLEARN model has not been updated since pangolin-data version 1.18. Only the the underlying UShER tree/protobuf file will be maintained for the forseeable future.
+
+**Please use the UShER mode of pangolin if you want to stay up-to-date with the most recent lineages.** [See pangolin-data release notes here for more details](https://github.com/cov-lineages/pangolin-data/releases)
+
+## Example Usage
+
+```bash
+# run Pangolin in the default mode (usher). Can optionally supply --analysis-mode usher
+$ pangolin /pangolin/pangolin/test/test_seqs.fasta -o /data/test_seqs-output-pusher
+
+# view the output CSV
+$ column -t -s, /data/test_seqs-output-pusher/lineage_report.csv
+taxon lineage conflict ambiguity_score scorpio_call scorpio_support scorpio_conflict scorpio_notes version pangolin_version scorpio_version constellation_version is_designated qc_status qc_notes note
+India seq B.1.617.1 0.0 B.1.617.1-like 1.0 0.0 scorpio call: Alt alleles 11; Ref alleles 0; Amb alleles 0; Oth alleles 0 PUSHER-v1.16 4.1.3 0.3.17 v0.1.10 False pass Ambiguous_content:0.02 Usher placements: B.1.617.1(1/1)
+b117 B.1.1.7 0.0 Alpha (B.1.1.7-like) 0.91 0.04 scorpio call: Alt alleles 21; Ref alleles 1; Amb alleles 1; Oth alleles 0 PUSHER-v1.16 4.1.3 0.3.17 v0.1.10 False pass Ambiguous_content:0.02 Usher placements: B.1.1.7(2/2)
+outgroup_A A 0.0 PUSHER-v1.16 4.1.3 0.3.17 v0.1.10 False pass Ambiguous_content:0.02 Usher placements: A(1/1)
+issue_57_torsten_seq Unassigned PUSHER-v1.16 4.1.3 0.3.17 v0.1.10 False fail failed to map
+This_seq_has_6000_Ns_in_18000_bases Unassigned PUSHER-v1.16 4.1.3 0.3.17 v0.1.10 False fail failed to map
+This_seq_has_no_seq Unassigned PUSHER-v1.16 4.1.3 0.3.17 v0.1.10 False fail failed to map
+This_seq_is_too_short Unassigned PUSHER-v1.16 4.1.3 0.3.17 v0.1.10 False fail Ambiguous_content:0.9
+This_seq_has_lots_of_Ns Unassigned PUSHER-v1.16 4.1.3 0.3.17 v0.1.10 False fail Ambiguous_content:0.98
+This_seq_is_literally_just_N Unassigned PUSHER-v1.16 4.1.3 0.3.17 v0.1.10 False fail failed to map
+Japan_seq B 0.0 PANGO-v1.16 4.1.3 0.3.17 v0.1.10 True pass Ambiguous_content:0.02 Assigned from designation hash.
+USA_seq B.1.314 0.0 PANGO-v1.16 4.1.3 0.3.17 v0.1.10 True pass Ambiguous_content:0.02 Assigned from designation hash.
+Unassigned_omicron_seq BA.1 0.0 Probable Omicron (BA.1-like) 0.71 0.08 scorpio call: Alt alleles 42; Ref alleles 5; Amb alleles 9; Oth alleles 3 PUSHER-v1.16 4.1.3 0.3.17 v0.1.10 False pass Ambiguous_content:0.03 Usher placements: BA.1(1/1)
+```
diff --git a/pangolin/4.3.1-pdata-1.27/Dockerfile b/pangolin/4.3.1-pdata-1.27/Dockerfile
new file mode 100644
index 000000000..a193226a0
--- /dev/null
+++ b/pangolin/4.3.1-pdata-1.27/Dockerfile
@@ -0,0 +1,189 @@
+FROM mambaorg/micromamba:1.5.8 as app
+
+# build and run as root users since micromamba image has 'mambauser' set as the $USER
+USER root
+# set workdir to default for building; set to /data at the end
+WORKDIR /
+
+# ARG variables only persist during build time
+# had to include the v for some of these due to GitHub tags.
+# using pangolin-data github tag, NOT what is in the GH release title "v1.2.133"
+ARG PANGOLIN_VER="v4.3.1"
+ARG PANGOLIN_DATA_VER="v1.27"
+ARG SCORPIO_VER="v0.3.19"
+ARG CONSTELLATIONS_VER="v0.1.12"
+ARG USHER_VER="0.6.3"
+
+# metadata labels
+LABEL base.image="mambaorg/micromamba:1.5.8"
+LABEL dockerfile.version="1"
+LABEL software="pangolin"
+LABEL software.version=${PANGOLIN_VER}
+LABEL description="Conda environment for Pangolin. Pangolin: Software package for assigning SARS-CoV-2 genome sequences to global lineages."
+LABEL website="https://github.com/cov-lineages/pangolin"
+LABEL license="GNU General Public License v3.0"
+LABEL license.url="https://github.com/cov-lineages/pangolin/blob/master/LICENSE.txt"
+LABEL maintainer="Curtis Kapsak"
+LABEL maintainer.email="kapsakcj@gmail.com"
+
+# install dependencies; cleanup apt garbage
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ wget \
+ ca-certificates \
+ git \
+ procps \
+ bsdmainutils && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+# get the pangolin repo
+RUN wget "https://github.com/cov-lineages/pangolin/archive/${PANGOLIN_VER}.tar.gz" && \
+ tar -xf ${PANGOLIN_VER}.tar.gz && \
+ rm -v ${PANGOLIN_VER}.tar.gz && \
+ mv -v pangolin-* pangolin
+
+# set the environment; PATH is unnecessary here, but leaving anyways. It's reset later in dockerfile
+ENV PATH="$PATH" \
+ LC_ALL=C.UTF-8
+
+# modify environment.yml to pin specific versions during install
+# pin specific versions of usher, scorpio, pangolin-data, constellations, and pulp
+# create the conda environment using modified environment.yml
+RUN sed -i "s|usher.*|usher=${USHER_VER}|" /pangolin/environment.yml && \
+ sed -i "s|scorpio.git|scorpio.git@${SCORPIO_VER}|" /pangolin/environment.yml && \
+ sed -i "s|pangolin-data.git|pangolin-data.git@${PANGOLIN_DATA_VER}|" /pangolin/environment.yml && \
+ sed -i "s|constellations.git|constellations.git@${CONSTELLATIONS_VER}|" /pangolin/environment.yml && \
+ sed -i "12 a\ - pulp=2.7.0" /pangolin/environment.yml && \
+ micromamba create -n pangolin -y -f /pangolin/environment.yml
+
+# so that mamba/conda env is active when running below commands
+ENV ENV_NAME="pangolin"
+ARG MAMBA_DOCKERFILE_ACTIVATE=1
+
+WORKDIR /pangolin
+
+# run pip install step; download optional pre-computed assignment hashes for UShER (useful for running on large batches of samples)
+# best to skip using the assigment-cache if running on one sample for speed
+# print versions
+RUN pip install . && \
+ pangolin --add-assignment-cache && \
+ micromamba clean -a -y && \
+ mkdir /data && \
+ pangolin --all-versions && \
+ usher --version
+
+# final working directory in "app" layer is /data for passing data in/out of container
+WORKDIR /data
+
+# hardcode pangolin executable into the PATH variable
+ENV PATH="${PATH}:/opt/conda/envs/pangolin/bin/" XDG_CACHE_HOME=/tmp
+
+# default command is to pull up help options for pangolin; can be overridden of course
+CMD ["pangolin", "-h"]
+
+# new base for testing
+FROM app as test
+
+# so that mamba/conda env is active when running below commands
+ENV ENV_NAME="pangolin"
+ARG MAMBA_DOCKERFILE_ACTIVATE=1
+
+# test on test sequences supplied with Pangolin code
+RUN pangolin /pangolin/pangolin/test/test_seqs.fasta -o /data/test_seqs-output-pusher && \
+ column -t -s, /data/test_seqs-output-pusher/lineage_report.csv
+
+# test functionality of assignment-cache option
+RUN pangolin --use-assignment-cache /pangolin/pangolin/test/test_seqs.fasta
+
+# download B.1.1.7 genome from Utah
+ADD https://raw.githubusercontent.com/StaPH-B/docker-builds/master/tests/SARS-CoV-2/SRR13957123.consensus.fa /test-data/SRR13957123.consensus.fa
+
+# test on a B.1.1.7 genome
+RUN pangolin /test-data/SRR13957123.consensus.fa -o /test-data/SRR13957123-pusher && \
+ column -t -s, /test-data/SRR13957123-pusher/lineage_report.csv
+
+ # install unzip for unzipping zip archive from NCBI
+RUN apt-get update && apt-get install -y --no-install-recommends unzip
+
+# install ncbi datasets tool (pre-compiled binary); place in $PATH
+RUN wget https://ftp.ncbi.nlm.nih.gov/pub/datasets/command-line/LATEST/linux-amd64/datasets && \
+ chmod +x datasets && \
+ mv -v datasets /usr/local/bin
+
+# download assembly for a BA.1 from Florida (https://www.ncbi.nlm.nih.gov/biosample?term=SAMN29506515 and https://www.ncbi.nlm.nih.gov/nuccore/ON924087)
+# run pangolin in usher analysis mode
+RUN datasets download virus genome accession ON924087.1 --filename ON924087.1.zip && \
+ unzip ON924087.1.zip && rm ON924087.1.zip && \
+ mv -v ncbi_dataset/data/genomic.fna ON924087.1.genomic.fna && \
+ rm -vr ncbi_dataset/ README.md && \
+ pangolin ON924087.1.genomic.fna -o ON924087.1-usher && \
+ column -t -s, ON924087.1-usher/lineage_report.csv
+
+# test specific for new lineage, XBB.1.16, introduced in pangolin-data v1.19
+# using this assembly: https://www.ncbi.nlm.nih.gov/nuccore/2440446687
+# biosample here: https://www.ncbi.nlm.nih.gov/biosample?term=SAMN33060589
+# one of the sample included in initial pango-designation here: https://github.com/cov-lineages/pango-designation/issues/1723
+RUN datasets download virus genome accession OQ381818.1 --filename OQ381818.1.zip && \
+ unzip OQ381818.1.zip && rm OQ381818.1.zip && \
+ mv -v ncbi_dataset/data/genomic.fna OQ381818.1.genomic.fna && \
+ rm -vr ncbi_dataset/ README.md && \
+ pangolin OQ381818.1.genomic.fna -o OQ381818.1-usher && \
+ column -t -s, OQ381818.1-usher/lineage_report.csv
+
+# testing another XBB.1.16, trying to test scorpio functionality. Want pangolin to NOT assign lineage based on pango hash match.
+# this test runs as expected, uses scorpio to check for constellation of mutations, then assign using PUSHER placement
+RUN datasets download virus genome accession OR177999.1 --filename OR177999.1.zip && \
+unzip OR177999.1.zip && rm OR177999.1.zip && \
+mv -v ncbi_dataset/data/genomic.fna OR177999.1.genomic.fna && \
+rm -vr ncbi_dataset/ README.md && \
+pangolin OR177999.1.genomic.fna -o OR177999.1-usher && \
+column -t -s, OR177999.1-usher/lineage_report.csv
+
+ ## test for BA.2.86
+ # virus identified in MI: https://www.ncbi.nlm.nih.gov/nuccore/OR461132.1
+RUN datasets download virus genome accession OR461132.1 --filename OR461132.1.zip && \
+unzip OR461132.1.zip && rm OR461132.1.zip && \
+mv -v ncbi_dataset/data/genomic.fna OR461132.1.genomic.fna && \
+rm -vr ncbi_dataset/ README.md && \
+pangolin OR461132.1.genomic.fna -o OR461132.1-usher && \
+column -t -s, OR461132.1-usher/lineage_report.csv
+
+ ## test for JN.2 (BA.2.86 sublineage) JN.2 is an alias of B.1.1.529.2.86.1.2
+ # NY CDC Quest sample: https://www.ncbi.nlm.nih.gov/nuccore/OR598183
+RUN datasets download virus genome accession OR598183.1 --filename OR598183.1.zip && \
+unzip OR598183.1.zip && rm OR598183.1.zip && \
+mv -v ncbi_dataset/data/genomic.fna OR598183.1.genomic.fna && \
+rm -vr ncbi_dataset/ README.md && \
+pangolin OR598183.1.genomic.fna -o OR598183.1-usher && \
+column -t -s, OR598183.1-usher/lineage_report.csv
+
+## test for JQ.1 (BA.2.86.3 sublineage); JQ.1 is an alias of B.1.1.529.2.86.3.1
+# THANK YOU ERIN AND UPHL!! https://www.ncbi.nlm.nih.gov/nuccore/OR716684
+# this test is important due to the fact that this lineage was included in the UShER tree, despite being designated after the pangolin-designation 1.23 release
+# it previously caused and error/bug in pangolin, but now is fixed
+RUN datasets download virus genome accession OR716684.1 --filename OR716684.1.zip && \
+unzip OR716684.1.zip && rm OR716684.1.zip && \
+mv -v ncbi_dataset/data/genomic.fna OR716684.1.genomic.fna && \
+rm -vr ncbi_dataset/ README.md && \
+pangolin OR716684.1.genomic.fna -o OR716684.1-usher && \
+column -t -s, OR716684.1-usher/lineage_report.csv
+
+## test for JN.1.22 (BA.2.86.x sublineage; full unaliased lineage is B.1.1.529.2.86.1.1.22)
+# see here for commit where it was designated https://github.com/cov-lineages/pango-designation/commit/a90c8e31c154621ed86c985debfea09e17541cda
+# Here's the genome on NCBI, which was used to designate JN.1.22 lineage
+RUN datasets download virus genome accession PP189069.1 --filename PP189069.1.zip && \
+unzip PP189069.1.zip && rm PP189069.1.zip && \
+mv -v ncbi_dataset/data/genomic.fna PP189069.1.genomic.fna && \
+rm -vr ncbi_dataset/ README.md && \
+pangolin PP189069.1.genomic.fna -o PP189069.1-usher && \
+column -t -s, PP189069.1-usher/lineage_report.csv
+
+## test for JN.1.48 (BA.2.86.x sublineage; full unaliased lineage is B.1.1.529.2.86.1.1.48)
+# this lineages which was designated in pango-designation v1.27: https://github.com/cov-lineages/pango-designation/releases/tag/v1.27
+# see here for commit where it was designated https://github.com/cov-lineages/pango-designation/commit/67f48bf24283999f1940f3aee8159f404124ff3f
+# Here's the genome on NCBI: https://www.ncbi.nlm.nih.gov/nuccore/PP218754
+RUN datasets download virus genome accession PP218754.1 --filename PP218754.1.zip && \
+unzip PP218754.1.zip && rm PP218754.1.zip && \
+mv -v ncbi_dataset/data/genomic.fna PP218754.1.genomic.fna && \
+rm -vr ncbi_dataset/ README.md && \
+pangolin PP218754.1.genomic.fna -o PP218754.1-usher && \
+column -t -s, PP218754.1-usher/lineage_report.csv
\ No newline at end of file
diff --git a/pangolin/4.3.1-pdata-1.27/README.md b/pangolin/4.3.1-pdata-1.27/README.md
new file mode 100644
index 000000000..1faa2cac8
--- /dev/null
+++ b/pangolin/4.3.1-pdata-1.27/README.md
@@ -0,0 +1,53 @@
+# pangolin docker image
+
+Main tool : [pangolin](https://github.com/cov-lineages/pangolin)
+
+Full documentation: [https://cov-lineages.org/resources/pangolin.html](https://cov-lineages.org/resources/pangolin.html)
+
+Phylogenetic Assignment of Named Global Outbreak LINeages
+
+Additional tools:
+
+- [pangolin-data](https://github.com/cov-lineages/pangolin-data) 1.27
+- [pangolin-assignment](https://github.com/cov-lineages/pangolin-assignment) 1.27
+- [minimap2](https://github.com/lh3/minimap2) 2.28-r1209
+- [usher](https://github.com/yatisht/usher) 0.6.3
+- [faToVcf](https://github.com/yatisht/usher) 448
+- [scorpio](https://github.com/cov-lineages/scorpio) 0.3.19
+- [constellations](https://github.com/cov-lineages/constellations) 0.1.12
+- [gofasta](https://github.com/virus-evolution/gofasta) 1.2.1
+- [mafft](https://mafft.cbrc.jp/alignment/software/) 7.526
+- python 3.8.18
+
+## pangoLEARN deprecation
+
+As of pangolin version 4.3, pangoLEARN mode has been deprecated. [More info can be found here on the v4.3 release page.](https://github.com/cov-lineages/pangolin/releases/tag/v4.3)
+
+> If `--analysis-mode fast` or `--analysis-mode pangolearn` is given, pangolin v4.3 will print out a warning and use UShER mode instead, unless `--datadir` is also given specifying a directory with pangoLEARN model files. The next release of pangolin-data (v1.20) will no longer include the model files which have not been updated since v1.18.
+
+This docker image contains `pangolin-data` v1.27. The pangoLEARN model has not been updated since pangolin-data version 1.18. Only the the underlying UShER tree/protobuf file will be maintained for the forseeable future.
+
+**Please use the UShER mode of pangolin if you want to stay up-to-date with the most recent lineages.** [See pangolin-data release notes here for more details](https://github.com/cov-lineages/pangolin-data/releases)
+
+## Example Usage
+
+```bash
+# run Pangolin in the default mode (usher). Can optionally supply --analysis-mode usher
+$ pangolin /pangolin/pangolin/test/test_seqs.fasta -o /data/test_seqs-output-pusher
+
+# view the output CSV
+$ column -t -s, /data/test_seqs-output-pusher/lineage_report.csv
+taxon lineage conflict ambiguity_score scorpio_call scorpio_support scorpio_conflict scorpio_notes version pangolin_version scorpio_version constellation_version is_designated qc_status qc_notes note
+India seq B.1.617.1 0.0 B.1.617.1-like 1.0 0.0 scorpio call: Alt alleles 11; Ref alleles 0; Amb alleles 0; Oth alleles 0 PUSHER-v1.16 4.1.3 0.3.17 v0.1.10 False pass Ambiguous_content:0.02 Usher placements: B.1.617.1(1/1)
+b117 B.1.1.7 0.0 Alpha (B.1.1.7-like) 0.91 0.04 scorpio call: Alt alleles 21; Ref alleles 1; Amb alleles 1; Oth alleles 0 PUSHER-v1.16 4.1.3 0.3.17 v0.1.10 False pass Ambiguous_content:0.02 Usher placements: B.1.1.7(2/2)
+outgroup_A A 0.0 PUSHER-v1.16 4.1.3 0.3.17 v0.1.10 False pass Ambiguous_content:0.02 Usher placements: A(1/1)
+issue_57_torsten_seq Unassigned PUSHER-v1.16 4.1.3 0.3.17 v0.1.10 False fail failed to map
+This_seq_has_6000_Ns_in_18000_bases Unassigned PUSHER-v1.16 4.1.3 0.3.17 v0.1.10 False fail failed to map
+This_seq_has_no_seq Unassigned PUSHER-v1.16 4.1.3 0.3.17 v0.1.10 False fail failed to map
+This_seq_is_too_short Unassigned PUSHER-v1.16 4.1.3 0.3.17 v0.1.10 False fail Ambiguous_content:0.9
+This_seq_has_lots_of_Ns Unassigned PUSHER-v1.16 4.1.3 0.3.17 v0.1.10 False fail Ambiguous_content:0.98
+This_seq_is_literally_just_N Unassigned PUSHER-v1.16 4.1.3 0.3.17 v0.1.10 False fail failed to map
+Japan_seq B 0.0 PANGO-v1.16 4.1.3 0.3.17 v0.1.10 True pass Ambiguous_content:0.02 Assigned from designation hash.
+USA_seq B.1.314 0.0 PANGO-v1.16 4.1.3 0.3.17 v0.1.10 True pass Ambiguous_content:0.02 Assigned from designation hash.
+Unassigned_omicron_seq BA.1 0.0 Probable Omicron (BA.1-like) 0.71 0.08 scorpio call: Alt alleles 42; Ref alleles 5; Amb alleles 9; Oth alleles 3 PUSHER-v1.16 4.1.3 0.3.17 v0.1.10 False pass Ambiguous_content:0.03 Usher placements: BA.1(1/1)
+```
diff --git a/pangolin/4.3.1-pdata-1.28.1/Dockerfile b/pangolin/4.3.1-pdata-1.28.1/Dockerfile
new file mode 100644
index 000000000..5afcc502f
--- /dev/null
+++ b/pangolin/4.3.1-pdata-1.28.1/Dockerfile
@@ -0,0 +1,199 @@
+FROM mambaorg/micromamba:1.5.8 AS app
+
+# build and run as root users since micromamba image has 'mambauser' set as the $USER
+USER root
+# set workdir to default for building; set to /data at the end
+WORKDIR /
+
+# ARG variables only persist during build time
+# had to include the v for some of these due to GitHub tags.
+# using pangolin-data github tag, NOT what is in the GH release title "v1.2.133"
+ARG PANGOLIN_VER="v4.3.1"
+ARG PANGOLIN_DATA_VER="v1.28.1"
+ARG SCORPIO_VER="v0.3.19"
+ARG CONSTELLATIONS_VER="v0.1.12"
+ARG USHER_VER="0.6.3"
+
+# metadata labels
+LABEL base.image="mambaorg/micromamba:1.5.8"
+LABEL dockerfile.version="1"
+LABEL software="pangolin"
+LABEL software.version=${PANGOLIN_VER}
+LABEL description="Conda environment for Pangolin. Pangolin: Software package for assigning SARS-CoV-2 genome sequences to global lineages."
+LABEL website="https://github.com/cov-lineages/pangolin"
+LABEL license="GNU General Public License v3.0"
+LABEL license.url="https://github.com/cov-lineages/pangolin/blob/master/LICENSE.txt"
+LABEL maintainer="Curtis Kapsak"
+LABEL maintainer.email="kapsakcj@gmail.com"
+
+# install dependencies; cleanup apt garbage
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ wget \
+ ca-certificates \
+ git \
+ procps \
+ bsdmainutils && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+# get the pangolin repo
+RUN wget "https://github.com/cov-lineages/pangolin/archive/${PANGOLIN_VER}.tar.gz" && \
+ tar -xf ${PANGOLIN_VER}.tar.gz && \
+ rm -v ${PANGOLIN_VER}.tar.gz && \
+ mv -v pangolin-* pangolin
+
+# set the environment; PATH is unnecessary here, but leaving anyways. It's reset later in dockerfile
+ENV PATH="$PATH" \
+ LC_ALL=C.UTF-8
+
+# modify environment.yml to pin specific versions during install
+# pin specific versions of usher, scorpio, pangolin-data, constellations, and pulp
+# create the conda environment using modified environment.yml
+RUN sed -i "s|usher.*|usher=${USHER_VER}|" /pangolin/environment.yml && \
+ sed -i "s|scorpio.git|scorpio.git@${SCORPIO_VER}|" /pangolin/environment.yml && \
+ sed -i "s|pangolin-data.git|pangolin-data.git@${PANGOLIN_DATA_VER}|" /pangolin/environment.yml && \
+ sed -i "s|constellations.git|constellations.git@${CONSTELLATIONS_VER}|" /pangolin/environment.yml && \
+ sed -i "12 a\ - pulp=2.7.0" /pangolin/environment.yml && \
+ micromamba create -n pangolin -y -f /pangolin/environment.yml && \
+ micromamba clean -a -y -f
+
+# so that mamba/conda env is active when running below commands
+ENV ENV_NAME="pangolin"
+ARG MAMBA_DOCKERFILE_ACTIVATE=1
+
+WORKDIR /pangolin
+
+# run pip install step; download optional pre-computed assignment hashes for UShER (useful for running on large batches of samples)
+# best to skip using the assigment-cache if running on one sample for speed
+# print versions
+RUN pip install . && \
+ pangolin --add-assignment-cache && \
+ mkdir /data && \
+ pangolin --all-versions && \
+ usher --version
+
+# final working directory in "app" layer is /data for passing data in/out of container
+WORKDIR /data
+
+# hardcode pangolin executable into the PATH variable
+ENV PATH="${PATH}:/opt/conda/envs/pangolin/bin/" XDG_CACHE_HOME=/tmp
+
+# default command is to pull up help options for pangolin; can be overridden of course
+CMD ["pangolin", "-h"]
+
+# new base for testing
+FROM app AS test
+
+# so that mamba/conda env is active when running below commands
+ENV ENV_NAME="pangolin"
+ARG MAMBA_DOCKERFILE_ACTIVATE=1
+
+# test on test sequences supplied with Pangolin code
+RUN pangolin /pangolin/pangolin/test/test_seqs.fasta -o /data/test_seqs-output-pusher && \
+ column -t -s, /data/test_seqs-output-pusher/lineage_report.csv
+
+# test functionality of assignment-cache option
+RUN pangolin --use-assignment-cache /pangolin/pangolin/test/test_seqs.fasta
+
+# download B.1.1.7 genome from Utah
+ADD https://raw.githubusercontent.com/StaPH-B/docker-builds/master/tests/SARS-CoV-2/SRR13957123.consensus.fa /test-data/SRR13957123.consensus.fa
+
+# test on a B.1.1.7 genome
+RUN pangolin /test-data/SRR13957123.consensus.fa -o /test-data/SRR13957123-pusher && \
+ column -t -s, /test-data/SRR13957123-pusher/lineage_report.csv
+
+ # install unzip for unzipping zip archive from NCBI
+RUN apt-get update && apt-get install -y --no-install-recommends unzip
+
+# install ncbi datasets tool (pre-compiled binary); place in $PATH
+RUN wget https://ftp.ncbi.nlm.nih.gov/pub/datasets/command-line/LATEST/linux-amd64/datasets && \
+ chmod +x datasets && \
+ mv -v datasets /usr/local/bin
+
+# download assembly for a BA.1 from Florida (https://www.ncbi.nlm.nih.gov/biosample?term=SAMN29506515 and https://www.ncbi.nlm.nih.gov/nuccore/ON924087)
+# run pangolin in usher analysis mode
+RUN datasets download virus genome accession ON924087.1 --filename ON924087.1.zip && \
+ unzip ON924087.1.zip && rm ON924087.1.zip && \
+ mv -v ncbi_dataset/data/genomic.fna ON924087.1.genomic.fna && \
+ rm -vr ncbi_dataset/ README.md && \
+ pangolin ON924087.1.genomic.fna -o ON924087.1-usher && \
+ column -t -s, ON924087.1-usher/lineage_report.csv
+
+# test specific for new lineage, XBB.1.16, introduced in pangolin-data v1.19
+# using this assembly: https://www.ncbi.nlm.nih.gov/nuccore/2440446687
+# biosample here: https://www.ncbi.nlm.nih.gov/biosample?term=SAMN33060589
+# one of the sample included in initial pango-designation here: https://github.com/cov-lineages/pango-designation/issues/1723
+RUN datasets download virus genome accession OQ381818.1 --filename OQ381818.1.zip && \
+ unzip OQ381818.1.zip && rm OQ381818.1.zip && \
+ mv -v ncbi_dataset/data/genomic.fna OQ381818.1.genomic.fna && \
+ rm -vr ncbi_dataset/ README.md && \
+ pangolin OQ381818.1.genomic.fna -o OQ381818.1-usher && \
+ column -t -s, OQ381818.1-usher/lineage_report.csv
+
+# testing another XBB.1.16, trying to test scorpio functionality. Want pangolin to NOT assign lineage based on pango hash match.
+# this test runs as expected, uses scorpio to check for constellation of mutations, then assign using PUSHER placement
+RUN datasets download virus genome accession OR177999.1 --filename OR177999.1.zip && \
+unzip OR177999.1.zip && rm OR177999.1.zip && \
+mv -v ncbi_dataset/data/genomic.fna OR177999.1.genomic.fna && \
+rm -vr ncbi_dataset/ README.md && \
+pangolin OR177999.1.genomic.fna -o OR177999.1-usher && \
+column -t -s, OR177999.1-usher/lineage_report.csv
+
+ ## test for BA.2.86
+ # virus identified in MI: https://www.ncbi.nlm.nih.gov/nuccore/OR461132.1
+RUN datasets download virus genome accession OR461132.1 --filename OR461132.1.zip && \
+unzip OR461132.1.zip && rm OR461132.1.zip && \
+mv -v ncbi_dataset/data/genomic.fna OR461132.1.genomic.fna && \
+rm -vr ncbi_dataset/ README.md && \
+pangolin OR461132.1.genomic.fna -o OR461132.1-usher && \
+column -t -s, OR461132.1-usher/lineage_report.csv
+
+ ## test for JN.2 (BA.2.86 sublineage) JN.2 is an alias of B.1.1.529.2.86.1.2
+ # NY CDC Quest sample: https://www.ncbi.nlm.nih.gov/nuccore/OR598183
+RUN datasets download virus genome accession OR598183.1 --filename OR598183.1.zip && \
+unzip OR598183.1.zip && rm OR598183.1.zip && \
+mv -v ncbi_dataset/data/genomic.fna OR598183.1.genomic.fna && \
+rm -vr ncbi_dataset/ README.md && \
+pangolin OR598183.1.genomic.fna -o OR598183.1-usher && \
+column -t -s, OR598183.1-usher/lineage_report.csv
+
+## test for JQ.1 (BA.2.86.3 sublineage); JQ.1 is an alias of B.1.1.529.2.86.3.1
+# THANK YOU ERIN AND UPHL!! https://www.ncbi.nlm.nih.gov/nuccore/OR716684
+# this test is important due to the fact that this lineage was included in the UShER tree, despite being designated after the pangolin-designation 1.23 release
+# it previously caused and error/bug in pangolin, but now is fixed
+RUN datasets download virus genome accession OR716684.1 --filename OR716684.1.zip && \
+unzip OR716684.1.zip && rm OR716684.1.zip && \
+mv -v ncbi_dataset/data/genomic.fna OR716684.1.genomic.fna && \
+rm -vr ncbi_dataset/ README.md && \
+pangolin OR716684.1.genomic.fna -o OR716684.1-usher && \
+column -t -s, OR716684.1-usher/lineage_report.csv
+
+## test for JN.1.22 (BA.2.86.x sublineage; full unaliased lineage is B.1.1.529.2.86.1.1.22)
+# see here for commit where it was designated https://github.com/cov-lineages/pango-designation/commit/a90c8e31c154621ed86c985debfea09e17541cda
+# Here's the genome on NCBI, which was used to designate JN.1.22 lineage
+RUN datasets download virus genome accession PP189069.1 --filename PP189069.1.zip && \
+unzip PP189069.1.zip && rm PP189069.1.zip && \
+mv -v ncbi_dataset/data/genomic.fna PP189069.1.genomic.fna && \
+rm -vr ncbi_dataset/ README.md && \
+pangolin PP189069.1.genomic.fna -o PP189069.1-usher && \
+column -t -s, PP189069.1-usher/lineage_report.csv
+
+## test for JN.1.48 (BA.2.86.x sublineage; full unaliased lineage is B.1.1.529.2.86.1.1.48)
+# this lineages which was designated in pango-designation v1.27: https://github.com/cov-lineages/pango-designation/releases/tag/v1.27
+# see here for commit where it was designated https://github.com/cov-lineages/pango-designation/commit/67f48bf24283999f1940f3aee8159f404124ff3f
+# Here's the genome on NCBI: https://www.ncbi.nlm.nih.gov/nuccore/PP218754
+RUN datasets download virus genome accession PP218754.1 --filename PP218754.1.zip && \
+unzip PP218754.1.zip && rm PP218754.1.zip && \
+mv -v ncbi_dataset/data/genomic.fna PP218754.1.genomic.fna && \
+rm -vr ncbi_dataset/ README.md && \
+pangolin PP218754.1.genomic.fna -o PP218754.1-usher && \
+column -t -s, PP218754.1-usher/lineage_report.csv
+
+# new lineage LK.1 that was introduced in pango-designation v1.28: https://github.com/cov-lineages/pango-designation/commit/922795c90de355e67200cf4d379e8e5ff22472e4
+# thank you Luis, Lorraine, Marcos & team from PR Sci Trust for sharing your data!
+# genome on NCBI: https://www.ncbi.nlm.nih.gov/nuccore/2728145425
+RUN datasets download virus genome accession PP770375.1 --filename PP770375.1.zip && \
+unzip PP770375.1.zip && rm PP770375.1.zip && \
+mv -v ncbi_dataset/data/genomic.fna PP770375.1.genomic.fna && \
+rm -vr ncbi_dataset/ README.md && \
+pangolin PP770375.1.genomic.fna -o PP770375.1-usher && \
+column -t -s, PP770375.1-usher/lineage_report.csv
diff --git a/pangolin/4.3.1-pdata-1.28.1/README.md b/pangolin/4.3.1-pdata-1.28.1/README.md
new file mode 100644
index 000000000..8652fc19f
--- /dev/null
+++ b/pangolin/4.3.1-pdata-1.28.1/README.md
@@ -0,0 +1,53 @@
+# pangolin docker image
+
+Main tool : [pangolin](https://github.com/cov-lineages/pangolin)
+
+Full documentation: [https://cov-lineages.org/resources/pangolin.html](https://cov-lineages.org/resources/pangolin.html)
+
+Phylogenetic Assignment of Named Global Outbreak LINeages
+
+Additional tools:
+
+- [pangolin-data](https://github.com/cov-lineages/pangolin-data) 1.28.1
+- [pangolin-assignment](https://github.com/cov-lineages/pangolin-assignment) 1.28.1
+- [minimap2](https://github.com/lh3/minimap2) 2.28-r1209
+- [usher](https://github.com/yatisht/usher) 0.6.3
+- [faToVcf](https://github.com/yatisht/usher) 448
+- [scorpio](https://github.com/cov-lineages/scorpio) 0.3.19
+- [constellations](https://github.com/cov-lineages/constellations) 0.1.12
+- [gofasta](https://github.com/virus-evolution/gofasta) 1.2.1
+- [mafft](https://mafft.cbrc.jp/alignment/software/) 7.526
+- python 3.8.19
+
+## pangoLEARN deprecation
+
+As of pangolin version 4.3, pangoLEARN mode has been deprecated. [More info can be found here on the v4.3 release page.](https://github.com/cov-lineages/pangolin/releases/tag/v4.3)
+
+> If `--analysis-mode fast` or `--analysis-mode pangolearn` is given, pangolin v4.3 will print out a warning and use UShER mode instead, unless `--datadir` is also given specifying a directory with pangoLEARN model files. The next release of pangolin-data (v1.20) will no longer include the model files which have not been updated since v1.18.
+
+This docker image contains `pangolin-data` v1.28.1. The pangoLEARN model has not been updated since pangolin-data version 1.18. Only the the underlying UShER tree/protobuf file will be maintained for the forseeable future.
+
+**Please use the UShER mode of pangolin if you want to stay up-to-date with the most recent lineages.** [See pangolin-data release notes here for more details](https://github.com/cov-lineages/pangolin-data/releases)
+
+## Example Usage
+
+```bash
+# run Pangolin in the default mode (usher). Can optionally supply --analysis-mode usher
+$ pangolin /pangolin/pangolin/test/test_seqs.fasta -o /data/test_seqs-output-pusher
+
+# view the output CSV
+$ column -t -s, /data/test_seqs-output-pusher/lineage_report.csv
+taxon lineage conflict ambiguity_score scorpio_call scorpio_support scorpio_conflict scorpio_notes version pangolin_version scorpio_version constellation_version is_designated qc_status qc_notes note
+India seq B.1.617.1 0.0 B.1.617.1-like 1.0 0.0 scorpio call: Alt alleles 11; Ref alleles 0; Amb alleles 0; Oth alleles 0 PUSHER-v1.16 4.1.3 0.3.17 v0.1.10 False pass Ambiguous_content:0.02 Usher placements: B.1.617.1(1/1)
+b117 B.1.1.7 0.0 Alpha (B.1.1.7-like) 0.91 0.04 scorpio call: Alt alleles 21; Ref alleles 1; Amb alleles 1; Oth alleles 0 PUSHER-v1.16 4.1.3 0.3.17 v0.1.10 False pass Ambiguous_content:0.02 Usher placements: B.1.1.7(2/2)
+outgroup_A A 0.0 PUSHER-v1.16 4.1.3 0.3.17 v0.1.10 False pass Ambiguous_content:0.02 Usher placements: A(1/1)
+issue_57_torsten_seq Unassigned PUSHER-v1.16 4.1.3 0.3.17 v0.1.10 False fail failed to map
+This_seq_has_6000_Ns_in_18000_bases Unassigned PUSHER-v1.16 4.1.3 0.3.17 v0.1.10 False fail failed to map
+This_seq_has_no_seq Unassigned PUSHER-v1.16 4.1.3 0.3.17 v0.1.10 False fail failed to map
+This_seq_is_too_short Unassigned PUSHER-v1.16 4.1.3 0.3.17 v0.1.10 False fail Ambiguous_content:0.9
+This_seq_has_lots_of_Ns Unassigned PUSHER-v1.16 4.1.3 0.3.17 v0.1.10 False fail Ambiguous_content:0.98
+This_seq_is_literally_just_N Unassigned PUSHER-v1.16 4.1.3 0.3.17 v0.1.10 False fail failed to map
+Japan_seq B 0.0 PANGO-v1.16 4.1.3 0.3.17 v0.1.10 True pass Ambiguous_content:0.02 Assigned from designation hash.
+USA_seq B.1.314 0.0 PANGO-v1.16 4.1.3 0.3.17 v0.1.10 True pass Ambiguous_content:0.02 Assigned from designation hash.
+Unassigned_omicron_seq BA.1 0.0 Probable Omicron (BA.1-like) 0.71 0.08 scorpio call: Alt alleles 42; Ref alleles 5; Amb alleles 9; Oth alleles 3 PUSHER-v1.16 4.1.3 0.3.17 v0.1.10 False pass Ambiguous_content:0.03 Usher placements: BA.1(1/1)
+```
diff --git a/pangolin/4.3.1-pdata-1.28/Dockerfile b/pangolin/4.3.1-pdata-1.28/Dockerfile
new file mode 100644
index 000000000..f3a9ac5ab
--- /dev/null
+++ b/pangolin/4.3.1-pdata-1.28/Dockerfile
@@ -0,0 +1,199 @@
+FROM mambaorg/micromamba:1.5.8 AS app
+
+# build and run as root users since micromamba image has 'mambauser' set as the $USER
+USER root
+# set workdir to default for building; set to /data at the end
+WORKDIR /
+
+# ARG variables only persist during build time
+# had to include the v for some of these due to GitHub tags.
+# using pangolin-data github tag, NOT what is in the GH release title "v1.2.133"
+ARG PANGOLIN_VER="v4.3.1"
+ARG PANGOLIN_DATA_VER="v1.28"
+ARG SCORPIO_VER="v0.3.19"
+ARG CONSTELLATIONS_VER="v0.1.12"
+ARG USHER_VER="0.6.3"
+
+# metadata labels
+LABEL base.image="mambaorg/micromamba:1.5.8"
+LABEL dockerfile.version="1"
+LABEL software="pangolin"
+LABEL software.version=${PANGOLIN_VER}
+LABEL description="Conda environment for Pangolin. Pangolin: Software package for assigning SARS-CoV-2 genome sequences to global lineages."
+LABEL website="https://github.com/cov-lineages/pangolin"
+LABEL license="GNU General Public License v3.0"
+LABEL license.url="https://github.com/cov-lineages/pangolin/blob/master/LICENSE.txt"
+LABEL maintainer="Curtis Kapsak"
+LABEL maintainer.email="kapsakcj@gmail.com"
+
+# install dependencies; cleanup apt garbage
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ wget \
+ ca-certificates \
+ git \
+ procps \
+ bsdmainutils && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+# get the pangolin repo
+RUN wget "https://github.com/cov-lineages/pangolin/archive/${PANGOLIN_VER}.tar.gz" && \
+ tar -xf ${PANGOLIN_VER}.tar.gz && \
+ rm -v ${PANGOLIN_VER}.tar.gz && \
+ mv -v pangolin-* pangolin
+
+# set the environment; PATH is unnecessary here, but leaving anyways. It's reset later in dockerfile
+ENV PATH="$PATH" \
+ LC_ALL=C.UTF-8
+
+# modify environment.yml to pin specific versions during install
+# pin specific versions of usher, scorpio, pangolin-data, constellations, and pulp
+# create the conda environment using modified environment.yml
+RUN sed -i "s|usher.*|usher=${USHER_VER}|" /pangolin/environment.yml && \
+ sed -i "s|scorpio.git|scorpio.git@${SCORPIO_VER}|" /pangolin/environment.yml && \
+ sed -i "s|pangolin-data.git|pangolin-data.git@${PANGOLIN_DATA_VER}|" /pangolin/environment.yml && \
+ sed -i "s|constellations.git|constellations.git@${CONSTELLATIONS_VER}|" /pangolin/environment.yml && \
+ sed -i "12 a\ - pulp=2.7.0" /pangolin/environment.yml && \
+ micromamba create -n pangolin -y -f /pangolin/environment.yml
+
+# so that mamba/conda env is active when running below commands
+ENV ENV_NAME="pangolin"
+ARG MAMBA_DOCKERFILE_ACTIVATE=1
+
+WORKDIR /pangolin
+
+# run pip install step; download optional pre-computed assignment hashes for UShER (useful for running on large batches of samples)
+# best to skip using the assigment-cache if running on one sample for speed
+# print versions
+RUN pip install . && \
+ pangolin --add-assignment-cache && \
+ micromamba clean -a -y && \
+ mkdir /data && \
+ pangolin --all-versions && \
+ usher --version
+
+# final working directory in "app" layer is /data for passing data in/out of container
+WORKDIR /data
+
+# hardcode pangolin executable into the PATH variable
+ENV PATH="${PATH}:/opt/conda/envs/pangolin/bin/" XDG_CACHE_HOME=/tmp
+
+# default command is to pull up help options for pangolin; can be overridden of course
+CMD ["pangolin", "-h"]
+
+# new base for testing
+FROM app AS test
+
+# so that mamba/conda env is active when running below commands
+ENV ENV_NAME="pangolin"
+ARG MAMBA_DOCKERFILE_ACTIVATE=1
+
+# test on test sequences supplied with Pangolin code
+RUN pangolin /pangolin/pangolin/test/test_seqs.fasta -o /data/test_seqs-output-pusher && \
+ column -t -s, /data/test_seqs-output-pusher/lineage_report.csv
+
+# test functionality of assignment-cache option
+RUN pangolin --use-assignment-cache /pangolin/pangolin/test/test_seqs.fasta
+
+# download B.1.1.7 genome from Utah
+ADD https://raw.githubusercontent.com/StaPH-B/docker-builds/master/tests/SARS-CoV-2/SRR13957123.consensus.fa /test-data/SRR13957123.consensus.fa
+
+# test on a B.1.1.7 genome
+RUN pangolin /test-data/SRR13957123.consensus.fa -o /test-data/SRR13957123-pusher && \
+ column -t -s, /test-data/SRR13957123-pusher/lineage_report.csv
+
+ # install unzip for unzipping zip archive from NCBI
+RUN apt-get update && apt-get install -y --no-install-recommends unzip
+
+# install ncbi datasets tool (pre-compiled binary); place in $PATH
+RUN wget https://ftp.ncbi.nlm.nih.gov/pub/datasets/command-line/LATEST/linux-amd64/datasets && \
+ chmod +x datasets && \
+ mv -v datasets /usr/local/bin
+
+# download assembly for a BA.1 from Florida (https://www.ncbi.nlm.nih.gov/biosample?term=SAMN29506515 and https://www.ncbi.nlm.nih.gov/nuccore/ON924087)
+# run pangolin in usher analysis mode
+RUN datasets download virus genome accession ON924087.1 --filename ON924087.1.zip && \
+ unzip ON924087.1.zip && rm ON924087.1.zip && \
+ mv -v ncbi_dataset/data/genomic.fna ON924087.1.genomic.fna && \
+ rm -vr ncbi_dataset/ README.md && \
+ pangolin ON924087.1.genomic.fna -o ON924087.1-usher && \
+ column -t -s, ON924087.1-usher/lineage_report.csv
+
+# test specific for new lineage, XBB.1.16, introduced in pangolin-data v1.19
+# using this assembly: https://www.ncbi.nlm.nih.gov/nuccore/2440446687
+# biosample here: https://www.ncbi.nlm.nih.gov/biosample?term=SAMN33060589
+# one of the sample included in initial pango-designation here: https://github.com/cov-lineages/pango-designation/issues/1723
+RUN datasets download virus genome accession OQ381818.1 --filename OQ381818.1.zip && \
+ unzip OQ381818.1.zip && rm OQ381818.1.zip && \
+ mv -v ncbi_dataset/data/genomic.fna OQ381818.1.genomic.fna && \
+ rm -vr ncbi_dataset/ README.md && \
+ pangolin OQ381818.1.genomic.fna -o OQ381818.1-usher && \
+ column -t -s, OQ381818.1-usher/lineage_report.csv
+
+# testing another XBB.1.16, trying to test scorpio functionality. Want pangolin to NOT assign lineage based on pango hash match.
+# this test runs as expected, uses scorpio to check for constellation of mutations, then assign using PUSHER placement
+RUN datasets download virus genome accession OR177999.1 --filename OR177999.1.zip && \
+unzip OR177999.1.zip && rm OR177999.1.zip && \
+mv -v ncbi_dataset/data/genomic.fna OR177999.1.genomic.fna && \
+rm -vr ncbi_dataset/ README.md && \
+pangolin OR177999.1.genomic.fna -o OR177999.1-usher && \
+column -t -s, OR177999.1-usher/lineage_report.csv
+
+ ## test for BA.2.86
+ # virus identified in MI: https://www.ncbi.nlm.nih.gov/nuccore/OR461132.1
+RUN datasets download virus genome accession OR461132.1 --filename OR461132.1.zip && \
+unzip OR461132.1.zip && rm OR461132.1.zip && \
+mv -v ncbi_dataset/data/genomic.fna OR461132.1.genomic.fna && \
+rm -vr ncbi_dataset/ README.md && \
+pangolin OR461132.1.genomic.fna -o OR461132.1-usher && \
+column -t -s, OR461132.1-usher/lineage_report.csv
+
+ ## test for JN.2 (BA.2.86 sublineage) JN.2 is an alias of B.1.1.529.2.86.1.2
+ # NY CDC Quest sample: https://www.ncbi.nlm.nih.gov/nuccore/OR598183
+RUN datasets download virus genome accession OR598183.1 --filename OR598183.1.zip && \
+unzip OR598183.1.zip && rm OR598183.1.zip && \
+mv -v ncbi_dataset/data/genomic.fna OR598183.1.genomic.fna && \
+rm -vr ncbi_dataset/ README.md && \
+pangolin OR598183.1.genomic.fna -o OR598183.1-usher && \
+column -t -s, OR598183.1-usher/lineage_report.csv
+
+## test for JQ.1 (BA.2.86.3 sublineage); JQ.1 is an alias of B.1.1.529.2.86.3.1
+# THANK YOU ERIN AND UPHL!! https://www.ncbi.nlm.nih.gov/nuccore/OR716684
+# this test is important due to the fact that this lineage was included in the UShER tree, despite being designated after the pangolin-designation 1.23 release
+# it previously caused and error/bug in pangolin, but now is fixed
+RUN datasets download virus genome accession OR716684.1 --filename OR716684.1.zip && \
+unzip OR716684.1.zip && rm OR716684.1.zip && \
+mv -v ncbi_dataset/data/genomic.fna OR716684.1.genomic.fna && \
+rm -vr ncbi_dataset/ README.md && \
+pangolin OR716684.1.genomic.fna -o OR716684.1-usher && \
+column -t -s, OR716684.1-usher/lineage_report.csv
+
+## test for JN.1.22 (BA.2.86.x sublineage; full unaliased lineage is B.1.1.529.2.86.1.1.22)
+# see here for commit where it was designated https://github.com/cov-lineages/pango-designation/commit/a90c8e31c154621ed86c985debfea09e17541cda
+# Here's the genome on NCBI, which was used to designate JN.1.22 lineage
+RUN datasets download virus genome accession PP189069.1 --filename PP189069.1.zip && \
+unzip PP189069.1.zip && rm PP189069.1.zip && \
+mv -v ncbi_dataset/data/genomic.fna PP189069.1.genomic.fna && \
+rm -vr ncbi_dataset/ README.md && \
+pangolin PP189069.1.genomic.fna -o PP189069.1-usher && \
+column -t -s, PP189069.1-usher/lineage_report.csv
+
+## test for JN.1.48 (BA.2.86.x sublineage; full unaliased lineage is B.1.1.529.2.86.1.1.48)
+# this lineages which was designated in pango-designation v1.27: https://github.com/cov-lineages/pango-designation/releases/tag/v1.27
+# see here for commit where it was designated https://github.com/cov-lineages/pango-designation/commit/67f48bf24283999f1940f3aee8159f404124ff3f
+# Here's the genome on NCBI: https://www.ncbi.nlm.nih.gov/nuccore/PP218754
+RUN datasets download virus genome accession PP218754.1 --filename PP218754.1.zip && \
+unzip PP218754.1.zip && rm PP218754.1.zip && \
+mv -v ncbi_dataset/data/genomic.fna PP218754.1.genomic.fna && \
+rm -vr ncbi_dataset/ README.md && \
+pangolin PP218754.1.genomic.fna -o PP218754.1-usher && \
+column -t -s, PP218754.1-usher/lineage_report.csv
+
+# new lineage LK.1 that was introduced in pango-designation v1.28: https://github.com/cov-lineages/pango-designation/commit/922795c90de355e67200cf4d379e8e5ff22472e4
+# thank you Luis, Lorraine, Marcos & team from PR Sci Trust for sharing your data!
+# genome on NCBI: https://www.ncbi.nlm.nih.gov/nuccore/2728145425
+RUN datasets download virus genome accession PP770375.1 --filename PP770375.1.zip && \
+unzip PP770375.1.zip && rm PP770375.1.zip && \
+mv -v ncbi_dataset/data/genomic.fna PP770375.1.genomic.fna && \
+rm -vr ncbi_dataset/ README.md && \
+pangolin PP770375.1.genomic.fna -o PP770375.1-usher && \
+column -t -s, PP770375.1-usher/lineage_report.csv
diff --git a/pangolin/4.3.1-pdata-1.28/README.md b/pangolin/4.3.1-pdata-1.28/README.md
new file mode 100644
index 000000000..4de0d8653
--- /dev/null
+++ b/pangolin/4.3.1-pdata-1.28/README.md
@@ -0,0 +1,53 @@
+# pangolin docker image
+
+Main tool : [pangolin](https://github.com/cov-lineages/pangolin)
+
+Full documentation: [https://cov-lineages.org/resources/pangolin.html](https://cov-lineages.org/resources/pangolin.html)
+
+Phylogenetic Assignment of Named Global Outbreak LINeages
+
+Additional tools:
+
+- [pangolin-data](https://github.com/cov-lineages/pangolin-data) 1.28
+- [pangolin-assignment](https://github.com/cov-lineages/pangolin-assignment) 1.28
+- [minimap2](https://github.com/lh3/minimap2) 2.28-r1209
+- [usher](https://github.com/yatisht/usher) 0.6.3
+- [faToVcf](https://github.com/yatisht/usher) 448
+- [scorpio](https://github.com/cov-lineages/scorpio) 0.3.19
+- [constellations](https://github.com/cov-lineages/constellations) 0.1.12
+- [gofasta](https://github.com/virus-evolution/gofasta) 1.2.1
+- [mafft](https://mafft.cbrc.jp/alignment/software/) 7.526
+- python 3.8.19
+
+## pangoLEARN deprecation
+
+As of pangolin version 4.3, pangoLEARN mode has been deprecated. [More info can be found here on the v4.3 release page.](https://github.com/cov-lineages/pangolin/releases/tag/v4.3)
+
+> If `--analysis-mode fast` or `--analysis-mode pangolearn` is given, pangolin v4.3 will print out a warning and use UShER mode instead, unless `--datadir` is also given specifying a directory with pangoLEARN model files. The next release of pangolin-data (v1.20) will no longer include the model files which have not been updated since v1.18.
+
+This docker image contains `pangolin-data` v1.28. The pangoLEARN model has not been updated since pangolin-data version 1.18. Only the the underlying UShER tree/protobuf file will be maintained for the forseeable future.
+
+**Please use the UShER mode of pangolin if you want to stay up-to-date with the most recent lineages.** [See pangolin-data release notes here for more details](https://github.com/cov-lineages/pangolin-data/releases)
+
+## Example Usage
+
+```bash
+# run Pangolin in the default mode (usher). Can optionally supply --analysis-mode usher
+$ pangolin /pangolin/pangolin/test/test_seqs.fasta -o /data/test_seqs-output-pusher
+
+# view the output CSV
+$ column -t -s, /data/test_seqs-output-pusher/lineage_report.csv
+taxon lineage conflict ambiguity_score scorpio_call scorpio_support scorpio_conflict scorpio_notes version pangolin_version scorpio_version constellation_version is_designated qc_status qc_notes note
+India seq B.1.617.1 0.0 B.1.617.1-like 1.0 0.0 scorpio call: Alt alleles 11; Ref alleles 0; Amb alleles 0; Oth alleles 0 PUSHER-v1.16 4.1.3 0.3.17 v0.1.10 False pass Ambiguous_content:0.02 Usher placements: B.1.617.1(1/1)
+b117 B.1.1.7 0.0 Alpha (B.1.1.7-like) 0.91 0.04 scorpio call: Alt alleles 21; Ref alleles 1; Amb alleles 1; Oth alleles 0 PUSHER-v1.16 4.1.3 0.3.17 v0.1.10 False pass Ambiguous_content:0.02 Usher placements: B.1.1.7(2/2)
+outgroup_A A 0.0 PUSHER-v1.16 4.1.3 0.3.17 v0.1.10 False pass Ambiguous_content:0.02 Usher placements: A(1/1)
+issue_57_torsten_seq Unassigned PUSHER-v1.16 4.1.3 0.3.17 v0.1.10 False fail failed to map
+This_seq_has_6000_Ns_in_18000_bases Unassigned PUSHER-v1.16 4.1.3 0.3.17 v0.1.10 False fail failed to map
+This_seq_has_no_seq Unassigned PUSHER-v1.16 4.1.3 0.3.17 v0.1.10 False fail failed to map
+This_seq_is_too_short Unassigned PUSHER-v1.16 4.1.3 0.3.17 v0.1.10 False fail Ambiguous_content:0.9
+This_seq_has_lots_of_Ns Unassigned PUSHER-v1.16 4.1.3 0.3.17 v0.1.10 False fail Ambiguous_content:0.98
+This_seq_is_literally_just_N Unassigned PUSHER-v1.16 4.1.3 0.3.17 v0.1.10 False fail failed to map
+Japan_seq B 0.0 PANGO-v1.16 4.1.3 0.3.17 v0.1.10 True pass Ambiguous_content:0.02 Assigned from designation hash.
+USA_seq B.1.314 0.0 PANGO-v1.16 4.1.3 0.3.17 v0.1.10 True pass Ambiguous_content:0.02 Assigned from designation hash.
+Unassigned_omicron_seq BA.1 0.0 Probable Omicron (BA.1-like) 0.71 0.08 scorpio call: Alt alleles 42; Ref alleles 5; Amb alleles 9; Oth alleles 3 PUSHER-v1.16 4.1.3 0.3.17 v0.1.10 False pass Ambiguous_content:0.03 Usher placements: BA.1(1/1)
+```
diff --git a/pangolin/4.3.1-pdata-1.29/Dockerfile b/pangolin/4.3.1-pdata-1.29/Dockerfile
new file mode 100644
index 000000000..b79f2a6c5
--- /dev/null
+++ b/pangolin/4.3.1-pdata-1.29/Dockerfile
@@ -0,0 +1,208 @@
+FROM mambaorg/micromamba:1.5.8 AS app
+
+# build and run as root users since micromamba image has 'mambauser' set as the $USER
+USER root
+# set workdir to default for building; set to /data at the end
+WORKDIR /
+
+# ARG variables only persist during build time
+# had to include the v for some of these due to GitHub tags.
+# using pangolin-data github tag, NOT what is in the GH release title "v1.2.133"
+ARG PANGOLIN_VER="v4.3.1"
+ARG PANGOLIN_DATA_VER="v1.29"
+ARG SCORPIO_VER="v0.3.19"
+ARG CONSTELLATIONS_VER="v0.1.12"
+ARG USHER_VER="0.6.3"
+
+# metadata labels
+LABEL base.image="mambaorg/micromamba:1.5.8"
+LABEL dockerfile.version="1"
+LABEL software="pangolin"
+LABEL software.version=${PANGOLIN_VER}
+LABEL description="Conda environment for Pangolin. Pangolin: Software package for assigning SARS-CoV-2 genome sequences to global lineages."
+LABEL website="https://github.com/cov-lineages/pangolin"
+LABEL license="GNU General Public License v3.0"
+LABEL license.url="https://github.com/cov-lineages/pangolin/blob/master/LICENSE.txt"
+LABEL maintainer="Curtis Kapsak"
+LABEL maintainer.email="kapsakcj@gmail.com"
+
+# install dependencies; cleanup apt garbage
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ wget \
+ ca-certificates \
+ git \
+ procps \
+ bsdmainutils && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+# get the pangolin repo
+RUN wget "https://github.com/cov-lineages/pangolin/archive/${PANGOLIN_VER}.tar.gz" && \
+ tar -xf ${PANGOLIN_VER}.tar.gz && \
+ rm -v ${PANGOLIN_VER}.tar.gz && \
+ mv -v pangolin-* pangolin
+
+# set the environment; PATH is unnecessary here, but leaving anyways. It's reset later in dockerfile
+ENV PATH="$PATH" \
+ LC_ALL=C.UTF-8
+
+# modify environment.yml to pin specific versions during install
+# pin specific versions of usher, scorpio, pangolin-data, constellations, and pulp
+# create the conda environment using modified environment.yml
+RUN sed -i "s|usher.*|usher=${USHER_VER}|" /pangolin/environment.yml && \
+ sed -i "s|scorpio.git|scorpio.git@${SCORPIO_VER}|" /pangolin/environment.yml && \
+ sed -i "s|pangolin-data.git|pangolin-data.git@${PANGOLIN_DATA_VER}|" /pangolin/environment.yml && \
+ sed -i "s|constellations.git|constellations.git@${CONSTELLATIONS_VER}|" /pangolin/environment.yml && \
+ sed -i "12 a\ - pulp=2.7.0" /pangolin/environment.yml && \
+ micromamba create -n pangolin -y -f /pangolin/environment.yml && \
+ micromamba clean -a -y -f
+
+# so that mamba/conda env is active when running below commands
+ENV ENV_NAME="pangolin"
+ARG MAMBA_DOCKERFILE_ACTIVATE=1
+
+WORKDIR /pangolin
+
+# run pip install step; download optional pre-computed assignment hashes for UShER (useful for running on large batches of samples)
+# best to skip using the assigment-cache if running on one sample for speed
+# print versions
+RUN pip install . && \
+ pangolin --add-assignment-cache && \
+ mkdir /data && \
+ pangolin --all-versions && \
+ usher --version
+
+# final working directory in "app" layer is /data for passing data in/out of container
+WORKDIR /data
+
+# hardcode pangolin executable into the PATH variable
+ENV PATH="${PATH}:/opt/conda/envs/pangolin/bin/" XDG_CACHE_HOME=/tmp
+
+# default command is to pull up help options for pangolin; can be overridden of course
+CMD ["pangolin", "-h"]
+
+# new base for testing
+FROM app AS test
+
+# so that mamba/conda env is active when running below commands
+ENV ENV_NAME="pangolin"
+ARG MAMBA_DOCKERFILE_ACTIVATE=1
+
+# test on test sequences supplied with Pangolin code
+RUN pangolin /pangolin/pangolin/test/test_seqs.fasta -o /data/test_seqs-output-pusher && \
+ column -t -s, /data/test_seqs-output-pusher/lineage_report.csv
+
+# test functionality of assignment-cache option
+RUN pangolin --use-assignment-cache /pangolin/pangolin/test/test_seqs.fasta
+
+# download B.1.1.7 genome from Utah
+ADD https://raw.githubusercontent.com/StaPH-B/docker-builds/master/tests/SARS-CoV-2/SRR13957123.consensus.fa /test-data/SRR13957123.consensus.fa
+
+# test on a B.1.1.7 genome
+RUN pangolin /test-data/SRR13957123.consensus.fa -o /test-data/SRR13957123-pusher && \
+ column -t -s, /test-data/SRR13957123-pusher/lineage_report.csv
+
+ # install unzip for unzipping zip archive from NCBI
+RUN apt-get update && apt-get install -y --no-install-recommends unzip
+
+# install ncbi datasets tool (pre-compiled binary); place in $PATH
+RUN wget https://ftp.ncbi.nlm.nih.gov/pub/datasets/command-line/LATEST/linux-amd64/datasets && \
+ chmod +x datasets && \
+ mv -v datasets /usr/local/bin
+
+# download assembly for a BA.1 from Florida (https://www.ncbi.nlm.nih.gov/biosample?term=SAMN29506515 and https://www.ncbi.nlm.nih.gov/nuccore/ON924087)
+# run pangolin in usher analysis mode
+RUN datasets download virus genome accession ON924087.1 --filename ON924087.1.zip && \
+ unzip ON924087.1.zip && rm ON924087.1.zip && \
+ mv -v ncbi_dataset/data/genomic.fna ON924087.1.genomic.fna && \
+ rm -vr ncbi_dataset/ README.md && \
+ pangolin ON924087.1.genomic.fna -o ON924087.1-usher && \
+ column -t -s, ON924087.1-usher/lineage_report.csv
+
+# test specific for new lineage, XBB.1.16, introduced in pangolin-data v1.19
+# using this assembly: https://www.ncbi.nlm.nih.gov/nuccore/2440446687
+# biosample here: https://www.ncbi.nlm.nih.gov/biosample?term=SAMN33060589
+# one of the sample included in initial pango-designation here: https://github.com/cov-lineages/pango-designation/issues/1723
+RUN datasets download virus genome accession OQ381818.1 --filename OQ381818.1.zip && \
+ unzip OQ381818.1.zip && rm OQ381818.1.zip && \
+ mv -v ncbi_dataset/data/genomic.fna OQ381818.1.genomic.fna && \
+ rm -vr ncbi_dataset/ README.md && \
+ pangolin OQ381818.1.genomic.fna -o OQ381818.1-usher && \
+ column -t -s, OQ381818.1-usher/lineage_report.csv
+
+# testing another XBB.1.16, trying to test scorpio functionality. Want pangolin to NOT assign lineage based on pango hash match.
+# this test runs as expected, uses scorpio to check for constellation of mutations, then assign using PUSHER placement
+RUN datasets download virus genome accession OR177999.1 --filename OR177999.1.zip && \
+unzip OR177999.1.zip && rm OR177999.1.zip && \
+mv -v ncbi_dataset/data/genomic.fna OR177999.1.genomic.fna && \
+rm -vr ncbi_dataset/ README.md && \
+pangolin OR177999.1.genomic.fna -o OR177999.1-usher && \
+column -t -s, OR177999.1-usher/lineage_report.csv
+
+ ## test for BA.2.86
+ # virus identified in MI: https://www.ncbi.nlm.nih.gov/nuccore/OR461132.1
+RUN datasets download virus genome accession OR461132.1 --filename OR461132.1.zip && \
+unzip OR461132.1.zip && rm OR461132.1.zip && \
+mv -v ncbi_dataset/data/genomic.fna OR461132.1.genomic.fna && \
+rm -vr ncbi_dataset/ README.md && \
+pangolin OR461132.1.genomic.fna -o OR461132.1-usher && \
+column -t -s, OR461132.1-usher/lineage_report.csv
+
+ ## test for JN.2 (BA.2.86 sublineage) JN.2 is an alias of B.1.1.529.2.86.1.2
+ # NY CDC Quest sample: https://www.ncbi.nlm.nih.gov/nuccore/OR598183
+RUN datasets download virus genome accession OR598183.1 --filename OR598183.1.zip && \
+unzip OR598183.1.zip && rm OR598183.1.zip && \
+mv -v ncbi_dataset/data/genomic.fna OR598183.1.genomic.fna && \
+rm -vr ncbi_dataset/ README.md && \
+pangolin OR598183.1.genomic.fna -o OR598183.1-usher && \
+column -t -s, OR598183.1-usher/lineage_report.csv
+
+## test for JQ.1 (BA.2.86.3 sublineage); JQ.1 is an alias of B.1.1.529.2.86.3.1
+# THANK YOU ERIN AND UPHL!! https://www.ncbi.nlm.nih.gov/nuccore/OR716684
+# this test is important due to the fact that this lineage was included in the UShER tree, despite being designated after the pangolin-designation 1.23 release
+# it previously caused and error/bug in pangolin, but now is fixed
+RUN datasets download virus genome accession OR716684.1 --filename OR716684.1.zip && \
+unzip OR716684.1.zip && rm OR716684.1.zip && \
+mv -v ncbi_dataset/data/genomic.fna OR716684.1.genomic.fna && \
+rm -vr ncbi_dataset/ README.md && \
+pangolin OR716684.1.genomic.fna -o OR716684.1-usher && \
+column -t -s, OR716684.1-usher/lineage_report.csv
+
+## test for JN.1.22 (BA.2.86.x sublineage; full unaliased lineage is B.1.1.529.2.86.1.1.22)
+# see here for commit where it was designated https://github.com/cov-lineages/pango-designation/commit/a90c8e31c154621ed86c985debfea09e17541cda
+# Here's the genome on NCBI, which was used to designate JN.1.22 lineage
+RUN datasets download virus genome accession PP189069.1 --filename PP189069.1.zip && \
+unzip PP189069.1.zip && rm PP189069.1.zip && \
+mv -v ncbi_dataset/data/genomic.fna PP189069.1.genomic.fna && \
+rm -vr ncbi_dataset/ README.md && \
+pangolin PP189069.1.genomic.fna -o PP189069.1-usher && \
+column -t -s, PP189069.1-usher/lineage_report.csv
+
+## test for JN.1.48 (BA.2.86.x sublineage; full unaliased lineage is B.1.1.529.2.86.1.1.48)
+# this lineages which was designated in pango-designation v1.27: https://github.com/cov-lineages/pango-designation/releases/tag/v1.27
+# see here for commit where it was designated https://github.com/cov-lineages/pango-designation/commit/67f48bf24283999f1940f3aee8159f404124ff3f
+# Here's the genome on NCBI: https://www.ncbi.nlm.nih.gov/nuccore/PP218754
+RUN datasets download virus genome accession PP218754.1 --filename PP218754.1.zip && \
+unzip PP218754.1.zip && rm PP218754.1.zip && \
+mv -v ncbi_dataset/data/genomic.fna PP218754.1.genomic.fna && \
+rm -vr ncbi_dataset/ README.md && \
+pangolin PP218754.1.genomic.fna -o PP218754.1-usher && \
+column -t -s, PP218754.1-usher/lineage_report.csv
+
+# new lineage LK.1 that was introduced in pango-designation v1.28: https://github.com/cov-lineages/pango-designation/commit/922795c90de355e67200cf4d379e8e5ff22472e4
+# thank you Luis, Lorraine, Marcos & team from PR Sci Trust for sharing your data!
+# genome on NCBI: https://www.ncbi.nlm.nih.gov/nuccore/2728145425
+RUN datasets download virus genome accession PP770375.1 --filename PP770375.1.zip && \
+unzip PP770375.1.zip && rm PP770375.1.zip && \
+mv -v ncbi_dataset/data/genomic.fna PP770375.1.genomic.fna && \
+rm -vr ncbi_dataset/ README.md && \
+pangolin PP770375.1.genomic.fna -o PP770375.1-usher && \
+column -t -s, PP770375.1-usher/lineage_report.csv
+
+# new lineage KP.3.3.2 that was introduced in pango-designation v1.29: https://github.com/cov-lineages/pango-designation/commit/7125e606818312b78f0756d7fcab6dba92dd0a9e
+# genome on NCBI: https://www.ncbi.nlm.nih.gov/nuccore/PQ073669
+RUN datasets download virus genome accession PQ073669.1 --filename PQ073669.1.zip && \
+unzip PQ073669.1.zip && rm PQ073669.1.zip && \
+mv -v ncbi_dataset/data/genomic.fna PQ073669.1.genomic.fna && \
+rm -vr ncbi_dataset/ README.md && \
+pangolin PQ073669.1.genomic.fna -o PQ073669.1-usher && \
+column -t -s, PQ073669.1-usher/lineage_report.csv
\ No newline at end of file
diff --git a/pangolin/4.3.1-pdata-1.29/README.md b/pangolin/4.3.1-pdata-1.29/README.md
new file mode 100644
index 000000000..8542245a0
--- /dev/null
+++ b/pangolin/4.3.1-pdata-1.29/README.md
@@ -0,0 +1,53 @@
+# pangolin docker image
+
+Main tool : [pangolin](https://github.com/cov-lineages/pangolin)
+
+Full documentation: [https://cov-lineages.org/resources/pangolin.html](https://cov-lineages.org/resources/pangolin.html)
+
+Phylogenetic Assignment of Named Global Outbreak LINeages
+
+Additional tools:
+
+- [pangolin-data](https://github.com/cov-lineages/pangolin-data) 1.29
+- [pangolin-assignment](https://github.com/cov-lineages/pangolin-assignment) 1.29
+- [minimap2](https://github.com/lh3/minimap2) 2.28-r1209
+- [usher](https://github.com/yatisht/usher) 0.6.3
+- [faToVcf](https://github.com/yatisht/usher) 448
+- [scorpio](https://github.com/cov-lineages/scorpio) 0.3.19
+- [constellations](https://github.com/cov-lineages/constellations) 0.1.12
+- [gofasta](https://github.com/virus-evolution/gofasta) 1.2.1
+- [mafft](https://mafft.cbrc.jp/alignment/software/) 7.526
+- python 3.8.19
+
+## pangoLEARN deprecation
+
+As of pangolin version 4.3, pangoLEARN mode has been deprecated. [More info can be found here on the v4.3 release page.](https://github.com/cov-lineages/pangolin/releases/tag/v4.3)
+
+> If `--analysis-mode fast` or `--analysis-mode pangolearn` is given, pangolin v4.3 will print out a warning and use UShER mode instead, unless `--datadir` is also given specifying a directory with pangoLEARN model files. The next release of pangolin-data (v1.20) will no longer include the model files which have not been updated since v1.18.
+
+The pangoLEARN model has not been updated since pangolin-data version 1.18. Only the the underlying UShER tree/protobuf file will be maintained for the forseeable future.
+
+**Please use the UShER mode of pangolin if you want to stay up-to-date with the most recent lineages.** [See pangolin-data release notes here for more details](https://github.com/cov-lineages/pangolin-data/releases)
+
+## Example Usage
+
+```bash
+# run Pangolin in the default mode (usher). Can optionally supply --analysis-mode usher
+$ pangolin /pangolin/pangolin/test/test_seqs.fasta -o /data/test_seqs-output-pusher
+
+# view the output CSV
+$ column -t -s, /data/test_seqs-output-pusher/lineage_report.csv
+taxon lineage conflict ambiguity_score scorpio_call scorpio_support scorpio_conflict scorpio_notes version pangolin_version scorpio_version constellation_version is_designated qc_status qc_notes note
+India seq B.1.617.1 0.0 B.1.617.1-like 1.0 0.0 scorpio call: Alt alleles 11; Ref alleles 0; Amb alleles 0; Oth alleles 0 PUSHER-v1.16 4.1.3 0.3.17 v0.1.10 False pass Ambiguous_content:0.02 Usher placements: B.1.617.1(1/1)
+b117 B.1.1.7 0.0 Alpha (B.1.1.7-like) 0.91 0.04 scorpio call: Alt alleles 21; Ref alleles 1; Amb alleles 1; Oth alleles 0 PUSHER-v1.16 4.1.3 0.3.17 v0.1.10 False pass Ambiguous_content:0.02 Usher placements: B.1.1.7(2/2)
+outgroup_A A 0.0 PUSHER-v1.16 4.1.3 0.3.17 v0.1.10 False pass Ambiguous_content:0.02 Usher placements: A(1/1)
+issue_57_torsten_seq Unassigned PUSHER-v1.16 4.1.3 0.3.17 v0.1.10 False fail failed to map
+This_seq_has_6000_Ns_in_18000_bases Unassigned PUSHER-v1.16 4.1.3 0.3.17 v0.1.10 False fail failed to map
+This_seq_has_no_seq Unassigned PUSHER-v1.16 4.1.3 0.3.17 v0.1.10 False fail failed to map
+This_seq_is_too_short Unassigned PUSHER-v1.16 4.1.3 0.3.17 v0.1.10 False fail Ambiguous_content:0.9
+This_seq_has_lots_of_Ns Unassigned PUSHER-v1.16 4.1.3 0.3.17 v0.1.10 False fail Ambiguous_content:0.98
+This_seq_is_literally_just_N Unassigned PUSHER-v1.16 4.1.3 0.3.17 v0.1.10 False fail failed to map
+Japan_seq B 0.0 PANGO-v1.16 4.1.3 0.3.17 v0.1.10 True pass Ambiguous_content:0.02 Assigned from designation hash.
+USA_seq B.1.314 0.0 PANGO-v1.16 4.1.3 0.3.17 v0.1.10 True pass Ambiguous_content:0.02 Assigned from designation hash.
+Unassigned_omicron_seq BA.1 0.0 Probable Omicron (BA.1-like) 0.71 0.08 scorpio call: Alt alleles 42; Ref alleles 5; Amb alleles 9; Oth alleles 3 PUSHER-v1.16 4.1.3 0.3.17 v0.1.10 False pass Ambiguous_content:0.03 Usher placements: BA.1(1/1)
+```
diff --git a/panqc/0.4.0/Dockerfile b/panqc/0.4.0/Dockerfile
new file mode 100644
index 000000000..30f28e586
--- /dev/null
+++ b/panqc/0.4.0/Dockerfile
@@ -0,0 +1,48 @@
+FROM ubuntu:jammy as app
+
+ARG PANQC_VER="0.4.0"
+
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="panqc"
+LABEL software.version="${PANQC_VER}"
+LABEL description="A pan-genome quality control toolkit for evaluating nucleotide redundancy in pan-genome analyses."
+LABEL website="https://github.com/maxgmarin/panqc"
+LABEL license="https://github.com/maxgmarin/panqc/blob/main/LICENSE"
+LABEL maintainer="Erin Young"
+LABEL maintainer.email="eriny@utah.gov"
+
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ wget \
+ ca-certificates \
+ procps \
+ python3 \
+ python3-pip \
+ python3-dev \
+ gcc && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+RUN pip install cython
+
+RUN wget -q https://github.com/maxgmarin/panqc/archive/refs/tags/${PANQC_VER}.tar.gz && \
+ pip install --no-cache-dir ${PANQC_VER}.tar.gz && \
+ rm ${PANQC_VER}.tar.gz && \
+ mkdir /data
+
+ENV LC_ALL=C
+
+CMD panqc nrc --help && panqc utils --help
+
+WORKDIR /data
+
+FROM app as test
+
+WORKDIR /test
+
+RUN panqc nrc --help && \
+ panqc utils --help
+
+RUN wget -q https://github.com/maxgmarin/panqc/archive/refs/tags/${PANQC_VER}.tar.gz && \
+ tar -xvf ${PANQC_VER}.tar.gz && \
+ cd panqc-${PANQC_VER}/tests/data && \
+ panqc nrc -a TestSet1.InputAsmPaths.tsv -r TestSet1.pan_genome_reference.fa.gz -m TestSet1.gene_presence_absence.csv -o test_results/
diff --git a/panqc/0.4.0/README.md b/panqc/0.4.0/README.md
new file mode 100644
index 000000000..d399d8394
--- /dev/null
+++ b/panqc/0.4.0/README.md
@@ -0,0 +1,22 @@
+# panqc container
+
+Main tool: [panqc](https://github.com/maxgmarin/panqc)
+
+Code repository: https://github.com/maxgmarin/panqc
+
+Basic information on how to use this tool:
+- executable: panqc nrc || panqc utils
+- help: --help
+- version: NA
+- description: |
+
+> The panqc Nucleotide Redundancy Correction (NRC) pipeline adjusts for redundancy at the DNA level within pan-genome estimates in two steps. In step one, all genes predicted to be absent at the Amino Acid (AA) level are compared to their corresponding assembly at the nucleotide level. In cases where the nucleotide sequence is found with high coverage and sequence identity (Query Coverage & Sequence Identity > 90%), the gene is marked as “present at the DNA level”. Next, all genes are clustered and merged using a k-mer based metric of nucleotide similarity. Cases where two or more genes are divergent at the AA level but highly similar at the nucleotide level will be merged into a single “nucleotide similarity gene cluster”. After applying this method the pan-genome gene presence matrix is readjusted according to these results.
+
+
+Full documentation: [https://github.com/maxgmarin/panqc](https://github.com/maxgmarin/panqc)
+
+## Example Usage
+
+```bash
+panqc nrc --asms InputAsmPaths.tsv --pg-ref pan_genome_reference.fa --is-rtab gene_presence_absence.Rtab --results_dir results/
+```
diff --git a/parsnp/2.0.4/Dockerfile b/parsnp/2.0.4/Dockerfile
new file mode 100644
index 000000000..d017e06dc
--- /dev/null
+++ b/parsnp/2.0.4/Dockerfile
@@ -0,0 +1,177 @@
+ARG PARSNP_VER="2.0.4"
+ARG HARVEST_VER="1.3"
+
+FROM ubuntu:jammy as builder
+
+ARG PARSNP_VER
+ARG HARVEST_VER
+
+ARG RAXML_VER="8.2.12"
+ARG FASTTREE_VER="2.1.11"
+ARG MASH_VER="2.3"
+ARG FASTANI_VER="1.34"
+
+# Update package index, install packages (ParSNP basic dependencies and packages needed to build from source)
+RUN apt-get update && apt-get install -y \
+ autoconf \
+ make \
+ build-essential \
+ capnproto \
+ libcapnp-dev \
+ libgsl0-dev \
+ libprotobuf-dev \
+ libssl-dev \
+ libtool \
+ protobuf-compiler \
+ libsqlite3-dev \
+ wget \
+ zlib1g-dev \
+ python3 \
+ python3-pip \
+ unzip
+
+# Add /usr/lib to the library path so Mash and HarvestTools can find the capnp libraries
+ENV LD_LIBRARY_PATH="/usr/lib:/usr/local/lib"
+
+# Move some static libraries that Mash and HarvestTools demand to where they want to see them
+RUN cp /usr/lib/x86_64-linux-gnu/libprotobuf.a /usr/lib/ && \
+ cp /usr/lib/x86_64-linux-gnu/libcapnp.a /usr/lib/ && \
+ cp /usr/lib/x86_64-linux-gnu/libkj.a /usr/lib/
+
+RUN pip3 install numpy
+
+# install fasttree
+# ParSNP expects the FastTree executable to be called 'fasttree'
+RUN wget -q http://www.microbesonline.org/fasttree/FastTree && \
+ chmod +x FastTree && \
+ mv FastTree /usr/local/bin/fasttree
+
+# Install RAxML: https://cme.h-its.org/exelixis/resource/download/NewManual.pdf
+RUN wget -q https://github.com/stamatak/standard-RAxML/archive/refs/tags/v$RAXML_VER.tar.gz && \
+ tar -xvf v$RAXML_VER.tar.gz && \
+ cd standard-RAxML-$RAXML_VER && \
+ make -f Makefile.AVX.PTHREADS.gcc && \
+ cp /standard-RAxML-$RAXML_VER/raxmlHPC-PTHREADS-AVX /usr/local/bin/raxmlHPC-PTHREADS
+
+# Install Mash: https://github.com/marbl/Mash/blob/master/INSTALL.txt
+RUN wget -q https://github.com/marbl/Mash/releases/download/v${MASH_VER}/mash-Linux64-v${MASH_VER}.tar && \
+ tar -xf mash-Linux64-v${MASH_VER}.tar --no-same-owner && \
+ rm -rf mash-Linux64-v${MASH_VER}.tar && \
+ chown root:root /mash-Linux64-v${MASH_VER}/*
+
+# Install PhiPack: https://www.maths.otago.ac.nz/~dbryant/software/phimanual.pdf
+RUN wget -q https://www.maths.otago.ac.nz/~dbryant/software/PhiPack.tar.gz && \
+ tar -xvf PhiPack.tar.gz && \
+ cd /PhiPack/src && \
+ make && \
+ cp /PhiPack/Phi /usr/local/bin && \
+ cp /PhiPack/Profile /usr/local/bin
+
+# Install HarvestTools
+RUN wget -q https://github.com/marbl/harvest-tools/releases/download/v${HARVEST_VER}/harvesttools-Linux64-v${HARVEST_VER}.tar.gz && \
+ tar -vxf harvesttools-Linux64-v${HARVEST_VER}.tar.gz && \
+ cp harvesttools-Linux64-v${HARVEST_VER}/harvesttools /usr/local/bin/.
+
+# Install ParSNP
+RUN wget -q https://github.com/marbl/parsnp/archive/v$PARSNP_VER.tar.gz && \
+ tar -xvf v$PARSNP_VER.tar.gz && \
+ rm v$PARSNP_VER.tar.gz && \
+ cd /parsnp-$PARSNP_VER/muscle && \
+ ./autogen.sh && \
+ ./configure CXXFLAGS='-fopenmp' && \
+ make install && \
+ cd /parsnp-$PARSNP_VER && \
+ ./autogen.sh && \
+ export ORIGIN=\$ORIGIN && \
+ ./configure LDFLAGS='-Wl,-rpath,$$ORIGIN/../muscle/lib' && \
+ make LDADD=-lMUSCLE-3.7 && \
+ make install
+
+# install fastani
+RUN wget -q https://github.com/ParBLiSS/FastANI/releases/download/v${FASTANI_VER}/fastANI-Linux64-v${FASTANI_VER}.zip && \
+ unzip fastANI-Linux64-v${FASTANI_VER}.zip -d /usr/local/bin
+
+FROM ubuntu:jammy as app
+
+ARG PARSNP_VER
+ARG HARVEST_VER
+
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="ParSNP"
+LABEL software.version="${PARSNP_VER}"
+LABEL description="ParSNP: Rapid core genome multi-alignment."
+LABEL documentation="https://harvest.readthedocs.io/en/latest/content/parsnp.html"
+LABEL website="https://github.com/marbl/parsnp"
+LABEL license="https://github.com/marbl/parsnp/blob/master/LICENSE"
+LABEL maintainer="Erin Young"
+LABEL maintainer.email="eriny@utah.gov"
+
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ wget \
+ ca-certificates \
+ procps \
+ python3 \
+ python3-pip \
+ python-is-python3 \
+ unzip \
+ libgomp1 && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+# Copy necessary packages into the production image
+COPY --from=builder /parsnp-$PARSNP_VER/ /parsnp/
+COPY --from=builder /usr/local/bin/* /usr/local/bin/
+COPY --from=builder /usr/local/lib/* /usr/local/lib/
+
+RUN pip install pyspoa numpy biopython tqdm
+
+# Put harvesttools & parsnp in PATH and set LD_LIBRARY_PATH for MUSCLE
+ENV PATH="/parsnp/:$PATH" \
+ LD_LIBRARY_PATH="/usr/local/lib"
+
+CMD parsnp -h
+
+WORKDIR /data
+
+FROM app as test
+
+# IS_GITHUB only applicable for tests run by GitHub action
+ARG IS_GITHUB
+
+RUN parsnp -h
+
+# negative control
+WORKDIR /test/negative
+
+RUN mkdir input_dir && \
+ mkdir reference && \
+ wget -q https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/000/703/365/GCA_000703365.1_Ec2011C-3609/GCA_000703365.1_Ec2011C-3609_genomic.fna.gz && \
+ wget -q https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/016/766/575/GCA_016766575.1_PDT000040717.5/GCA_016766575.1_PDT000040717.5_genomic.fna.gz && \
+ wget -q https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/000/748/565/GCA_000748565.2_ASM74856v2/GCA_000748565.2_ASM74856v2_genomic.fna.gz && \
+ gunzip *.gz && \
+ mv GCA_000703365.1_Ec2011C-3609_genomic.fna reference/. && \
+ mv *fna input_dir && \
+ parsnp -d input_dir -o filter --use-fasttree -v -r reference/GCA_000703365.1_Ec2011C-3609_genomic.fna
+
+# positive control
+WORKDIR /test/positive
+
+RUN mkdir input_dir && \
+ mkdir reference && \
+ wget -q https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/000/703/365/GCA_000703365.1_Ec2011C-3609/GCA_000703365.1_Ec2011C-3609_genomic.fna.gz && \
+ wget -q https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/016/766/575/GCA_016766575.1_PDT000040717.5/GCA_016766575.1_PDT000040717.5_genomic.fna.gz && \
+ wget -q https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/003/018/935/GCA_003018935.1_ASM301893v1/GCA_003018935.1_ASM301893v1_genomic.fna.gz && \
+ wget -q https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/012/830/055/GCA_012830055.1_PDT000040719.3/GCA_012830055.1_PDT000040719.3_genomic.fna.gz && \
+ wget -q https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/012/829/335/GCA_012829335.1_PDT000040724.3/GCA_012829335.1_PDT000040724.3_genomic.fna.gz && \
+ wget -q https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/003/018/775/GCA_003018775.1_ASM301877v1/GCA_003018775.1_ASM301877v1_genomic.fna.gz && \
+ wget -q https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/012/829/275/GCA_012829275.1_PDT000040726.3/GCA_012829275.1_PDT000040726.3_genomic.fna.gz && \
+ wget -q https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/016/766/555/GCA_016766555.1_PDT000040728.5/GCA_016766555.1_PDT000040728.5_genomic.fna.gz && \
+ wget -q https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/012/829/195/GCA_012829195.1_PDT000040729.3/GCA_012829195.1_PDT000040729.3_genomic.fna.gz && \
+ wget -q https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/012/829/295/GCA_012829295.1_PDT000040727.3/GCA_012829295.1_PDT000040727.3_genomic.fna.gz && \
+ gunzip *.gz && \
+ mv GCA_000703365.1_Ec2011C-3609_genomic.fna reference/. && \
+ mv *.fna input_dir/. && \
+ parsnp -d input_dir -o outdir_parsnp_raxml -v -c -r reference/GCA_000703365.1_Ec2011C-3609_genomic.fna && \
+ parsnp -d input_dir -o outdir_parsnp_fasttree --use-fasttree -v -c -r reference/GCA_000703365.1_Ec2011C-3609_genomic.fna && \
+ harvesttools -i outdir_parsnp_fasttree/parsnp.ggr -S outdir_parsnp_fasttree/snp_alignment.txt && \
+ harvesttools -i outdir_parsnp_raxml/parsnp.ggr -S outdir_parsnp_raxml/snp_alignment.txt
diff --git a/parsnp/2.0.4/README.md b/parsnp/2.0.4/README.md
new file mode 100644
index 000000000..cfd25e1e0
--- /dev/null
+++ b/parsnp/2.0.4/README.md
@@ -0,0 +1,52 @@
+## ParSNP
+
+This container implements [ParSNP](https://github.com/marbl/parsnp) from the [Harvest suite](https://harvest.readthedocs.io/en/latest/).
+
+### Includes
+- ParSNP: `parsnp`
+- FastTree: `FastTree` or `fasttree` : 2.1.11
+- RAxML: `raxmlHPC-PTHREADS` : 8.2.12
+- Mash: `mash` : 2.3
+- PhiPack: `Phi` : 1.1
+- HarvestTools: `harvesttools` : 1.3
+- FastANI: `fastani` : 1.34
+
+### Requirements
+- [Docker](https://docs.docker.com/get-docker/)
+
+### Running a container
+Pull the image from Docker Hub.
+```
+docker pull staphb/parsnp:latest
+```
+OR, clone this repository to build & test the image yourself.
+```
+git clone git@github.com:StaPH-B/docker-builds.git
+cd docker-builds/parsnp/1.5.6
+# Run tests
+docker build --target=test -t parsnp-test .
+# Build production image
+docker build --target=app -t parsnp .
+```
+
+### Example data analysis
+Set up some input data.
+```
+mkdir -p parsnp/input_dir
+cd parsnp/input_dir
+wget \
+https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/000/698/515/GCA_000698515.1_CFSAN000661_01.0/GCA_000698515.1_CFSAN000661_01.0_genomic.fna.gz \
+https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/000/749/005/GCA_000749005.1_CFSAN000669_01.0/GCA_000749005.1_CFSAN000669_01.0_genomic.fna.gz
+gunzip *.gz
+cd ../
+```
+Run the container to generate a core genome alignment, call SNPs, and build a phylogeny. Output files are written to `output_dir`.
+```
+docker run --rm -v $PWD:/data -u $(id -u):$(id -g) staphb/parsnp:latest parsnp \
+-d input_dir \
+-o outdir_parsnp \
+--use-fasttree \
+-v \
+-c \
+-r !
+```
diff --git a/parsnp/2.0.5/Dockerfile b/parsnp/2.0.5/Dockerfile
new file mode 100644
index 000000000..579ee3ea9
--- /dev/null
+++ b/parsnp/2.0.5/Dockerfile
@@ -0,0 +1,177 @@
+ARG PARSNP_VER="2.0.5"
+ARG HARVEST_VER="1.3"
+
+FROM ubuntu:jammy as builder
+
+ARG PARSNP_VER
+ARG HARVEST_VER
+
+ARG RAXML_VER="8.2.12"
+ARG FASTTREE_VER="2.1.11"
+ARG MASH_VER="2.3"
+ARG FASTANI_VER="1.34"
+
+# Update package index, install packages (ParSNP basic dependencies and packages needed to build from source)
+RUN apt-get update && apt-get install -y \
+ autoconf \
+ make \
+ build-essential \
+ capnproto \
+ libcapnp-dev \
+ libgsl0-dev \
+ libprotobuf-dev \
+ libssl-dev \
+ libtool \
+ protobuf-compiler \
+ libsqlite3-dev \
+ wget \
+ zlib1g-dev \
+ python3 \
+ python3-pip \
+ unzip
+
+# Add /usr/lib to the library path so Mash and HarvestTools can find the capnp libraries
+ENV LD_LIBRARY_PATH="/usr/lib:/usr/local/lib"
+
+# Move some static libraries that Mash and HarvestTools demand to where they want to see them
+RUN cp /usr/lib/x86_64-linux-gnu/libprotobuf.a /usr/lib/ && \
+ cp /usr/lib/x86_64-linux-gnu/libcapnp.a /usr/lib/ && \
+ cp /usr/lib/x86_64-linux-gnu/libkj.a /usr/lib/
+
+RUN pip3 install numpy
+
+# install fasttree
+# ParSNP expects the FastTree executable to be called 'fasttree'
+RUN wget -q http://www.microbesonline.org/fasttree/FastTree && \
+ chmod +x FastTree && \
+ mv FastTree /usr/local/bin/fasttree
+
+# Install RAxML: https://cme.h-its.org/exelixis/resource/download/NewManual.pdf
+RUN wget -q https://github.com/stamatak/standard-RAxML/archive/refs/tags/v$RAXML_VER.tar.gz && \
+ tar -xvf v$RAXML_VER.tar.gz && \
+ cd standard-RAxML-$RAXML_VER && \
+ make -f Makefile.AVX.PTHREADS.gcc && \
+ cp /standard-RAxML-$RAXML_VER/raxmlHPC-PTHREADS-AVX /usr/local/bin/raxmlHPC-PTHREADS
+
+# Install Mash: https://github.com/marbl/Mash/blob/master/INSTALL.txt
+RUN wget -q https://github.com/marbl/Mash/releases/download/v${MASH_VER}/mash-Linux64-v${MASH_VER}.tar && \
+ tar -xf mash-Linux64-v${MASH_VER}.tar --no-same-owner && \
+ rm -rf mash-Linux64-v${MASH_VER}.tar && \
+ chown root:root /mash-Linux64-v${MASH_VER}/*
+
+# Install PhiPack: https://www.maths.otago.ac.nz/~dbryant/software/phimanual.pdf
+RUN wget -q https://www.maths.otago.ac.nz/~dbryant/software/PhiPack.tar.gz && \
+ tar -xvf PhiPack.tar.gz && \
+ cd /PhiPack/src && \
+ make && \
+ cp /PhiPack/Phi /usr/local/bin && \
+ cp /PhiPack/Profile /usr/local/bin
+
+# Install HarvestTools
+RUN wget -q https://github.com/marbl/harvest-tools/releases/download/v${HARVEST_VER}/harvesttools-Linux64-v${HARVEST_VER}.tar.gz && \
+ tar -vxf harvesttools-Linux64-v${HARVEST_VER}.tar.gz && \
+ cp harvesttools-Linux64-v${HARVEST_VER}/harvesttools /usr/local/bin/.
+
+# Install ParSNP
+RUN wget -q https://github.com/marbl/parsnp/archive/v$PARSNP_VER.tar.gz && \
+ tar -xvf v$PARSNP_VER.tar.gz && \
+ rm v$PARSNP_VER.tar.gz && \
+ cd /parsnp-$PARSNP_VER/muscle && \
+ ./autogen.sh && \
+ ./configure CXXFLAGS='-fopenmp' && \
+ make install && \
+ cd /parsnp-$PARSNP_VER && \
+ ./autogen.sh && \
+ export ORIGIN=\$ORIGIN && \
+ ./configure LDFLAGS='-Wl,-rpath,$$ORIGIN/../muscle/lib' && \
+ make LDADD=-lMUSCLE-3.7 && \
+ make install
+
+# install fastani
+RUN wget -q https://github.com/ParBLiSS/FastANI/releases/download/v${FASTANI_VER}/fastANI-Linux64-v${FASTANI_VER}.zip && \
+ unzip fastANI-Linux64-v${FASTANI_VER}.zip -d /usr/local/bin
+
+FROM ubuntu:jammy as app
+
+ARG PARSNP_VER
+ARG HARVEST_VER
+
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="ParSNP"
+LABEL software.version="${PARSNP_VER}"
+LABEL description="ParSNP: Rapid core genome multi-alignment."
+LABEL documentation="https://harvest.readthedocs.io/en/latest/content/parsnp.html"
+LABEL website="https://github.com/marbl/parsnp"
+LABEL license="https://github.com/marbl/parsnp/blob/master/LICENSE"
+LABEL maintainer="Erin Young"
+LABEL maintainer.email="eriny@utah.gov"
+
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ wget \
+ ca-certificates \
+ procps \
+ python3 \
+ python3-pip \
+ python-is-python3 \
+ unzip \
+ libgomp1 && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+# Copy necessary packages into the production image
+COPY --from=builder /parsnp-$PARSNP_VER/ /parsnp/
+COPY --from=builder /usr/local/bin/* /usr/local/bin/
+COPY --from=builder /usr/local/lib/* /usr/local/lib/
+
+RUN pip install pyspoa numpy biopython tqdm
+
+# Put harvesttools & parsnp in PATH and set LD_LIBRARY_PATH for MUSCLE
+ENV PATH="/parsnp/:$PATH" \
+ LD_LIBRARY_PATH="/usr/local/lib"
+
+CMD parsnp -h
+
+WORKDIR /data
+
+FROM app as test
+
+# IS_GITHUB only applicable for tests run by GitHub action
+ARG IS_GITHUB
+
+RUN parsnp -h
+
+# negative control
+WORKDIR /test/negative
+
+RUN mkdir input_dir && \
+ mkdir reference && \
+ wget -q https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/000/703/365/GCA_000703365.1_Ec2011C-3609/GCA_000703365.1_Ec2011C-3609_genomic.fna.gz && \
+ wget -q https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/016/766/575/GCA_016766575.1_PDT000040717.5/GCA_016766575.1_PDT000040717.5_genomic.fna.gz && \
+ wget -q https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/000/748/565/GCA_000748565.2_ASM74856v2/GCA_000748565.2_ASM74856v2_genomic.fna.gz && \
+ gunzip *.gz && \
+ mv GCA_000703365.1_Ec2011C-3609_genomic.fna reference/. && \
+ mv *fna input_dir && \
+ parsnp -d input_dir -o filter --use-fasttree -v -r reference/GCA_000703365.1_Ec2011C-3609_genomic.fna
+
+# positive control
+WORKDIR /test/positive
+
+RUN mkdir input_dir && \
+ mkdir reference && \
+ wget -q https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/000/703/365/GCA_000703365.1_Ec2011C-3609/GCA_000703365.1_Ec2011C-3609_genomic.fna.gz && \
+ wget -q https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/016/766/575/GCA_016766575.1_PDT000040717.5/GCA_016766575.1_PDT000040717.5_genomic.fna.gz && \
+ wget -q https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/003/018/935/GCA_003018935.1_ASM301893v1/GCA_003018935.1_ASM301893v1_genomic.fna.gz && \
+ wget -q https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/012/830/055/GCA_012830055.1_PDT000040719.3/GCA_012830055.1_PDT000040719.3_genomic.fna.gz && \
+ wget -q https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/012/829/335/GCA_012829335.1_PDT000040724.3/GCA_012829335.1_PDT000040724.3_genomic.fna.gz && \
+ wget -q https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/003/018/775/GCA_003018775.1_ASM301877v1/GCA_003018775.1_ASM301877v1_genomic.fna.gz && \
+ wget -q https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/012/829/275/GCA_012829275.1_PDT000040726.3/GCA_012829275.1_PDT000040726.3_genomic.fna.gz && \
+ wget -q https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/016/766/555/GCA_016766555.1_PDT000040728.5/GCA_016766555.1_PDT000040728.5_genomic.fna.gz && \
+ wget -q https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/012/829/195/GCA_012829195.1_PDT000040729.3/GCA_012829195.1_PDT000040729.3_genomic.fna.gz && \
+ wget -q https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/012/829/295/GCA_012829295.1_PDT000040727.3/GCA_012829295.1_PDT000040727.3_genomic.fna.gz && \
+ gunzip *.gz && \
+ mv GCA_000703365.1_Ec2011C-3609_genomic.fna reference/. && \
+ mv *.fna input_dir/. && \
+ parsnp -d input_dir -o outdir_parsnp_raxml -v -c -r reference/GCA_000703365.1_Ec2011C-3609_genomic.fna && \
+ parsnp -d input_dir -o outdir_parsnp_fasttree --use-fasttree -v -c -r reference/GCA_000703365.1_Ec2011C-3609_genomic.fna && \
+ harvesttools -i outdir_parsnp_fasttree/parsnp.ggr -S outdir_parsnp_fasttree/snp_alignment.txt && \
+ harvesttools -i outdir_parsnp_raxml/parsnp.ggr -S outdir_parsnp_raxml/snp_alignment.txt
diff --git a/parsnp/2.0.5/README.md b/parsnp/2.0.5/README.md
new file mode 100644
index 000000000..cfd25e1e0
--- /dev/null
+++ b/parsnp/2.0.5/README.md
@@ -0,0 +1,52 @@
+## ParSNP
+
+This container implements [ParSNP](https://github.com/marbl/parsnp) from the [Harvest suite](https://harvest.readthedocs.io/en/latest/).
+
+### Includes
+- ParSNP: `parsnp`
+- FastTree: `FastTree` or `fasttree` : 2.1.11
+- RAxML: `raxmlHPC-PTHREADS` : 8.2.12
+- Mash: `mash` : 2.3
+- PhiPack: `Phi` : 1.1
+- HarvestTools: `harvesttools` : 1.3
+- FastANI: `fastani` : 1.34
+
+### Requirements
+- [Docker](https://docs.docker.com/get-docker/)
+
+### Running a container
+Pull the image from Docker Hub.
+```
+docker pull staphb/parsnp:latest
+```
+OR, clone this repository to build & test the image yourself.
+```
+git clone git@github.com:StaPH-B/docker-builds.git
+cd docker-builds/parsnp/1.5.6
+# Run tests
+docker build --target=test -t parsnp-test .
+# Build production image
+docker build --target=app -t parsnp .
+```
+
+### Example data analysis
+Set up some input data.
+```
+mkdir -p parsnp/input_dir
+cd parsnp/input_dir
+wget \
+https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/000/698/515/GCA_000698515.1_CFSAN000661_01.0/GCA_000698515.1_CFSAN000661_01.0_genomic.fna.gz \
+https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/000/749/005/GCA_000749005.1_CFSAN000669_01.0/GCA_000749005.1_CFSAN000669_01.0_genomic.fna.gz
+gunzip *.gz
+cd ../
+```
+Run the container to generate a core genome alignment, call SNPs, and build a phylogeny. Output files are written to `output_dir`.
+```
+docker run --rm -v $PWD:/data -u $(id -u):$(id -g) staphb/parsnp:latest parsnp \
+-d input_dir \
+-o outdir_parsnp \
+--use-fasttree \
+-v \
+-c \
+-r !
+```
diff --git a/pasty/2.2.1/Dockerfile b/pasty/2.2.1/Dockerfile
new file mode 100644
index 000000000..054fbd5c5
--- /dev/null
+++ b/pasty/2.2.1/Dockerfile
@@ -0,0 +1,50 @@
+ARG PASTY_VER="2.2.1"
+
+FROM mambaorg/micromamba:1.5.8 AS app
+
+ARG PASTY_VER
+
+LABEL base.image="mambaorg/micromamba:1.5.8"
+LABEL dockerfile.version="1"
+LABEL software="pasty"
+LABEL software.version="${PASTY_VER}"
+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="curtis.kapsak@theiagen.com"
+LABEL maintainer2="Kutluhan Incekara"
+LABEL maintainer2.email="kutluhan.incekara@ct.gov"
+
+USER root
+
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ procps && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+RUN micromamba install --name base -c conda-forge -c bioconda pasty=${PASTY_VER} &&\
+ micromamba clean -afy
+
+ENV PATH="/opt/conda/bin/:$PATH" \
+ LC_ALL=C
+
+CMD ["pasty", "--help"]
+
+WORKDIR /data
+
+## Test ##
+FROM app AS test
+
+ARG PASTY_VER
+
+RUN apt-get update && apt-get install -y wget
+
+# adapted from https://github.com/rpetit3/pasty/blob/main/test/README.md
+RUN wget -q https://github.com/rpetit3/pasty/archive/refs/tags/v${PASTY_VER}.tar.gz &&\
+ tar -xvf v${PASTY_VER}.tar.gz &&\
+ cd pasty-${PASTY_VER}/test/ &&\
+ for i in $(ls data | grep "fna.gz"); do pasty --input ./data/$i --prefix $(basename $i .fna.gz) --outdir results/ --force; done &&\
+ head -n 1 results/O1-GCF_001420225.tsv > staphb-test.tsv &&\
+ ls results/ | grep -v "details" | grep -v "blastn" | xargs -I {} grep -v "schema_version" results/{} | sort -k1 >> staphb-test.tsv &&\
+ cat staphb-test.tsv
+
diff --git a/pasty/2.2.1/README.md b/pasty/2.2.1/README.md
new file mode 100644
index 000000000..7e7eb7e16
--- /dev/null
+++ b/pasty/2.2.1/README.md
@@ -0,0 +1,42 @@
+# pasty container
+
+Main tool : [pasty](https://github.com/rpetit3/pasty)
+
+Additional tools:
+
+- camlhmp 1.0.0
+- blast 2.16.0+
+
+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
+pasty --input ./data/O1-GCF_001420225.fna.gz --prefix O1-GCF_001420225 --outdir results/
+
+Running camlhmp with following parameters:
+ --input ./data/O1-GCF_001420225.fna.gz
+ --yaml /opt/conda/bin/../share/pasty/pa-osa.yaml
+ --targets /opt/conda/bin/../share/pasty/pa-osa.fasta
+ --outdir results/
+ --prefix O1-GCF_001420225
+ --min-pident 95
+ --min-coverage 95
+
+Starting camlhmp for P. aeruginosa serogrouping...
+Running blastn...
+Processing hits...
+Final Results...
+ P. aeruginosa serogrouping
+┏━━━━━━━━━━━━━━━━━━┳━━━━━━┳━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━┓
+┃ sample ┃ type ┃ targets ┃ coverages ┃ hits ┃ schema ┃ schema_version ┃ camlhmp_version ┃ params ┃ comment ┃
+┡━━━━━━━━━━━━━━━━━━╇━━━━━━╇━━━━━━━━━╇━━━━━━━━━━━╇━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━┩
+│ O1-GCF_001420225 │ O1 │ O1 │ 100.00 │ 1 │ pasty │ 2.1.0 │ 1.0.0 │ min-coverage=95;min-pident=95 │ │
+└──────────────────┴──────┴─────────┴───────────┴──────┴────────┴────────────────┴─────────────────┴───────────────────────────────┴─────────┘
+Writing outputs...
+Final predicted type written to results/O1-GCF_001420225.tsv
+Results against each type written to results/O1-GCF_001420225.details.tsv
+blastn results written to results/O1-GCF_001420225.blastn.tsv
+```
diff --git a/pbipa/1.8.0/Dockerfile b/pbipa/1.8.0/Dockerfile
new file mode 100644
index 000000000..57591b15d
--- /dev/null
+++ b/pbipa/1.8.0/Dockerfile
@@ -0,0 +1,48 @@
+FROM mambaorg/micromamba:1.5.8 as app
+
+ARG IPA_VER="1.8.0"
+
+SHELL [ "/bin/bash", "-c" ]
+USER root
+
+WORKDIR /
+
+LABEL base.image="mambaorg/micromamba:1.5.8"
+LABEL dockerfile.version="1"
+LABEL software="IPA"
+LABEL software.version="${IPA_VER}"
+LABEL description="PacBio Improved Phased Assembler"
+LABEL website="https://github.com/PacificBiosciences/pbipa"
+LABEL license="https://github.com/PacificBiosciences/pbipa/blob/master/LICENSE.txt"
+LABEL maintainer="Kutluhan Incekara"
+LABEL maintainer.email="kutluhan.incekara@ct.gov"
+
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ time \
+ procps && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+RUN micromamba install --name base -c conda-forge -c bioconda python=3.8 pbipa=${IPA_VER} && \
+ eval "$(micromamba shell hook --shell bash)" &&\
+ micromamba clean -a -y
+
+ENV PATH="/opt/conda/bin/:${PATH}" \
+ LC_ALL=C.UTF-8
+
+CMD [ "ipa", "--help" ]
+
+WORKDIR /data
+
+## Test ##
+FROM app as test
+
+RUN apt-get update && apt-get install -y wget
+
+RUN ipa validate
+
+RUN wget -q https://downloads.pacbcloud.com/public/dataset/2021-11-Microbial-96plex/demultiplexed-reads/m64004_210929_143746.bc2009.bam &&\
+ ipa local --njobs 1 --nthreads 4 -i m64004_210929_143746.bc2009.bam &&\
+ head -c 1000 RUN/assembly-results/final.a_ctg.fasta
+
+
+
diff --git a/pbipa/1.8.0/README.md b/pbipa/1.8.0/README.md
new file mode 100644
index 000000000..ab0562d07
--- /dev/null
+++ b/pbipa/1.8.0/README.md
@@ -0,0 +1,31 @@
+# IPA container
+
+Main tool: [IPA](https://github.com/PacificBiosciences/pbipa)
+
+Code repository: https://github.com/PacificBiosciences/pbipa
+
+Additional tools:
+- falconc : 1.15.0
+- minimap2 : 2.28-r1209
+- Nighthawk : 1.0.0
+- pancake : 1.6.0
+- pblayout : 1.4.0
+- racon : 1.5.0
+- samtools : 1.20
+- htslib : 1.20
+
+
+Basic information on how to use this tool:
+- executable: ipa
+- help: -h, --help
+- version: --version
+- description:
+>Improved Phased Assembler (IPA) is the official PacBio software for HiFi genome assembly. IPA was designed to utilize the accuracy of PacBio HiFi reads to produce high-quality phased genome assemblies
+
+Full documentation: https://github.com/PacificBiosciences/pbbioconda/wiki/Improved-Phased-Assembler
+
+## Example Usage
+
+```bash
+ipa local --nthreads 8 --njobs 1 -i hifi.reads.[FASTA,FASTQ,BAM,XML,FOFN]
+```
diff --git a/pbjasmine/2.0.0/Dockerfile b/pbjasmine/2.0.0/Dockerfile
new file mode 100644
index 000000000..935126364
--- /dev/null
+++ b/pbjasmine/2.0.0/Dockerfile
@@ -0,0 +1,41 @@
+FROM ubuntu:jammy as app
+
+ARG JASMINE_VER="2.0.0"
+
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="Jasmine"
+LABEL software.version="${JASMINE_VER}"
+LABEL description="Jasmine predicts 5-Methylcytosine (5mC) of each CpG site in PacBio HiFi reads"
+LABEL website="https://github.com/pacificbiosciences/jasmine/"
+LABEL license="https://github.com/PacificBiosciences/jasmine/blob/main/LICENSE"
+LABEL maintainer="Kutluhan Incekara"
+LABEL maintainer.email="kutluhan.incekara@ct.gov"
+
+RUN apt-get update && apt-get install --no-install-recommends -y \
+ wget &&\
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+RUN wget --no-check-certificate -P /usr/local/bin/ https://github.com/PacificBiosciences/jasmine/releases/download/v${JASMINE_VER}/jasmine &&\
+ chmod 755 /usr/local/bin/jasmine
+
+ENV LC_ALL=C
+
+CMD [ "jasmine", "-h" ]
+
+WORKDIR /data
+
+## Test prep ##
+FROM staphb/pbtk:3.1.1 as testdata
+
+RUN wget -q --no-check-certificate https://downloads.pacbcloud.com/public/Sequel-II-CpG-training/CCS/methylated/m64168_200823_191315.hifi_reads.bam &&\
+ pbindex m64168_200823_191315.hifi_reads.bam &&\
+ zmwfilter --downsample-count 10 m64168_200823_191315.hifi_reads.bam test.bam &&\
+ rm m64168_200823_191315.hifi_reads.bam
+
+## Test ##
+FROM app as test
+
+COPY --from=testdata /data/test.bam /data/test.bam
+
+RUN jasmine test.bam out.bam --log-level INFO
diff --git a/pbjasmine/2.0.0/README.md b/pbjasmine/2.0.0/README.md
new file mode 100644
index 000000000..a8db8eb76
--- /dev/null
+++ b/pbjasmine/2.0.0/README.md
@@ -0,0 +1,24 @@
+# Jasmine container
+
+Main tool: [jasmine](https://github.com/PacificBiosciences/jasmine)
+
+Code repository: https://github.com/PacificBiosciences/jasmine
+
+Additional tools:
+
+Basic information on how to use this tool:
+
+- executable: jasmine
+- help: -h, --help
+- version: --version
+- description: Jasmine predicts 5-Methylcytosine (5mC) of each CpG site in PacBio HiFi reads.
+
+Additional information:
+
+Full documentation: https://github.com/PacificBiosciences/jasmine
+
+## Example Usage
+
+```bash
+jasmine movie.hifi_reads.bam movie.5mc.hifi_reads.bam
+```
diff --git a/pbmm2/1.13.1/Dockerfile b/pbmm2/1.13.1/Dockerfile
new file mode 100644
index 000000000..276252c68
--- /dev/null
+++ b/pbmm2/1.13.1/Dockerfile
@@ -0,0 +1,37 @@
+FROM ubuntu:jammy as app
+
+ARG PBMM2_VER="1.13.1"
+
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="pbmm2"
+LABEL software.version="${PBMM2_VER}"
+LABEL description="A minimap2 SMRT wrapper for PacBio data: native PacBio data in and out."
+LABEL website="https://github.com/PacificBiosciences/pbmm2"
+LABEL license="https://github.com/PacificBiosciences/pbmm2/blob/develop/LICENSE"
+LABEL maintainer="Kutluhan Incekara"
+LABEL maintainer.email="kutluhan.incekara@ct.gov"
+
+RUN apt-get update && apt-get install --no-install-recommends -y \
+ wget &&\
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+RUN wget -P /usr/local/bin/ --no-check-certificate https://github.com/PacificBiosciences/pbmm2/releases/download/v${PBMM2_VER}/pbmm2 &&\
+ chmod 755 /usr/local/bin/pbmm2
+
+ENV LC_ALL=C
+
+CMD ["pbmm2", "-h"]
+
+WORKDIR /data
+
+## Test ##
+FROM app as test
+
+RUN wget -q --no-check-certificate https://downloads.pacbcloud.com/public/dataset/HiFiViral/Nov_2021/m64012_210821_095651.hifi_reads.bam &&\
+ wget -q --no-check-certificate https://ftp.ncbi.nlm.nih.gov/genomes/all/GCF/009/858/895/GCF_009858895.2_ASM985889v3/GCF_009858895.2_ASM985889v3_genomic.fna.gz &&\
+ gunzip -c GCF_009858895.2_ASM985889v3_genomic.fna.gz > ref.fasta
+
+RUN pbmm2 index ref.fasta ref.mmi --preset HiFi &&\
+ pbmm2 align -j 4 ref.mmi m64012_210821_095651.hifi_reads.bam mapped.hifi.reads.bam --preset HiFi
+
diff --git a/pbmm2/1.13.1/README.md b/pbmm2/1.13.1/README.md
new file mode 100644
index 000000000..7c2521195
--- /dev/null
+++ b/pbmm2/1.13.1/README.md
@@ -0,0 +1,23 @@
+# pbmm2 container
+
+Main tool: [pbmm2](https://github.com/PacificBiosciences/pbmm2)
+
+Code repository: https://github.com/PacificBiosciences/pbmm2
+
+Basic information on how to use this tool:
+- executable: pbmm2
+- help: -h, --help
+- version: --version
+- description:
+>pbmm2 is a SMRT C++ wrapper for minimap2's C API. Its purpose is to support native PacBio in- and output, provide sets of recommended parameters, generate sorted output on-the-fly, and postprocess alignments.
+
+Full documentation: https://github.com/PacificBiosciences/pbmm2
+
+## Example Usage
+
+```bash
+# index
+pbmm2 index [options]
+# align
+pbmm2 align [options] [out.aligned.bam|xml]
+```
\ No newline at end of file
diff --git a/pbtk/3.1.1/Dockerfile b/pbtk/3.1.1/Dockerfile
new file mode 100644
index 000000000..d3b8071d6
--- /dev/null
+++ b/pbtk/3.1.1/Dockerfile
@@ -0,0 +1,51 @@
+FROM ubuntu:jammy as app
+
+ARG PBTK_VER="3.1.1"
+
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="pbtk"
+LABEL software.version="${PBTK_VER}"
+LABEL description="PacBio BAM toolkit"
+LABEL website="https://github.com/PacificBiosciences/pbtk"
+LABEL license="https://github.com/PacificBiosciences/pbtk/blob/main/LICENSE.txt"
+LABEL maintainer="Kutluhan Incekara"
+LABEL maintainer.email="kutluhan.incekara@ct.gov"
+
+RUN apt-get update && apt-get install --no-install-recommends -y \
+ wget &&\
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+RUN wget --no-check-certificate https://github.com/PacificBiosciences/pbtk/releases/download/v${PBTK_VER}/pbtk.tar.gz &&\
+ tar -C /usr/local/bin/ -xvf pbtk.tar.gz &&\
+ rm pbtk.tar.gz
+
+ENV LC_ALL=C
+
+CMD bam2fasta -h;\
+ bam2fastq -h;\
+ ccs-kinetics-bystrandify -h;\
+ extracthifi -h;\
+ pbindex -h;\
+ pbindexdump -h;\
+ pbmerge -h;\
+ zmwfilter -h
+
+WORKDIR /data
+
+## Test ##
+FROM app as test
+
+RUN wget -q --no-check-certificate https://downloads.pacbcloud.com/public/dataset/HiFiViral/Nov_2021/m64012_210821_095651.hifi_reads.bam
+
+RUN pbindex m64012_210821_095651.hifi_reads.bam &&\
+ zmwfilter --include 1,2,4,8,16 m64012_210821_095651.hifi_reads.bam test.bam &&\
+ zmwfilter --include 18,19,22,24,33 m64012_210821_095651.hifi_reads.bam test2.bam &&\
+ pbindex test.bam &&\
+ pbindexdump test.bam.pbi > test.json &&\
+ bam2fasta -o test test.bam &&\
+ bam2fastq -o test test.bam &&\
+ extracthifi test.bam test.hifi.bam &&\
+ ccs-kinetics-bystrandify test.bam test.bystrand.bam &&\
+ pbmerge test.bam test2.bam > test.merged.bam &&\
+ echo $(ls | grep test)
\ No newline at end of file
diff --git a/pbtk/3.1.1/README.md b/pbtk/3.1.1/README.md
new file mode 100644
index 000000000..2a50bcc22
--- /dev/null
+++ b/pbtk/3.1.1/README.md
@@ -0,0 +1,42 @@
+# pbtk container
+
+Main tool: [pbtk](https://github.com/PacificBiosciences/pbtk)
+
+Code repository: https://github.com/PacificBiosciences/pbtk
+
+Basic information on how to use this tool:
+- executables:
+ - bam2fasta
+ - bam2fastq
+ - ccs-kinetics-bystrandify
+ - extracthifi
+ - pbindex
+ - pbindexdump
+ - pbmerge
+ - zmwfilter
+- help: -h, --help
+- version: --version
+- description: PacBio BAM toolkit
+
+Full documentation: https://github.com/PacificBiosciences/pbtk
+
+## Example Usage
+
+```bash
+# bam2fasta
+bam2fasta -o out in.bam
+# bam2fastq
+bam2fastq -o out in_1.bam in_2.bam in_3.xml in_4.bam
+# ccs-kinetics-bystrandify
+ccs-kinetics-bystrandify in.bam out.bam
+# extracthifi
+extracthifi in.bam out.bam
+# pbindex
+pbindex in.bam
+# pbindexdump
+pbindexdump in.bam.pbi > out.json
+# pbmerge
+pbmerge in1.bam in2.bam in3.bam > out.bam
+# zmwfilter
+zmwfilter --include 1,2,4,8,16 in.bam out.bam
+```
diff --git a/phytreeviz/0.1.0/Dockerfile b/phytreeviz/0.1.0/Dockerfile
new file mode 100644
index 000000000..7dd562d74
--- /dev/null
+++ b/phytreeviz/0.1.0/Dockerfile
@@ -0,0 +1,65 @@
+FROM python:3.9.17-slim as app
+
+# List all software versions are ARGs near the top of the dockerfile
+# 'ARG' sets environment variables during the build stage
+# ARG variables are ONLY available during image build, they do not persist in the final image
+ARG PHYTREEVIZ_VER="0.1.0"
+
+# 'LABEL' instructions tag the image with metadata that might be important to the user
+LABEL base.image="python:3.9.17-slim"
+LABEL dockerfile.version="1"
+LABEL software="phyTreeViz"
+LABEL software.version="${PHYTREEVIZ_VER}"
+LABEL description="Visualizing phylogenetic trees"
+LABEL website="https://github.com/moshi4/phyTreeViz/"
+LABEL license="https://github.com/moshi4/phyTreeViz/blob/main/LICENSE"
+LABEL maintainer="Erin Young"
+LABEL maintainer.email="eriny@utah.gov"
+
+# 'RUN' executes code during the build
+# Install dependencies via apt-get or yum if using a centos or fedora base
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ procps \
+ ca-certificates && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+# Install and/or setup more things. Make /data for use as a working dir
+# For readability, limit one install per 'RUN' statement.
+RUN pip install --no-cache phytreeviz==${PHYTREEVIZ_VER}
+
+ENV PATH="$PATH" \
+ LC_ALL=C
+
+# 'CMD' instructions set a default command when the container is run. This is typically 'tool --help.'
+CMD phytreeviz --help
+
+# 'WORKDIR' sets working directory
+WORKDIR /data
+
+##### ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- #####
+##### Step 2. Set up the testing stage. #####
+##### The docker image is built to the 'test' stage before merging, but #####
+##### the test stage (or any stage after 'app') will be lost. #####
+##### ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- #####
+
+# A second FROM insruction creates a new stage
+FROM app as test
+
+RUN apt-get update && apt-get install -y --no-install-recommends wget unzip
+
+# set working directory so that all test inputs & outputs are kept in /test
+WORKDIR /test
+
+# print help and version info; check dependencies (not all software has these options available)
+# Mostly this ensures the tool of choice is in path and is executable
+RUN phytreeviz --help && \
+ phytreeviz --version
+
+# Demonstrate that the program is successfully installed - which is highly dependant on what the tool is.
+
+# Run the program's internal tests if available, for example with SPAdes:
+RUN wget -q https://github.com/moshi4/phyTreeViz/raw/main/example/example.zip && \
+ unzip example.zip && \
+ phytreeviz -i ./example/small_example.nwk -o cli_example_small.png --show_branch_length --show_confidence && \
+ phytreeviz -i ./example/medium_example.nwk -o cli_example_med.png --fig_height 0.3 --align_leaf_label && \
+ ls cli_example_med.png cli_example_small.png
diff --git a/phytreeviz/0.1.0/README.md b/phytreeviz/0.1.0/README.md
new file mode 100644
index 000000000..2c352ec82
--- /dev/null
+++ b/phytreeviz/0.1.0/README.md
@@ -0,0 +1,42 @@
+# phyTreeViz container
+
+Main tool: [phyTreeViz](https://github.com/moshi4/phyTreeViz)
+
+Code repository: https://github.com/moshi4/phyTreeViz
+
+Basic information on how to use this tool:
+- executable: phytreeviz
+- help: --help
+- version: --version
+- description: Visualizing phylogenetic trees
+
+Additional information:
+
+> phyTreeViz is a simple and minimal phylogenetic tree visualization python package implemented based on matplotlib. This package was developed to enhance phylogenetic tree visualization functionality of BioPython.
+
+This is contains a python library as well as a command line executable.
+
+Full documentation:
+- CLI Docs : https://moshi4.github.io/phyTreeViz/cli-docs/phytreeviz/
+- API Docs : https://moshi4.github.io/phyTreeViz/api-docs/treeviz/
+
+## Example Usage
+
+CLI example
+```bash
+phytreeviz -i input.nwk -o output.png
+```
+
+API example
+```python
+from phytreeviz import TreeViz, load_example_tree_file
+
+tree_file = load_example_tree_file("small_example.nwk")
+
+tv = TreeViz(tree_file)
+tv.show_branch_length(color="red")
+tv.show_confidence(color="blue")
+tv.show_scale_bar()
+
+tv.savefig("api_example01.png", dpi=300)
+```
diff --git a/phytreeviz/0.2.0/Dockerfile b/phytreeviz/0.2.0/Dockerfile
new file mode 100644
index 000000000..2831f99a1
--- /dev/null
+++ b/phytreeviz/0.2.0/Dockerfile
@@ -0,0 +1,65 @@
+FROM python:3.9.17-slim as app
+
+# List all software versions are ARGs near the top of the dockerfile
+# 'ARG' sets environment variables during the build stage
+# ARG variables are ONLY available during image build, they do not persist in the final image
+ARG PHYTREEVIZ_VER="0.2.0"
+
+# 'LABEL' instructions tag the image with metadata that might be important to the user
+LABEL base.image="python:3.9.17-slim"
+LABEL dockerfile.version="1"
+LABEL software="phyTreeViz"
+LABEL software.version="${PHYTREEVIZ_VER}"
+LABEL description="Visualizing phylogenetic trees"
+LABEL website="https://github.com/moshi4/phyTreeViz/"
+LABEL license="https://github.com/moshi4/phyTreeViz/blob/main/LICENSE"
+LABEL maintainer="Erin Young"
+LABEL maintainer.email="eriny@utah.gov"
+
+# 'RUN' executes code during the build
+# Install dependencies via apt-get or yum if using a centos or fedora base
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ procps \
+ ca-certificates && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+# Install and/or setup more things. Make /data for use as a working dir
+# For readability, limit one install per 'RUN' statement.
+RUN pip install --no-cache phytreeviz==${PHYTREEVIZ_VER}
+
+ENV PATH="$PATH" \
+ LC_ALL=C
+
+# 'CMD' instructions set a default command when the container is run. This is typically 'tool --help.'
+CMD phytreeviz --help
+
+# 'WORKDIR' sets working directory
+WORKDIR /data
+
+##### ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- #####
+##### Step 2. Set up the testing stage. #####
+##### The docker image is built to the 'test' stage before merging, but #####
+##### the test stage (or any stage after 'app') will be lost. #####
+##### ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- #####
+
+# A second FROM insruction creates a new stage
+FROM app as test
+
+RUN apt-get update && apt-get install -y --no-install-recommends wget unzip
+
+# set working directory so that all test inputs & outputs are kept in /test
+WORKDIR /test
+
+# print help and version info; check dependencies (not all software has these options available)
+# Mostly this ensures the tool of choice is in path and is executable
+RUN phytreeviz --help && \
+ phytreeviz --version
+
+# Demonstrate that the program is successfully installed - which is highly dependant on what the tool is.
+
+# Run the program's internal tests if available, for example with SPAdes:
+RUN wget -q https://github.com/moshi4/phyTreeViz/raw/main/example/example.zip && \
+ unzip example.zip && \
+ phytreeviz -i ./example/small_example.nwk -o cli_example_small.png --show_branch_length --show_confidence && \
+ phytreeviz -i ./example/medium_example.nwk -o cli_example_med.png --fig_height 0.3 --align_leaf_label && \
+ ls cli_example_med.png cli_example_small.png
diff --git a/phytreeviz/0.2.0/README.md b/phytreeviz/0.2.0/README.md
new file mode 100644
index 000000000..2c352ec82
--- /dev/null
+++ b/phytreeviz/0.2.0/README.md
@@ -0,0 +1,42 @@
+# phyTreeViz container
+
+Main tool: [phyTreeViz](https://github.com/moshi4/phyTreeViz)
+
+Code repository: https://github.com/moshi4/phyTreeViz
+
+Basic information on how to use this tool:
+- executable: phytreeviz
+- help: --help
+- version: --version
+- description: Visualizing phylogenetic trees
+
+Additional information:
+
+> phyTreeViz is a simple and minimal phylogenetic tree visualization python package implemented based on matplotlib. This package was developed to enhance phylogenetic tree visualization functionality of BioPython.
+
+This is contains a python library as well as a command line executable.
+
+Full documentation:
+- CLI Docs : https://moshi4.github.io/phyTreeViz/cli-docs/phytreeviz/
+- API Docs : https://moshi4.github.io/phyTreeViz/api-docs/treeviz/
+
+## Example Usage
+
+CLI example
+```bash
+phytreeviz -i input.nwk -o output.png
+```
+
+API example
+```python
+from phytreeviz import TreeViz, load_example_tree_file
+
+tree_file = load_example_tree_file("small_example.nwk")
+
+tv = TreeViz(tree_file)
+tv.show_branch_length(color="red")
+tv.show_confidence(color="blue")
+tv.show_scale_bar()
+
+tv.savefig("api_example01.png", dpi=300)
+```
diff --git a/plasmidfinder/2.1.6_2024-03-07/Dockerfile b/plasmidfinder/2.1.6_2024-03-07/Dockerfile
new file mode 100644
index 000000000..68bbaf575
--- /dev/null
+++ b/plasmidfinder/2.1.6_2024-03-07/Dockerfile
@@ -0,0 +1,80 @@
+FROM ubuntu:focal as app
+
+ARG PLASMIDFINDER_VER="2.1.6"
+# There is a plasmidfinder database version (2.1), but that hasn't been updated in... awhile
+# Instead, I think we should do what we do for the other *finder tools and use the latest commit
+# see here: https://bitbucket.org/genomicepidemiology/plasmidfinder_db/commits/3e77502f23c4f0230e0644e47e1b649d2378495f
+ARG DB_COMMIT_HASH="3e77502f23c4f0230e0644e47e1b649d2378495f"
+ARG KMA_VER="1.4.14"
+
+# LABEL instructions tag the image with metadata that might be important to the user
+# Optional, but highly recommended
+LABEL base.image="ubuntu:focal"
+LABEL dockerfile.version="1"
+LABEL software="plasmidfinder"
+LABEL software.version="${PLASMIDFINDER_VER}"
+LABEL description="Identifies plasmids in total or partial sequenced isolates of bacteria."
+LABEL website="https://bitbucket.org/genomicepidemiology/plasmidfinder"
+LABEL license="https://bitbucket.org/genomicepidemiology/plasmidfinder/src/master/README.md"
+LABEL maintainer="John Arnn"
+LABEL maintainer.email="jarnn@utah.gov"
+
+# ARG so that this variable only persists at image build time
+ARG DEBIAN_FRONTEND noninteractive
+
+# RUN executes code during the build
+# Install dependencies via apt-get or yum if using a centos or fedora base
+# ncbi-blast v2.6.0 via debian:stretch apt
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ wget \
+ ca-certificates \
+ procps \
+ git \
+ ncbi-blast+ \
+ python3 \
+ python3-pip \
+ python3-setuptools \
+ python3-dev \
+ gcc \
+ make \
+ libz-dev \
+ dos2unix \
+ unzip && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+# Install python dependencies
+RUN pip3 install biopython==1.73 tabulate==0.7.7 cgecore==1.5.5
+
+# Install kma
+RUN git clone --branch ${KMA_VER} --depth 1 https://bitbucket.org/genomicepidemiology/kma.git && \
+ cd kma && \
+ make && \
+ mv -v kma* /usr/local/bin/
+
+RUN wget https://bitbucket.org/genomicepidemiology/plasmidfinder/get/${PLASMIDFINDER_VER}.tar.gz && \
+ mkdir plasmidfinder && \
+ tar -xvf ${PLASMIDFINDER_VER}.tar.gz -C plasmidfinder --strip-components 1 && \
+ rm ${PLASMIDFINDER_VER}.tar.gz
+
+ENV PATH="${PATH}:/plasmidfinder"
+
+RUN chmod +x plasmidfinder/plasmidfinder.py
+
+RUN mkdir /database && \
+ git clone https://bitbucket.org/genomicepidemiology/plasmidfinder_db.git /database && \
+ cd /database && \
+ git checkout ${DB_COMMIT_HASH} && \
+ dos2unix *.fsa && \
+ python3 INSTALL.py kma_index
+
+CMD plasmidfinder.py -h
+
+WORKDIR /data
+
+FROM app as test
+
+RUN plasmidfinder.py -h
+
+RUN wget ftp://ftp.sra.ebi.ac.uk/vol1/fastq/ERR193/000/ERR1937840/ERR1937840.fastq.gz && \
+ gzip -d ERR1937840.fastq.gz && mkdir test && \
+ plasmidfinder.py -i ERR1937840.fastq -o test
diff --git a/plasmidfinder/2.1.6_2024-03-07/README.md b/plasmidfinder/2.1.6_2024-03-07/README.md
new file mode 100644
index 000000000..14a4d073d
--- /dev/null
+++ b/plasmidfinder/2.1.6_2024-03-07/README.md
@@ -0,0 +1,12 @@
+# Plasmidfinder Container
+
+Main tool: [Plasmidfinder](https://bitbucket.org/genomicepidemiology/plasmidfinder/src/master/)
+
+The PlasmidFinder service contains one python script plasmidfinder.py which is the script of the latest version of the PlasmidFinder service. The service identifies plasmids in total or partial sequenced isolates of bacteria.
+
+# Example Usage
+```{bash}
+plasmidfinder.py -i ERR1937840.fastq -o test
+```
+
+Better documentation can be found at [Plasmidfinder](https://bitbucket.org/genomicepidemiology/plasmidfinder/src/master/)
diff --git a/polkapox/1.0.0-beta/Dockerfile b/polkapox/1.0.0-beta/Dockerfile
new file mode 100644
index 000000000..5faf21738
--- /dev/null
+++ b/polkapox/1.0.0-beta/Dockerfile
@@ -0,0 +1,88 @@
+##### Building stage #####
+
+# Stage 1: Build Python environment with required packages
+FROM python:3.8-slim as app
+
+ARG SOFTWARENAME_VER="1.0.0-beta"
+
+# Set environment variables
+ENV PYTHONDONTWRITEBYTECODE=1 \
+ PYTHONUNBUFFERED=1
+
+# Add metadata
+LABEL authors="CDC PolkaPox Team"
+LABEL description="Container used in the PolkaPox pipeline by graph_reconstruct.nf module"
+LABEL base.image="python:3.8-slim"
+LABEL dockerfile.version="1"
+LABEL software="polkapox"
+LABEL software.version="${SOFTWARENAME_VER}"
+LABEL website="https://github.com/CDCgov/polkapox"
+LABEL license="https://github.com/CDCgov/polkapox/blob/master/LICENSE"
+LABEL maintainer="CDC PolkaPox Group"
+LABEL maintainer.email="yrh8@cdc.gov"
+
+# Install required system dependencies
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ build-essential \
+ libopenblas-dev \
+ wget \
+ procps && \
+ rm -rf /var/lib/apt/lists/* && apt-get autoclean
+
+# Install Python packages
+RUN pip install --no-cache-dir \
+ biopython==1.83 \
+ numpy==1.24.4 \
+ mkl==2024.0.0 \
+ networkx==3.1 \
+ gfapy==1.2.3
+
+# Set a work dir for the Blast+ install
+WORKDIR /src
+
+# Install NCBI BLAST+
+ARG BLAST_VER=2.15.0
+
+RUN wget https://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/${BLAST_VER}/ncbi-blast-${BLAST_VER}+-x64-linux.tar.gz && \
+ tar -xzf ncbi-blast-${BLAST_VER}+-x64-linux.tar.gz && \
+ rm ncbi-blast-${BLAST_VER}+-x64-linux.tar.gz && \
+ mkdir /data
+
+# Add blast executable to path
+ENV PATH="/src/ncbi-blast-${BLAST_VER}+/bin:${PATH}" \
+ LC_ALL=C
+
+# Set the working directory
+WORKDIR /data
+
+# Set the default command
+CMD echo "The polkapox container is not intended to run independently of the workflow. See https://github.com/CDCgov/polkapox"
+
+##### ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- #####
+##### Step 2. Set up the testing stage. #####
+##### The docker image is built to the 'test' stage before merging, but #####
+##### the test stage (or any stage after 'app') will be lost. #####
+##### ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- #####
+
+# A second FROM insruction creates a new stage
+FROM app as test
+
+# Set working directory so that all test inputs & outputs are kept in /test
+WORKDIR /test
+
+###### Testing Stage ######
+RUN blastn -version
+
+# Copy and run test files
+COPY LIY15561A68_2022_1748_IN.assembly.gfa.gz /test/.
+
+RUN gunzip LIY15561A68_2022_1748_IN.assembly.gfa.gz && \
+ wget -q https://raw.githubusercontent.com/CDCgov/polkapox/master/assets/MPXV-UK_P2.noN_39086_40204.fasta && \
+ wget -q https://raw.githubusercontent.com/CDCgov/polkapox/master/bin/mpxv-AssemblyGraph_gfaPy.py && \
+ cat LIY15561A68_2022_1748_IN.assembly.gfa | awk 'BEGIN { FS="\t" } /^S/{ if( length($3) >= 1) print ">Contig"$2"_len"substr($4,6)"_cov"substr($5,6,5)"\n"$3}' | fold > LIY15561A65_2022_1744_NE.contigs.fasta && \
+ python mpxv-AssemblyGraph_gfaPy.py \
+ -i /test/LIY15561A68_2022_1748_IN.assembly.gfa \
+ -r /test/MPXV-UK_P2.noN_39086_40204.fasta \
+ -o . && \
+ head /test/LIY15561A68_2022_1748_IN.assembly.log /test/LIY15561A68_2022_1748_IN.assembly.summary && \
+ wc -l LIY15561A68_2022_1748_IN.assembly_longest.fasta
diff --git a/polkapox/1.0.0-beta/LIY15561A68_2022_1748_IN.assembly.gfa.gz b/polkapox/1.0.0-beta/LIY15561A68_2022_1748_IN.assembly.gfa.gz
new file mode 100644
index 000000000..96a38c1e9
Binary files /dev/null and b/polkapox/1.0.0-beta/LIY15561A68_2022_1748_IN.assembly.gfa.gz differ
diff --git a/polkapox/1.0.0-beta/README.md b/polkapox/1.0.0-beta/README.md
new file mode 100644
index 000000000..b05ba4a5b
--- /dev/null
+++ b/polkapox/1.0.0-beta/README.md
@@ -0,0 +1,16 @@
+# PolkaPox container
+
+Main tool: [polkapox](https://github.com/CDCgov/polkapox)
+
+Additional tools installed via pip:
+- biopython: 1.83
+- numpy: 1.24.4
+- mkl: 2024.0.0
+- networkx: 3.1
+- gfapy: 1.2.3
+Additional tools installed from pre-compiled binaries:
+- Blast+: 2.15.0
+
+[polkapox](https://github.com/CDCgov/polkapox) is a nextflow workflow for filtering, trimming, QC, reference-based analysis, and de novo assembly of Illumina sequencing reads from orthopoxviruses. The resultant container is not intended to run independently of the workflow.
+
+Full documentation: [https://github.com/CDCgov/polkapox](https://github.com/CDCgov/polkapox)
diff --git a/polypolish/0.6.0/Dockerfile b/polypolish/0.6.0/Dockerfile
new file mode 100644
index 000000000..88d67b63b
--- /dev/null
+++ b/polypolish/0.6.0/Dockerfile
@@ -0,0 +1,49 @@
+ARG POLYPOLISH_VER="0.6.0"
+
+FROM rust:1.75 as builder
+
+ARG POLYPOLISH_VER
+
+RUN wget -q https://github.com/rrwick/Polypolish/archive/refs/tags/v${POLYPOLISH_VER}.tar.gz && \
+ tar -vxf v${POLYPOLISH_VER}.tar.gz && \
+ cd /Polypolish-${POLYPOLISH_VER} && \
+ cargo build --release
+
+FROM ubuntu:jammy as app
+
+ARG POLYPOLISH_VER
+
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="polypolish"
+LABEL software.version="${POLYPOLISH_VER}"
+LABEL description="Polypolish is a tool for polishing genome assemblies with short reads."
+LABEL website="https://github.com/rrwick/Polypolish"
+LABEL license="https://github.com/rrwick/Polypolish/blob/main/LICENSE"
+LABEL maintainer="Erin Young"
+LABEL maintainer.email="eriny@utah.gov"
+
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ wget \
+ ca-certificates \
+ procps \
+ unzip \
+ python3 && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+COPY --from=builder /Polypolish-${POLYPOLISH_VER}/target/release/polypolish /usr/local/bin/polypolish
+
+ENV LC_ALL=C
+
+CMD polypolish --help
+
+WORKDIR /data
+
+FROM app as test
+
+RUN polypolish --help && polypolish --version
+
+# using "toy" data
+RUN wget -q https://raw.githubusercontent.com/wiki/rrwick/Polypolish/files/toy_example/assembly.fasta && \
+ wget -q https://raw.githubusercontent.com/wiki/rrwick/Polypolish/files/toy_example/alignments.sam && \
+ polypolish polish assembly.fasta alignments.sam > polished.fasta
diff --git a/polypolish/0.6.0/README.md b/polypolish/0.6.0/README.md
new file mode 100644
index 000000000..f5e33dbb6
--- /dev/null
+++ b/polypolish/0.6.0/README.md
@@ -0,0 +1,28 @@
+# polypolish container
+
+Main tool : [polypolish](https://github.com/rrwick/Polypolish/wiki/How-to-run-Polypolish)
+
+Full documentation: [https://github.com/rrwick/Polypolish/wiki](https://github.com/rrwick/Polypolish/wiki)
+
+Polypolish "polishes" consensus files created during assembly of long reads with Illumina short reads. Polypolish is a little different than other polishing tools in that paired-end reads need to be aligned separatly to generate two sam files.
+
+## Example Usage
+
+Align reads to the draft sequence in a different container. The example shows bwa, as this is in the Polypolish wiki, but bbamp, minimap2 or any other similar software can perform a similar step that may be better suited for your use-case.
+
+```bash
+bwa index draft.fasta
+bwa mem -t 16 -a draft.fasta reads_1.fastq.gz > alignments_1.sam
+bwa mem -t 16 -a draft.fasta reads_2.fastq.gz > alignments_2.sam
+```
+
+Once the sam files are generated, they can be used with polypolish in this container.
+
+```bash
+# paired end
+polypolish filter --in1 alignments_1.sam --in2 alignments_2.sam --out1 filtered_1.sam --out2 filtered_2.sam
+polypolish polish draft.fasta filtered_1.sam filtered_2.sam > polished.fasta
+
+# single end
+polypolish polish draft.fasta input.sam > polished.fasta
+```
diff --git a/poppunk/2.6.2/Dockerfile b/poppunk/2.6.2/Dockerfile
new file mode 100644
index 000000000..a08df4e0f
--- /dev/null
+++ b/poppunk/2.6.2/Dockerfile
@@ -0,0 +1,65 @@
+FROM mambaorg/micromamba:1.5.3 as app
+
+# Version arguments
+# ARG variables only persist during build time
+ARG POPPUNK_VERSION="2.6.2"
+
+# build and run as root users since micromamba image has 'mambauser' set as the $USER
+USER root
+# set workdir to default for building; set to /data at the end
+WORKDIR /
+
+LABEL base.image="mambaorg/micromamba:1.5.3"
+LABEL dockerfile.version="2"
+LABEL software="PopPUNK"
+LABEL software.version=${POPPUNK_VERSION}
+LABEL description="POPulation Partitioning Using Nucleotide Kmers"
+LABEL website="https://github.com/bacpop/PopPUNK"
+LABEL license="https://github.com/bacpop/PopPUNK/blob/master/LICENSE"
+LABEL maintainer="Curtis Kapsak"
+LABEL maintainer.email="curtis.kapsak@theiagen.com"
+LABEL maintainer2="Harry Hung"
+LABEL maintainer2.email="ch31@sanger.ac.uk"
+
+# install dependencies; cleanup apt garbage
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ wget \
+ ca-certificates \
+ procps && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+# Create PopPUNK conda environment called poppunk-env from bioconda recipe
+# clean up conda garbage
+RUN micromamba create -n poppunk-env -c conda-forge -c bioconda -c defaults poppunk=${POPPUNK_VERSION} && \
+ micromamba clean -a -y
+
+# set the environment, put new conda env in PATH by default; set locales to UTF-8
+ENV PATH="/opt/conda/envs/poppunk-env/bin:${PATH}" \
+ LC_ALL=C.UTF-8
+
+# set working directory to /data
+WORKDIR /data
+
+# new base for testing
+FROM app as test
+
+# so that mamba/conda env is active when running below commands
+ENV ENV_NAME="poppunk-env"
+ARG MAMBA_DOCKERFILE_ACTIVATE=1
+
+# print out various help options and version
+RUN poppunk --help && \
+ poppunk_assign --help && \
+ poppunk_visualise --help && \
+ poppunk_mst --help && \
+ poppunk_references --help && \
+ poppunk_info --help && \
+ poppunk_mandrake --help && \
+ poppunk --version
+
+# Download 100 S. Pneumo assemblies from GPS Public Data on ENA
+# Build PopPUNK database from the assemblies
+# Assign clusters on the same assemblies using the built database
+# Compare the database clusters and assigned clusters of the assemblies
+COPY test.sh ftps.txt /data/
+RUN bash test.sh
\ No newline at end of file
diff --git a/poppunk/2.6.2/README.md b/poppunk/2.6.2/README.md
new file mode 100644
index 000000000..cd0c10024
--- /dev/null
+++ b/poppunk/2.6.2/README.md
@@ -0,0 +1,56 @@
+# PopPUNK container
+
+Main tool :
+- [PopPUNK](https://github.com/bacpop/PopPUNK)
+
+Additional tools:
+- biopython 1.81
+- pp-sketchlib 2.1.1
+- python 3.10.13
+- rapidnj 2.3.2
+- treeswift 1.1.38
+
+Full documentation: [https://poppunk.readthedocs.io/en/latest/](https://poppunk.readthedocs.io/en/latest/)
+
+PopPUNK is also available as a webtool: [https://www.poppunk.net/](https://www.poppunk.net/)
+
+PopPUNK is a tool for clustering genomes.
+
+*NOTE: This docker image is intended for the CLI usage of the PopPUNK tool. It has not been built with the full web-interface functionality in mind.*
+
+## Example Usage
+
+This example is for usage of PopPUNK for Streptococcus pneumoniae clustering using a database & reference files provided by the [Global Pneumococcal Sequencing Project](https://www.pneumogen.net/gps/training_command_line.html). An example S. pneumoniae genome can be obtained from [here](https://github.com/rpetit3/pbptyper/blob/main/test/SRR2912551.fna.gz)
+
+```bash
+# poppunk requires an input File Of File Names (FOFN). headerless TSV with a sample name (first column), followed by path to input FASTA
+$ echo -e "SRR2912551\t/data/SRR2912551.fna.gz" > poppunk_input.tsv
+
+# showing reference files, FASTA input, and poppunk_input.tsv
+$ ls
+GPS_v6/ GPS_v6_external_clusters.csv SRR2912551.fna.gz poppunk_input.tsv
+
+# run the docker container interactively
+# followed by poppunk command run inside the container
+$ docker run --rm -ti -v ${PWD}:/data -u $(id -u):$(id -g) staphb/poppunk:2.6.2
+$ poppunk_assign --db GPS_v6 --distances GPS_v6/GPS_v6.dists --query /data/poppunk_input.tsv --output docker_test --external-clustering GPS_v6_external_clusters.csv
+PopPUNK: assign
+ (with backend: sketchlib v2.0.0
+ sketchlib: /opt/conda/envs/poppunk-env/lib/python3.10/site-packages/pp_sketchlib.cpython-310-x86_64-linux-gnu.so)
+
+Graph-tools OpenMP parallelisation enabled: with 1 threads
+Mode: Assigning clusters of query sequences
+
+Loading previously refined model
+Completed model loading
+Sketching 1 genomes using 1 thread(s)
+Progress (CPU): 1 / 1
+Writing sketches to file
+WARNING: versions of input databases sketches are different, results may not be compatible
+Calculating distances using 1 thread(s)
+Progress (CPU): 100.0%
+Selected type isolate for distance QC is 10050_2#1
+Network loaded: 42163 samples
+
+Done
+```
diff --git a/poppunk/2.6.2/ftps.txt b/poppunk/2.6.2/ftps.txt
new file mode 100644
index 000000000..eee69d8ff
--- /dev/null
+++ b/poppunk/2.6.2/ftps.txt
@@ -0,0 +1,100 @@
+ftp.sra.ebi.ac.uk/vol1/ERZ322/ERZ3224520/SAMEA3171250.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ319/ERZ3198719/SAMEA2554210.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ322/ERZ3225470/SAMEA3175912.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ321/ERZ3213352/SAMEA2696388.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ319/ERZ3198630/SAMEA2554162.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ321/ERZ3217126/SAMEA2783707.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ342/ERZ3423083/SAMEA3447953.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ321/ERZ3218603/SAMEA2797493.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ304/ERZ3040777/SAMEA104035490.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ304/ERZ3041170/SAMEA104035895.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ320/ERZ3206617/SAMEA2658361.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ321/ERZ3218818/SAMEA2814082.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ937/ERZ9377441/SAMEA4763391.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ320/ERZ3206566/SAMEA2658309.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ319/ERZ3195033/SAMEA2467770.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ307/ERZ3079299/SAMEA104154757.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ319/ERZ3193270/SAMEA2434815.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ307/ERZ3079844/SAMEA104155118.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ289/ERZ2890096/SAMEA102263668.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ307/ERZ3079332/SAMEA104154777.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ321/ERZ3218215/SAMEA2797058.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ322/ERZ3225910/SAMEA3176187.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ319/ERZ3197406/SAMEA2521772.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ316/ERZ3164266/SAMEA2204200.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ319/ERZ3192969/SAMEA2434607.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ930/ERZ9307577/SAMEA3232684.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ313/ERZ3136035/SAMEA2051001.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ321/ERZ3218069/SAMEA2796905.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ304/ERZ3041120/SAMEA104035851.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ307/ERZ3078938/SAMEA104154484.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ320/ERZ3207298/SAMEA2659051.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ319/ERZ3197214/SAMEA2521572.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ307/ERZ3078796/SAMEA104154345.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ321/ERZ3217801/SAMEA2796638.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ325/ERZ3251997/SAMEA3309548.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ314/ERZ3148576/SAMEA2066281.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ319/ERZ3192932/SAMEA2434566.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ320/ERZ3206876/SAMEA2658626.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ342/ERZ3425910/SAMEA3486806.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ321/ERZ3219036/SAMEA2814305.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ342/ERZ3423073/SAMEA3447941.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ315/ERZ3157278/SAMEA2160059.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ347/ERZ3470667/SAMEA3504771.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ320/ERZ3206664/SAMEA2658409.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ321/ERZ3219281/SAMEA2814555.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ321/ERZ3217894/SAMEA2796732.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ319/ERZ3198788/SAMEA2554243.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ307/ERZ3078812/SAMEA104154360.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ937/ERZ9377474/SAMEA4763408.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ307/ERZ3079689/SAMEA104155019.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ321/ERZ3217835/SAMEA2796676.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ319/ERZ3198813/SAMEA2554255.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ355/ERZ3557099/SAMEA4732546.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ304/ERZ3041014/SAMEA104035733.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ319/ERZ3193000/SAMEA2434629.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ307/ERZ3079342/SAMEA104154791.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ318/ERZ3180205/SAMEA2298232.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ320/ERZ3204423/SAMEA2627391.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ347/ERZ3470928/SAMEA3504807.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ325/ERZ3255898/SAMEA3354185.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ937/ERZ9378367/SAMEA4763819.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ313/ERZ3137747/SAMEA2057315.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ318/ERZ3180296/SAMEA2298295.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ320/ERZ3206874/SAMEA2658623.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ349/ERZ3499256/SAMEA3714360.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ304/ERZ3040602/SAMEA104035309.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ321/ERZ3218412/SAMEA2797262.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ318/ERZ3181632/SAMEA2335756.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ325/ERZ3255160/SAMEA3353584.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ320/ERZ3204680/SAMEA2627527.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ322/ERZ3225180/SAMEA3175678.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ930/ERZ9308145/SAMEA3233336.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ342/ERZ3421572/SAMEA3431627.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ325/ERZ3256127/SAMEA3354364.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ320/ERZ3204642/SAMEA2627509.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ321/ERZ3218686/SAMEA2813951.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ319/ERZ3198971/SAMEA2554336.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ355/ERZ3557464/SAMEA4732913.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ326/ERZ3260947/SAMEA3389675.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ321/ERZ3213543/SAMEA2696586.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ320/ERZ3204451/SAMEA2627406.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ325/ERZ3258030/SAMEA3373712.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ307/ERZ3079114/SAMEA104154622.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ318/ERZ3180293/SAMEA2298296.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ930/ERZ9303942/SAMEA3209083.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ930/ERZ9308103/SAMEA3233306.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ288/ERZ2889920/SAMEA102184918.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ930/ERZ9302272/SAMEA3206695.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ930/ERZ9303776/SAMEA3208988.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ319/ERZ3192979/SAMEA2434614.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ320/ERZ3206542/SAMEA2658288.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ319/ERZ3198331/SAMEA2553822.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ316/ERZ3164201/SAMEA2204129.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ325/ERZ3254708/SAMEA3353251.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ304/ERZ3041104/SAMEA104035825.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ307/ERZ3079033/SAMEA104154554.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ321/ERZ3213369/SAMEA2696405.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ319/ERZ3194930/SAMEA2467335.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ937/ERZ9379100/SAMEA4764119.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ304/ERZ3040936/SAMEA104035654.contigs.fa.gz
diff --git a/poppunk/2.6.2/test.sh b/poppunk/2.6.2/test.sh
new file mode 100644
index 000000000..989766a86
--- /dev/null
+++ b/poppunk/2.6.2/test.sh
@@ -0,0 +1,27 @@
+#!/bin/bash
+set -euxo pipefail
+
+# Download 100 S. Pneumo assemblies from GPS Public Data on ENA
+mkdir assemblies
+while read link; do
+ wget -q -P assemblies $link;
+done < ftps.txt
+
+# Generate r-file for creating PopPUNK database
+for FILE in assemblies/*; do
+ printf $(basename -s .contigs.fa.gz $FILE)'\t'$FILE'\n' >> rfile.txt;
+done
+
+# Build PopPUNK database from the assemblies
+poppunk --create-db --output database --r-files rfile.txt --threads $(nproc)
+poppunk --fit-model bgmm --ref-db database
+
+# Assign clusters on the same assemblies using the built database
+# the sample names are modified as PopPUNK reject samples with names that are already in the database
+sed 's/^/prefix_/' rfile.txt > qfile.txt
+poppunk_assign --db database --query qfile.txt --output output --threads $(nproc)
+
+# Compare the database clusters and assigned clusters of the assemblies
+sed 's/^prefix_//' output/output_clusters.csv | awk 'NR == 1; NR > 1 { print $0 | "sort" }' > assigned.csv
+awk 'NR == 1; NR > 1 { print $0 | "sort" }' database/database_clusters.csv > database.csv
+cmp assigned.csv database.csv
\ No newline at end of file
diff --git a/poppunk/2.6.3/Dockerfile b/poppunk/2.6.3/Dockerfile
new file mode 100644
index 000000000..a700cf61c
--- /dev/null
+++ b/poppunk/2.6.3/Dockerfile
@@ -0,0 +1,65 @@
+FROM mambaorg/micromamba:1.5.6 as app
+
+# Version arguments
+# ARG variables only persist during build time
+ARG POPPUNK_VERSION="2.6.3"
+
+# build and run as root users since micromamba image has 'mambauser' set as the $USER
+USER root
+# set workdir to default for building; set to /data at the end
+WORKDIR /
+
+LABEL base.image="mambaorg/micromamba:1.5.6"
+LABEL dockerfile.version="2"
+LABEL software="PopPUNK"
+LABEL software.version=${POPPUNK_VERSION}
+LABEL description="POPulation Partitioning Using Nucleotide Kmers"
+LABEL website="https://github.com/bacpop/PopPUNK"
+LABEL license="https://github.com/bacpop/PopPUNK/blob/master/LICENSE"
+LABEL maintainer="Curtis Kapsak"
+LABEL maintainer.email="curtis.kapsak@theiagen.com"
+LABEL maintainer2="Harry Hung"
+LABEL maintainer2.email="ch31@sanger.ac.uk"
+
+# install dependencies; cleanup apt garbage
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ wget \
+ ca-certificates \
+ procps && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+# Create PopPUNK conda environment called poppunk-env from bioconda recipe
+# clean up conda garbage
+RUN micromamba create -n poppunk-env -c conda-forge -c bioconda -c defaults poppunk=${POPPUNK_VERSION} && \
+ micromamba clean -a -y
+
+# set the environment, put new conda env in PATH by default; set locales to UTF-8
+ENV PATH="/opt/conda/envs/poppunk-env/bin:${PATH}" \
+ LC_ALL=C.UTF-8
+
+# set working directory to /data
+WORKDIR /data
+
+# new base for testing
+FROM app as test
+
+# so that mamba/conda env is active when running below commands
+ENV ENV_NAME="poppunk-env"
+ARG MAMBA_DOCKERFILE_ACTIVATE=1
+
+# print out various help options and version
+RUN poppunk --help && \
+ poppunk_assign --help && \
+ poppunk_visualise --help && \
+ poppunk_mst --help && \
+ poppunk_references --help && \
+ poppunk_info --help && \
+ poppunk_mandrake --help && \
+ poppunk --version
+
+# Download 100 S. Pneumo assemblies from GPS Public Data on ENA
+# Build PopPUNK database from the assemblies
+# Assign clusters on the same assemblies using the built database
+# Compare the database clusters and assigned clusters of the assemblies
+COPY test.sh ftps.txt /data/
+RUN bash test.sh
\ No newline at end of file
diff --git a/poppunk/2.6.3/README.md b/poppunk/2.6.3/README.md
new file mode 100644
index 000000000..d427cde7b
--- /dev/null
+++ b/poppunk/2.6.3/README.md
@@ -0,0 +1,56 @@
+# PopPUNK container
+
+Main tool :
+- [PopPUNK](https://github.com/bacpop/PopPUNK)
+
+Additional tools:
+- biopython 1.82
+- pp-sketchlib 2.1.2
+- python 3.10.13
+- rapidnj 2.3.2
+- treeswift 1.1.39
+
+Full documentation: [https://poppunk.readthedocs.io/en/latest/](https://poppunk.readthedocs.io/en/latest/)
+
+PopPUNK is also available as a webtool: [https://www.poppunk.net/](https://www.poppunk.net/)
+
+PopPUNK is a tool for clustering genomes.
+
+*NOTE: This docker image is intended for the CLI usage of the PopPUNK tool. It has not been built with the full web-interface functionality in mind.*
+
+## Example Usage
+
+This example is for usage of PopPUNK for Streptococcus pneumoniae clustering using a database & reference files provided by the [Global Pneumococcal Sequencing Project](https://www.pneumogen.net/gps/training_command_line.html). An example S. pneumoniae genome can be obtained from [here](https://github.com/rpetit3/pbptyper/blob/main/test/SRR2912551.fna.gz)
+
+```bash
+# poppunk requires an input File Of File Names (FOFN). headerless TSV with a sample name (first column), followed by path to input FASTA
+$ echo -e "SRR2912551\t/data/SRR2912551.fna.gz" > poppunk_input.tsv
+
+# showing reference files, FASTA input, and poppunk_input.tsv
+$ ls
+GPS_v6/ GPS_v6_external_clusters.csv SRR2912551.fna.gz poppunk_input.tsv
+
+# run the docker container interactively
+# followed by poppunk command run inside the container
+$ docker run --rm -ti -v ${PWD}:/data -u $(id -u):$(id -g) staphb/poppunk:2.6.2
+$ poppunk_assign --db GPS_v6 --distances GPS_v6/GPS_v6.dists --query /data/poppunk_input.tsv --output docker_test --external-clustering GPS_v6_external_clusters.csv
+PopPUNK: assign
+ (with backend: sketchlib v2.0.0
+ sketchlib: /opt/conda/envs/poppunk-env/lib/python3.10/site-packages/pp_sketchlib.cpython-310-x86_64-linux-gnu.so)
+
+Graph-tools OpenMP parallelisation enabled: with 1 threads
+Mode: Assigning clusters of query sequences
+
+Loading previously refined model
+Completed model loading
+Sketching 1 genomes using 1 thread(s)
+Progress (CPU): 1 / 1
+Writing sketches to file
+WARNING: versions of input databases sketches are different, results may not be compatible
+Calculating distances using 1 thread(s)
+Progress (CPU): 100.0%
+Selected type isolate for distance QC is 10050_2#1
+Network loaded: 42163 samples
+
+Done
+```
diff --git a/poppunk/2.6.3/ftps.txt b/poppunk/2.6.3/ftps.txt
new file mode 100644
index 000000000..eee69d8ff
--- /dev/null
+++ b/poppunk/2.6.3/ftps.txt
@@ -0,0 +1,100 @@
+ftp.sra.ebi.ac.uk/vol1/ERZ322/ERZ3224520/SAMEA3171250.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ319/ERZ3198719/SAMEA2554210.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ322/ERZ3225470/SAMEA3175912.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ321/ERZ3213352/SAMEA2696388.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ319/ERZ3198630/SAMEA2554162.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ321/ERZ3217126/SAMEA2783707.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ342/ERZ3423083/SAMEA3447953.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ321/ERZ3218603/SAMEA2797493.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ304/ERZ3040777/SAMEA104035490.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ304/ERZ3041170/SAMEA104035895.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ320/ERZ3206617/SAMEA2658361.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ321/ERZ3218818/SAMEA2814082.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ937/ERZ9377441/SAMEA4763391.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ320/ERZ3206566/SAMEA2658309.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ319/ERZ3195033/SAMEA2467770.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ307/ERZ3079299/SAMEA104154757.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ319/ERZ3193270/SAMEA2434815.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ307/ERZ3079844/SAMEA104155118.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ289/ERZ2890096/SAMEA102263668.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ307/ERZ3079332/SAMEA104154777.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ321/ERZ3218215/SAMEA2797058.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ322/ERZ3225910/SAMEA3176187.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ319/ERZ3197406/SAMEA2521772.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ316/ERZ3164266/SAMEA2204200.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ319/ERZ3192969/SAMEA2434607.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ930/ERZ9307577/SAMEA3232684.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ313/ERZ3136035/SAMEA2051001.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ321/ERZ3218069/SAMEA2796905.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ304/ERZ3041120/SAMEA104035851.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ307/ERZ3078938/SAMEA104154484.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ320/ERZ3207298/SAMEA2659051.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ319/ERZ3197214/SAMEA2521572.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ307/ERZ3078796/SAMEA104154345.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ321/ERZ3217801/SAMEA2796638.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ325/ERZ3251997/SAMEA3309548.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ314/ERZ3148576/SAMEA2066281.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ319/ERZ3192932/SAMEA2434566.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ320/ERZ3206876/SAMEA2658626.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ342/ERZ3425910/SAMEA3486806.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ321/ERZ3219036/SAMEA2814305.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ342/ERZ3423073/SAMEA3447941.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ315/ERZ3157278/SAMEA2160059.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ347/ERZ3470667/SAMEA3504771.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ320/ERZ3206664/SAMEA2658409.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ321/ERZ3219281/SAMEA2814555.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ321/ERZ3217894/SAMEA2796732.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ319/ERZ3198788/SAMEA2554243.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ307/ERZ3078812/SAMEA104154360.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ937/ERZ9377474/SAMEA4763408.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ307/ERZ3079689/SAMEA104155019.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ321/ERZ3217835/SAMEA2796676.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ319/ERZ3198813/SAMEA2554255.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ355/ERZ3557099/SAMEA4732546.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ304/ERZ3041014/SAMEA104035733.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ319/ERZ3193000/SAMEA2434629.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ307/ERZ3079342/SAMEA104154791.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ318/ERZ3180205/SAMEA2298232.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ320/ERZ3204423/SAMEA2627391.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ347/ERZ3470928/SAMEA3504807.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ325/ERZ3255898/SAMEA3354185.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ937/ERZ9378367/SAMEA4763819.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ313/ERZ3137747/SAMEA2057315.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ318/ERZ3180296/SAMEA2298295.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ320/ERZ3206874/SAMEA2658623.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ349/ERZ3499256/SAMEA3714360.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ304/ERZ3040602/SAMEA104035309.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ321/ERZ3218412/SAMEA2797262.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ318/ERZ3181632/SAMEA2335756.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ325/ERZ3255160/SAMEA3353584.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ320/ERZ3204680/SAMEA2627527.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ322/ERZ3225180/SAMEA3175678.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ930/ERZ9308145/SAMEA3233336.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ342/ERZ3421572/SAMEA3431627.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ325/ERZ3256127/SAMEA3354364.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ320/ERZ3204642/SAMEA2627509.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ321/ERZ3218686/SAMEA2813951.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ319/ERZ3198971/SAMEA2554336.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ355/ERZ3557464/SAMEA4732913.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ326/ERZ3260947/SAMEA3389675.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ321/ERZ3213543/SAMEA2696586.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ320/ERZ3204451/SAMEA2627406.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ325/ERZ3258030/SAMEA3373712.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ307/ERZ3079114/SAMEA104154622.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ318/ERZ3180293/SAMEA2298296.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ930/ERZ9303942/SAMEA3209083.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ930/ERZ9308103/SAMEA3233306.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ288/ERZ2889920/SAMEA102184918.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ930/ERZ9302272/SAMEA3206695.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ930/ERZ9303776/SAMEA3208988.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ319/ERZ3192979/SAMEA2434614.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ320/ERZ3206542/SAMEA2658288.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ319/ERZ3198331/SAMEA2553822.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ316/ERZ3164201/SAMEA2204129.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ325/ERZ3254708/SAMEA3353251.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ304/ERZ3041104/SAMEA104035825.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ307/ERZ3079033/SAMEA104154554.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ321/ERZ3213369/SAMEA2696405.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ319/ERZ3194930/SAMEA2467335.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ937/ERZ9379100/SAMEA4764119.contigs.fa.gz
+ftp.sra.ebi.ac.uk/vol1/ERZ304/ERZ3040936/SAMEA104035654.contigs.fa.gz
diff --git a/poppunk/2.6.3/test.sh b/poppunk/2.6.3/test.sh
new file mode 100644
index 000000000..989766a86
--- /dev/null
+++ b/poppunk/2.6.3/test.sh
@@ -0,0 +1,27 @@
+#!/bin/bash
+set -euxo pipefail
+
+# Download 100 S. Pneumo assemblies from GPS Public Data on ENA
+mkdir assemblies
+while read link; do
+ wget -q -P assemblies $link;
+done < ftps.txt
+
+# Generate r-file for creating PopPUNK database
+for FILE in assemblies/*; do
+ printf $(basename -s .contigs.fa.gz $FILE)'\t'$FILE'\n' >> rfile.txt;
+done
+
+# Build PopPUNK database from the assemblies
+poppunk --create-db --output database --r-files rfile.txt --threads $(nproc)
+poppunk --fit-model bgmm --ref-db database
+
+# Assign clusters on the same assemblies using the built database
+# the sample names are modified as PopPUNK reject samples with names that are already in the database
+sed 's/^/prefix_/' rfile.txt > qfile.txt
+poppunk_assign --db database --query qfile.txt --output output --threads $(nproc)
+
+# Compare the database clusters and assigned clusters of the assemblies
+sed 's/^prefix_//' output/output_clusters.csv | awk 'NR == 1; NR > 1 { print $0 | "sort" }' > assigned.csv
+awk 'NR == 1; NR > 1 { print $0 | "sort" }' database/database_clusters.csv > database.csv
+cmp assigned.csv database.csv
\ No newline at end of file
diff --git a/poppunk/2.6.5/Dockerfile b/poppunk/2.6.5/Dockerfile
new file mode 100644
index 000000000..e17085597
--- /dev/null
+++ b/poppunk/2.6.5/Dockerfile
@@ -0,0 +1,61 @@
+FROM mambaorg/micromamba:1.5.6 as app
+
+# Version arguments
+# ARG variables only persist during build time
+ARG POPPUNK_VERSION="2.6.5"
+
+# build and run as root users since micromamba image has 'mambauser' set as the $USER
+USER root
+# set workdir to default for building; set to /data at the end
+WORKDIR /
+
+LABEL base.image="mambaorg/micromamba:1.5.6"
+LABEL dockerfile.version="1"
+LABEL software="PopPUNK"
+LABEL software.version=${POPPUNK_VERSION}
+LABEL description="POPulation Partitioning Using Nucleotide Kmers"
+LABEL website="https://github.com/bacpop/PopPUNK"
+LABEL license="https://github.com/bacpop/PopPUNK/blob/master/LICENSE"
+LABEL maintainer="Curtis Kapsak"
+LABEL maintainer.email="curtis.kapsak@theiagen.com"
+LABEL maintainer2="Harry Hung"
+LABEL maintainer2.email="ch31@sanger.ac.uk"
+
+# install dependencies; cleanup apt garbage
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ wget \
+ ca-certificates \
+ procps && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+# Create PopPUNK conda environment called poppunk-env from bioconda recipe
+# clean up conda garbage
+RUN micromamba create -n poppunk-env -c conda-forge -c bioconda -c defaults poppunk=${POPPUNK_VERSION} && \
+ micromamba clean -a -y
+
+# set the environment, put new conda env in PATH by default; set locales to UTF-8
+ENV PATH="/opt/conda/envs/poppunk-env/bin:${PATH}" \
+ LC_ALL=C.UTF-8
+
+# set working directory to /data
+WORKDIR /data
+
+# new base for testing
+FROM app as test
+
+# print out various help options and version
+RUN poppunk --help && \
+ poppunk_assign --help && \
+ poppunk_visualise --help && \
+ poppunk_mst --help && \
+ poppunk_references --help && \
+ poppunk_info --help && \
+ poppunk_mandrake --help && \
+ poppunk --version
+
+# Download 100 S. Pneumo assemblies from GPS Public Data on ENA
+# Build PopPUNK database from the assemblies
+# Assign clusters on the same assemblies using the built database
+# Compare the database clusters and assigned clusters of the assemblies
+COPY test.sh ftps.txt /data/
+RUN bash test.sh
diff --git a/poppunk/2.6.5/README.md b/poppunk/2.6.5/README.md
new file mode 100644
index 000000000..967d65a28
--- /dev/null
+++ b/poppunk/2.6.5/README.md
@@ -0,0 +1,56 @@
+# PopPUNK container
+
+Main tool :
+- [PopPUNK](https://github.com/bacpop/PopPUNK)
+
+Additional tools:
+- biopython 1.83
+- pp-sketchlib 2.1.2
+- python 3.10.13
+- rapidnj 2.3.2
+- treeswift 1.1.39
+
+Full documentation: [https://poppunk.readthedocs.io/en/latest/](https://poppunk.readthedocs.io/en/latest/)
+
+PopPUNK is also available as a webtool: [https://www.poppunk.net/](https://www.poppunk.net/)
+
+PopPUNK is a tool for clustering genomes.
+
+*NOTE: This docker image is intended for the CLI usage of the PopPUNK tool. It has not been built with the full web-interface functionality in mind.*
+
+## Example Usage
+
+This example is for usage of PopPUNK for Streptococcus pneumoniae clustering using a database & reference files provided by the [Global Pneumococcal Sequencing Project](https://www.pneumogen.net/gps/training_command_line.html). An example S. pneumoniae genome can be obtained from [here](https://github.com/rpetit3/pbptyper/blob/main/test/SRR2912551.fna.gz)
+
+```bash
+# poppunk requires an input File Of File Names (FOFN). headerless TSV with a sample name (first column), followed by path to input FASTA
+$ echo -e "SRR2912551\t/data/SRR2912551.fna.gz" > poppunk_input.tsv
+
+# showing reference files, FASTA input, and poppunk_input.tsv
+$ ls
+GPS_v6/ GPS_v6_external_clusters.csv SRR2912551.fna.gz poppunk_input.tsv
+
+# run the docker container interactively
+# followed by poppunk command run inside the container
+$ docker run --rm -ti -v ${PWD}:/data -u $(id -u):$(id -g) staphb/poppunk:2.6.2
+$ poppunk_assign --db GPS_v6 --distances GPS_v6/GPS_v6.dists --query /data/poppunk_input.tsv --output docker_test --external-clustering GPS_v6_external_clusters.csv
+PopPUNK: assign
+ (with backend: sketchlib v2.0.0
+ sketchlib: /opt/conda/envs/poppunk-env/lib/python3.10/site-packages/pp_sketchlib.cpython-310-x86_64-linux-gnu.so)
+
+Graph-tools OpenMP parallelisation enabled: with 1 threads
+Mode: Assigning clusters of query sequences
+
+Loading previously refined model
+Completed model loading
+Sketching 1 genomes using 1 thread(s)
+Progress (CPU): 1 / 1
+Writing sketches to file
+WARNING: versions of input databases sketches are different, results may not be compatible
+Calculating distances using 1 thread(s)
+Progress (CPU): 100.0%
+Selected type isolate for distance QC is 10050_2#1
+Network loaded: 42163 samples
+
+Done
+```
diff --git a/poppunk/2.6.5/ftps.txt b/poppunk/2.6.5/ftps.txt
new file mode 100644
index 000000000..deaefc676
--- /dev/null
+++ b/poppunk/2.6.5/ftps.txt
@@ -0,0 +1,100 @@
+ftp://ftp.sra.ebi.ac.uk/vol1/analysis/ERZ322/ERZ3224520/SAMEA3171250.contigs.fa.gz
+ftp://ftp.sra.ebi.ac.uk/vol1/analysis/ERZ319/ERZ3198719/SAMEA2554210.contigs.fa.gz
+ftp://ftp.sra.ebi.ac.uk/vol1/analysis/ERZ322/ERZ3225470/SAMEA3175912.contigs.fa.gz
+ftp://ftp.sra.ebi.ac.uk/vol1/analysis/ERZ321/ERZ3213352/SAMEA2696388.contigs.fa.gz
+ftp://ftp.sra.ebi.ac.uk/vol1/analysis/ERZ319/ERZ3198630/SAMEA2554162.contigs.fa.gz
+ftp://ftp.sra.ebi.ac.uk/vol1/analysis/ERZ321/ERZ3217126/SAMEA2783707.contigs.fa.gz
+ftp://ftp.sra.ebi.ac.uk/vol1/analysis/ERZ342/ERZ3423083/SAMEA3447953.contigs.fa.gz
+ftp://ftp.sra.ebi.ac.uk/vol1/analysis/ERZ321/ERZ3218603/SAMEA2797493.contigs.fa.gz
+ftp://ftp.sra.ebi.ac.uk/vol1/analysis/ERZ304/ERZ3040777/SAMEA104035490.contigs.fa.gz
+ftp://ftp.sra.ebi.ac.uk/vol1/analysis/ERZ304/ERZ3041170/SAMEA104035895.contigs.fa.gz
+ftp://ftp.sra.ebi.ac.uk/vol1/analysis/ERZ320/ERZ3206617/SAMEA2658361.contigs.fa.gz
+ftp://ftp.sra.ebi.ac.uk/vol1/analysis/ERZ321/ERZ3218818/SAMEA2814082.contigs.fa.gz
+ftp://ftp.sra.ebi.ac.uk/vol1/analysis/ERZ937/ERZ9377441/SAMEA4763391.contigs.fa.gz
+ftp://ftp.sra.ebi.ac.uk/vol1/analysis/ERZ320/ERZ3206566/SAMEA2658309.contigs.fa.gz
+ftp://ftp.sra.ebi.ac.uk/vol1/analysis/ERZ319/ERZ3195033/SAMEA2467770.contigs.fa.gz
+ftp://ftp.sra.ebi.ac.uk/vol1/analysis/ERZ307/ERZ3079299/SAMEA104154757.contigs.fa.gz
+ftp://ftp.sra.ebi.ac.uk/vol1/analysis/ERZ319/ERZ3193270/SAMEA2434815.contigs.fa.gz
+ftp://ftp.sra.ebi.ac.uk/vol1/analysis/ERZ307/ERZ3079844/SAMEA104155118.contigs.fa.gz
+ftp://ftp.sra.ebi.ac.uk/vol1/analysis/ERZ289/ERZ2890096/SAMEA102263668.contigs.fa.gz
+ftp://ftp.sra.ebi.ac.uk/vol1/analysis/ERZ307/ERZ3079332/SAMEA104154777.contigs.fa.gz
+ftp://ftp.sra.ebi.ac.uk/vol1/analysis/ERZ321/ERZ3218215/SAMEA2797058.contigs.fa.gz
+ftp://ftp.sra.ebi.ac.uk/vol1/analysis/ERZ322/ERZ3225910/SAMEA3176187.contigs.fa.gz
+ftp://ftp.sra.ebi.ac.uk/vol1/analysis/ERZ319/ERZ3197406/SAMEA2521772.contigs.fa.gz
+ftp://ftp.sra.ebi.ac.uk/vol1/analysis/ERZ316/ERZ3164266/SAMEA2204200.contigs.fa.gz
+ftp://ftp.sra.ebi.ac.uk/vol1/analysis/ERZ319/ERZ3192969/SAMEA2434607.contigs.fa.gz
+ftp://ftp.sra.ebi.ac.uk/vol1/analysis/ERZ930/ERZ9307577/SAMEA3232684.contigs.fa.gz
+ftp://ftp.sra.ebi.ac.uk/vol1/analysis/ERZ313/ERZ3136035/SAMEA2051001.contigs.fa.gz
+ftp://ftp.sra.ebi.ac.uk/vol1/analysis/ERZ321/ERZ3218069/SAMEA2796905.contigs.fa.gz
+ftp://ftp.sra.ebi.ac.uk/vol1/analysis/ERZ304/ERZ3041120/SAMEA104035851.contigs.fa.gz
+ftp://ftp.sra.ebi.ac.uk/vol1/analysis/ERZ307/ERZ3078938/SAMEA104154484.contigs.fa.gz
+ftp://ftp.sra.ebi.ac.uk/vol1/analysis/ERZ320/ERZ3207298/SAMEA2659051.contigs.fa.gz
+ftp://ftp.sra.ebi.ac.uk/vol1/analysis/ERZ319/ERZ3197214/SAMEA2521572.contigs.fa.gz
+ftp://ftp.sra.ebi.ac.uk/vol1/analysis/ERZ307/ERZ3078796/SAMEA104154345.contigs.fa.gz
+ftp://ftp.sra.ebi.ac.uk/vol1/analysis/ERZ321/ERZ3217801/SAMEA2796638.contigs.fa.gz
+ftp://ftp.sra.ebi.ac.uk/vol1/analysis/ERZ325/ERZ3251997/SAMEA3309548.contigs.fa.gz
+ftp://ftp.sra.ebi.ac.uk/vol1/analysis/ERZ314/ERZ3148576/SAMEA2066281.contigs.fa.gz
+ftp://ftp.sra.ebi.ac.uk/vol1/analysis/ERZ319/ERZ3192932/SAMEA2434566.contigs.fa.gz
+ftp://ftp.sra.ebi.ac.uk/vol1/analysis/ERZ320/ERZ3206876/SAMEA2658626.contigs.fa.gz
+ftp://ftp.sra.ebi.ac.uk/vol1/analysis/ERZ342/ERZ3425910/SAMEA3486806.contigs.fa.gz
+ftp://ftp.sra.ebi.ac.uk/vol1/analysis/ERZ321/ERZ3219036/SAMEA2814305.contigs.fa.gz
+ftp://ftp.sra.ebi.ac.uk/vol1/analysis/ERZ342/ERZ3423073/SAMEA3447941.contigs.fa.gz
+ftp://ftp.sra.ebi.ac.uk/vol1/analysis/ERZ315/ERZ3157278/SAMEA2160059.contigs.fa.gz
+ftp://ftp.sra.ebi.ac.uk/vol1/analysis/ERZ347/ERZ3470667/SAMEA3504771.contigs.fa.gz
+ftp://ftp.sra.ebi.ac.uk/vol1/analysis/ERZ320/ERZ3206664/SAMEA2658409.contigs.fa.gz
+ftp://ftp.sra.ebi.ac.uk/vol1/analysis/ERZ321/ERZ3219281/SAMEA2814555.contigs.fa.gz
+ftp://ftp.sra.ebi.ac.uk/vol1/analysis/ERZ321/ERZ3217894/SAMEA2796732.contigs.fa.gz
+ftp://ftp.sra.ebi.ac.uk/vol1/analysis/ERZ319/ERZ3198788/SAMEA2554243.contigs.fa.gz
+ftp://ftp.sra.ebi.ac.uk/vol1/analysis/ERZ307/ERZ3078812/SAMEA104154360.contigs.fa.gz
+ftp://ftp.sra.ebi.ac.uk/vol1/analysis/ERZ937/ERZ9377474/SAMEA4763408.contigs.fa.gz
+ftp://ftp.sra.ebi.ac.uk/vol1/analysis/ERZ307/ERZ3079689/SAMEA104155019.contigs.fa.gz
+ftp://ftp.sra.ebi.ac.uk/vol1/analysis/ERZ321/ERZ3217835/SAMEA2796676.contigs.fa.gz
+ftp://ftp.sra.ebi.ac.uk/vol1/analysis/ERZ319/ERZ3198813/SAMEA2554255.contigs.fa.gz
+ftp://ftp.sra.ebi.ac.uk/vol1/analysis/ERZ355/ERZ3557099/SAMEA4732546.contigs.fa.gz
+ftp://ftp.sra.ebi.ac.uk/vol1/analysis/ERZ304/ERZ3041014/SAMEA104035733.contigs.fa.gz
+ftp://ftp.sra.ebi.ac.uk/vol1/analysis/ERZ319/ERZ3193000/SAMEA2434629.contigs.fa.gz
+ftp://ftp.sra.ebi.ac.uk/vol1/analysis/ERZ307/ERZ3079342/SAMEA104154791.contigs.fa.gz
+ftp://ftp.sra.ebi.ac.uk/vol1/analysis/ERZ318/ERZ3180205/SAMEA2298232.contigs.fa.gz
+ftp://ftp.sra.ebi.ac.uk/vol1/analysis/ERZ320/ERZ3204423/SAMEA2627391.contigs.fa.gz
+ftp://ftp.sra.ebi.ac.uk/vol1/analysis/ERZ347/ERZ3470928/SAMEA3504807.contigs.fa.gz
+ftp://ftp.sra.ebi.ac.uk/vol1/analysis/ERZ325/ERZ3255898/SAMEA3354185.contigs.fa.gz
+ftp://ftp.sra.ebi.ac.uk/vol1/analysis/ERZ937/ERZ9378367/SAMEA4763819.contigs.fa.gz
+ftp://ftp.sra.ebi.ac.uk/vol1/analysis/ERZ313/ERZ3137747/SAMEA2057315.contigs.fa.gz
+ftp://ftp.sra.ebi.ac.uk/vol1/analysis/ERZ318/ERZ3180296/SAMEA2298295.contigs.fa.gz
+ftp://ftp.sra.ebi.ac.uk/vol1/analysis/ERZ320/ERZ3206874/SAMEA2658623.contigs.fa.gz
+ftp://ftp.sra.ebi.ac.uk/vol1/analysis/ERZ349/ERZ3499256/SAMEA3714360.contigs.fa.gz
+ftp://ftp.sra.ebi.ac.uk/vol1/analysis/ERZ304/ERZ3040602/SAMEA104035309.contigs.fa.gz
+ftp://ftp.sra.ebi.ac.uk/vol1/analysis/ERZ321/ERZ3218412/SAMEA2797262.contigs.fa.gz
+ftp://ftp.sra.ebi.ac.uk/vol1/analysis/ERZ318/ERZ3181632/SAMEA2335756.contigs.fa.gz
+ftp://ftp.sra.ebi.ac.uk/vol1/analysis/ERZ325/ERZ3255160/SAMEA3353584.contigs.fa.gz
+ftp://ftp.sra.ebi.ac.uk/vol1/analysis/ERZ320/ERZ3204680/SAMEA2627527.contigs.fa.gz
+ftp://ftp.sra.ebi.ac.uk/vol1/analysis/ERZ322/ERZ3225180/SAMEA3175678.contigs.fa.gz
+ftp://ftp.sra.ebi.ac.uk/vol1/analysis/ERZ930/ERZ9308145/SAMEA3233336.contigs.fa.gz
+ftp://ftp.sra.ebi.ac.uk/vol1/analysis/ERZ342/ERZ3421572/SAMEA3431627.contigs.fa.gz
+ftp://ftp.sra.ebi.ac.uk/vol1/analysis/ERZ325/ERZ3256127/SAMEA3354364.contigs.fa.gz
+ftp://ftp.sra.ebi.ac.uk/vol1/analysis/ERZ320/ERZ3204642/SAMEA2627509.contigs.fa.gz
+ftp://ftp.sra.ebi.ac.uk/vol1/analysis/ERZ321/ERZ3218686/SAMEA2813951.contigs.fa.gz
+ftp://ftp.sra.ebi.ac.uk/vol1/analysis/ERZ319/ERZ3198971/SAMEA2554336.contigs.fa.gz
+ftp://ftp.sra.ebi.ac.uk/vol1/analysis/ERZ355/ERZ3557464/SAMEA4732913.contigs.fa.gz
+ftp://ftp.sra.ebi.ac.uk/vol1/analysis/ERZ326/ERZ3260947/SAMEA3389675.contigs.fa.gz
+ftp://ftp.sra.ebi.ac.uk/vol1/analysis/ERZ321/ERZ3213543/SAMEA2696586.contigs.fa.gz
+ftp://ftp.sra.ebi.ac.uk/vol1/analysis/ERZ320/ERZ3204451/SAMEA2627406.contigs.fa.gz
+ftp://ftp.sra.ebi.ac.uk/vol1/analysis/ERZ325/ERZ3258030/SAMEA3373712.contigs.fa.gz
+ftp://ftp.sra.ebi.ac.uk/vol1/analysis/ERZ307/ERZ3079114/SAMEA104154622.contigs.fa.gz
+ftp://ftp.sra.ebi.ac.uk/vol1/analysis/ERZ318/ERZ3180293/SAMEA2298296.contigs.fa.gz
+ftp://ftp.sra.ebi.ac.uk/vol1/analysis/ERZ930/ERZ9303942/SAMEA3209083.contigs.fa.gz
+ftp://ftp.sra.ebi.ac.uk/vol1/analysis/ERZ930/ERZ9308103/SAMEA3233306.contigs.fa.gz
+ftp://ftp.sra.ebi.ac.uk/vol1/analysis/ERZ288/ERZ2889920/SAMEA102184918.contigs.fa.gz
+ftp://ftp.sra.ebi.ac.uk/vol1/analysis/ERZ930/ERZ9302272/SAMEA3206695.contigs.fa.gz
+ftp://ftp.sra.ebi.ac.uk/vol1/analysis/ERZ930/ERZ9303776/SAMEA3208988.contigs.fa.gz
+ftp://ftp.sra.ebi.ac.uk/vol1/analysis/ERZ319/ERZ3192979/SAMEA2434614.contigs.fa.gz
+ftp://ftp.sra.ebi.ac.uk/vol1/analysis/ERZ320/ERZ3206542/SAMEA2658288.contigs.fa.gz
+ftp://ftp.sra.ebi.ac.uk/vol1/analysis/ERZ319/ERZ3198331/SAMEA2553822.contigs.fa.gz
+ftp://ftp.sra.ebi.ac.uk/vol1/analysis/ERZ316/ERZ3164201/SAMEA2204129.contigs.fa.gz
+ftp://ftp.sra.ebi.ac.uk/vol1/analysis/ERZ325/ERZ3254708/SAMEA3353251.contigs.fa.gz
+ftp://ftp.sra.ebi.ac.uk/vol1/analysis/ERZ304/ERZ3041104/SAMEA104035825.contigs.fa.gz
+ftp://ftp.sra.ebi.ac.uk/vol1/analysis/ERZ307/ERZ3079033/SAMEA104154554.contigs.fa.gz
+ftp://ftp.sra.ebi.ac.uk/vol1/analysis/ERZ321/ERZ3213369/SAMEA2696405.contigs.fa.gz
+ftp://ftp.sra.ebi.ac.uk/vol1/analysis/ERZ319/ERZ3194930/SAMEA2467335.contigs.fa.gz
+ftp://ftp.sra.ebi.ac.uk/vol1/analysis/ERZ937/ERZ9379100/SAMEA4764119.contigs.fa.gz
+ftp://ftp.sra.ebi.ac.uk/vol1/analysis/ERZ304/ERZ3040936/SAMEA104035654.contigs.fa.gz
diff --git a/poppunk/2.6.5/test.sh b/poppunk/2.6.5/test.sh
new file mode 100644
index 000000000..989766a86
--- /dev/null
+++ b/poppunk/2.6.5/test.sh
@@ -0,0 +1,27 @@
+#!/bin/bash
+set -euxo pipefail
+
+# Download 100 S. Pneumo assemblies from GPS Public Data on ENA
+mkdir assemblies
+while read link; do
+ wget -q -P assemblies $link;
+done < ftps.txt
+
+# Generate r-file for creating PopPUNK database
+for FILE in assemblies/*; do
+ printf $(basename -s .contigs.fa.gz $FILE)'\t'$FILE'\n' >> rfile.txt;
+done
+
+# Build PopPUNK database from the assemblies
+poppunk --create-db --output database --r-files rfile.txt --threads $(nproc)
+poppunk --fit-model bgmm --ref-db database
+
+# Assign clusters on the same assemblies using the built database
+# the sample names are modified as PopPUNK reject samples with names that are already in the database
+sed 's/^/prefix_/' rfile.txt > qfile.txt
+poppunk_assign --db database --query qfile.txt --output output --threads $(nproc)
+
+# Compare the database clusters and assigned clusters of the assemblies
+sed 's/^prefix_//' output/output_clusters.csv | awk 'NR == 1; NR > 1 { print $0 | "sort" }' > assigned.csv
+awk 'NR == 1; NR > 1 { print $0 | "sort" }' database/database_clusters.csv > database.csv
+cmp assigned.csv database.csv
\ No newline at end of file
diff --git a/ppanggolin/1.2.105/Dockerfile b/ppanggolin/1.2.105/Dockerfile
new file mode 100644
index 000000000..c2deb1dcf
--- /dev/null
+++ b/ppanggolin/1.2.105/Dockerfile
@@ -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="eriny@utah.gov"
+
+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/*
+
diff --git a/ppanggolin/1.2.105/README.md b/ppanggolin/1.2.105/README.md
new file mode 100644
index 000000000..ad910731d
--- /dev/null
+++ b/ppanggolin/1.2.105/README.md
@@ -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
+```
diff --git a/ppanggolin/2.0.3/Dockerfile b/ppanggolin/2.0.3/Dockerfile
new file mode 100644
index 000000000..d85e615bc
--- /dev/null
+++ b/ppanggolin/2.0.3/Dockerfile
@@ -0,0 +1,53 @@
+ARG PPANGGOLIN_VER="2.0.3"
+
+FROM mambaorg/micromamba:1.5.6 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.5.6"
+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="eriny@utah.gov"
+
+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 all --fasta genomes.fasta.list --output output
diff --git a/ppanggolin/2.0.3/README.md b/ppanggolin/2.0.3/README.md
new file mode 100644
index 000000000..ad910731d
--- /dev/null
+++ b/ppanggolin/2.0.3/README.md
@@ -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
+```
diff --git a/ppanggolin/2.0.5/Dockerfile b/ppanggolin/2.0.5/Dockerfile
new file mode 100644
index 000000000..6478f3b82
--- /dev/null
+++ b/ppanggolin/2.0.5/Dockerfile
@@ -0,0 +1,53 @@
+ARG PPANGGOLIN_VER="2.0.5"
+
+FROM mambaorg/micromamba:1.5.6 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.5.6"
+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="eriny@utah.gov"
+
+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 all --fasta genomes.fasta.list --output output
diff --git a/ppanggolin/2.0.5/README.md b/ppanggolin/2.0.5/README.md
new file mode 100644
index 000000000..ad910731d
--- /dev/null
+++ b/ppanggolin/2.0.5/README.md
@@ -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
+```
diff --git a/pycirclize/1.0.0/Dockerfile b/pycirclize/1.0.0/Dockerfile
new file mode 100644
index 000000000..fb621bef4
--- /dev/null
+++ b/pycirclize/1.0.0/Dockerfile
@@ -0,0 +1,39 @@
+FROM python:3.9.17-slim as app
+
+ARG PYCIRCLIZE_VER="1.0.0"
+
+# 'LABEL' instructions tag the image with metadata that might be important to the user
+LABEL base.image="python:3.9.17-slim"
+LABEL dockerfile.version="1"
+LABEL software="pyCirclize"
+LABEL software.version="${PYCIRCLIZE_VER}"
+LABEL description="Circular visualization in Python"
+LABEL website="https://github.com/moshi4/pyCirclize"
+LABEL license="https://github.com/moshi4/pyCirclize/blob/main/LICENSE"
+LABEL maintainer="Erin Young"
+LABEL maintainer.email="eriny@utah.gov"
+
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ procps && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+RUN pip install --no-cache pycirclize==${PYCIRCLIZE_VER}
+
+ENV PATH=$PATH \
+ LC_ALL=C
+
+CMD pip show pycirclize
+
+WORKDIR /data
+
+FROM app as test
+
+WORKDIR /test
+
+RUN pip show pycirclize
+
+COPY /tests/* /test/
+
+RUN python example1.py && ls example01.png && \
+ python example2.py && ls example02.png && \
+ python example3.py && ls example03.png
diff --git a/pycirclize/1.0.0/README.md b/pycirclize/1.0.0/README.md
new file mode 100644
index 000000000..39f05ac66
--- /dev/null
+++ b/pycirclize/1.0.0/README.md
@@ -0,0 +1,61 @@
+# pyCirclize container
+
+Main tool: [pyCirclize](https://pypi.org/project/pyCirclize/)
+
+Code repository: https://github.com/moshi4/pyCirclize
+
+Basic information on how to use this tool:
+- executable: NA
+- help: NA
+- version: NA
+- description: pyCirclize is a python package for creating visual images of circular genomes (like those of bacteria)
+
+Full documentation: https://pypi.org/project/pyCirclize/
+
+## Example Usage
+
+This is for running containers with a specific python package, and is not really meant to be run from the command line. Instead, a bioinformatician could create a python script that uses pycirclize.
+
+example1.py:
+```python
+from pycirclize import Circos
+import numpy as np
+np.random.seed(0)
+
+# Initialize Circos sectors
+sectors = {"A": 10, "B": 15, "C": 12, "D": 20, "E": 15}
+circos = Circos(sectors, space=5)
+
+for sector in circos.sectors:
+ # Plot sector name
+ sector.text(f"Sector: {sector.name}", r=110, size=15)
+ # Create x positions & random y values
+ x = np.arange(sector.start, sector.end) + 0.5
+ y = np.random.randint(0, 100, len(x))
+ # Plot lines
+ track1 = sector.add_track((80, 100), r_pad_ratio=0.1)
+ track1.xticks_by_interval(interval=1)
+ track1.axis()
+ track1.line(x, y)
+ # Plot points
+ track2 = sector.add_track((55, 75), r_pad_ratio=0.1)
+ track2.axis()
+ track2.scatter(x, y)
+ # Plot bars
+ track3 = sector.add_track((30, 50), r_pad_ratio=0.1)
+ track3.axis()
+ track3.bar(x, y)
+
+# Plot links
+circos.link(("A", 0, 3), ("B", 15, 12))
+circos.link(("B", 0, 3), ("C", 7, 11), color="skyblue")
+circos.link(("C", 2, 5), ("E", 15, 12), color="chocolate", direction=1)
+circos.link(("D", 3, 5), ("D", 18, 15), color="lime", ec="black", lw=0.5, hatch="//", direction=2)
+circos.link(("D", 8, 10), ("E", 2, 8), color="violet", ec="red", lw=1.0, ls="dashed")
+
+circos.savefig("example01.png")
+```
+
+```bash
+python example1.py
+```
diff --git a/pycirclize/1.0.0/tests/example1.py b/pycirclize/1.0.0/tests/example1.py
new file mode 100755
index 000000000..2833e5532
--- /dev/null
+++ b/pycirclize/1.0.0/tests/example1.py
@@ -0,0 +1,36 @@
+from pycirclize import Circos
+import numpy as np
+np.random.seed(0)
+
+# Initialize Circos sectors
+sectors = {"A": 10, "B": 15, "C": 12, "D": 20, "E": 15}
+circos = Circos(sectors, space=5)
+
+for sector in circos.sectors:
+ # Plot sector name
+ sector.text(f"Sector: {sector.name}", r=110, size=15)
+ # Create x positions & random y values
+ x = np.arange(sector.start, sector.end) + 0.5
+ y = np.random.randint(0, 100, len(x))
+ # Plot lines
+ track1 = sector.add_track((80, 100), r_pad_ratio=0.1)
+ track1.xticks_by_interval(interval=1)
+ track1.axis()
+ track1.line(x, y)
+ # Plot points
+ track2 = sector.add_track((55, 75), r_pad_ratio=0.1)
+ track2.axis()
+ track2.scatter(x, y)
+ # Plot bars
+ track3 = sector.add_track((30, 50), r_pad_ratio=0.1)
+ track3.axis()
+ track3.bar(x, y)
+
+# Plot links
+circos.link(("A", 0, 3), ("B", 15, 12))
+circos.link(("B", 0, 3), ("C", 7, 11), color="skyblue")
+circos.link(("C", 2, 5), ("E", 15, 12), color="chocolate", direction=1)
+circos.link(("D", 3, 5), ("D", 18, 15), color="lime", ec="black", lw=0.5, hatch="//", direction=2)
+circos.link(("D", 8, 10), ("E", 2, 8), color="violet", ec="red", lw=1.0, ls="dashed")
+
+circos.savefig("example01.png")
\ No newline at end of file
diff --git a/pycirclize/1.0.0/tests/example2.py b/pycirclize/1.0.0/tests/example2.py
new file mode 100755
index 000000000..406b67773
--- /dev/null
+++ b/pycirclize/1.0.0/tests/example2.py
@@ -0,0 +1,42 @@
+from pycirclize import Circos
+from pycirclize.utils import fetch_genbank_by_accid
+from pycirclize.parser import Genbank
+
+# Download `NC_002483` E.coli plasmid genbank
+gbk_fetch_data = fetch_genbank_by_accid("NC_002483")
+gbk = Genbank(gbk_fetch_data)
+
+# Initialize Circos instance with genome size
+circos = Circos(sectors={gbk.name: gbk.range_size})
+circos.text(f"Escherichia coli K-12 plasmid F\n\n{gbk.name}", size=14)
+circos.rect(r_lim=(90, 100), fc="lightgrey", ec="none", alpha=0.5)
+sector = circos.sectors[0]
+
+# Plot forward strand CDS
+f_cds_track = sector.add_track((95, 100))
+f_cds_feats = gbk.extract_features("CDS", target_strand=1)
+f_cds_track.genomic_features(f_cds_feats, plotstyle="arrow", fc="salmon", lw=0.5)
+
+# Plot reverse strand CDS
+r_cds_track = sector.add_track((90, 95))
+r_cds_feats = gbk.extract_features("CDS", target_strand=-1)
+r_cds_track.genomic_features(r_cds_feats, plotstyle="arrow", fc="skyblue", lw=0.5)
+
+# Plot 'gene' qualifier label if exists
+labels, label_pos_list = [], []
+for feat in gbk.extract_features("CDS"):
+ start = int(str(feat.location.start))
+ end = int(str(feat.location.end))
+ label_pos = (start + end) / 2
+ gene_name = feat.qualifiers.get("gene", [None])[0]
+ if gene_name is not None:
+ labels.append(gene_name)
+ label_pos_list.append(label_pos)
+f_cds_track.xticks(label_pos_list, labels, label_size=6, label_orientation="vertical")
+
+# Plot xticks (interval = 10 Kb)
+r_cds_track.xticks_by_interval(
+ 10000, outer=False, label_formatter=lambda v: f"{v/1000:.1f} Kb"
+)
+
+circos.savefig("example02.png")
\ No newline at end of file
diff --git a/pycirclize/1.0.0/tests/example3.py b/pycirclize/1.0.0/tests/example3.py
new file mode 100755
index 000000000..72bd3fcaa
--- /dev/null
+++ b/pycirclize/1.0.0/tests/example3.py
@@ -0,0 +1,23 @@
+from pycirclize import Circos
+import pandas as pd
+
+# Create matrix dataframe (3 x 6)
+row_names = ["F1", "F2", "F3"]
+col_names = ["T1", "T2", "T3", "T4", "T5", "T6"]
+matrix_data = [
+ [10, 16, 7, 7, 10, 8],
+ [4, 9, 10, 12, 12, 7],
+ [17, 13, 7, 4, 20, 4],
+]
+matrix_df = pd.DataFrame(matrix_data, index=row_names, columns=col_names)
+
+# Initialize Circos from matrix for plotting Chord Diagram
+circos = Circos.initialize_from_matrix(
+ matrix_df,
+ space=5,
+ cmap="tab10",
+ label_kws=dict(size=12),
+ link_kws=dict(ec="black", lw=0.5, direction=1),
+)
+
+circos.savefig("example03.png")
\ No newline at end of file
diff --git a/pycirclize/1.2.0/Dockerfile b/pycirclize/1.2.0/Dockerfile
new file mode 100644
index 000000000..ffb4843c4
--- /dev/null
+++ b/pycirclize/1.2.0/Dockerfile
@@ -0,0 +1,39 @@
+FROM python:3.9.17-slim as app
+
+ARG PYCIRCLIZE_VER="1.2.0"
+
+# 'LABEL' instructions tag the image with metadata that might be important to the user
+LABEL base.image="python:3.9.17-slim"
+LABEL dockerfile.version="1"
+LABEL software="pyCirclize"
+LABEL software.version="${PYCIRCLIZE_VER}"
+LABEL description="Circular visualization in Python"
+LABEL website="https://github.com/moshi4/pyCirclize"
+LABEL license="https://github.com/moshi4/pyCirclize/blob/main/LICENSE"
+LABEL maintainer="Erin Young"
+LABEL maintainer.email="eriny@utah.gov"
+
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ procps && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+RUN pip install --no-cache pycirclize==${PYCIRCLIZE_VER}
+
+ENV PATH=$PATH \
+ LC_ALL=C
+
+CMD pip show pycirclize
+
+WORKDIR /data
+
+FROM app as test
+
+WORKDIR /test
+
+RUN pip show pycirclize
+
+COPY /tests/* /test/
+
+RUN python example1.py && ls example01.png && \
+ python example2.py && ls example02.png && \
+ python example3.py && ls example03.png
\ No newline at end of file
diff --git a/pycirclize/1.2.0/README.md b/pycirclize/1.2.0/README.md
new file mode 100644
index 000000000..e574bb7aa
--- /dev/null
+++ b/pycirclize/1.2.0/README.md
@@ -0,0 +1,61 @@
+# pyCirclize container
+
+Main tool: [pyCirclize](https://pypi.org/project/pyCirclize/)
+
+Code repository: https://github.com/moshi4/pyCirclize
+
+Basic information on how to use this tool:
+- executable: NA
+- help: NA
+- version: NA
+- description: pyCirclize is a python package for creating visual images of circular genomes (like those of bacteria)
+
+Full documentation: https://pypi.org/project/pyCirclize/
+
+## Example Usage
+
+This is for running containers with a specific python package, and is not really meant to be run from the command line. Instead, a bioinformatician could create a python script that uses pycirclize.
+
+example1.py:
+```python
+from pycirclize import Circos
+import numpy as np
+np.random.seed(0)
+
+# Initialize Circos sectors
+sectors = {"A": 10, "B": 15, "C": 12, "D": 20, "E": 15}
+circos = Circos(sectors, space=5)
+
+for sector in circos.sectors:
+ # Plot sector name
+ sector.text(f"Sector: {sector.name}", r=110, size=15)
+ # Create x positions & random y values
+ x = np.arange(sector.start, sector.end) + 0.5
+ y = np.random.randint(0, 100, len(x))
+ # Plot lines
+ track1 = sector.add_track((80, 100), r_pad_ratio=0.1)
+ track1.xticks_by_interval(interval=1)
+ track1.axis()
+ track1.line(x, y)
+ # Plot points
+ track2 = sector.add_track((55, 75), r_pad_ratio=0.1)
+ track2.axis()
+ track2.scatter(x, y)
+ # Plot bars
+ track3 = sector.add_track((30, 50), r_pad_ratio=0.1)
+ track3.axis()
+ track3.bar(x, y)
+
+# Plot links
+circos.link(("A", 0, 3), ("B", 15, 12))
+circos.link(("B", 0, 3), ("C", 7, 11), color="skyblue")
+circos.link(("C", 2, 5), ("E", 15, 12), color="chocolate", direction=1)
+circos.link(("D", 3, 5), ("D", 18, 15), color="lime", ec="black", lw=0.5, hatch="//", direction=2)
+circos.link(("D", 8, 10), ("E", 2, 8), color="violet", ec="red", lw=1.0, ls="dashed")
+
+circos.savefig("example01.png")
+```
+
+```bash
+python example1.py
+```
\ No newline at end of file
diff --git a/pycirclize/1.2.0/tests/example1.py b/pycirclize/1.2.0/tests/example1.py
new file mode 100755
index 000000000..2833e5532
--- /dev/null
+++ b/pycirclize/1.2.0/tests/example1.py
@@ -0,0 +1,36 @@
+from pycirclize import Circos
+import numpy as np
+np.random.seed(0)
+
+# Initialize Circos sectors
+sectors = {"A": 10, "B": 15, "C": 12, "D": 20, "E": 15}
+circos = Circos(sectors, space=5)
+
+for sector in circos.sectors:
+ # Plot sector name
+ sector.text(f"Sector: {sector.name}", r=110, size=15)
+ # Create x positions & random y values
+ x = np.arange(sector.start, sector.end) + 0.5
+ y = np.random.randint(0, 100, len(x))
+ # Plot lines
+ track1 = sector.add_track((80, 100), r_pad_ratio=0.1)
+ track1.xticks_by_interval(interval=1)
+ track1.axis()
+ track1.line(x, y)
+ # Plot points
+ track2 = sector.add_track((55, 75), r_pad_ratio=0.1)
+ track2.axis()
+ track2.scatter(x, y)
+ # Plot bars
+ track3 = sector.add_track((30, 50), r_pad_ratio=0.1)
+ track3.axis()
+ track3.bar(x, y)
+
+# Plot links
+circos.link(("A", 0, 3), ("B", 15, 12))
+circos.link(("B", 0, 3), ("C", 7, 11), color="skyblue")
+circos.link(("C", 2, 5), ("E", 15, 12), color="chocolate", direction=1)
+circos.link(("D", 3, 5), ("D", 18, 15), color="lime", ec="black", lw=0.5, hatch="//", direction=2)
+circos.link(("D", 8, 10), ("E", 2, 8), color="violet", ec="red", lw=1.0, ls="dashed")
+
+circos.savefig("example01.png")
\ No newline at end of file
diff --git a/pycirclize/1.2.0/tests/example2.py b/pycirclize/1.2.0/tests/example2.py
new file mode 100755
index 000000000..406b67773
--- /dev/null
+++ b/pycirclize/1.2.0/tests/example2.py
@@ -0,0 +1,42 @@
+from pycirclize import Circos
+from pycirclize.utils import fetch_genbank_by_accid
+from pycirclize.parser import Genbank
+
+# Download `NC_002483` E.coli plasmid genbank
+gbk_fetch_data = fetch_genbank_by_accid("NC_002483")
+gbk = Genbank(gbk_fetch_data)
+
+# Initialize Circos instance with genome size
+circos = Circos(sectors={gbk.name: gbk.range_size})
+circos.text(f"Escherichia coli K-12 plasmid F\n\n{gbk.name}", size=14)
+circos.rect(r_lim=(90, 100), fc="lightgrey", ec="none", alpha=0.5)
+sector = circos.sectors[0]
+
+# Plot forward strand CDS
+f_cds_track = sector.add_track((95, 100))
+f_cds_feats = gbk.extract_features("CDS", target_strand=1)
+f_cds_track.genomic_features(f_cds_feats, plotstyle="arrow", fc="salmon", lw=0.5)
+
+# Plot reverse strand CDS
+r_cds_track = sector.add_track((90, 95))
+r_cds_feats = gbk.extract_features("CDS", target_strand=-1)
+r_cds_track.genomic_features(r_cds_feats, plotstyle="arrow", fc="skyblue", lw=0.5)
+
+# Plot 'gene' qualifier label if exists
+labels, label_pos_list = [], []
+for feat in gbk.extract_features("CDS"):
+ start = int(str(feat.location.start))
+ end = int(str(feat.location.end))
+ label_pos = (start + end) / 2
+ gene_name = feat.qualifiers.get("gene", [None])[0]
+ if gene_name is not None:
+ labels.append(gene_name)
+ label_pos_list.append(label_pos)
+f_cds_track.xticks(label_pos_list, labels, label_size=6, label_orientation="vertical")
+
+# Plot xticks (interval = 10 Kb)
+r_cds_track.xticks_by_interval(
+ 10000, outer=False, label_formatter=lambda v: f"{v/1000:.1f} Kb"
+)
+
+circos.savefig("example02.png")
\ No newline at end of file
diff --git a/pycirclize/1.2.0/tests/example3.py b/pycirclize/1.2.0/tests/example3.py
new file mode 100755
index 000000000..72bd3fcaa
--- /dev/null
+++ b/pycirclize/1.2.0/tests/example3.py
@@ -0,0 +1,23 @@
+from pycirclize import Circos
+import pandas as pd
+
+# Create matrix dataframe (3 x 6)
+row_names = ["F1", "F2", "F3"]
+col_names = ["T1", "T2", "T3", "T4", "T5", "T6"]
+matrix_data = [
+ [10, 16, 7, 7, 10, 8],
+ [4, 9, 10, 12, 12, 7],
+ [17, 13, 7, 4, 20, 4],
+]
+matrix_df = pd.DataFrame(matrix_data, index=row_names, columns=col_names)
+
+# Initialize Circos from matrix for plotting Chord Diagram
+circos = Circos.initialize_from_matrix(
+ matrix_df,
+ space=5,
+ cmap="tab10",
+ label_kws=dict(size=12),
+ link_kws=dict(ec="black", lw=0.5, direction=1),
+)
+
+circos.savefig("example03.png")
\ No newline at end of file
diff --git a/pycirclize/1.5.0/Dockerfile b/pycirclize/1.5.0/Dockerfile
new file mode 100644
index 000000000..a770a3aad
--- /dev/null
+++ b/pycirclize/1.5.0/Dockerfile
@@ -0,0 +1,39 @@
+FROM python:3.9.17-slim as app
+
+ARG PYCIRCLIZE_VER="1.5.0"
+
+# 'LABEL' instructions tag the image with metadata that might be important to the user
+LABEL base.image="python:3.9.17-slim"
+LABEL dockerfile.version="1"
+LABEL software="pyCirclize"
+LABEL software.version="${PYCIRCLIZE_VER}"
+LABEL description="Circular visualization in Python"
+LABEL website="https://github.com/moshi4/pyCirclize"
+LABEL license="https://github.com/moshi4/pyCirclize/blob/main/LICENSE"
+LABEL maintainer="Erin Young"
+LABEL maintainer.email="eriny@utah.gov"
+
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ procps && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+RUN pip install --no-cache pycirclize==${PYCIRCLIZE_VER}
+
+ENV PATH=$PATH \
+ LC_ALL=C
+
+CMD pip show pycirclize
+
+WORKDIR /data
+
+FROM app as test
+
+WORKDIR /test
+
+RUN pip show pycirclize
+
+COPY /tests/* /test/
+
+RUN python example1.py && ls example01.png && \
+ python example2.py && ls example02.png && \
+ python example3.py && ls example03.png
diff --git a/pycirclize/1.5.0/README.md b/pycirclize/1.5.0/README.md
new file mode 100644
index 000000000..39f05ac66
--- /dev/null
+++ b/pycirclize/1.5.0/README.md
@@ -0,0 +1,61 @@
+# pyCirclize container
+
+Main tool: [pyCirclize](https://pypi.org/project/pyCirclize/)
+
+Code repository: https://github.com/moshi4/pyCirclize
+
+Basic information on how to use this tool:
+- executable: NA
+- help: NA
+- version: NA
+- description: pyCirclize is a python package for creating visual images of circular genomes (like those of bacteria)
+
+Full documentation: https://pypi.org/project/pyCirclize/
+
+## Example Usage
+
+This is for running containers with a specific python package, and is not really meant to be run from the command line. Instead, a bioinformatician could create a python script that uses pycirclize.
+
+example1.py:
+```python
+from pycirclize import Circos
+import numpy as np
+np.random.seed(0)
+
+# Initialize Circos sectors
+sectors = {"A": 10, "B": 15, "C": 12, "D": 20, "E": 15}
+circos = Circos(sectors, space=5)
+
+for sector in circos.sectors:
+ # Plot sector name
+ sector.text(f"Sector: {sector.name}", r=110, size=15)
+ # Create x positions & random y values
+ x = np.arange(sector.start, sector.end) + 0.5
+ y = np.random.randint(0, 100, len(x))
+ # Plot lines
+ track1 = sector.add_track((80, 100), r_pad_ratio=0.1)
+ track1.xticks_by_interval(interval=1)
+ track1.axis()
+ track1.line(x, y)
+ # Plot points
+ track2 = sector.add_track((55, 75), r_pad_ratio=0.1)
+ track2.axis()
+ track2.scatter(x, y)
+ # Plot bars
+ track3 = sector.add_track((30, 50), r_pad_ratio=0.1)
+ track3.axis()
+ track3.bar(x, y)
+
+# Plot links
+circos.link(("A", 0, 3), ("B", 15, 12))
+circos.link(("B", 0, 3), ("C", 7, 11), color="skyblue")
+circos.link(("C", 2, 5), ("E", 15, 12), color="chocolate", direction=1)
+circos.link(("D", 3, 5), ("D", 18, 15), color="lime", ec="black", lw=0.5, hatch="//", direction=2)
+circos.link(("D", 8, 10), ("E", 2, 8), color="violet", ec="red", lw=1.0, ls="dashed")
+
+circos.savefig("example01.png")
+```
+
+```bash
+python example1.py
+```
diff --git a/pycirclize/1.5.0/tests/example1.py b/pycirclize/1.5.0/tests/example1.py
new file mode 100755
index 000000000..13d5287ab
--- /dev/null
+++ b/pycirclize/1.5.0/tests/example1.py
@@ -0,0 +1,36 @@
+from pycirclize import Circos
+import numpy as np
+np.random.seed(0)
+
+# Initialize Circos sectors
+sectors = {"A": 10, "B": 15, "C": 12, "D": 20, "E": 15}
+circos = Circos(sectors, space=5)
+
+for sector in circos.sectors:
+ # Plot sector name
+ sector.text(f"Sector: {sector.name}", r=110, size=15)
+ # Create x positions & random y values
+ x = np.arange(sector.start, sector.end) + 0.5
+ y = np.random.randint(0, 100, len(x))
+ # Plot lines
+ track1 = sector.add_track((80, 100), r_pad_ratio=0.1)
+ track1.xticks_by_interval(interval=1)
+ track1.axis()
+ track1.line(x, y)
+ # Plot points
+ track2 = sector.add_track((55, 75), r_pad_ratio=0.1)
+ track2.axis()
+ track2.scatter(x, y)
+ # Plot bars
+ track3 = sector.add_track((30, 50), r_pad_ratio=0.1)
+ track3.axis()
+ track3.bar(x, y)
+
+# Plot links
+circos.link(("A", 0, 3), ("B", 15, 12))
+circos.link(("B", 0, 3), ("C", 7, 11), color="skyblue")
+circos.link(("C", 2, 5), ("E", 15, 12), color="chocolate", direction=1)
+circos.link(("D", 3, 5), ("D", 18, 15), color="lime", ec="black", lw=0.5, hatch="//", direction=2)
+circos.link(("D", 8, 10), ("E", 2, 8), color="violet", ec="red", lw=1.0, ls="dashed")
+
+circos.savefig("example01.png")
diff --git a/pycirclize/1.5.0/tests/example2.py b/pycirclize/1.5.0/tests/example2.py
new file mode 100755
index 000000000..bd5419425
--- /dev/null
+++ b/pycirclize/1.5.0/tests/example2.py
@@ -0,0 +1,42 @@
+from pycirclize import Circos
+from pycirclize.utils import fetch_genbank_by_accid
+from pycirclize.parser import Genbank
+
+# Download `NC_002483` E.coli plasmid genbank
+gbk_fetch_data = fetch_genbank_by_accid("NC_002483")
+gbk = Genbank(gbk_fetch_data)
+
+# Initialize Circos instance with genome size
+circos = Circos(sectors={gbk.name: gbk.range_size})
+circos.text(f"Escherichia coli K-12 plasmid F\n\n{gbk.name}", size=14)
+circos.rect(r_lim=(90, 100), fc="lightgrey", ec="none", alpha=0.5)
+sector = circos.sectors[0]
+
+# Plot forward strand CDS
+f_cds_track = sector.add_track((95, 100))
+f_cds_feats = gbk.extract_features("CDS", target_strand=1)
+f_cds_track.genomic_features(f_cds_feats, plotstyle="arrow", fc="salmon", lw=0.5)
+
+# Plot reverse strand CDS
+r_cds_track = sector.add_track((90, 95))
+r_cds_feats = gbk.extract_features("CDS", target_strand=-1)
+r_cds_track.genomic_features(r_cds_feats, plotstyle="arrow", fc="skyblue", lw=0.5)
+
+# Plot 'gene' qualifier label if exists
+labels, label_pos_list = [], []
+for feat in gbk.extract_features("CDS"):
+ start = int(str(feat.location.start))
+ end = int(str(feat.location.end))
+ label_pos = (start + end) / 2
+ gene_name = feat.qualifiers.get("gene", [None])[0]
+ if gene_name is not None:
+ labels.append(gene_name)
+ label_pos_list.append(label_pos)
+f_cds_track.xticks(label_pos_list, labels, label_size=6, label_orientation="vertical")
+
+# Plot xticks (interval = 10 Kb)
+r_cds_track.xticks_by_interval(
+ 10000, outer=False, label_formatter=lambda v: f"{v/1000:.1f} Kb"
+)
+
+circos.savefig("example02.png")
diff --git a/pycirclize/1.5.0/tests/example3.py b/pycirclize/1.5.0/tests/example3.py
new file mode 100755
index 000000000..6633e1261
--- /dev/null
+++ b/pycirclize/1.5.0/tests/example3.py
@@ -0,0 +1,23 @@
+from pycirclize import Circos
+import pandas as pd
+
+# Create matrix dataframe (3 x 6)
+row_names = ["F1", "F2", "F3"]
+col_names = ["T1", "T2", "T3", "T4", "T5", "T6"]
+matrix_data = [
+ [10, 16, 7, 7, 10, 8],
+ [4, 9, 10, 12, 12, 7],
+ [17, 13, 7, 4, 20, 4],
+]
+matrix_df = pd.DataFrame(matrix_data, index=row_names, columns=col_names)
+
+# Initialize Circos from matrix for plotting Chord Diagram
+circos = Circos.initialize_from_matrix(
+ matrix_df,
+ space=5,
+ cmap="tab10",
+ label_kws=dict(size=12),
+ link_kws=dict(ec="black", lw=0.5, direction=1),
+)
+
+circos.savefig("example03.png")
diff --git a/pycirclize/1.6.0/Dockerfile b/pycirclize/1.6.0/Dockerfile
new file mode 100644
index 000000000..020f84643
--- /dev/null
+++ b/pycirclize/1.6.0/Dockerfile
@@ -0,0 +1,43 @@
+FROM python:3.9.17-slim as app
+
+ARG PYCIRCLIZE_VER="1.6.0"
+
+# 'LABEL' instructions tag the image with metadata that might be important to the user
+LABEL base.image="python:3.9.17-slim"
+LABEL dockerfile.version="1"
+LABEL software="pyCirclize"
+LABEL software.version="${PYCIRCLIZE_VER}"
+LABEL description="Circular visualization in Python"
+LABEL website="https://github.com/moshi4/pyCirclize"
+LABEL license="https://github.com/moshi4/pyCirclize/blob/main/LICENSE"
+LABEL maintainer="Erin Young"
+LABEL maintainer.email="eriny@utah.gov"
+
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ procps && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+RUN pip install --no-cache pycirclize==${PYCIRCLIZE_VER}
+
+ENV PATH=$PATH \
+ LC_ALL=C
+
+CMD pip show pycirclize
+
+WORKDIR /data
+
+FROM app as test
+
+WORKDIR /test
+
+RUN pip show pycirclize
+
+RUN apt-get update && apt-get install -y --no-install-recommends wget
+
+RUN wget -q https://raw.githubusercontent.com/StaPH-B/docker-builds/master/pycirclize/1.5.0/tests/example1.py && \
+ wget -q https://raw.githubusercontent.com/StaPH-B/docker-builds/master/pycirclize/1.5.0/tests/example2.py && \
+ wget -q https://raw.githubusercontent.com/StaPH-B/docker-builds/master/pycirclize/1.5.0/tests/example3.py
+
+RUN python example1.py && ls example01.png && \
+ python example2.py && ls example02.png && \
+ python example3.py && ls example03.png
diff --git a/pycirclize/1.6.0/README.md b/pycirclize/1.6.0/README.md
new file mode 100644
index 000000000..39f05ac66
--- /dev/null
+++ b/pycirclize/1.6.0/README.md
@@ -0,0 +1,61 @@
+# pyCirclize container
+
+Main tool: [pyCirclize](https://pypi.org/project/pyCirclize/)
+
+Code repository: https://github.com/moshi4/pyCirclize
+
+Basic information on how to use this tool:
+- executable: NA
+- help: NA
+- version: NA
+- description: pyCirclize is a python package for creating visual images of circular genomes (like those of bacteria)
+
+Full documentation: https://pypi.org/project/pyCirclize/
+
+## Example Usage
+
+This is for running containers with a specific python package, and is not really meant to be run from the command line. Instead, a bioinformatician could create a python script that uses pycirclize.
+
+example1.py:
+```python
+from pycirclize import Circos
+import numpy as np
+np.random.seed(0)
+
+# Initialize Circos sectors
+sectors = {"A": 10, "B": 15, "C": 12, "D": 20, "E": 15}
+circos = Circos(sectors, space=5)
+
+for sector in circos.sectors:
+ # Plot sector name
+ sector.text(f"Sector: {sector.name}", r=110, size=15)
+ # Create x positions & random y values
+ x = np.arange(sector.start, sector.end) + 0.5
+ y = np.random.randint(0, 100, len(x))
+ # Plot lines
+ track1 = sector.add_track((80, 100), r_pad_ratio=0.1)
+ track1.xticks_by_interval(interval=1)
+ track1.axis()
+ track1.line(x, y)
+ # Plot points
+ track2 = sector.add_track((55, 75), r_pad_ratio=0.1)
+ track2.axis()
+ track2.scatter(x, y)
+ # Plot bars
+ track3 = sector.add_track((30, 50), r_pad_ratio=0.1)
+ track3.axis()
+ track3.bar(x, y)
+
+# Plot links
+circos.link(("A", 0, 3), ("B", 15, 12))
+circos.link(("B", 0, 3), ("C", 7, 11), color="skyblue")
+circos.link(("C", 2, 5), ("E", 15, 12), color="chocolate", direction=1)
+circos.link(("D", 3, 5), ("D", 18, 15), color="lime", ec="black", lw=0.5, hatch="//", direction=2)
+circos.link(("D", 8, 10), ("E", 2, 8), color="violet", ec="red", lw=1.0, ls="dashed")
+
+circos.savefig("example01.png")
+```
+
+```bash
+python example1.py
+```
diff --git a/pygenomeviz/0.4.4/Dockerfile b/pygenomeviz/0.4.4/Dockerfile
new file mode 100644
index 000000000..753b126de
--- /dev/null
+++ b/pygenomeviz/0.4.4/Dockerfile
@@ -0,0 +1,46 @@
+FROM python:3.9.17-slim as app
+
+ARG PYGENOMEVIZ_VER="0.4.4"
+
+LABEL base.image="python:3.9.17-slim"
+LABEL dockerfile.version="1"
+LABEL software="pyGenomeViz"
+LABEL software.version=$PYGENOMEVIZ_VER
+LABEL description="genome visualization python package for comparative genomics"
+LABEL website="https://moshi4.github.io/pyGenomeViz/"
+LABEL license="MIT License"
+LABEL license.url="https://github.com/moshi4/pyGenomeViz/blob/main/LICENSE"
+LABEL maintainer="Erin Young"
+LABEL maintainer.email="eriny@utah.gov"
+
+#mmseqs2=14-7e284+ds-1+b2
+#mummer=3.23+dfsg-8
+#progressivemauve=1.2.0+4713+dfsg-5+b1
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ ca-certificates \
+ procps \
+ mmseqs2 \
+ mummer \
+ progressivemauve && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+RUN pip install --no-cache-dir pygenomeviz==$PYGENOMEVIZ_VER
+
+ENV LC_ALL=C.UTF-8
+
+CMD pgv-simpleplot --help && pgv-mmseqs --help && pgv-mummer --help && pgv-pmauve --help
+
+WORKDIR /data
+
+FROM app as test
+
+WORKDIR /test
+
+RUN pgv-simpleplot --help && pgv-mmseqs --help && pgv-mummer --help && pgv-pmauve --help
+
+RUN pgv-download-dataset -n erwinia_phage && \
+ pgv-mummer --gbk_resources MT939486.gbk MT939487.gbk MT939488.gbk LT960552.gbk -o mummer_test --tick_style axis --align_type left --feature_plotstyle arrow && \
+ pgv-mmseqs --gbk_resources MT939486.gbk MT939487.gbk MT939488.gbk LT960552.gbk -o mmseqs_test --tick_style axis --align_type left --feature_plotstyle arrow && \
+ pgv-download-dataset -n escherichia_coli && \
+ pgv-pmauve --seq_files NC_000913.gbk NC_002695.gbk NC_011751.gbk NC_011750.gbk -o pmauve_test --tick_style bar && \
+ ls mummer_test/result.png mmseqs_test/result.png pmauve_test/result.png
diff --git a/pygenomeviz/0.4.4/README.md b/pygenomeviz/0.4.4/README.md
new file mode 100644
index 000000000..1e48b6130
--- /dev/null
+++ b/pygenomeviz/0.4.4/README.md
@@ -0,0 +1,50 @@
+# pyGenomeViz container
+
+Main tool : [pyGenomeViz](https://moshi4.github.io/pyGenomeViz/)
+
+Additional tools:
+- MMseqs2 v14-7e284+ds-1+b2
+- MUMmer v3.23+dfsg-8
+- progressiveMauve v1.2.0+4713+dfsg-5+b1
+
+Full documentation: https://moshi4.github.io/pyGenomeViz/
+
+> pyGenomeViz is a genome visualization python package for comparative genomics implemented based on matplotlib. This package is developed for the purpose of easily and beautifully plotting genomic features and sequence similarity comparison links between multiple genomes.
+
+## Example Usage
+
+Using the CLI
+
+```bash
+# Download four Erwinia phage genbank files
+pgv-download-dataset -n erwinia_phage
+
+# run pyGenomeViz to visualize MUMmer alignment
+pgv-mummer --gbk_resources MT939486.gbk MT939487.gbk MT939488.gbk LT960552.gbk -o mummer_example1 --tick_style axis --align_type left --feature_plotstyle arrow
+
+# run pyGenomeViz to visualize MMseqs2 alignment
+pgv-mmseqs --gbk_resources MT939486.gbk:250000-358115 MT939487.gbk:250000-355376 MT939488.gbk:250000-356948 LT960552.gbk:270000-340000 -o mmseqs_example2 --tick_style bar --feature_plotstyle arrow
+
+# Download four E.coli genbank files
+pgv-download-dataset -n escherichia_coli
+
+# run pyGenomeViz to visualize progressiveMauve alignment
+pgv-pmauve --seq_files NC_000913.gbk NC_002695.gbk NC_011751.gbk NC_011750.gbk -o pmauve_example1 --tick_style bar
+```
+
+This container contains the pygenomeviz python package, so custom scripts can import pygenomeviz
+
+```python
+from pygenomeviz import GenomeViz
+
+name, genome_size = "Tutorial 01", 5000
+cds_list = ((100, 900, -1), (1100, 1300, 1), (1350, 1500, 1), (1520, 1700, 1), (1900, 2200, -1), (2500, 2700, 1), (2700, 2800, -1), (2850, 3000, -1), (3100, 3500, 1), (3600, 3800, -1), (3900, 4200, -1), (4300, 4700, -1), (4800, 4850, 1))
+
+gv = GenomeViz()
+track = gv.add_feature_track(name, genome_size)
+for idx, cds in enumerate(cds_list, 1):
+ start, end, strand = cds
+ track.add_feature(start, end, strand, label=f"CDS{idx:02d}")
+
+fig = gv.plotfig()
+```
diff --git a/pygenomeviz/1.1.0/Dockerfile b/pygenomeviz/1.1.0/Dockerfile
new file mode 100644
index 000000000..a7d1ec8c2
--- /dev/null
+++ b/pygenomeviz/1.1.0/Dockerfile
@@ -0,0 +1,67 @@
+FROM python:3.9.17-slim as app
+
+ARG PYGENOMEVIZ_VER="1.1.0"
+
+LABEL base.image="python:3.9.17-slim"
+LABEL dockerfile.version="1"
+LABEL software="pyGenomeViz"
+LABEL software.version=$PYGENOMEVIZ_VER
+LABEL description="genome visualization python package for comparative genomics"
+LABEL website="https://moshi4.github.io/pyGenomeViz"
+LABEL license="MIT License"
+LABEL license.url="https://github.com/moshi4/pyGenomeViz/blob/main/LICENSE"
+LABEL maintainer="Erin Young"
+LABEL maintainer.email="eriny@utah.gov"
+
+#mmseqs2=14-7e284+ds-1+b2
+#mummer=3.23+dfsg-8
+#progressivemauve=1.2.0+4713+dfsg-5+b1
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ ca-certificates \
+ procps \
+ ncbi-blast+ \
+ mmseqs2 \
+ mummer \
+ progressivemauve && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+RUN pip install --no-cache-dir pygenomeviz==$PYGENOMEVIZ_VER
+
+ENV LC_ALL=C.UTF-8
+
+CMD pgv-mmseqs --help && pgv-mummer --help && pgv-pmauve --help && pgv-blast --help
+
+WORKDIR /data
+
+FROM app as test
+
+WORKDIR /test
+
+RUN pgv-mmseqs --help && pgv-mummer --help && pgv-pmauve --help && pgv-blast --help
+
+RUN \
+ # Download example dataset
+ pgv-download yersinia_phage && \
+ # Run BLAST CLI workflow
+ pgv-blast NC_070914.gbk NC_070915.gbk NC_070916.gbk NC_070918.gbk \
+ -o pgv-blast_example --seqtype protein --show_scale_bar --curve \
+ --feature_linewidth 0.3 --length_thr 100 --identity_thr 30 && \
+ # Download example dataset
+ pgv-download mycoplasma_mycoides && \
+ # Run MUMmer CLI workflow
+ pgv-mummer GCF_000023685.1.gbff GCF_000800785.1.gbff GCF_000959055.1.gbff GCF_000959065.1.gbff \
+ -o pgv-mummer_example --show_scale_bar --curve \
+ --feature_type2color CDS:blue rRNA:lime tRNA:magenta && \
+ # Download example dataset
+ pgv-download enterobacteria_phage && \
+ # Run MMseqs CLI workflow
+ pgv-mmseqs NC_013600.gbk NC_016566.gbk NC_019724.gbk NC_024783.gbk NC_028901.gbk NC_031081.gbk \
+ -o pgv-mmseqs_example --show_scale_bar --curve --feature_linewidth 0.3 \
+ --feature_type2color CDS:skyblue --normal_link_color chocolate --inverted_link_color limegreen && \
+ # Download example dataset
+ pgv-download escherichia_coli && \
+ # Run progressiveMauve CLI workflow
+ pgv-pmauve NC_000913.gbk.gz NC_002695.gbk.gz NC_011751.gbk.gz NC_011750.gbk.gz \
+ -o pgv-pmauve_example --show_scale_bar && \
+ # Check final files
+ ls pgv-blast_example/result.png pgv-mummer_example/result.png pgv-mmseqs_example/result.png pgv-pmauve_example/result.png
diff --git a/pygenomeviz/1.1.0/README.md b/pygenomeviz/1.1.0/README.md
new file mode 100644
index 000000000..e0dd7807c
--- /dev/null
+++ b/pygenomeviz/1.1.0/README.md
@@ -0,0 +1,69 @@
+# pyGenomeViz container
+
+Main tool : [pyGenomeViz](https://moshi4.github.io/pyGenomeViz/)
+
+Additional tools:
+- ncbi-blast+ (2.12.0+ds-3+b1)
+- mmseqs2 (14-7e284+ds-1+b2)
+- mummer (3.23+dfsg-8)
+- progressivemauve (1.2.0+4713+dfsg-5+b1)
+
+Full documentation: https://moshi4.github.io/pyGenomeViz/
+
+> pyGenomeViz is a genome visualization python package for comparative genomics implemented based on matplotlib. This package is developed for the purpose of easily and beautifully plotting genomic features and sequence similarity comparison links between multiple genomes.
+
+## Example Usage
+
+Using the CLI
+
+```bash
+# Download example dataset
+pgv-download yersinia_phage
+
+# Run BLAST CLI workflow
+pgv-blast NC_070914.gbk NC_070915.gbk NC_070916.gbk NC_070918.gbk \
+ -o pgv-blast_example --seqtype protein --show_scale_bar --curve \
+ --feature_linewidth 0.3 --length_thr 100 --identity_thr 30
+
+# Download example dataset
+pgv-download mycoplasma_mycoides
+
+# Run MUMmer CLI workflow
+pgv-mummer GCF_000023685.1.gbff GCF_000800785.1.gbff GCF_000959055.1.gbff GCF_000959065.1.gbff \
+ -o pgv-mummer_example --show_scale_bar --curve \
+ --feature_type2color CDS:blue rRNA:lime tRNA:magenta
+
+# Download example dataset
+pgv-download enterobacteria_phage
+
+# Run MMseqs CLI workflow
+pgv-mmseqs NC_013600.gbk NC_016566.gbk NC_019724.gbk NC_024783.gbk NC_028901.gbk NC_031081.gbk \
+ -o pgv-mmseqs_example --show_scale_bar --curve --feature_linewidth 0.3 \
+ --feature_type2color CDS:skyblue --normal_link_color chocolate --inverted_link_color limegreen
+
+# Download example dataset
+pgv-download escherichia_coli
+
+# Run progressiveMauve CLI workflow
+pgv-pmauve NC_000913.gbk.gz NC_002695.gbk.gz NC_011751.gbk.gz NC_011750.gbk.gz \
+ -o pgv-pmauve_example --show_scale_bar
+```
+
+This container contains the pygenomeviz python package, so custom scripts can import pygenomeviz
+
+```python
+from pygenomeviz import GenomeViz
+
+gv = GenomeViz()
+gv.set_scale_xticks(ymargin=0.5)
+
+track = gv.add_feature_track("tutorial", 1000)
+track.add_sublabel()
+
+track.add_feature(50, 200, 1)
+track.add_feature(250, 460, -1, fc="blue")
+track.add_feature(500, 710, 1, fc="lime")
+track.add_feature(750, 960, 1, fc="magenta", lw=1.0)
+
+gv.savefig("features.png")
+```
diff --git a/pymlst/2.1.5/Dockerfile b/pymlst/2.1.5/Dockerfile
new file mode 100644
index 000000000..d150cfd6a
--- /dev/null
+++ b/pymlst/2.1.5/Dockerfile
@@ -0,0 +1,85 @@
+## Builder ##
+FROM ubuntu:jammy as blat
+
+ARG BLAT_VER="35"
+ARG MACHTYPE="x86_64-pc-linux-gnu"
+
+RUN apt-get update && apt-get install -y \
+ build-essential \
+ wget \
+ unzip \
+ libpng-dev
+
+RUN wget https://genome-test.gi.ucsc.edu/~kent/src/blatSrc${BLAT_VER}.zip &&\
+ unzip blatSrc${BLAT_VER}.zip &&\
+ cd blatSrc &&\
+ mkdir -p bin/${MACHTYPE} &&\
+ mkdir -p lib/${MACHTYPE} &&\
+ make HOME=$PWD MACHTYPE=${MACHTYPE} C_INCLUDE_PATH=/usr/include LIBRARY_PATH=/usr/lib CFLAGS="-fcommon" &&\
+ mv bin/${MACHTYPE}/* /usr/local/bin/
+
+## App ##
+FROM ubuntu:jammy as app
+
+ARG PYMLST_VER="2.1.5"
+
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="pyMLST"
+LABEL software.version="${PYMLST_VER}"
+LABEL description="A Python Mlst Local Search Tool"
+LABEL website="https://github.com/bvalot/pyMLST"
+LABEL license="https://github.com/bvalot/pyMLST/blob/master/LICENSE"
+LABEL maintainer="Kutluhan Incekara"
+LABEL maintainer.email="kutluhan.incekara@ct.gov"
+
+#install dependencies
+RUN apt-get update && apt-get install --no-install-recommends -y\
+ mafft \
+ kma \
+ python3-pip \
+ python3-biopython &&\
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+# get blat from builder
+COPY --from=blat /usr/local/bin/* /usr/local/bin/
+
+# install pymlst
+RUN pip3 install --no-cache pymlst==${PYMLST_VER}
+
+CMD pyMLST -h && claMLST -h && wgMLST -h
+
+ENV LC_ALL=C
+
+WORKDIR /data
+
+## Test ##
+FROM app as test
+
+# checking CMD line
+RUN pyMLST -h && claMLST -h && wgMLST -h
+
+RUN apt-get update && apt-get install --no-install-recommends -y wget
+
+# download assemblies for test
+RUN wget -q https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/032/604/515/GCA_032604515.1_PDT001925635.1/GCA_032604515.1_PDT001925635.1_genomic.fna.gz \
+ https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/032/847/695/GCA_032847695.1_PDT001947824.1/GCA_032847695.1_PDT001947824.1_genomic.fna.gz \
+ https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/034/261/675/GCA_034261675.1_PDT002019551.2/GCA_034261675.1_PDT002019551.2_genomic.fna.gz \
+ https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/037/026/425/GCA_037026425.1_PDT002098409.1/GCA_037026425.1_PDT002098409.1_genomic.fna.gz &&\
+ gunzip *.fna.gz
+
+# classical MLST
+RUN claMLST import MLST_DB escherichia spp. -m achtman &&\
+ claMLST search MLST_DB GCA_032604515.1_PDT001925635.1_genomic.fna
+
+#cg/wgMLST
+# initiliaze db
+RUN wgMLST import WGMLST_DB Escherichia coli
+# add assemblies
+RUN wgMLST add WGMLST_DB GCA_032604515.1_PDT001925635.1_genomic.fna -s 2023BM00142 &&\
+ wgMLST add WGMLST_DB GCA_032847695.1_PDT001947824.1_genomic.fna -s 2023BM00149 &&\
+ wgMLST add WGMLST_DB GCA_034261675.1_PDT002019551.2_genomic.fna -s 2023BM00164 &&\
+ wgMLST add WGMLST_DB GCA_037026425.1_PDT002098409.1_genomic.fna -s 2024BM00013
+# check db and calculate cgMLST distances
+RUN wgMLST stats WGMLST_DB &&\
+ wgMLST distance WGMLST_DB
diff --git a/pymlst/2.1.5/README.md b/pymlst/2.1.5/README.md
new file mode 100644
index 000000000..10b266489
--- /dev/null
+++ b/pymlst/2.1.5/README.md
@@ -0,0 +1,38 @@
+# pyMLST container
+
+Main tool: [pyMLST](https://github.com/bvalot/pyMLST)
+
+Code repository: https://github.com/bvalot/pyMLST
+
+Additional tools:
+- MAFFT : v7.490
+- KMA : 1.3.28
+- BLAT : v.35
+
+Basic information on how to use this tool:
+- executables: pyMLST, claMLST, wgMLST
+- help: -h
+- version: -v
+- description: A Python Mlst Local Search Tool.
+
+Additional information:
+
+This container does not have any database. However, it can download it via app.
+
+Full documentation: https://pymlst.readthedocs.io/en/latest/
+
+## Example Usage
+
+```bash
+## cg/wgMLST
+# initialize database
+wgMLST import DATABASE
+# add interested strain
+wgMLST add DATABASE GENOME
+# cgMLST distance
+wgMLST distance DATABASE
+
+# MLST
+claMLST import DATABASE
+claMLST search DATABASE GENOME
+```
diff --git a/pymlst/2.1.6/Dockerfile b/pymlst/2.1.6/Dockerfile
new file mode 100644
index 000000000..f9037dbe5
--- /dev/null
+++ b/pymlst/2.1.6/Dockerfile
@@ -0,0 +1,85 @@
+## Builder ##
+FROM ubuntu:jammy as blat
+
+ARG BLAT_VER="35"
+ARG MACHTYPE="x86_64-pc-linux-gnu"
+
+RUN apt-get update && apt-get install -y \
+ build-essential \
+ wget \
+ unzip \
+ libpng-dev
+
+RUN wget https://genome-test.gi.ucsc.edu/~kent/src/blatSrc${BLAT_VER}.zip &&\
+ unzip blatSrc${BLAT_VER}.zip &&\
+ cd blatSrc &&\
+ mkdir -p bin/${MACHTYPE} &&\
+ mkdir -p lib/${MACHTYPE} &&\
+ make HOME=$PWD MACHTYPE=${MACHTYPE} C_INCLUDE_PATH=/usr/include LIBRARY_PATH=/usr/lib CFLAGS="-fcommon" &&\
+ mv bin/${MACHTYPE}/* /usr/local/bin/
+
+## App ##
+FROM ubuntu:jammy as app
+
+ARG PYMLST_VER="2.1.6"
+
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="pyMLST"
+LABEL software.version="${PYMLST_VER}"
+LABEL description="A Python Mlst Local Search Tool"
+LABEL website="https://github.com/bvalot/pyMLST"
+LABEL license="https://github.com/bvalot/pyMLST/blob/master/LICENSE"
+LABEL maintainer="Kutluhan Incekara"
+LABEL maintainer.email="kutluhan.incekara@ct.gov"
+
+#install dependencies
+RUN apt-get update && apt-get install --no-install-recommends -y\
+ mafft \
+ kma \
+ python3-pip \
+ python3-biopython &&\
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+# get blat from builder
+COPY --from=blat /usr/local/bin/* /usr/local/bin/
+
+# install pymlst
+RUN pip3 install --no-cache pymlst==${PYMLST_VER}
+
+CMD pyMLST -h && claMLST -h && wgMLST -h
+
+ENV LC_ALL=C
+
+WORKDIR /data
+
+## Test ##
+FROM app as test
+
+# checking CMD line
+RUN pyMLST -h && claMLST -h && wgMLST -h
+
+RUN apt-get update && apt-get install --no-install-recommends -y wget
+
+# download assemblies for test
+RUN wget -q https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/032/604/515/GCA_032604515.1_PDT001925635.1/GCA_032604515.1_PDT001925635.1_genomic.fna.gz \
+ https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/032/847/695/GCA_032847695.1_PDT001947824.1/GCA_032847695.1_PDT001947824.1_genomic.fna.gz \
+ https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/034/261/675/GCA_034261675.1_PDT002019551.2/GCA_034261675.1_PDT002019551.2_genomic.fna.gz \
+ https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/037/026/425/GCA_037026425.1_PDT002098409.1/GCA_037026425.1_PDT002098409.1_genomic.fna.gz &&\
+ gunzip *.fna.gz
+
+# classical MLST
+RUN claMLST import MLST_DB escherichia spp. -m achtman &&\
+ claMLST search MLST_DB GCA_032604515.1_PDT001925635.1_genomic.fna
+
+#cg/wgMLST
+# initiliaze db
+RUN wgMLST import WGMLST_DB Escherichia coli
+# add assemblies
+RUN wgMLST add WGMLST_DB GCA_032604515.1_PDT001925635.1_genomic.fna -s 2023BM00142 &&\
+ wgMLST add WGMLST_DB GCA_032847695.1_PDT001947824.1_genomic.fna -s 2023BM00149 &&\
+ wgMLST add WGMLST_DB GCA_034261675.1_PDT002019551.2_genomic.fna -s 2023BM00164 &&\
+ wgMLST add WGMLST_DB GCA_037026425.1_PDT002098409.1_genomic.fna -s 2024BM00013
+# check db and calculate cgMLST distances
+RUN wgMLST stats WGMLST_DB &&\
+ wgMLST distance WGMLST_DB
diff --git a/pymlst/2.1.6/README.md b/pymlst/2.1.6/README.md
new file mode 100644
index 000000000..10b266489
--- /dev/null
+++ b/pymlst/2.1.6/README.md
@@ -0,0 +1,38 @@
+# pyMLST container
+
+Main tool: [pyMLST](https://github.com/bvalot/pyMLST)
+
+Code repository: https://github.com/bvalot/pyMLST
+
+Additional tools:
+- MAFFT : v7.490
+- KMA : 1.3.28
+- BLAT : v.35
+
+Basic information on how to use this tool:
+- executables: pyMLST, claMLST, wgMLST
+- help: -h
+- version: -v
+- description: A Python Mlst Local Search Tool.
+
+Additional information:
+
+This container does not have any database. However, it can download it via app.
+
+Full documentation: https://pymlst.readthedocs.io/en/latest/
+
+## Example Usage
+
+```bash
+## cg/wgMLST
+# initialize database
+wgMLST import DATABASE
+# add interested strain
+wgMLST add DATABASE GENOME
+# cgMLST distance
+wgMLST distance DATABASE
+
+# MLST
+claMLST import DATABASE
+claMLST search DATABASE GENOME
+```
diff --git a/pypolca/0.3.1/Dockerfile b/pypolca/0.3.1/Dockerfile
new file mode 100644
index 000000000..5a9ad4f26
--- /dev/null
+++ b/pypolca/0.3.1/Dockerfile
@@ -0,0 +1,62 @@
+# both of these use the ubuntu:jammy base
+FROM staphb/freebayes:1.3.7 as freebayes
+FROM staphb/samtools:1.19 as samtools
+
+FROM ubuntu:jammy as app
+
+ARG PYPOLCA_VER="0.3.1"
+
+# 'LABEL' instructions tag the image with metadata that might be important to the user
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="pypolca"
+LABEL software.version="${PYPOLCA_VER}"
+LABEL description="Polishes long reads"
+LABEL website="https://github.com/gbouras13/pypolca"
+LABEL license="https://github.com/gbouras13/pypolca/blob/main/LICENSE"
+LABEL maintainer="Erin Young"
+LABEL maintainer.email="eriny@utah.gov"
+
+ARG DEBIAN_FRONTEND=noninteractive
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ procps \
+ ca-certificates \
+ wget \
+ bwa \
+ vcftools \
+ libseqlib-dev \
+ libvcflib-tools \
+ parallel \
+ bc \
+ python3 \
+ python3-pip && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+COPY --from=freebayes /usr/local/bin/* /usr/local/bin/
+COPY --from=samtools /usr/local/bin/* /usr/local/bin/
+
+RUN pip3 install --no-cache pypolca==${PYPOLCA_VER}
+
+ENV PATH="$PATH" \
+ LC_ALL=C
+
+# 'CMD' instructions set a default command when the container is run. This is typically 'tool --help.'
+CMD pypolca -h
+
+# 'WORKDIR' sets working directory
+WORKDIR /data
+
+# A second FROM insruction creates a new stage
+FROM app as test
+
+WORKDIR /test
+
+RUN pypolca -h && \
+ pypolca --version
+
+RUN wget -q https://raw.githubusercontent.com/StaPH-B/docker-builds/master/tests/SARS-CoV-2/SRR13957123_1.fastq.gz && \
+ wget -q https://raw.githubusercontent.com/StaPH-B/docker-builds/master/tests/SARS-CoV-2/SRR13957123_2.fastq.gz && \
+ wget -q https://raw.githubusercontent.com/StaPH-B/docker-builds/master/tests/SARS-CoV-2/SRR13957123.consensus.fa && \
+ pypolca run -a SRR13957123.consensus.fa -1 SRR13957123_1.fastq.gz -2 SRR13957123_2.fastq.gz -t 2 -o test && \
+ head test/pypolca_*.log && \
+ ls test/pypolca.report test/pypolca.vcf test/pypolca_corrected.fasta
diff --git a/pypolca/0.3.1/README.md b/pypolca/0.3.1/README.md
new file mode 100644
index 000000000..c26ac2dbb
--- /dev/null
+++ b/pypolca/0.3.1/README.md
@@ -0,0 +1,27 @@
+# pypolca container
+
+Main tool: [pypolca](https://github.com/gbouras13/pypolca)
+
+Code repository:
+
+Additional tools:
+- samtools: 1.19
+- vcftools: 0.1.16
+- bwa: 0.7.17-r1188
+- freebayes: 1.3.7
+
+Basic information on how to use this tool:
+- executable: pypolca
+- help: pypolca -h
+- version: pypolca -v
+- description: Polished long-read assemblies with Illumina reads
+
+> pypolca is a Standalone Python re-implementation of the POLCA polisher from the MaSuRCA genome assembly and analysis toolkit.
+
+Full documentation: [https://github.com/rrwick/Polypolish](https://github.com/rrwick/Polypolish)
+
+## Example Usage
+
+```bash
+pypolca run -a assembly.fasta -1 R1.fastq.gz -2 R2.fastq.gz -t 4 -o output
+```
diff --git a/quast/5.2.0-slim/Dockerfile b/quast/5.2.0-slim/Dockerfile
new file mode 100644
index 000000000..6925e1826
--- /dev/null
+++ b/quast/5.2.0-slim/Dockerfile
@@ -0,0 +1,45 @@
+ARG QUAST_VER="5.2.0"
+
+FROM ubuntu:jammy as app
+
+ARG QUAST_VER
+
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="QUAST"
+LABEL software.version=${QUAST_VER}
+LABEL description="Genome assembly evaluation tool"
+LABEL website="https://github.com/ablab/quast"
+LABEL license="https://github.com/ablab/quast/blob/master/LICENSE.txt"
+LABEL maintainer="Kutluhan Incekara"
+LABEL maintainer.email="kutluhan.incekara@ct.gov"
+
+RUN apt-get update && apt-get install --no-install-recommends -y \
+ python3-pip \
+ minimap2 \
+ locales &&\
+ locale-gen en_US.UTF-8 &&\
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+RUN pip install --no-cache quast==${QUAST_VER}
+
+ENV LC_ALL=C
+
+CMD quast.py --help && quast-lg.py --help && metaquast.py --help
+
+WORKDIR /data
+
+## Test ##
+FROM app as test
+
+ARG QUAST_VER
+
+RUN apt-get update && apt-get install -y wget
+# download test data
+RUN wget https://github.com/ablab/quast/releases/download/quast_${QUAST_VER}/quast-${QUAST_VER}.tar.gz &&\
+ tar --strip-components=1 -xvf quast-${QUAST_VER}.tar.gz quast-${QUAST_VER}/test_data
+
+# test quast
+RUN quast.py test_data/contigs_1.fasta test_data/contigs_2.fasta -r test_data/reference.fasta.gz -o quast_out
+# test metaquast
+RUN metaquast.py test_data/meta_contigs_1.fasta test_data/meta_contigs_2.fasta -r test_data/meta_ref_1.fasta,test_data/meta_ref_2.fasta,test_data/meta_ref_3.fasta -o metaquast_out
diff --git a/quast/5.2.0-slim/README.md b/quast/5.2.0-slim/README.md
new file mode 100644
index 000000000..8c718b23b
--- /dev/null
+++ b/quast/5.2.0-slim/README.md
@@ -0,0 +1,31 @@
+# QUAST slim container
+
+Main tool: [QUAST](https://github.com/ablab/quast)
+
+Code repository: https://github.com/ablab/quast
+
+Additional tools:
+- minimap2 2.24-r1122
+
+Basic information on how to use this tool:
+- executable: quast.py
+- help: --help
+- version: --version
+- description: Genome assembly evaluation tool
+
+Additional information:
+
+This image provides minimal requirements of QUAST. Some of the functions may not work. Please use **staphb/quast:5.2.0** for the full functionality of the program.
+
+Full documentation: https://quast.sourceforge.net/docs/manual.html
+
+## Example Usage
+
+```bash
+# basic statistics without reference
+quast.py contigs.fasta
+# genome evaluation with reference
+quast.py contigs.fasta -r reference.fasta.gz
+# metagenomic assemblies
+metaquast.py contigs_1 contigs_2 ... -r reference_1,reference_2,reference_3,...
+```
\ No newline at end of file
diff --git a/racon/1.5.0/Dockerfile b/racon/1.5.0/Dockerfile
new file mode 100644
index 000000000..c3b62c936
--- /dev/null
+++ b/racon/1.5.0/Dockerfile
@@ -0,0 +1,81 @@
+ARG RACON_VER="1.5.0"
+
+# Use ubuntu as base image
+FROM ubuntu:jammy as builder
+
+ARG RACON_VER
+
+RUN apt-get update && apt-get install --no-install-recommends -y \
+ perl \
+ default-jre \
+ gnuplot \
+ libgomp1 \
+ maven \
+ git \
+ wget \
+ python3 \
+ build-essential \
+ cmake \
+ zlib1g-dev && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+# install racon
+RUN wget https://github.com/lbcb-sci/racon/archive/refs/tags/${RACON_VER}.tar.gz && \
+ tar -xvf ${RACON_VER}.tar.gz && \
+ cd racon-${RACON_VER} && \
+ mkdir build && \
+ cd build && \
+ cmake -DCMAKE_BUILD_TYPE=Release .. && \
+ make
+
+ENV PATH="/racon-${RACON_VER}/build/bin:${PATH}"
+
+RUN racon_test
+
+FROM ubuntu:jammy as app
+
+ARG RACON_VER
+
+# metadata
+LABEL base.image="ubuntu:jammy"
+LABEL version="1"
+LABEL dockerfile.version="1"
+LABEL software="Racon"
+LABEL software.version="${RACON_VER}"
+LABEL description="Long read assembly and polishing tools"
+LABEL website="https://github.com/lbcb-sci/racon"
+LABEL license="https://github.com/lbcb-sci/racon/blob/master/LICENSE"
+LABEL maintainer="Erin Young"
+LABEL maintainer.email="eriny@utah.gov"
+
+# install python
+RUN apt-get update && apt-get install -y \
+ procps \
+ wget \
+ python3 && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+COPY --from=builder /racon-${RACON_VER}/build/bin/* /usr/local/bin/
+
+RUN mkdir /data
+
+WORKDIR /data
+
+# set perl locale settings
+ENV PATH=${PATH} LC_ALL=C
+
+CMD racon --help
+
+FROM app as test
+
+RUN racon --help && racon --version
+
+COPY --from=builder /racon-${RACON_VER}/test/data/* /test/
+
+WORKDIR /test
+
+RUN wget -q https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/genomics/prokaryotes/bacteroides_fragilis/genome/genome.paf && \
+ wget -q https://github.com/nf-core/test-datasets/raw/modules/data/genomics/prokaryotes/bacteroides_fragilis/genome/genome.fna.gz && \
+ wget -q https://github.com/nf-core/test-datasets/raw/modules/data/genomics/prokaryotes/bacteroides_fragilis/nanopore/fastq/test.fastq.gz && \
+ racon -t 2 test.fastq.gz genome.paf genome.fna.gz > test_polished.fasta && \
+ head test_polished.fasta
diff --git a/racon/1.5.0/README.md b/racon/1.5.0/README.md
new file mode 100644
index 000000000..d6b112207
--- /dev/null
+++ b/racon/1.5.0/README.md
@@ -0,0 +1,23 @@
+# racon container
+
+Main tool : [racon](https://github.com/lbcb-sci/racon)
+
+Code repository: https://github.com/lbcb-sci/racon
+
+Basic information on how to use this tool:
+- executable: racon
+- help: -h
+- version: -v
+- description: Polishes long read assemblies
+
+> Racon is intended as a standalone consensus module to correct raw contigs generated by rapid assembly methods which do not include a consensus step.
+
+# Example Usage
+
+```bash
+# general
+racon
+
+# more specific
+racon --match 8 --mismatch -6 --gap -8 --window-length 500 --threads {threads} {input.reads} {input.alignment} {input.assembly}
+```
diff --git a/rasusa/0.8.0/Dockerfile b/rasusa/0.8.0/Dockerfile
new file mode 100644
index 000000000..cd27529ee
--- /dev/null
+++ b/rasusa/0.8.0/Dockerfile
@@ -0,0 +1,54 @@
+FROM ubuntu:jammy as app
+
+ARG RASUSA_VER="0.8.0"
+
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="rasusa"
+LABEL software.version="${RASUSA_VER}"
+LABEL description="Randomly subsample sequencing reads to a specified coverage."
+LABEL website="https://github.com/mbhall88/rasusa"
+LABEL license="https://github.com/mbhall88/rasusa/blob/master/LICENSE"
+LABEL maintainer="Jake Garfin"
+LABEL maintainer.email="jake.garfin@state.mn.us"
+LABEL maintainer2="Curtis Kapsak"
+LABEL maintainer2.email="kapsakcj@gmail.com"
+LABEL maintainer3="Erin Young"
+LABEL maintainer3.email="eriny@utah.gov"
+
+# install wget and cleanup apt garbage
+RUN apt-get update && apt-get -y install --no-install-recommends \
+ wget \
+ ca-certificates \
+ procps && \
+ apt-get autoclean && \
+ rm -rf /var/lib/apt/lists/*
+
+# install rasusa
+RUN wget -q https://github.com/mbhall88/rasusa/releases/download/${RASUSA_VER}/rasusa-${RASUSA_VER}-x86_64-unknown-linux-musl.tar.gz && \
+ tar -xvf rasusa-${RASUSA_VER}-x86_64-unknown-linux-musl.tar.gz && \
+ rm -rf rasusa-${RASUSA_VER}-x86_64-unknown-linux-musl.tar.gz && \
+ mkdir /data
+
+# set PATH and perl locale settings
+ENV PATH="${PATH}:/rasusa-${RASUSA_VER}-x86_64-unknown-linux-musl/" \
+ LC_ALL=C
+
+WORKDIR /data
+
+CMD rasusa --help
+
+FROM app as test
+
+# print version and help options
+RUN rasusa --version && rasusa --help
+
+# cannot run rust-based test, since rust isn't installed, but just testing basic command on SC2 reads in our repo
+# inputs FASTQs each have 80867 reads
+# output FASTQs should have 40434 reads in each (about 1/2 of input)
+# -s 1 is for setting a specific seed
+# -O is for gzip compression on output FASTQs
+RUN wget -q https://github.com/StaPH-B/docker-builds/raw/master/tests/SARS-CoV-2/SRR13957123_1.fastq.gz && \
+ wget -q https://github.com/StaPH-B/docker-builds/raw/master/tests/SARS-CoV-2/SRR13957123_2.fastq.gz && \
+ rasusa -i SRR13957123_1.fastq.gz SRR13957123_2.fastq.gz -n 40434 -s 1 -O g -o SRR13957123_downsampled_1.fastq.gz SRR13957123_downsampled_2.fastq.gz && \
+ ls -lh
diff --git a/rasusa/0.8.0/README.md b/rasusa/0.8.0/README.md
new file mode 100644
index 000000000..ad6a9df20
--- /dev/null
+++ b/rasusa/0.8.0/README.md
@@ -0,0 +1,30 @@
+# Rasusa container
+
+Main tool : [Rasusa](https://github.com/mbhall88/rasusa)
+
+Additional tools:
+
+- none
+
+Full documentation: https://github.com/mbhall88/rasusa
+
+Randomly subsample sequencing reads to a specified coverage
+
+## Example Usage
+
+```bash
+# sars-cov-2 example, paired-end illumina
+rasusa -i SRR13957123_1.fastq.gz SRR13957123_2.fastq.gz \
+ -n 40434 \ # downsample to specific number of reads per FASTQ file
+ -s 1 \ # set seed
+ -O g \ # set output file compression format as gzip
+ -o SRR13957123_downsampled_1.fastq.gz SRR13957123_downsampled_2.fastq.gz
+
+# Salmonella enterica example, paired-end illumina
+rasusa -i SRR10992628_1.fastq.gz SRR10992628_2.fastq.gz \
+ --coverage 100 \ # use 100X coverage for downsampling
+ --genome-size 5M \ # downsample to specific coverage based on genome size (5 million bases)
+ -s 1 \ # set seed
+ -O g \ # set output file compression format as gzip
+ -o SRR10992628_downsampled_1.fastq.gz SRR10992628_downsampled_2.fastq.gz
+```
diff --git a/rasusa/2.0.0/Dockerfile b/rasusa/2.0.0/Dockerfile
new file mode 100644
index 000000000..e9f746347
--- /dev/null
+++ b/rasusa/2.0.0/Dockerfile
@@ -0,0 +1,54 @@
+FROM ubuntu:jammy as app
+
+ARG RASUSA_VER="2.0.0"
+
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="rasusa"
+LABEL software.version="${RASUSA_VER}"
+LABEL description="Randomly subsample sequencing reads to a specified coverage."
+LABEL website="https://github.com/mbhall88/rasusa"
+LABEL license="https://github.com/mbhall88/rasusa/blob/master/LICENSE"
+LABEL maintainer="Jake Garfin"
+LABEL maintainer.email="jake.garfin@state.mn.us"
+LABEL maintainer2="Curtis Kapsak"
+LABEL maintainer2.email="kapsakcj@gmail.com"
+LABEL maintainer3="Erin Young"
+LABEL maintainer3.email="eriny@utah.gov"
+
+# install wget and cleanup apt garbage
+RUN apt-get update && apt-get -y install --no-install-recommends \
+ wget \
+ ca-certificates \
+ procps && \
+ apt-get autoclean && \
+ rm -rf /var/lib/apt/lists/*
+
+# install rasusa
+RUN wget -q https://github.com/mbhall88/rasusa/releases/download/${RASUSA_VER}/rasusa-${RASUSA_VER}-x86_64-unknown-linux-musl.tar.gz && \
+ tar -xvf rasusa-${RASUSA_VER}-x86_64-unknown-linux-musl.tar.gz && \
+ rm -rf rasusa-${RASUSA_VER}-x86_64-unknown-linux-musl.tar.gz && \
+ mkdir /data
+
+# set PATH and perl locale settings
+ENV PATH="${PATH}:/rasusa-${RASUSA_VER}-x86_64-unknown-linux-musl/" \
+ LC_ALL=C
+
+WORKDIR /data
+
+CMD rasusa --help
+
+FROM app as test
+
+# print version and help options
+RUN rasusa --version && rasusa --help
+
+# cannot run rust-based test, since rust isn't installed, but just testing basic command on SC2 reads in our repo
+# inputs FASTQs each have 80867 reads
+# output FASTQs should have 40434 reads in each (about 1/2 of input)
+# -s 1 is for setting a specific seed
+# -O is for gzip compression on output FASTQs
+RUN wget -q https://github.com/StaPH-B/docker-builds/raw/master/tests/SARS-CoV-2/SRR13957123_1.fastq.gz && \
+ wget -q https://github.com/StaPH-B/docker-builds/raw/master/tests/SARS-CoV-2/SRR13957123_2.fastq.gz && \
+ rasusa reads --num 40434 -s 1 -O g -o SRR13957123_downsampled_1.fastq.gz -o SRR13957123_downsampled_2.fastq.gz SRR13957123_1.fastq.gz SRR13957123_2.fastq.gz && \
+ ls -lh
diff --git a/rasusa/2.0.0/README.md b/rasusa/2.0.0/README.md
new file mode 100644
index 000000000..ffa71ab15
--- /dev/null
+++ b/rasusa/2.0.0/README.md
@@ -0,0 +1,32 @@
+# Rasusa container
+
+Main tool : [Rasusa](https://github.com/mbhall88/rasusa)
+
+Additional tools:
+
+- none
+
+Full documentation: https://github.com/mbhall88/rasusa
+
+Randomly subsample sequencing reads to a specified coverage
+
+## Example Usage
+
+```bash
+# sars-cov-2 example, paired-end illumina
+rasusa reads \
+ -n 40434 \ # downsample to specific number of reads per FASTQ file
+ -s 1 \ # set seed
+ -O g \ # set output file compression format as gzip
+ -o SRR13957123_downsampled_1.fastq.gz -o SRR13957123_downsampled_2.fastq.gz \
+ SRR13957123_1.fastq.gz SRR13957123_2.fastq.gz
+
+# Salmonella enterica example, paired-end illumina
+rasusa reads \
+ --coverage 100 \ # use 100X coverage for downsampling
+ --genome-size 5M \ # downsample to specific coverage based on genome size (5 million bases)
+ -s 1 \ # set seed
+ -O g \ # set output file compression format as gzip
+ -o SRR10992628_downsampled_1.fastq.gz -o SRR10992628_downsampled_2.fastq.gz \
+ SRR10992628_1.fastq.gz SRR10992628_2.fastq.gz
+```
diff --git a/raxml-ng/1.2.2/Dockerfile b/raxml-ng/1.2.2/Dockerfile
new file mode 100644
index 000000000..19d97cf3c
--- /dev/null
+++ b/raxml-ng/1.2.2/Dockerfile
@@ -0,0 +1,39 @@
+FROM ubuntu:jammy as app
+
+ARG RAXMLNG_VER="1.2.2"
+
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="RAxML Next Generation"
+LABEL software.version="${RAXMLNG_VER}"
+LABEL description="RAxML-NG is a phylogenetic tree inference tool which uses maximum-likelihood (ML) optimality criterion"
+LABEL website="https://github.com/amkozlov/raxml-ng"
+LABEL license="https://github.com/amkozlov/raxml-ng/blob/master/LICENSE.txt"
+LABEL maintainer="Kutluhan Incekara"
+LABEL maintainer.email="kutluhan.incekara@ct.com"
+
+RUN apt-get update && apt-get install --no-install-recommends -y \
+ wget \
+ unzip &&\
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+RUN wget --no-check-certificate https://github.com/amkozlov/raxml-ng/releases/download/${RAXMLNG_VER}/raxml-ng_v${RAXMLNG_VER}_linux_x86_64.zip &&\
+ unzip raxml-ng_v${RAXMLNG_VER}_linux_x86_64.zip raxml-ng -d /usr/local/bin/ &&\
+ rm raxml-ng_v${RAXMLNG_VER}_linux_x86_64.zip
+
+ENV LC_ALL=C
+
+CMD [ "raxml-ng", "--help" ]
+
+WORKDIR /data
+
+## Test ##
+FROM app as test
+
+ARG RAXMLNG_VER="1.2.2"
+
+RUN wget --no-check-certificate https://github.com/amkozlov/raxml-ng/releases/download/${RAXMLNG_VER}/raxml-ng_v${RAXMLNG_VER}_linux_x86_64.zip &&\
+ unzip -j raxml-ng_v${RAXMLNG_VER}_linux_x86_64.zip data/test.fa &&\
+ raxml-ng --msa test.fa --model GTR+G &&\
+ cat test.fa.raxml.bestTree
+
diff --git a/raxml-ng/1.2.2/README.md b/raxml-ng/1.2.2/README.md
new file mode 100644
index 000000000..983a7f678
--- /dev/null
+++ b/raxml-ng/1.2.2/README.md
@@ -0,0 +1,28 @@
+# RAxML-NG container
+
+Main tool: [raxml-ng](https://github.com/amkozlov/raxml-ng)
+
+Code repository: https://github.com/amkozlov/raxml-ng
+
+Basic information on how to use this tool:
+- executable: raxml-ng
+- help: --help
+- version: --version
+- description: RAxML-NG is a phylogenetic tree inference tool which uses maximum-likelihood (ML) optimality criterion.
+
+Full documentation: https://github.com/amkozlov/raxml-ng/wiki
+
+## Example Usage
+
+```bash
+# Perform tree inference on DNA alignment
+raxml-ng --msa testDNA.fa --model GTR+G
+
+# Perform an all-in-one analysis
+raxml-ng --all --msa testAA.fa --model LG+G8+F --tree pars{10} --bs-trees 200
+
+# Optimize branch lengths and free model parameters on a fixed topology
+raxml-ng --evaluate --msa testAA.fa --model partitions.txt --tree test.tree --brlen scaled
+```
+
+
diff --git a/raxml/8.2.13/Dockerfile b/raxml/8.2.13/Dockerfile
new file mode 100644
index 000000000..d5299e6e4
--- /dev/null
+++ b/raxml/8.2.13/Dockerfile
@@ -0,0 +1,67 @@
+ARG RAXML_VER="8.2.13"
+
+## Builder ##
+FROM ubuntu:jammy as builder
+
+ARG RAXML_VER
+
+RUN apt-get update && apt-get install -y \
+ build-essential\
+ libopenmpi-dev \
+ wget &&\
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+# compile all versions
+RUN wget https://github.com/stamatak/standard-RAxML/archive/refs/tags/v${RAXML_VER}.tar.gz &&\
+ tar -xvf v${RAXML_VER}.tar.gz &&\
+ cd standard-RAxML-${RAXML_VER} &&\
+ make -f Makefile.gcc && rm *.o &&\
+ make -f Makefile.SSE3.gcc && rm *.o &&\
+ make -f Makefile.AVX.gcc && rm *.o &&\
+ make -f Makefile.PTHREADS.gcc && rm *.o &&\
+ make -f Makefile.SSE3.PTHREADS.gcc && rm *.o &&\
+ make -f Makefile.AVX.PTHREADS.gcc && rm *.o &&\
+ make -f Makefile.MPI.gcc && rm *.o &&\
+ make -f Makefile.SSE3.MPI.gcc && rm *.o &&\
+ make -f Makefile.AVX.MPI.gcc && rm *.o &&\
+ make -f Makefile.HYBRID.gcc && rm *.o &&\
+ make -f Makefile.SSE3.HYBRID.gcc && rm *.o &&\
+ make -f Makefile.AVX.HYBRID.gcc && rm *.o
+
+## App ##
+FROM ubuntu:jammy as app
+
+ARG RAXML_VER
+
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="RAxML"
+LABEL software.version="${RAXML_VER}"
+LABEL description="A tool for Phylogenetic Analysis and Post-Analysis of Large Phylogenies"
+LABEL website="https://github.com/stamatak/standard-RAxML"
+LABEL license="https://github.com/stamatak/standard-RAxML/blob/v8.2.13/gpl-3.0.txt"
+LABEL maintainer="Kutluhan Incekara"
+LABEL maintainer.email="kutluhan.incekara@ct.gov"
+
+RUN apt-get update && apt-get install --no-install-recommends -y\
+ openmpi-bin &&\
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+COPY --from=builder standard-RAxML-${RAXML_VER}/raxmlHPC* /usr/local/bin/
+
+ENV LC_ALL=C
+
+CMD [ "raxmlHPC", "-h" ]
+
+WORKDIR /data
+
+## Test ##
+FROM app as test
+
+RUN apt-get update && apt-get install -y wget
+
+# steal raxml-ng test data and run with raxml
+RUN wget https://github.com/amkozlov/ng-tutorial/raw/master/prim.phy &&\
+ raxmlHPC -s prim.phy -n test -m GTRGAMMA -p 2 &&\
+ cat RAxML_result.test
+
\ No newline at end of file
diff --git a/raxml/8.2.13/README.md b/raxml/8.2.13/README.md
new file mode 100644
index 000000000..ff1463b25
--- /dev/null
+++ b/raxml/8.2.13/README.md
@@ -0,0 +1,33 @@
+# RAxML container
+
+Main tool: [raxmlHPC](https://github.com/stamatak/standard-RAxML)
+
+Code repository: https://github.com/stamatak/standard-RAxML
+
+Additional tools:
+
+- raxmlHPC-AVX
+- raxmlHPC-HYBRID
+- raxmlHPC-HYBRID-AVX
+- raxmlHPC-HYBRID-SSE3
+- raxmlHPC-MPI
+- raxmlHPC-MPI-AVX
+- raxmlHPC-MPI-SSE3
+- raxmlHPC-PTHREADS
+- raxmlHPC-PTHREADS-AVX
+- raxmlHPC-PTHREADS-SSE3
+- raxmlHPC-SSE3
+
+Basic information on how to use this tool:
+- executable: raxmlHPC
+- help: -h
+- version: -v
+- description: A tool for Phylogenetic Analysis and Post-Analysis of Large Phylogenies
+
+Full documentation: https://github.com/stamatak/standard-RAxML/blob/master/manual/NewManual.pdf
+
+## Example Usage
+
+```bash
+raxmlHPC -s sequenceFileName -n outputFileName -m substitutionModel
+```
diff --git a/resfinder/4.5.0/Dockerfile b/resfinder/4.5.0/Dockerfile
new file mode 100644
index 000000000..ed65fd736
--- /dev/null
+++ b/resfinder/4.5.0/Dockerfile
@@ -0,0 +1,164 @@
+ARG RESFINDER_VER="4.5.0"
+
+FROM ubuntu:jammy as app
+
+# ARG sets environment variables during the build stage
+ARG RESFINDER_VER
+ARG KMA_VER="1.4.14"
+
+# Database may not be properly versioned, but using a version tag here (2024-03-08)
+# see here: https://bitbucket.org/genomicepidemiology/resfinder_db/downloads/?tab=tags
+ARG RESFINDER_DB_COMMIT_HASH="2.3.1"
+
+# Database may not be properly versioned, but using a version tag here (2024-03-08)
+# see here: https://bitbucket.org/genomicepidemiology/pointfinder_db/downloads/?tab=tags
+ARG POINTFINDER_DB_COMMIT_HASH="4.1.0"
+
+# Database may not be properly versioned, but using a version tag here (2023-05-31)
+# see here: https://bitbucket.org/genomicepidemiology/disinfinder_db/downloads/?tab=tags
+ARG DISINFINDER_DB_COMMIT_HASH="2.0.1"
+
+# LABEL instructions tag the image with metadata that might be important to the user
+# Optional, but highly recommended
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="resfinder"
+LABEL software.version=${RESFINDER_VER}
+LABEL description="Identifies acquired resistance genes and point mutations in total or partial sequenced isolates of bacteria."
+LABEL website="https://bitbucket.org/genomicepidemiology/resfinder/src/master/"
+LABEL license="https://bitbucket.org/genomicepidemiology/resfinder/src/master/README.md"
+LABEL maintainer="Curtis Kapsak"
+LABEL maintainer.email="kapsakcj@gmail.com"
+
+# so that apt doesn't ask for a region during apt install step
+ARG DEBIAN_FRONTEND noninteractive
+
+# install dependencies; cleanup apt garbage
+# ncbi-blast+ 2.12.0+ds-3build1 (ubuntu:jammy)
+# python3 v3.10
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ wget \
+ ca-certificates \
+ procps \
+ git \
+ ncbi-blast+ \
+ python3 \
+ python3-pip \
+ python3-setuptools \
+ python3-dev \
+ gcc \
+ make \
+ libz-dev \
+ unzip && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+# Install resfinder ()
+# It is no longer recommended to clone the ResFinder bitbucket repository unless you plan to do development work on ResFinder.
+# Instead we recommend installing ResFinder using pip...
+# https://bitbucket.org/genomicepidemiology/resfinder/src/master/ 2024-03-21
+RUN pip3 install resfinder==${RESFINDER_VER} && \
+ mkdir /data
+
+# Install kma
+RUN git clone --branch ${KMA_VER} --depth 1 https://bitbucket.org/genomicepidemiology/kma.git && \
+ cd kma && \
+ make && \
+ mv -v kma* /usr/local/bin/
+
+# pointfinder database install
+RUN mkdir /pointfinder_db && \
+ git clone --branch ${POINTFINDER_DB_COMMIT_HASH} --depth 1 https://git@bitbucket.org/genomicepidemiology/pointfinder_db.git /pointfinder_db && \
+ cd /pointfinder_db && \
+ python3 INSTALL.py /usr/local/bin/kma_index non_interactive
+
+# resfinder database install
+RUN mkdir /resfinder_db && \
+ git clone --branch ${RESFINDER_DB_COMMIT_HASH} --depth 1 https://git@bitbucket.org/genomicepidemiology/resfinder_db.git /resfinder_db && \
+ cd /resfinder_db && \
+ python3 INSTALL.py /usr/local/bin/kma_index non_interactive
+
+# disinfinder database install
+RUN mkdir /disinfinder_db && \
+ git clone --branch ${DISINFINDER_DB_COMMIT_HASH} --depth 1 https://git@bitbucket.org/genomicepidemiology/disinfinder_db.git /disinfinder_db && \
+ cd /disinfinder_db && \
+ python3 INSTALL.py /usr/local/bin/kma_index non_interactive
+
+# so that run_resfinder.py is in the PATH
+ENV PATH="${PATH}" \
+ # specifying database locations
+ CGE_RESFINDER_RESGENE_DB="/resfinder_db" \
+ CGE_RESFINDER_RESPOINT_DB="/pointfinder_db" \
+ CGE_DISINFINDER_DB="/disinfinder_db"
+
+# setting a janky alias for everyone that uses the "latest" tag
+RUN echo -e '#!/bin/bash\npython3 -m resfinder "$@"' > /usr/bin/run_resfinder.py && \
+ chmod +x /usr/bin/run_resfinder.py
+
+CMD python3 -m resfinder -h
+
+WORKDIR /data
+
+FROM app as test
+
+ARG RESFINDER_VER
+
+# checking suggested usage and alias
+RUN python3 -m resfinder -h && run_resfinder.py --help
+
+WORKDIR /test
+
+# getting test files
+RUN git clone --branch ${RESFINDER_VER} --depth 1 https://git@bitbucket.org/genomicepidemiology/resfinder.git
+
+##### short description of included test files #####
+### test files for typical gene detection (or lack thereof)
+# test_isolate_01.fa fasta header ">test_isolate_01 blaB-2_1_AF189300"
+# test_isolate_02.fa fasta header ">test_isolate_02 blaCTX-M-33_1_AY238472"
+# test_isolate_03.fa fasta header ">test_isolate_03 no_res"
+
+### test FASTA files for point mutation detection
+# test_isolate_05.fa fasta header ">test_isolate_05 gyrA_mut
+# test_isolate_09a.fa fasta header ">gyrA_G81D_GGT241GAT"
+# test_isolate_09b.fa fasta header ">gyrA_G81D_GAT_D82G_GGC"
+
+# test fastq files are also available for isolates 01, 05, 09a, and 09b. They are used to test KMA's functionality
+
+# run resfinder on supplied fasta files for gene detection (-acq for acquired genes, NOT point mutations)
+RUN echo "TESTING RESFINDER ON SUPPLIED FASTA FILES FOR ACQUIRED GENES" && \
+ for ISOLATE in 01 02 03; do \
+ python3 -m resfinder -ifa /test/resfinder/tests/data/test_isolate_${ISOLATE}.fa -o test_resfinder_fastaInput_isolate_${ISOLATE} -acq -l 0.9 -t 0.9; \
+ done && \
+ ls test_resfinder_fastaInput_*
+
+# run resfinder on supplied fastq files for gene detection (-acq for acquired genes, and -c -s "Escherichia coli" for point mutations)
+RUN echo "TESTING RESFINDER ON SUPPLIED FASTQ FILES FOR ACQUIRED GENES AND POINT MUTATIONS" && \
+ for ISOLATE in 01 05 09a 09b ; do \
+ python3 -m resfinder -ifq /test/resfinder/tests/data/test_isolate_${ISOLATE}_1.fq /test/resfinder/tests/data/test_isolate_${ISOLATE}_2.fq \
+ -o test_resfinder_fastqInput_isolate_${ISOLATE} \
+ -acq -l 0.9 -t 0.9\
+ -c -s "Escherichia coli"; \
+ done && \
+ ls test_resfinder_fastqInput_*
+
+# run resfinder on supplied fasta files for point mutation detection (-c and --species for point mutations, NOT acquired resistance genes)
+RUN echo "TESTING RESFINDER ON SUPPLIED FASTA FILES FOR POINT MUTAITON DETECTION" && \
+ for ISOLATE in 05 09a 09b ; do \
+ python3 -m resfinder -ifa /test/resfinder/tests/data/test_isolate_${ISOLATE}.fa -o test_pointfinder_fastaInput_isolate_${ISOLATE} -c --species "Escherichia coli"; \
+ done && \
+ ls test_pointfinder*
+
+# look for expected outputs in resulting files; grep exits 1 if term is not found, meaning test layer will not build properly
+RUN echo "FASTA INPUTS, SEARCHING FOR EXPECTED (RESFINDER) OUTPUTS:" && \
+ grep 'blaB-2' test_resfinder_fastaInput_isolate_01/ResFinder_results_tab.txt && \
+ grep 'blaCTX' test_resfinder_fastaInput_isolate_02/ResFinder_results_tab.txt && \
+ grep -B 1 'No hit found' test_resfinder_fastaInput_isolate_03/ResFinder_results_table.txt && \
+ echo "FASTQ INPUT TESTS, SEARCHING FOR EXPECTED (POINTFINDER AND RESFINDER) OUTPUTS:" && \
+ grep "blaB-2" test_resfinder_fastqInput_isolate_01/ResFinder_results_tab.txt && \
+ grep "gyrA p.S83A" test_resfinder_fastqInput_isolate_05/PointFinder_table.txt && \
+ grep "gyrA p.G81D" test_resfinder_fastqInput_isolate_09a/PointFinder_table.txt && \
+ grep "gyrA p.G81D" test_resfinder_fastqInput_isolate_09b/PointFinder_table.txt && \
+ echo "FASTA INPUTS, SEARCHING FOR EXPECTED (POINTFINDER) OUTPUTS:" && \
+ grep "gyrA p.S83A" test_pointfinder_fastaInput_isolate_05/PointFinder_table.txt && \
+ grep "gyrA p.G81D" test_pointfinder_fastaInput_isolate_09a/PointFinder_table.txt && \
+ grep "gyrA p.G81D" test_pointfinder_fastaInput_isolate_09b/PointFinder_table.txt && \
+ grep "gyrA p.D82G" test_pointfinder_fastaInput_isolate_09b/PointFinder_table.txt
diff --git a/resfinder/4.5.0/README.md b/resfinder/4.5.0/README.md
new file mode 100644
index 000000000..7b8fa7fc6
--- /dev/null
+++ b/resfinder/4.5.0/README.md
@@ -0,0 +1,35 @@
+# ResFinder container
+
+Main tool : [ResFinder](https://bitbucket.org/genomicepidemiology/resfinder/src/master/)
+
+Additional tools:
+
+- kma 1.4.14
+- ResFinder database 2.3.1
+- PointFinder database 4.1.0
+- disinfinder database 2.0.1
+
+Alternatively available as a webtool here: https://cge.cbs.dtu.dk/services/ResFinder/
+
+Full documentation: https://bitbucket.org/genomicepidemiology/resfinder/src/master/
+
+ResFinder identifies acquired genes and/or finds chromosomal mutations mediating antimicrobial resistance in total or partial DNA sequence of bacteria.
+
+WARNING : The executable has changed!
+
+## Example Usage
+
+```bash
+# run ResFinder on raw reads (FASTQs)
+python3 -m resfinder -ifq /data/sample_1.fastq /data/sample_2.fastq \
+ -o /data/resfinder-results-fastq-input \
+ -acq -l 0.9 -t 0.9 \
+ -c -s "Escherichia coli"
+
+# run ResFinder on assembly FASTA
+python3 -m resfinder -ifa /data/sample.fasta \
+ -o /data/resfinder-results-fasta-input \
+ -c \
+ -acq -l 0.9 -t 0.9 \
+ --species "Escherichia coli" \
+```
diff --git a/samclip/0.4.0/Dockerfile b/samclip/0.4.0/Dockerfile
new file mode 100644
index 000000000..dd1fe7bb3
--- /dev/null
+++ b/samclip/0.4.0/Dockerfile
@@ -0,0 +1,50 @@
+ARG SAMCLIP_VER="0.4.0"
+
+FROM ubuntu:jammy as app
+
+ARG SAMCLIP_VER
+
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="samclip"
+LABEL software.version="${SAMCLIP_VER}"
+LABEL description="Samclip: filter SAM file for soft and hard clipped alignments"
+LABEL website="https://github.com/tseemann/samclip"
+LABEL license="https://github.com/tseemann/samclip/blob/master/LICENSE"
+LABEL maintainer="Dhatri Badri"
+LABEL maintainer.email="dhatrib@umich.edu"
+
+# install dependencies
+RUN apt-get update && \
+ apt-get install -y --no-install-recommends \
+ wget \
+ software-properties-common \
+ perl && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+# install samclip
+RUN wget https://github.com/tseemann/samclip/archive/refs/tags/v${SAMCLIP_VER}.tar.gz && \
+ tar -xvf v${SAMCLIP_VER}.tar.gz && \
+ rm v${SAMCLIP_VER}.tar.gz && \
+ chmod +x /samclip-${SAMCLIP_VER}/samclip && \
+ mkdir /data
+
+ENV PATH="${PATH}:/samclip-${SAMCLIP_VER}/" \
+ LC_ALL=C
+
+CMD [ "samclip", "--help" ]
+
+WORKDIR /data
+
+FROM app as test
+
+RUN samclip --help && \
+ samclip --version
+
+WORKDIR /test
+
+# Run test using samclip executable
+RUN wget https://raw.githubusercontent.com/tseemann/samclip/master/test.fna && \
+ wget https://raw.githubusercontent.com/tseemann/samclip/master/test.sam && \
+ wget https://raw.githubusercontent.com/tseemann/samclip/master/test.fna.fai && \
+ samclip --ref test.fna < test.sam > out.sam
diff --git a/samclip/0.4.0/README.md b/samclip/0.4.0/README.md
new file mode 100644
index 000000000..ef19ee2f7
--- /dev/null
+++ b/samclip/0.4.0/README.md
@@ -0,0 +1,22 @@
+# Samclip container
+
+Main tool: [samclip](https://github.com/tseemann/samclip)
+
+Basic information on how to use this tool:
+- executable: ./samclip
+- help: -h, --help
+- version: -V, --version
+- description: Filter SAM file for soft and hard clipped alignments
+
+## Example Usage
+
+Basic command to clip ends of reads
+```bash
+samclip --ref ref.fa < in.sam > out.sam
+```
+
+Integrate samclip with other tools like bwa and samtools
+```bash
+bwa mem ref.fa R1.fq R2.fq | samclip --ref ref.fa | samtools sort > out.bam
+```
+
diff --git a/samtools/1.19/Dockerfile b/samtools/1.19/Dockerfile
new file mode 100644
index 000000000..14b4c50a8
--- /dev/null
+++ b/samtools/1.19/Dockerfile
@@ -0,0 +1,90 @@
+ARG SAMTOOLS_VER="1.19"
+
+FROM ubuntu:jammy as builder
+
+ARG SAMTOOLS_VER
+
+# install dependencies required for compiling samtools
+RUN apt-get update && apt-get install --no-install-recommends -y \
+ libncurses5-dev \
+ libbz2-dev \
+ liblzma-dev \
+ libcurl4-gnutls-dev \
+ zlib1g-dev \
+ libssl-dev \
+ gcc \
+ wget \
+ make \
+ perl \
+ bzip2 \
+ gnuplot \
+ ca-certificates
+
+# download, compile, and install samtools
+RUN wget https://github.com/samtools/samtools/releases/download/${SAMTOOLS_VER}/samtools-${SAMTOOLS_VER}.tar.bz2 && \
+ tar -xjf samtools-${SAMTOOLS_VER}.tar.bz2 && \
+ cd samtools-${SAMTOOLS_VER} && \
+ ./configure && \
+ make && \
+ make install
+
+### start of app stage ###
+FROM ubuntu:jammy as app
+
+ARG SAMTOOLS_VER
+
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="samtools"
+LABEL software.version="${SAMTOOLS_VER}"
+LABEL description="Tools (written in C using htslib) for manipulating next-generation sequencing data"
+LABEL website="https://github.com/samtools/samtools"
+LABEL license="https://github.com/samtools/samtools/blob/develop/LICENSE"
+LABEL maintainer="Shelby Bennett"
+LABEL maintainer.email="shelby.bennett@dgs.virginia.gov"
+LABEL maintainer2="Curtis Kapsak"
+LABEL maintainer2.email="kapsakcj@gmail.com"
+LABEL maintainer3="Erin Young"
+LABEL maintainer3.email="eriny@utah.gov"
+LABEL maintainer4="Kutluhan Incekara"
+LABEL maintainer4.email="kutluhan.incekara@ct.gov"
+
+ARG DEBIAN_FRONTEND=noninteractive
+
+# install dependencies required for running samtools
+# 'gnuplot' required for plot-ampliconstats
+RUN apt-get update && apt-get install --no-install-recommends -y \
+ perl \
+ zlib1g \
+ libncurses5 \
+ bzip2 \
+ liblzma-dev \
+ libcurl4-gnutls-dev \
+ gnuplot \
+ && apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+# copy in samtools executables from builder stage
+COPY --from=builder /usr/local/bin/* /usr/local/bin/
+
+ENV LC_ALL=C
+
+# final working directory is /data
+WORKDIR /data
+
+# default command is to pull up help options
+CMD ["samtools", "--help"]
+
+### start of test stage ###
+FROM app as test
+
+# install wget for downloading test files
+RUN apt-get update && apt-get install --no-install-recommends -y wget ca-certificates
+
+RUN wget -q https://raw.githubusercontent.com/StaPH-B/docker-builds/master/tests/SARS-CoV-2/SRR13957123.consensus.fa && \
+ wget -q https://raw.githubusercontent.com/StaPH-B/docker-builds/master/tests/SARS-CoV-2/SRR13957123.primertrim.sorted.bam && \
+ wget -q https://raw.githubusercontent.com/artic-network/artic-ncov2019/master/primer_schemes/nCoV-2019/V3/nCoV-2019.primer.bed && \
+ samtools stats SRR13957123.primertrim.sorted.bam && \
+ samtools faidx SRR13957123.consensus.fa && \
+ samtools ampliconstats nCoV-2019.primer.bed SRR13957123.primertrim.sorted.bam > SRR13957123_ampliconstats.txt && \
+ plot-ampliconstats plot SRR13957123_ampliconstats.txt && \
+ ls
diff --git a/samtools/1.19/README.md b/samtools/1.19/README.md
new file mode 100644
index 000000000..9512f1bbe
--- /dev/null
+++ b/samtools/1.19/README.md
@@ -0,0 +1,20 @@
+# samtools container
+
+Main tool:
+
+* [https://www.htslib.org/](https://www.htslib.org/)
+* [GitHub](https://github.com/samtools/samtools)
+
+Additional tools:
+
+* perl 5.34.0
+
+## Example Usage
+
+```bash
+samtools ampliconclip -b bed.file input.bam
+
+samtools sort -T /tmp/aln.sorted -o aln.sorted.bam aln.bam
+```
+
+Better documentation can be found at [https://www.htslib.org/doc/samtools.html](https://www.htslib.org/doc/samtools.html)
\ No newline at end of file
diff --git a/samtools/1.20.c/Dockerfile b/samtools/1.20.c/Dockerfile
new file mode 100644
index 000000000..1bda46dfb
--- /dev/null
+++ b/samtools/1.20.c/Dockerfile
@@ -0,0 +1,100 @@
+ARG SAMTOOLS_VER="1.20"
+
+FROM ubuntu:jammy as builder
+
+ARG SAMTOOLS_VER
+
+# install dependencies required for compiling samtools
+RUN apt-get update && apt-get install --no-install-recommends -y \
+ libncurses5-dev \
+ libbz2-dev \
+ liblzma-dev \
+ libcurl4-gnutls-dev \
+ zlib1g-dev \
+ libssl-dev \
+ libdeflate-dev \
+ gcc \
+ wget \
+ make \
+ perl \
+ bzip2 \
+ gnuplot \
+ ca-certificates
+
+# download, compile, and install samtools
+RUN wget -q https://github.com/samtools/samtools/releases/download/${SAMTOOLS_VER}/samtools-${SAMTOOLS_VER}.tar.bz2 && \
+ tar -xjf samtools-${SAMTOOLS_VER}.tar.bz2 && \
+ cd samtools-${SAMTOOLS_VER} && \
+ ./configure && \
+ make && \
+ make install && \
+ make test
+
+### start of app stage ###
+FROM ubuntu:jammy as app
+
+ARG SAMTOOLS_VER
+
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="samtools"
+LABEL software.version="${SAMTOOLS_VER}"
+LABEL description="Tools (written in C using htslib) for manipulating next-generation sequencing data"
+LABEL website="https://github.com/samtools/samtools"
+LABEL license="https://github.com/samtools/samtools/blob/develop/LICENSE"
+LABEL maintainer="Shelby Bennett"
+LABEL maintainer.email="shelby.bennett@dgs.virginia.gov"
+LABEL maintainer2="Curtis Kapsak"
+LABEL maintainer2.email="kapsakcj@gmail.com"
+LABEL maintainer3="Erin Young"
+LABEL maintainer3.email="eriny@utah.gov"
+LABEL maintainer4="Kutluhan Incekara"
+LABEL maintainer4.email="kutluhan.incekara@ct.gov"
+
+ARG DEBIAN_FRONTEND=noninteractive
+
+# install dependencies required for running samtools
+# 'gnuplot' required for plot-ampliconstats
+RUN apt-get update && apt-get install --no-install-recommends -y \
+ perl \
+ zlib1g \
+ libncurses5 \
+ bzip2 \
+ liblzma5 \
+ libcurl3-gnutls \
+ libdeflate0 \
+ gnuplot \
+ && apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+# copy in samtools executables from builder stage
+COPY --from=builder /usr/local/bin/* /usr/local/bin/
+
+ENV LC_ALL=C
+
+# final working directory is /data
+WORKDIR /data
+
+# default command is to pull up help options
+CMD ["samtools", "--help"]
+
+### start of test stage ###
+FROM app as test
+
+ARG SAMTOOLS_VER
+
+# check PATH
+RUN samtools --help
+
+# install make and wget for downloading test files
+RUN apt-get update && apt-get install --no-install-recommends -y wget ca-certificates
+
+WORKDIR /test
+
+RUN wget -q https://raw.githubusercontent.com/StaPH-B/docker-builds/master/tests/SARS-CoV-2/SRR13957123.consensus.fa && \
+ wget -q https://raw.githubusercontent.com/StaPH-B/docker-builds/master/tests/SARS-CoV-2/SRR13957123.primertrim.sorted.bam && \
+ wget -q https://raw.githubusercontent.com/artic-network/artic-ncov2019/master/primer_schemes/nCoV-2019/V3/nCoV-2019.primer.bed && \
+ samtools stats SRR13957123.primertrim.sorted.bam && \
+ samtools faidx SRR13957123.consensus.fa && \
+ samtools ampliconstats nCoV-2019.primer.bed SRR13957123.primertrim.sorted.bam > SRR13957123_ampliconstats.txt && \
+ plot-ampliconstats plot SRR13957123_ampliconstats.txt && \
+ ls
diff --git a/samtools/1.20.c/README.md b/samtools/1.20.c/README.md
new file mode 100644
index 000000000..1317ccb5d
--- /dev/null
+++ b/samtools/1.20.c/README.md
@@ -0,0 +1,30 @@
+# samtools container
+
+Main tool: [samtools](https://www.htslib.org/)
+
+Code repository: https://github.com/samtools/samtools
+
+Additional tools:
+
+* perl 5.34.0
+
+Basic information on how to use this tool:
+- executable: samtools
+- help: --help
+- version: --version
+- description: Utilities for the Sequence Alignment/Map (SAM) format
+
+Additional information:
+
+This container includes samtools v1.20 compiled with **libdeflate** for a better cloud performance.
+
+Full documentation: https://www.htslib.org/doc/samtools.html
+
+## Example Usage
+
+```bash
+samtools ampliconclip -b bed.file input.bam
+
+samtools sort -T /tmp/aln.sorted -o aln.sorted.bam aln.bam
+```
+
diff --git a/samtools/1.20/Dockerfile b/samtools/1.20/Dockerfile
new file mode 100644
index 000000000..dacc967a9
--- /dev/null
+++ b/samtools/1.20/Dockerfile
@@ -0,0 +1,98 @@
+ARG SAMTOOLS_VER="1.20"
+
+FROM ubuntu:jammy as builder
+
+ARG SAMTOOLS_VER
+
+# install dependencies required for compiling samtools
+RUN apt-get update && apt-get install --no-install-recommends -y \
+ libncurses5-dev \
+ libbz2-dev \
+ liblzma-dev \
+ libcurl4-gnutls-dev \
+ zlib1g-dev \
+ libssl-dev \
+ gcc \
+ wget \
+ make \
+ perl \
+ bzip2 \
+ gnuplot \
+ ca-certificates
+
+# download, compile, and install samtools
+RUN wget -q https://github.com/samtools/samtools/releases/download/${SAMTOOLS_VER}/samtools-${SAMTOOLS_VER}.tar.bz2 && \
+ tar -xjf samtools-${SAMTOOLS_VER}.tar.bz2 && \
+ cd samtools-${SAMTOOLS_VER} && \
+ ./configure && \
+ make && \
+ make install && \
+ make test
+
+### start of app stage ###
+FROM ubuntu:jammy as app
+
+ARG SAMTOOLS_VER
+
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="samtools"
+LABEL software.version="${SAMTOOLS_VER}"
+LABEL description="Tools (written in C using htslib) for manipulating next-generation sequencing data"
+LABEL website="https://github.com/samtools/samtools"
+LABEL license="https://github.com/samtools/samtools/blob/develop/LICENSE"
+LABEL maintainer="Shelby Bennett"
+LABEL maintainer.email="shelby.bennett@dgs.virginia.gov"
+LABEL maintainer2="Curtis Kapsak"
+LABEL maintainer2.email="kapsakcj@gmail.com"
+LABEL maintainer3="Erin Young"
+LABEL maintainer3.email="eriny@utah.gov"
+LABEL maintainer4="Kutluhan Incekara"
+LABEL maintainer4.email="kutluhan.incekara@ct.gov"
+
+ARG DEBIAN_FRONTEND=noninteractive
+
+# install dependencies required for running samtools
+# 'gnuplot' required for plot-ampliconstats
+RUN apt-get update && apt-get install --no-install-recommends -y \
+ perl \
+ zlib1g \
+ libncurses5 \
+ bzip2 \
+ liblzma-dev \
+ libcurl4-gnutls-dev \
+ gnuplot \
+ && apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+# copy in samtools executables from builder stage
+COPY --from=builder /usr/local/bin/* /usr/local/bin/
+
+ENV LC_ALL=C
+
+# final working directory is /data
+WORKDIR /data
+
+# default command is to pull up help options
+CMD ["samtools", "--help"]
+
+### start of test stage ###
+FROM app as test
+
+ARG SAMTOOLS_VER
+
+# check PATH
+RUN samtools --help
+
+# install make and wget for downloading test files
+RUN apt-get update && apt-get install --no-install-recommends -y wget ca-certificates
+
+WORKDIR /test
+
+RUN wget -q https://raw.githubusercontent.com/StaPH-B/docker-builds/master/tests/SARS-CoV-2/SRR13957123.consensus.fa && \
+ wget -q https://raw.githubusercontent.com/StaPH-B/docker-builds/master/tests/SARS-CoV-2/SRR13957123.primertrim.sorted.bam && \
+ wget -q https://raw.githubusercontent.com/artic-network/artic-ncov2019/master/primer_schemes/nCoV-2019/V3/nCoV-2019.primer.bed && \
+ samtools stats SRR13957123.primertrim.sorted.bam && \
+ samtools faidx SRR13957123.consensus.fa && \
+ samtools ampliconstats nCoV-2019.primer.bed SRR13957123.primertrim.sorted.bam > SRR13957123_ampliconstats.txt && \
+ plot-ampliconstats plot SRR13957123_ampliconstats.txt && \
+ ls
diff --git a/samtools/1.20/README.md b/samtools/1.20/README.md
new file mode 100644
index 000000000..9512f1bbe
--- /dev/null
+++ b/samtools/1.20/README.md
@@ -0,0 +1,20 @@
+# samtools container
+
+Main tool:
+
+* [https://www.htslib.org/](https://www.htslib.org/)
+* [GitHub](https://github.com/samtools/samtools)
+
+Additional tools:
+
+* perl 5.34.0
+
+## Example Usage
+
+```bash
+samtools ampliconclip -b bed.file input.bam
+
+samtools sort -T /tmp/aln.sorted -o aln.sorted.bam aln.bam
+```
+
+Better documentation can be found at [https://www.htslib.org/doc/samtools.html](https://www.htslib.org/doc/samtools.html)
\ No newline at end of file
diff --git a/seqkit/2.6.1/Dockerfile b/seqkit/2.6.1/Dockerfile
new file mode 100644
index 000000000..79ecc4006
--- /dev/null
+++ b/seqkit/2.6.1/Dockerfile
@@ -0,0 +1,55 @@
+# FROM defines the base docker image. This command has to come first in the file
+# The 'as' keyword lets you name the folowing stage. We use `app` for the production image
+FROM ubuntu:jammy as app
+
+# ARG sets environment variables during the build stage
+ARG SEQKIT_VER="2.6.1"
+
+# LABEL instructions tag the image with metadata that might be important to the user
+# Optional, but highly recommended
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="SeqKit"
+LABEL software.version=${SEQKIT_VER}
+LABEL description="SeqKit - a cross-platform and ultrafast toolkit for FASTA/Q file manipulation"
+LABEL website="https://github.com/shenwei356/seqkit"
+LABEL license="https://github.com/shenwei356/seqkit/blob/master/LICENSE"
+LABEL maintainer="Henry Kunerth"
+LABEL maintainer.email="henrykunerth@gmail.com"
+LABEL maintainer2="Erin Young"
+LABEL maintainer2.email="eriny@utah.gov"
+
+# Install dependences (update as needed)
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ wget \
+ ca-certificates \
+ procps \
+ unzip && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+# download SEQKIT and organize directories
+RUN wget -q https://github.com/shenwei356/seqkit/releases/download/v${SEQKIT_VER}/seqkit_linux_amd64.tar.gz && \
+ tar -xzf seqkit_linux_amd64.tar.gz && \
+ mv seqkit /usr/local/bin/. && \
+ rm seqkit_linux_amd64.tar.gz && \
+ mkdir /data
+
+# singularity compatibility
+ENV LC_ALL=C
+
+CMD seqkit --help
+
+# WORKDIR sets working directory
+WORKDIR /data
+
+# A second FROM insruction creates a new stage
+# We use `test` for the test image
+FROM app as test
+
+WORKDIR /test
+
+RUN seqkit --help
+
+#download test .fasta and check that SEQKIT can run to generate stats
+RUN wget -q https://raw.githubusercontent.com/StaPH-B/docker-builds/master/tests/SARS-CoV-2/SRR13957123.consensus.fa && \
+ seqkit stat *
diff --git a/seqkit/2.6.1/README.md b/seqkit/2.6.1/README.md
new file mode 100644
index 000000000..de048f057
--- /dev/null
+++ b/seqkit/2.6.1/README.md
@@ -0,0 +1,36 @@
+# SeqKit container
+
+Main tool : [SeqKit](https://github.com/shenwei356/seqkit)
+
+SeqKit is a cross-platform and ultrafast toolkit for FASTA/Q file manipulation.
+
+Citation:
+
+W Shen, S Le, Y Li*, F Hu*. SeqKit: a cross-platform and ultrafast toolkit for FASTA/Q file manipulation. PLOS ONE. doi:10.1371/journal.pone.0163962.
+
+
+- **Documents:** [http://bioinf.shenwei.me/seqkit](http://bioinf.shenwei.me/seqkit)
+([**Usage**](http://bioinf.shenwei.me/seqkit/usage/),
+[**FAQ**](http://bioinf.shenwei.me/seqkit/faq/),
+[**Tutorial**](http://bioinf.shenwei.me/seqkit/tutorial/),
+and
+[**Benchmark**](http://bioinf.shenwei.me/seqkit/benchmark/))
+
+## Example Usage
+
+```bash
+# get simple statistics from FASTA/Q files
+
+seqkit stats
+
+# or with flags
+
+seqkit stats --all --tabular
+
+# conversion from FASTA to FASTQ
+
+seqkit fa2fq
+
+
+
+```
diff --git a/seqkit/2.7.0/Dockerfile b/seqkit/2.7.0/Dockerfile
new file mode 100644
index 000000000..abd3a4f49
--- /dev/null
+++ b/seqkit/2.7.0/Dockerfile
@@ -0,0 +1,55 @@
+# FROM defines the base docker image. This command has to come first in the file
+# The 'as' keyword lets you name the folowing stage. We use `app` for the production image
+FROM ubuntu:jammy as app
+
+# ARG sets environment variables during the build stage
+ARG SEQKIT_VER="2.7.0"
+
+# LABEL instructions tag the image with metadata that might be important to the user
+# Optional, but highly recommended
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="SeqKit"
+LABEL software.version=${SEQKIT_VER}
+LABEL description="SeqKit - a cross-platform and ultrafast toolkit for FASTA/Q file manipulation"
+LABEL website="https://github.com/shenwei356/seqkit"
+LABEL license="https://github.com/shenwei356/seqkit/blob/master/LICENSE"
+LABEL maintainer="Henry Kunerth"
+LABEL maintainer.email="henrykunerth@gmail.com"
+LABEL maintainer2="Erin Young"
+LABEL maintainer2.email="eriny@utah.gov"
+
+# Install dependences (update as needed)
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ wget \
+ ca-certificates \
+ procps \
+ unzip && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+# download SEQKIT and organize directories
+RUN wget -q https://github.com/shenwei356/seqkit/releases/download/v${SEQKIT_VER}/seqkit_linux_amd64.tar.gz && \
+ tar -xzf seqkit_linux_amd64.tar.gz && \
+ mv seqkit /usr/local/bin/. && \
+ rm seqkit_linux_amd64.tar.gz && \
+ mkdir /data
+
+# singularity compatibility
+ENV LC_ALL=C
+
+CMD seqkit --help
+
+# WORKDIR sets working directory
+WORKDIR /data
+
+# A second FROM insruction creates a new stage
+# We use `test` for the test image
+FROM app as test
+
+WORKDIR /test
+
+RUN seqkit --help
+
+#download test .fasta and check that SEQKIT can run to generate stats
+RUN wget -q https://raw.githubusercontent.com/StaPH-B/docker-builds/master/tests/SARS-CoV-2/SRR13957123.consensus.fa && \
+ seqkit stat *
diff --git a/seqkit/2.7.0/README.md b/seqkit/2.7.0/README.md
new file mode 100644
index 000000000..de048f057
--- /dev/null
+++ b/seqkit/2.7.0/README.md
@@ -0,0 +1,36 @@
+# SeqKit container
+
+Main tool : [SeqKit](https://github.com/shenwei356/seqkit)
+
+SeqKit is a cross-platform and ultrafast toolkit for FASTA/Q file manipulation.
+
+Citation:
+
+W Shen, S Le, Y Li*, F Hu*. SeqKit: a cross-platform and ultrafast toolkit for FASTA/Q file manipulation. PLOS ONE. doi:10.1371/journal.pone.0163962.
+
+
+- **Documents:** [http://bioinf.shenwei.me/seqkit](http://bioinf.shenwei.me/seqkit)
+([**Usage**](http://bioinf.shenwei.me/seqkit/usage/),
+[**FAQ**](http://bioinf.shenwei.me/seqkit/faq/),
+[**Tutorial**](http://bioinf.shenwei.me/seqkit/tutorial/),
+and
+[**Benchmark**](http://bioinf.shenwei.me/seqkit/benchmark/))
+
+## Example Usage
+
+```bash
+# get simple statistics from FASTA/Q files
+
+seqkit stats
+
+# or with flags
+
+seqkit stats --all --tabular
+
+# conversion from FASTA to FASTQ
+
+seqkit fa2fq
+
+
+
+```
diff --git a/seqkit/2.8.0/Dockerfile b/seqkit/2.8.0/Dockerfile
new file mode 100644
index 000000000..03a040109
--- /dev/null
+++ b/seqkit/2.8.0/Dockerfile
@@ -0,0 +1,55 @@
+# FROM defines the base docker image. This command has to come first in the file
+# The 'as' keyword lets you name the folowing stage. We use `app` for the production image
+FROM ubuntu:jammy as app
+
+# ARG sets environment variables during the build stage
+ARG SEQKIT_VER="2.8.0"
+
+# LABEL instructions tag the image with metadata that might be important to the user
+# Optional, but highly recommended
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="SeqKit"
+LABEL software.version=${SEQKIT_VER}
+LABEL description="SeqKit - a cross-platform and ultrafast toolkit for FASTA/Q file manipulation"
+LABEL website="https://github.com/shenwei356/seqkit"
+LABEL license="https://github.com/shenwei356/seqkit/blob/master/LICENSE"
+LABEL maintainer="Henry Kunerth"
+LABEL maintainer.email="henrykunerth@gmail.com"
+LABEL maintainer2="Erin Young"
+LABEL maintainer2.email="eriny@utah.gov"
+
+# Install dependences (update as needed)
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ wget \
+ ca-certificates \
+ procps \
+ unzip && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+# download SEQKIT and organize directories
+RUN wget -q https://github.com/shenwei356/seqkit/releases/download/v${SEQKIT_VER}/seqkit_linux_amd64.tar.gz && \
+ tar -xzf seqkit_linux_amd64.tar.gz && \
+ mv seqkit /usr/local/bin/. && \
+ rm seqkit_linux_amd64.tar.gz && \
+ mkdir /data
+
+# singularity compatibility
+ENV LC_ALL=C
+
+CMD seqkit --help
+
+# WORKDIR sets working directory
+WORKDIR /data
+
+# A second FROM insruction creates a new stage
+# We use `test` for the test image
+FROM app as test
+
+WORKDIR /test
+
+RUN seqkit --help
+
+#download test .fasta and check that SEQKIT can run to generate stats
+RUN wget -q https://raw.githubusercontent.com/StaPH-B/docker-builds/master/tests/SARS-CoV-2/SRR13957123.consensus.fa && \
+ seqkit stat *
diff --git a/seqkit/2.8.0/README.md b/seqkit/2.8.0/README.md
new file mode 100644
index 000000000..de048f057
--- /dev/null
+++ b/seqkit/2.8.0/README.md
@@ -0,0 +1,36 @@
+# SeqKit container
+
+Main tool : [SeqKit](https://github.com/shenwei356/seqkit)
+
+SeqKit is a cross-platform and ultrafast toolkit for FASTA/Q file manipulation.
+
+Citation:
+
+W Shen, S Le, Y Li*, F Hu*. SeqKit: a cross-platform and ultrafast toolkit for FASTA/Q file manipulation. PLOS ONE. doi:10.1371/journal.pone.0163962.
+
+
+- **Documents:** [http://bioinf.shenwei.me/seqkit](http://bioinf.shenwei.me/seqkit)
+([**Usage**](http://bioinf.shenwei.me/seqkit/usage/),
+[**FAQ**](http://bioinf.shenwei.me/seqkit/faq/),
+[**Tutorial**](http://bioinf.shenwei.me/seqkit/tutorial/),
+and
+[**Benchmark**](http://bioinf.shenwei.me/seqkit/benchmark/))
+
+## Example Usage
+
+```bash
+# get simple statistics from FASTA/Q files
+
+seqkit stats
+
+# or with flags
+
+seqkit stats --all --tabular
+
+# conversion from FASTA to FASTQ
+
+seqkit fa2fq
+
+
+
+```
diff --git a/seqkit/2.8.1/Dockerfile b/seqkit/2.8.1/Dockerfile
new file mode 100644
index 000000000..2a02367b2
--- /dev/null
+++ b/seqkit/2.8.1/Dockerfile
@@ -0,0 +1,55 @@
+# FROM defines the base docker image. This command has to come first in the file
+# The 'as' keyword lets you name the folowing stage. We use `app` for the production image
+FROM ubuntu:jammy as app
+
+# ARG sets environment variables during the build stage
+ARG SEQKIT_VER="2.8.1"
+
+# LABEL instructions tag the image with metadata that might be important to the user
+# Optional, but highly recommended
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="SeqKit"
+LABEL software.version=${SEQKIT_VER}
+LABEL description="SeqKit - a cross-platform and ultrafast toolkit for FASTA/Q file manipulation"
+LABEL website="https://github.com/shenwei356/seqkit"
+LABEL license="https://github.com/shenwei356/seqkit/blob/master/LICENSE"
+LABEL maintainer="Henry Kunerth"
+LABEL maintainer.email="henrykunerth@gmail.com"
+LABEL maintainer2="Erin Young"
+LABEL maintainer2.email="eriny@utah.gov"
+
+# Install dependences (update as needed)
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ wget \
+ ca-certificates \
+ procps \
+ unzip && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+# download SEQKIT and organize directories
+RUN wget -q https://github.com/shenwei356/seqkit/releases/download/v${SEQKIT_VER}/seqkit_linux_amd64.tar.gz && \
+ tar -xzf seqkit_linux_amd64.tar.gz && \
+ mv seqkit /usr/local/bin/. && \
+ rm seqkit_linux_amd64.tar.gz && \
+ mkdir /data
+
+# singularity compatibility
+ENV LC_ALL=C
+
+CMD seqkit --help
+
+# WORKDIR sets working directory
+WORKDIR /data
+
+# A second FROM insruction creates a new stage
+# We use `test` for the test image
+FROM app as test
+
+WORKDIR /test
+
+RUN seqkit --help
+
+#download test .fasta and check that SEQKIT can run to generate stats
+RUN wget -q https://raw.githubusercontent.com/StaPH-B/docker-builds/master/tests/SARS-CoV-2/SRR13957123.consensus.fa && \
+ seqkit stat *
diff --git a/seqkit/2.8.1/README.md b/seqkit/2.8.1/README.md
new file mode 100644
index 000000000..de048f057
--- /dev/null
+++ b/seqkit/2.8.1/README.md
@@ -0,0 +1,36 @@
+# SeqKit container
+
+Main tool : [SeqKit](https://github.com/shenwei356/seqkit)
+
+SeqKit is a cross-platform and ultrafast toolkit for FASTA/Q file manipulation.
+
+Citation:
+
+W Shen, S Le, Y Li*, F Hu*. SeqKit: a cross-platform and ultrafast toolkit for FASTA/Q file manipulation. PLOS ONE. doi:10.1371/journal.pone.0163962.
+
+
+- **Documents:** [http://bioinf.shenwei.me/seqkit](http://bioinf.shenwei.me/seqkit)
+([**Usage**](http://bioinf.shenwei.me/seqkit/usage/),
+[**FAQ**](http://bioinf.shenwei.me/seqkit/faq/),
+[**Tutorial**](http://bioinf.shenwei.me/seqkit/tutorial/),
+and
+[**Benchmark**](http://bioinf.shenwei.me/seqkit/benchmark/))
+
+## Example Usage
+
+```bash
+# get simple statistics from FASTA/Q files
+
+seqkit stats
+
+# or with flags
+
+seqkit stats --all --tabular
+
+# conversion from FASTA to FASTQ
+
+seqkit fa2fq
+
+
+
+```
diff --git a/seqkit/2.8.2/Dockerfile b/seqkit/2.8.2/Dockerfile
new file mode 100644
index 000000000..f3ecc6e2c
--- /dev/null
+++ b/seqkit/2.8.2/Dockerfile
@@ -0,0 +1,53 @@
+FROM ubuntu:jammy as app
+
+# ARG sets environment variables during the build stage
+ARG SEQKIT_VER="2.8.2"
+
+# LABEL instructions tag the image with metadata that might be important to the user
+# Optional, but highly recommended
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="SeqKit"
+LABEL software.version=${SEQKIT_VER}
+LABEL description="SeqKit - a cross-platform and ultrafast toolkit for FASTA/Q file manipulation"
+LABEL website="https://github.com/shenwei356/seqkit"
+LABEL license="https://github.com/shenwei356/seqkit/blob/master/LICENSE"
+LABEL maintainer="Henry Kunerth"
+LABEL maintainer.email="henrykunerth@gmail.com"
+LABEL maintainer2="Erin Young"
+LABEL maintainer2.email="eriny@utah.gov"
+
+# Install dependences (update as needed)
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ wget \
+ ca-certificates \
+ procps \
+ unzip && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+# download SEQKIT and organize directories
+RUN wget -q https://github.com/shenwei356/seqkit/releases/download/v${SEQKIT_VER}/seqkit_linux_amd64.tar.gz && \
+ tar -xzf seqkit_linux_amd64.tar.gz && \
+ mv seqkit /usr/local/bin/. && \
+ rm seqkit_linux_amd64.tar.gz && \
+ mkdir /data
+
+# singularity compatibility
+ENV LC_ALL=C
+
+CMD seqkit --help
+
+# WORKDIR sets working directory
+WORKDIR /data
+
+# A second FROM insruction creates a new stage
+# We use `test` for the test image
+FROM app as test
+
+WORKDIR /test
+
+RUN seqkit --help
+
+#download test .fasta and check that SEQKIT can run to generate stats
+RUN wget -q https://raw.githubusercontent.com/StaPH-B/docker-builds/master/tests/SARS-CoV-2/SRR13957123.consensus.fa && \
+ seqkit stat *
diff --git a/seqkit/2.8.2/README.md b/seqkit/2.8.2/README.md
new file mode 100644
index 000000000..de048f057
--- /dev/null
+++ b/seqkit/2.8.2/README.md
@@ -0,0 +1,36 @@
+# SeqKit container
+
+Main tool : [SeqKit](https://github.com/shenwei356/seqkit)
+
+SeqKit is a cross-platform and ultrafast toolkit for FASTA/Q file manipulation.
+
+Citation:
+
+W Shen, S Le, Y Li*, F Hu*. SeqKit: a cross-platform and ultrafast toolkit for FASTA/Q file manipulation. PLOS ONE. doi:10.1371/journal.pone.0163962.
+
+
+- **Documents:** [http://bioinf.shenwei.me/seqkit](http://bioinf.shenwei.me/seqkit)
+([**Usage**](http://bioinf.shenwei.me/seqkit/usage/),
+[**FAQ**](http://bioinf.shenwei.me/seqkit/faq/),
+[**Tutorial**](http://bioinf.shenwei.me/seqkit/tutorial/),
+and
+[**Benchmark**](http://bioinf.shenwei.me/seqkit/benchmark/))
+
+## Example Usage
+
+```bash
+# get simple statistics from FASTA/Q files
+
+seqkit stats
+
+# or with flags
+
+seqkit stats --all --tabular
+
+# conversion from FASTA to FASTQ
+
+seqkit fa2fq
+
+
+
+```
diff --git a/seqsero2/1.3.1/Dockerfile b/seqsero2/1.3.1/Dockerfile
new file mode 100644
index 000000000..aa71b0f13
--- /dev/null
+++ b/seqsero2/1.3.1/Dockerfile
@@ -0,0 +1,129 @@
+FROM ubuntu:bionic as app
+
+# for easy upgrade later. ARG variables only persist during build time
+ARG SEQSERO2_VER="1.3.1"
+ARG SPADES_VER="3.15.5"
+ARG SAMTOOLS_VER="1.8"
+ARG SALMID_VER="0.11"
+
+# Metadata
+LABEL base.image="ubuntu:bionic"
+LABEL dockerfile.version="1"
+LABEL software="SeqSero2"
+LABEL software.version="${SEQSERO2_VER}"
+LABEL description="Salmonella serotyping from genome sequencing data"
+LABEL website="https://github.com/denglab/SeqSero2"
+LABEL license="https://github.com/denglab/SeqSero2/blob/master/LICENSE"
+LABEL maintainer="Erin Young"
+LABEL maintainer.email="eriny@utah.gov"
+LABEL maintainer1="Jake Garfin"
+LABEL maintainer1.email="jake.garfin@state.mn.us"
+LABEL maintainer2="Curtis Kapsak"
+LABEL maintainer2.email="kapsakcj@gmail.com"
+LABEL maintainer3="Kelsey Florek"
+LABEL maintainer3.email="kelsey.florek@slh.wisc.edu"
+
+# python = 2.7.17
+# python3 = 3.6.9
+# biopython = 1.73
+# bedtools = 2.26.0
+# sra-toolkit = 2.8.2
+# bwa = 0.7.17
+# ncbi-blast+ = 2.6.0
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ python3 \
+ python3-pip \
+ python3-setuptools \
+ bwa \
+ ncbi-blast+ \
+ sra-toolkit \
+ bedtools \
+ wget \
+ ca-certificates \
+ unzip \
+ zlib1g-dev \
+ libbz2-dev \
+ liblzma-dev \
+ build-essential \
+ libncurses5-dev && \
+ rm -rf /var/lib/apt/lists/* && apt-get autoclean
+
+# Install samtools
+RUN wget -q https://github.com/samtools/samtools/releases/download/${SAMTOOLS_VER}/samtools-${SAMTOOLS_VER}.tar.bz2 && \
+ tar -xjf samtools-${SAMTOOLS_VER}.tar.bz2 && \
+ rm -v samtools-${SAMTOOLS_VER}.tar.bz2 && \
+ cd samtools-${SAMTOOLS_VER} && \
+ ./configure && \
+ make && \
+ make install && \
+ cd / && \
+ rm -rfv /samtools-${SAMTOOLS_VER}
+
+# Install salmID
+RUN wget -q https://github.com/hcdenbakker/SalmID/archive/${SALMID_VER}.tar.gz && \
+ tar -xzf ${SALMID_VER}.tar.gz && \
+ rm -rvf ${SALMID_VER}.tar.gz
+
+# install SPAdes binary
+RUN wget -q https://github.com/ablab/spades/releases/download/v${SPADES_VER}/SPAdes-${SPADES_VER}-Linux.tar.gz && \
+ tar -xzf SPAdes-${SPADES_VER}-Linux.tar.gz && \
+ rm -r SPAdes-${SPADES_VER}-Linux.tar.gz
+
+# Install SeqSero2; make /data
+RUN wget -q https://github.com/denglab/SeqSero2/archive/v${SEQSERO2_VER}.tar.gz && \
+ tar -xzf v${SEQSERO2_VER}.tar.gz && \
+ rm -vrf v${SEQSERO2_VER}.tar.gz && \
+ cd /SeqSero2-${SEQSERO2_VER}/ && \
+ python3 -m pip install . && \
+ mkdir /data
+
+# set PATH for manually installed tools. SeqSero2 placed in PATH already with "pip install" cmd
+ENV PATH="${PATH}:/SPAdes-${SPADES_VER}-Linux/bin:/SalmID-${SALMID_VER}:/samtools-${SAMTOOLS_VER}" \
+ LC_ALL=C
+
+CMD SeqSero2_package.py --help
+
+WORKDIR /data
+
+FROM app as test
+
+WORKDIR /test
+
+# install ncbi datasets tool (pre-compiled binary); place in $PATH
+RUN wget -q https://ftp.ncbi.nlm.nih.gov/pub/datasets/command-line/LATEST/linux-amd64/datasets && \
+ chmod +x datasets && \
+ mv -v datasets /usr/local/bin
+
+# download an example assembly; test with SeqSero2
+# Salmonella enterica serovar Infantis genome: https://www.ncbi.nlm.nih.gov/data-hub/genome/GCA_007765495.1/
+# BioSample:SAMN07684583
+ARG GENBANK_ACCESSION="GCA_007765495.1"
+RUN datasets download genome accession ${GENBANK_ACCESSION} --filename ${GENBANK_ACCESSION}.zip && \
+ mkdir -v ${GENBANK_ACCESSION}-download && \
+ unzip ${GENBANK_ACCESSION}.zip -d ${GENBANK_ACCESSION}-download && \
+ rm ${GENBANK_ACCESSION}.zip && \
+ mv -v ${GENBANK_ACCESSION}-download/ncbi_dataset/data/${GENBANK_ACCESSION}/${GENBANK_ACCESSION}*.fna ${GENBANK_ACCESSION}-download/ncbi_dataset/data/${GENBANK_ACCESSION}/${GENBANK_ACCESSION}.genomic.fna && \
+ SeqSero2_package.py \
+ -i ${GENBANK_ACCESSION}-download/ncbi_dataset/data/${GENBANK_ACCESSION}/${GENBANK_ACCESSION}.genomic.fna \
+ -t 4 \
+ -m k \
+ -d ${GENBANK_ACCESSION}-seqsero2-assembly-kmer-mode \
+ -n ${GENBANK_ACCESSION} \
+ -p 2 && \
+ grep 'Infantis' ${GENBANK_ACCESSION}-seqsero2-assembly-kmer-mode/SeqSero_result.txt
+
+# testing reads as input for the same Salmonella isolate
+# specifically the "allele" mode which does micro assembly first using SPAdes
+RUN wget -q ftp://ftp.sra.ebi.ac.uk/vol1/fastq/SRR608/003/SRR6082043/SRR6082043_1.fastq.gz && \
+ wget -q ftp://ftp.sra.ebi.ac.uk/vol1/fastq/SRR608/003/SRR6082043/SRR6082043_2.fastq.gz && \
+ SeqSero2_package.py \
+ -i SRR6082043_1.fastq.gz SRR6082043_2.fastq.gz \
+ -t 2 \
+ -m a \
+ -d SRR6082043-seqsero2-reads-allele-mode \
+ -n SRR6082043 \
+ -p 2 && \
+ grep 'Infantis' SRR6082043-seqsero2-reads-allele-mode/SeqSero_result.txt
+
+# print help options, check dependencies, print version
+RUN SeqSero2_package.py --help && SeqSero2_package.py --check && SeqSero2_package.py --version
\ No newline at end of file
diff --git a/seqsero2/1.3.1/README.md b/seqsero2/1.3.1/README.md
new file mode 100644
index 000000000..e7551aef8
--- /dev/null
+++ b/seqsero2/1.3.1/README.md
@@ -0,0 +1,67 @@
+# SeqSero2 docker image
+
+> SeqSero2: Salmonella enterica serotype prediction from genome sequencing data
+
+Main tool : [SeqSero2](https://github.com/denglab/SeqSero2)
+
+Additional tools:
+
+- spades 3.15.5
+- ncbi-blast+ 2.6.0
+- python 2.7.17
+- python3 3.6.9
+- biopython 1.73
+- samtools 1.8
+- bedtools 2.26.0
+- SalmID 0.11
+- bwa 0.7.17-r1188
+- sra-toolkit 2.8.2
+
+## Example Usage
+
+```bash
+# paired end Illumina reads as input for allele mode
+$ SeqSero2_package.py \
+ -i SRR6082043_1.fastq.gz SRR6082043_2.fastq.gz \
+ -t 2 \
+ -m a \
+ -d SRR6082043-seqsero2-reads-allele-mode \
+ -n SRR6082043 \
+ -p 2
+[bam_sort_core] merging from 0 files and 2 in-memory blocks...
+building database...
+mapping...
+check samtools version: 1.9
+assembling...
+blasting...
+
+Sample name: SRR6082043
+Output directory: /test/SRR6082043-seqsero2-reads-allele-mode
+Input files: /test/SRR6082043_1.fastq.gz /test/SRR6082043_2.fastq.gz
+O antigen prediction: 7
+H1 antigen prediction(fliC): r
+H2 antigen prediction(fljB): 1,5
+Predicted identification: Salmonella enterica subspecies enterica (subspecies I)
+Predicted antigenic profile: 7:r:1,5
+Predicted serotype: Infantis
+Note:
+
+# genome assembly FASTA as input for kmer mode
+$ SeqSero2_package.py \
+ -i GCA_007765495.1.genomic.fna \
+ -t 4 \
+ -m k \
+ -d GCA_007765495.1-seqsero2-assembly-kmer-mode \
+ -n GCA_007765495.1 \
+ -p 2
+Sample name: GCA_007765495.1
+Output directory: /test/GCA_007765495.1-seqsero2-assembly-kmer-mode
+Input files: GCA_007765495.1.genomic.fna
+O antigen prediction: 7
+H1 antigen prediction(fliC): r
+H2 antigen prediction(fljB): 1,5
+Predicted identification: Salmonella enterica subspecies enterica (subspecies I)
+Predicted antigenic profile: 7:r:1,5
+Predicted serotype: Infantis
+Note:
+```
diff --git a/seqtk/1.4/Dockerfile b/seqtk/1.4/Dockerfile
new file mode 100644
index 000000000..52cdd6288
--- /dev/null
+++ b/seqtk/1.4/Dockerfile
@@ -0,0 +1,70 @@
+ARG SEQTK_VER="1.4"
+
+FROM ubuntu:jammy as builder
+
+ARG SEQTK_VER
+
+# Install dependencies via apt-get or yum if using a centos or fedora base
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ ca-certificates \
+ make \
+ wget \
+ gcc \
+ zlib1g-dev && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+RUN wget https://github.com/lh3/seqtk/archive/v${SEQTK_VER}.tar.gz && \
+ tar -xzvf v${SEQTK_VER}.tar.gz && \
+ rm v${SEQTK_VER}.tar.gz && \
+ cd seqtk-${SEQTK_VER} && \
+ make && \
+ cp seqtk /usr/local/bin/.
+
+FROM ubuntu:jammy as app
+
+ARG SEQTK_VER
+
+# 'LABEL' instructions tag the image with metadata that might be important to the user
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="seqtk"
+LABEL software.version="${SEQTK_VER}"
+LABEL description="Toolkit for processing sequences in FASTA/Q formats"
+LABEL website="https://github.com/lh3/seqtk"
+LABEL license="https://github.com/lh3/seqtk/blob/master/LICENSE"
+LABEL maintainer="Curtis Kapsak"
+LABEL maintainer.email="pjx8@cdc.gov"
+LABEL maintainer1="Erin Young"
+LABEL maintainer1.email="eriny@utah.gov"
+
+# copy in files and executables into app stage
+COPY --from=builder /usr/local/bin/* /usr/local/bin/
+
+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="$PATH" LC_ALL=C
+
+# 'CMD' instructions set a default command when the container is run. This is typically 'tool --help.'
+CMD [ "seqtk"]
+
+# 'WORKDIR' sets working directory
+WORKDIR /data
+
+FROM app as test
+
+# set working directory so that all test inputs & outputs are kept in /test
+WORKDIR /test
+
+# seqtk does not have a -h option, and just calling the command results in an error
+RUN which seqtk
+
+RUN wget -q https://github.com/StaPH-B/docker-builds/raw/master/tests/SARS-CoV-2/SRR13957123_1.fastq.gz && \
+ wget -q https://github.com/StaPH-B/docker-builds/raw/master/tests/SARS-CoV-2/SRR13957123_2.fastq.gz && \
+ seqtk sample -s100 SRR13957123_1.fastq.gz 10000 > sub1.fq && \
+ seqtk sample -s100 SRR13957123_2.fastq.gz 10000 > sub2.fq && \
+ seqtk trimfq SRR13957123_1.fastq.gz > trimfq_out.fq.gz && \
+ wc -l *fastq.gz *fq*
\ No newline at end of file
diff --git a/seqtk/1.4/README.md b/seqtk/1.4/README.md
new file mode 100644
index 000000000..83e53813b
--- /dev/null
+++ b/seqtk/1.4/README.md
@@ -0,0 +1,69 @@
+# seqtk container
+
+Main tool: [seqtk](https://github.com/lh3/seqtk)
+
+Code repository: https://github.com/lh3/seqtk
+
+Basic information on how to use this tool:
+- executable: seqtk
+- help: N/A
+- version: N/A
+- description: Seqtk is a fast and lightweight tool for processing sequences in the FASTA or FASTQ format.
+
+
+seqtk has several different subcomands which are listed below
+```
+
+Usage: seqtk
+Version: 1.4-r122
+
+Command: seq common transformation of FASTA/Q
+ size report the number sequences and bases
+ comp get the nucleotide composition of FASTA/Q
+ sample subsample sequences
+ subseq extract subsequences from FASTA/Q
+ fqchk fastq QC (base/quality summary)
+ mergepe interleave two PE FASTA/Q files
+ split split one file into multiple smaller files
+ trimfq trim FASTQ using the Phred algorithm
+
+ hety regional heterozygosity
+ gc identify high- or low-GC regions
+ mutfa point mutate FASTA at specified positions
+ mergefa merge two FASTA/Q files
+ famask apply a X-coded FASTA to a source FASTA
+ dropse drop unpaired from interleaved PE FASTA/Q
+ rename rename sequence names
+ randbase choose a random base from hets
+ cutN cut sequence at long N
+ gap get the gap locations
+ listhet extract the position of each het
+ hpc homopolyer-compressed sequence
+ telo identify telomere repeats in asm or long reads
+
+```
+
+
+Full documentation: https://github.com/lh3/seqtk
+
+## Example Usage
+
+```bash
+# Convert FASTQ to FASTA:
+seqtk seq -a in.fq.gz > out.fa
+
+# Reverse complement FASTA/Q:
+seqtk seq -r in.fq > out.fq
+
+# Extract sequences in regions contained in file reg.bed:
+seqtk subseq in.fa reg.bed > out.fa
+
+# Mask regions in reg.bed to lowercases:
+seqtk seq -M reg.bed in.fa > out.fa
+# Subsample 10000 read pairs from two large paired FASTQ files (remember to use the same random seed to keep pairing):
+seqtk sample -s100 read1.fq 10000 > sub1.fq
+seqtk sample -s100 read2.fq 10000 > sub2.fq
+
+# Trim low-quality bases from both ends using the Phred algorithm:
+seqtk trimfq in.fq > out.fq
+```
\ No newline at end of file
diff --git a/serotypefinder/2.0.2/Dockerfile b/serotypefinder/2.0.2/Dockerfile
new file mode 100644
index 000000000..d55b5df75
--- /dev/null
+++ b/serotypefinder/2.0.2/Dockerfile
@@ -0,0 +1,107 @@
+ARG SEROTYPEFINDER_VER="2.0.2"
+# Database not properly versioned, so using most recent commit made on 2022-05-16
+# see here: https://bitbucket.org/genomicepidemiology/serotypefinder_db/commits/ada62c62a7fa74032448bb2273d1f7045c59fdda
+ARG SEROTYPEFINDER_DB_COMMIT_HASH="ada62c62a7fa74032448bb2273d1f7045c59fdda"
+
+FROM ubuntu:focal as app
+
+# re-instantiating for use in the app layer
+ARG SEROTYPEFINDER_VER
+ARG SEROTYPEFINDER_DB_COMMIT_HASH
+ARG KMA_VER="1.4.14"
+
+# metadata
+LABEL base.image="ubuntu:focal"
+LABEL dockerfile.version="1"
+LABEL software="SerotypeFinder"
+LABEL software.version="${SEROTYPEFINDER_VER}"
+LABEL description="Tool for identifying the serotype of E. coli from reads or assemblies"
+LABEL website="https://bitbucket.org/genomicepidemiology/serotypefinder/src/master/"
+LABEL license="https://bitbucket.org/genomicepidemiology/serotypefinder/src/master/"
+LABEL maintainer="Curtis Kapsak"
+LABEL maintainer.email="kapsakcj@gmail.com"
+
+# install dependencies; cleanup apt garbage
+# ncbi-blast+ v2.9.0 (ubuntu:focal), min required version is 2.8.1
+# python3 v3.8.10, min required version is 3.5
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ wget \
+ ca-certificates \
+ procps \
+ git \
+ ncbi-blast+ \
+ python3 \
+ python3-pip \
+ python3-setuptools \
+ python3-dev \
+ gcc \
+ make \
+ libz-dev \
+ dos2unix \
+ unzip && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+# install python dependencies
+RUN pip3 install biopython==1.73 tabulate==0.7.7 cgecore==1.5.5
+
+# Install kma
+# apt deps: libz-dev (for compiling)
+RUN git clone --branch ${KMA_VER} --depth 1 https://bitbucket.org/genomicepidemiology/kma.git && \
+ cd kma && \
+ make && \
+ mv -v kma* /usr/local/bin/
+
+# download serotypefinder database using a specific commit hash to aid in reproducibility
+# index database w/ kma
+# NOTE: files HAVE to go into '/database' since that is the default location expected by serotyperfinder.py
+# dos2unix on the FASTA files to ensure they have LF line endings (there's CRLF somewhere in those files despite the last commit to the db)
+RUN mkdir /database && \
+ git clone https://bitbucket.org/genomicepidemiology/serotypefinder_db.git /database && \
+ cd /database && \
+ git checkout ${SEROTYPEFINDER_DB_COMMIT_HASH} && \
+ dos2unix *.fsa && \
+ python3 INSTALL.py kma_index
+
+# install serotypefinder; make /data
+RUN git clone --branch ${SEROTYPEFINDER_VER} --depth 1 https://bitbucket.org/genomicepidemiology/serotypefinder.git && \
+ mkdir /data
+
+# set $PATH and locale settings for singularity compatibility
+ENV PATH="/serotypefinder:$PATH" \
+ LC_ALL=C.UTF-8
+
+CMD serotypefinder.py -h
+
+# set final working directory for production docker image (app layer only)
+WORKDIR /data
+
+FROM app as test
+
+# set working directory for test layer
+WORKDIR /test
+
+RUN serotypefinder.py --help
+
+# download an example assembly; test with SerotypeFinder
+# Escherichia coli complete genome (Unicycler assembly)
+# GenBank Nucleotide entry: https://www.ncbi.nlm.nih.gov/nuccore/CP113091.1/
+# BioSample:SAMN08799860
+# expect O1:H7
+RUN mkdir -v /test/asm-input-O1-H7 && \
+ wget https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/012/224/845/GCA_012224845.2_ASM1222484v2/GCA_012224845.2_ASM1222484v2_genomic.fna.gz && \
+ gunzip GCA_012224845.2_ASM1222484v2_genomic.fna.gz && \
+ serotypefinder.py -i /test/GCA_012224845.2_ASM1222484v2_genomic.fna -x -o /test/asm-input-O1-H7 && \
+ cat /test/asm-input-O1-H7/results_tab.tsv
+
+# download Illumina reads for the same sample ^ and test reads as input into SerotypeFinder
+RUN mkdir /test/reads-input-O1-H7 && \
+ wget ftp://ftp.sra.ebi.ac.uk/vol1/fastq/SRR690/006/SRR6903006/SRR6903006_1.fastq.gz && \
+ wget ftp://ftp.sra.ebi.ac.uk/vol1/fastq/SRR690/006/SRR6903006/SRR6903006_2.fastq.gz && \
+ serotypefinder.py -i SRR6903006_1.fastq.gz SRR6903006_2.fastq.gz -x -o /test/reads-input-O1-H7 && \
+ cat /test/reads-input-O1-H7/results_tab.tsv
+
+# test using FASTA supplied with serotypefinder code
+# expect O1:H9
+RUN mkdir -p /test/serotypefinder-test-fsa && \
+ serotypefinder.py -i /serotypefinder/test.fsa -x -o /test/serotypefinder-test-fsa && \
+ cat /test/serotypefinder-test-fsa/results_tab.tsv
diff --git a/serotypefinder/2.0.2/README.md b/serotypefinder/2.0.2/README.md
new file mode 100644
index 000000000..42ca6aeb1
--- /dev/null
+++ b/serotypefinder/2.0.2/README.md
@@ -0,0 +1,116 @@
+# SerotypeFinder Container
+
+A docker container that contains SerotypeFinder, a tool for serotyping E. coli isolates from reads or assemblies
+
+[Link to StaPH-B DockerHub repository](https://hub.docker.com/r/staphb/serotypefinder)
+
+Main tool:
+
+- Main Code Repo: [https://bitbucket.org/genomicepidemiology/serotypefinder/src/master/](https://bitbucket.org/genomicepidemiology/serotypefinder/src/master/)
+- You may be familiar with the web version of SerotypeFinder: [https://cge.cbs.dtu.dk/services/SerotypeFinder/](https://cge.cbs.dtu.dk/services/SerotypeFinder/)
+
+Additional tools:
+
+- python 3.8.10
+- biopython 1.73
+- [kma](https://bitbucket.org/genomicepidemiology/kma/src/master/) 1.4.14
+- ncbi-blast+ 2.9.0
+
+## Database Version information
+
+SerotypeFinder database version: Git commit `ada62c62a7fa74032448bb2273d1f7045c59fdda` made on 2022‑05‑16. [Link to commit history](https://bitbucket.org/genomicepidemiology/serotypefinder_db/commits/)
+
+## Requirements
+
+- Docker or Singularity
+- E. coli raw reads (fastq.gz) or assembly (fasta)
+ - Illumina, Ion Torrent, Roche 454, SOLiD, Oxford Nanopore, and PacBio reads are supported. (I've only tested Illumina reads)
+
+## Usage
+
+```bash
+usage: serotypefinder.py [-h] -i INFILE [INFILE ...] [-o OUTDIR] [-tmp TMP_DIR] [-mp METHOD_PATH] [-p DB_PATH] [-d DATABASES] [-l MIN_COV] [-t THRESHOLD] [-x] [-q]
+
+optional arguments:
+ -h, --help show this help message and exit
+ -i INFILE [INFILE ...], --infile INFILE [INFILE ...]
+ FASTA or FASTQ input files.
+ -o OUTDIR, --outputPath OUTDIR
+ Path to blast output
+ -tmp TMP_DIR, --tmp_dir TMP_DIR
+ Temporary directory for storage of the results from the external software.
+ -mp METHOD_PATH, --methodPath METHOD_PATH
+ Path to method to use (kma or blastn)
+ -p DB_PATH, --databasePath DB_PATH
+ Path to the databases
+ -d DATABASES, --databases DATABASES
+ Databases chosen to search in - if non is specified all is used
+ -l MIN_COV, --mincov MIN_COV
+ Minimum coverage
+ -t THRESHOLD, --threshold THRESHOLD
+ Minimum threshold for identity
+ -x, --extented_output
+ Give extented output with allignment files, template and query hits in fasta and a tab seperated file with gene profile results
+ -q, --quiet
+```
+
+## Notes and Recommendations
+
+- You do not need to supply a database or use the `-p` or `-d` flags
+ - Database is included in the container and is in the default/expected location within the container: `/database`
+ - (*NOT RECOMMENDED*) If you do need to use your own database, you will need to first index it with `kma` and use the `serotypefinder.py -p` flag. You can find instructions for this on the SerotypeFinder Bitbucket README. `kma` is included in this docker container for database indexing.
+ - SerotypeFinder does **NOT** create an output directory when you use the `-o` flag. You MUST create it beforehand or it will throw an error.
+ - **Default % Identity threshold: 90%**. Adjust with `-t 0.95`
+ - **Default % coverage threshold: 60%**. Adjust with `-l 0.70`
+ - Use the `-x` flag (extended output) if you want the traditional/legacy SerotypeFinder output files `results_tab.tsv results.txt Serotype_allele_seq.fsa Hit_in_genome_seq.fsa`. Otherwise you will need to parse the default output file `data.json` for results
+ - (*RECOMMENDED*) Use raw reads due to the increased sensitivity (without loss of specificity) and the additional information gleaned from KMA output (specifically the depth metric). You also save time from having to assemble the genome first. [CITATION NEEDED, PROBABLY THE KMA PAPER]
+- Querying reads:
+ - This will run SerotypeFinder with `kma` (instead of ncbi-blast+)
+ - Only one of the PE read files is necessary. There is likely little benefit to using both R1 and R2. It will take slightly longer to run (a few extra seconds) if you use both R1 and R2 files.
+- Querying assemblies:
+ - This will run SerotypeFinder with `ncbi-blast+`
+ - SerotypeFinder does not clean up after itself. `tmp/out_H_type.xml` and `tmp/out_O_type.xml` will exist in the specified output directory
+
+## Example Usage: Docker
+
+```bash
+# download the image
+$ docker pull staphb/serotypefinder:latest
+
+# input files are in my PWD
+$ ls
+E-coli.skesa.fasta E-coli.R1.fastq.gz E-coli.R2.fastq.gz
+
+# make an output directory
+$ mkdir output-dir-reads output-dir-asm
+
+# query reads, mount PWD to /data inside container (broken into two lines for readabilty)
+$ docker run --rm -u $(id -u):$(id -g) -v $PWD:/data staphb/serotypefinder:latest \
+ serotypefinder.py -i /data/E-coli.R1.fastq.gz /data/E-coli.R2.fastq.gz -o /data/output-dir-reads
+
+# query assembly
+$ docker run --rm -u $(id -u):$(id -g) -v $PWD:/data staphb/serotypefinder:latest \
+ serotypefinder.py -i /data/E-coli.skesa.fasta -o /data/output-dir-asm
+```
+
+## Example Usage: Singularity
+
+```bash
+# download the image
+$ singularity build serotypefinder.latest.sif docker://staphb/serotypefinder:latest
+
+# files are in my PWD
+$ ls
+E-coli.skesa.fasta E-coli.R1.fastq.gz E-coli.R2.fastq.gz
+
+# make an output directory
+$ mkdir output-dir-reads output-dir-asm
+
+# query reads; mount PWD to /data inside container
+$ singularity exec --no-home -B $PWD:/data serotypefinder.latest.sif \
+ serotypefinder.py -i /data/E-coli.R1.fastq.gz /data/E-coli.R2.fastq.gz -o /data/output-dir-reads
+
+# assembly
+$ singularity exec --no-home -B $PWD:/data serotypefinder.latest.sif \
+ serotypefinder.py -i /data/E-coli.skesa.fasta -o /data/output-dir-asm
+```
diff --git a/ska2/0.3.6/Dockerfile b/ska2/0.3.6/Dockerfile
new file mode 100644
index 000000000..88d044f4f
--- /dev/null
+++ b/ska2/0.3.6/Dockerfile
@@ -0,0 +1,46 @@
+FROM ubuntu:jammy as app
+
+ARG SKA2_VER="0.3.6"
+
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="SKA2"
+LABEL software.version="${SKA2_VER}"
+LABEL description="A reimplementation of the SKA package in the rust language"
+LABEL website="https://github.com/bacpop/ska.rust"
+LABEL license="https://github.com/bacpop/ska.rust/blob/master/LICENSE"
+LABEL maintainer="Kutluhan Incekara"
+LABEL maintainer.email="kutluhan.incekara@ct.gov"
+
+RUN apt-get update && apt-get install --no-install-recommends -y \
+ wget &&\
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+RUN wget --no-check-certificate https://github.com/bacpop/ska.rust/releases/download/v${SKA2_VER}/ska-v${SKA2_VER}-ubuntu-latest-stable.tar.gz &&\
+ tar -C /usr/local/bin -xvf ska-v${SKA2_VER}-ubuntu-latest-stable.tar.gz ska &&\
+ rm ska-v${SKA2_VER}-ubuntu-latest-stable.tar.gz
+
+ENV LC_ALL=C
+
+CMD [ "ska", "-h" ]
+
+WORKDIR /data
+
+## Test ##
+FROM app as test
+
+# force bash to avoid shell errors
+SHELL ["/bin/bash", "-c"]
+
+# adapted from tutorial https://www.bacpop.org/guides/building_trees_with_ska/
+RUN wget --no-check-certificate https://zenodo.org/record/8172518/files/building_trees_with_ska.tar &&\
+ tar -xvf building_trees_with_ska.tar assemblies/LA002.fa.gz assemblies/LA022.fa.gz assemblies/LA023.fa.gz assemblies/LA026.fa.gz &&\
+ paste <(ls assemblies | sed 's/[.].*$//g') <(ls -d assemblies/*) > laos_ska_input.tsv
+
+RUN ska build -f laos_ska_input.tsv -k 31 -o laos_ska_index --threads 4 &&\
+ ska align --min-freq 1 --filter no-filter laos_ska_index.skf -o laos_ska_alignment.aln --threads 4 &&\
+ head -c 1000 laos_ska_alignment.aln &&\
+ grep ">" laos_ska_alignment.aln
+
+
+
diff --git a/ska2/0.3.6/README.md b/ska2/0.3.6/README.md
new file mode 100644
index 000000000..abf740604
--- /dev/null
+++ b/ska2/0.3.6/README.md
@@ -0,0 +1,24 @@
+# SKA2 container
+
+Main tool: [SKA2](https://github.com/bacpop/ska.rust)
+
+Code repository: https://github.com/bacpop/ska.rust
+
+Basic information on how to use this tool:
+- executable: ska
+- help: -h, --help
+- version: -V, --version
+- description: SKA2 is a reimplementation of the SKA package in the rust language. Split k-mer analysis (version 2) uses exact matching of split k-mer sequences to align closely related sequences, typically small haploid genomes such as bacteria and viruses.
+
+Full documentation: https://docs.rs/ska/latest/ska/
+
+## Example Usage
+
+```bash
+# Build from two input FASTA files with a k-mer size of 31
+ska build -o seqs -k 31 assemblies/seq1.fa assemblies/seq2.fa
+# align
+ska align --min-freq 1 --filter no-filter -o seqs seqs.skf
+# map
+ska map ref.fa seqs.skf -o ref_mapped.aln
+```
diff --git a/ska2/0.3.7/Dockerfile b/ska2/0.3.7/Dockerfile
new file mode 100644
index 000000000..8d8e3fc7c
--- /dev/null
+++ b/ska2/0.3.7/Dockerfile
@@ -0,0 +1,46 @@
+FROM ubuntu:jammy as app
+
+ARG SKA2_VER="0.3.7"
+
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="SKA2"
+LABEL software.version="${SKA2_VER}"
+LABEL description="A reimplementation of the SKA package in the rust language"
+LABEL website="https://github.com/bacpop/ska.rust"
+LABEL license="https://github.com/bacpop/ska.rust/blob/master/LICENSE"
+LABEL maintainer="Kutluhan Incekara"
+LABEL maintainer.email="kutluhan.incekara@ct.gov"
+
+RUN apt-get update && apt-get install --no-install-recommends -y \
+ wget &&\
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+RUN wget --no-check-certificate https://github.com/bacpop/ska.rust/releases/download/v${SKA2_VER}/ska-v${SKA2_VER}-ubuntu-latest-stable.tar.gz &&\
+ tar -C /usr/local/bin -xvf ska-v${SKA2_VER}-ubuntu-latest-stable.tar.gz ska &&\
+ rm ska-v${SKA2_VER}-ubuntu-latest-stable.tar.gz
+
+ENV LC_ALL=C
+
+CMD [ "ska", "-h" ]
+
+WORKDIR /data
+
+## Test ##
+FROM app as test
+
+# force bash to avoid shell errors
+SHELL ["/bin/bash", "-c"]
+
+# adapted from tutorial https://www.bacpop.org/guides/building_trees_with_ska/
+RUN wget --no-check-certificate https://zenodo.org/record/8172518/files/building_trees_with_ska.tar &&\
+ tar -xvf building_trees_with_ska.tar assemblies/LA002.fa.gz assemblies/LA022.fa.gz assemblies/LA023.fa.gz assemblies/LA026.fa.gz &&\
+ paste <(ls assemblies | sed 's/[.].*$//g') <(ls -d assemblies/*) > laos_ska_input.tsv
+
+RUN ska build -f laos_ska_input.tsv -k 31 -o laos_ska_index --threads 4 &&\
+ ska align --min-freq 1 --filter no-filter laos_ska_index.skf -o laos_ska_alignment.aln --threads 4 &&\
+ head -c 1000 laos_ska_alignment.aln &&\
+ grep ">" laos_ska_alignment.aln
+
+
+
diff --git a/ska2/0.3.7/README.md b/ska2/0.3.7/README.md
new file mode 100644
index 000000000..abf740604
--- /dev/null
+++ b/ska2/0.3.7/README.md
@@ -0,0 +1,24 @@
+# SKA2 container
+
+Main tool: [SKA2](https://github.com/bacpop/ska.rust)
+
+Code repository: https://github.com/bacpop/ska.rust
+
+Basic information on how to use this tool:
+- executable: ska
+- help: -h, --help
+- version: -V, --version
+- description: SKA2 is a reimplementation of the SKA package in the rust language. Split k-mer analysis (version 2) uses exact matching of split k-mer sequences to align closely related sequences, typically small haploid genomes such as bacteria and viruses.
+
+Full documentation: https://docs.rs/ska/latest/ska/
+
+## Example Usage
+
+```bash
+# Build from two input FASTA files with a k-mer size of 31
+ska build -o seqs -k 31 assemblies/seq1.fa assemblies/seq2.fa
+# align
+ska align --min-freq 1 --filter no-filter -o seqs seqs.skf
+# map
+ska map ref.fa seqs.skf -o ref_mapped.aln
+```
diff --git a/skani/0.2.2/Dockerfile b/skani/0.2.2/Dockerfile
new file mode 100644
index 000000000..1a4ceb37e
--- /dev/null
+++ b/skani/0.2.2/Dockerfile
@@ -0,0 +1,47 @@
+ARG SKANI_VER="0.2.2"
+
+## Builder ##
+FROM rust:1.80.1 AS builder
+
+ARG SKANI_VER
+
+RUN wget https://github.com/bluenote-1577/skani/archive/refs/tags/v${SKANI_VER}.tar.gz &&\
+ tar -xvf v${SKANI_VER}.tar.gz &&\
+ cd skani-${SKANI_VER} &&\
+ cargo install --path . --root ~/.cargo &&\
+ chmod +x /root/.cargo/bin/skani
+
+## App ##
+FROM ubuntu:jammy AS app
+
+ARG SKANI_VER
+
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="skani"
+LABEL software.version=${SKANI_VER}
+LABEL description="skani is a program for calculating average nucleotide identity (ANI) from DNA sequences (contigs/MAGs/genomes) for ANI > ~80%."
+LABEL website="https://github.com/bluenote-1577/skani"
+LABEL license="https://github.com/bluenote-1577/skani/blob/main/LICENSE"
+LABEL maintainer="Kutluhan Incekara"
+LABEL maintainer.email="kutluhan.incekara@ct.gov"
+
+# copy app from builder stage
+COPY --from=builder /root/.cargo/bin/skani /usr/local/bin/skani
+
+# default run command
+CMD ["skani", "-h"]
+
+# singularity compatibility
+ENV LC_ALL=C
+
+WORKDIR /data
+
+## Test ##
+FROM app AS test
+
+RUN apt-get update && apt-get install -y wget &&\
+ wget https://github.com/bluenote-1577/skani/raw/v0.2.0/refs/e.coli-EC590.fasta &&\
+ wget https://github.com/bluenote-1577/skani/raw/v0.2.0/refs/e.coli-K12.fasta
+
+RUN skani dist e.coli-EC590.fasta e.coli-K12.fasta
\ No newline at end of file
diff --git a/skani/0.2.2/README.md b/skani/0.2.2/README.md
new file mode 100644
index 000000000..f51996225
--- /dev/null
+++ b/skani/0.2.2/README.md
@@ -0,0 +1,33 @@
+# skani container
+
+Main tool: [skani](https://github.com/bluenote-1577/skani)
+
+Code repository: https://github.com/bluenote-1577/skani
+
+Basic information on how to use this tool:
+- executable: skani
+- help: -h, --help
+- version: -V, --version
+- description: skani is a program for calculating average nucleotide identity (ANI) from DNA sequences (contigs/MAGs/genomes) for ANI > ~80%.
+
+Additional information:
+
+This container does not contain any database or reference genome.
+
+Full documentation: https://github.com/bluenote-1577/skani/wiki
+
+## Example Usage
+
+Quick ANI calculation:
+```bash
+skani dist genome1.fa genome2.fa
+```
+Memory-efficient database search:
+```bash
+skani sketch genomes/* -o database
+skani search -d database query1.fa query2.fa ...
+```
+All-to-all comparison:
+```bash
+skani triangle genomes/*
+```
diff --git a/skesa/skesa.2.4.0_saute.1.3.0_2/Dockerfile b/skesa/skesa.2.4.0_saute.1.3.0_2/Dockerfile
new file mode 100644
index 000000000..92d6db85d
--- /dev/null
+++ b/skesa/skesa.2.4.0_saute.1.3.0_2/Dockerfile
@@ -0,0 +1,89 @@
+ARG SKESA_VER="skesa.2.4.0_saute.1.3.0_2"
+
+FROM ubuntu:jammy as builder
+
+ARG SKESA_VER
+
+RUN apt-get update && apt-get install -y \
+ ca-certificates \
+ procps \
+ wget \
+ make \
+ git \
+ g++ \
+ cmake \
+ libboost-filesystem-dev \
+ libboost-all-dev \
+ libmysqlclient-dev \
+ flex \
+ bison \
+ doxygen \
+ libxml2 \
+ default-jdk
+
+# get skesa, gfa_connector, and kmercounter binaries, rename them
+RUN wget -q https://github.com/ncbi/SKESA/archive/refs/tags/${SKESA_VER}.tar.gz && \
+ tar -xzvf ${SKESA_VER}.tar.gz && \
+ rm ${SKESA_VER}.tar.gz && \
+ cd SKESA-${SKESA_VER} && \
+ make
+
+# copying executables to easy-to-copy-later place
+RUN cp /SKESA-${SKESA_VER}/skesa /usr/local/bin/ && \
+ cp /SKESA-${SKESA_VER}/saute /usr/local/bin/ && \
+ cp /SKESA-${SKESA_VER}/saute_prot /usr/local/bin/ && \
+ cp /SKESA-${SKESA_VER}/gfa_connector /usr/local/bin/ && \
+ cp /SKESA-${SKESA_VER}/kmercounter /usr/local/bin/ && skesa -h
+
+FROM ubuntu:jammy as app
+
+ARG SKESA_VER
+
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="SKESA"
+LABEL software.version="${SKESA_VER}"
+LABEL description="Strategic Kmer Extension for Scrupulous Assemblies"
+LABEL website="https://github.com/ncbi/SKESA"
+LABEL lisence="https://github.com/ncbi/SKESA/blob/master/LICENSE"
+LABEL maintainer="Erin Young"
+LABEL maintainer.email="eriny@utah.gov"
+
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ ca-certificates \
+ procps \
+ wget && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+COPY --from=builder /usr/local/bin/* /usr/local/bin/
+
+# set PATH, set perl locale settings for singularity compatibility
+ENV PATH=${PATH} \
+ LC_ALL=C
+
+CMD skesa -h
+
+WORKDIR /data
+
+FROM app as test
+
+RUN skesa -h && \
+ skesa -v && \
+ saute -h && \
+ saute -v && \
+ saute_prot -h && \
+ saute_prot -v && \
+ gfa_connector -h && \
+ gfa_connector -v && \
+ kmercounter -h && \
+ kmercounter -v
+
+WORKDIR /test
+
+RUN skesa --sra_run SRR1510963 --hash_count --contigs_out /test/SRR1510963_skesa.fasta && \
+ head /test/SRR1510963_skesa.fasta
+
+RUN wget -q https://github.com/StaPH-B/docker-builds/raw/master/tests/SARS-CoV-2/SRR13957123_1.fastq.gz && \
+ wget -q https://github.com/StaPH-B/docker-builds/raw/master/tests/SARS-CoV-2/SRR13957123_2.fastq.gz && \
+ skesa --reads SRR13957123_1.fastq.gz,SRR13957123_2.fastq.gz --cores 4 --memory 48 > SRR13957123_skesa.fa && \
+ head SRR13957123_skesa.fa
diff --git a/skesa/skesa.2.4.0_saute.1.3.0_2/README.md b/skesa/skesa.2.4.0_saute.1.3.0_2/README.md
new file mode 100644
index 000000000..09c028fcc
--- /dev/null
+++ b/skesa/skesa.2.4.0_saute.1.3.0_2/README.md
@@ -0,0 +1,35 @@
+# skesa container
+
+Strategic K-mer Extension for Scrupulous Assemblies
+
+Main tool: [skesa](https://github.com/ncbi/SKESA)
+
+Included tools and their respective versions:
+- skesa: 2.5.1
+- saute: 1.3.0
+- saute_prot: 1.3.0
+- gfa_connector: 1.1.1
+- kmercounter: 2.1.1
+
+Code repository: https://github.com/ncbi/SKESA
+
+Basic information on how to use this tool:
+- executable: skesa
+- help: -h
+- version: -v
+- description: Short read assembly
+
+Full documentation: https://github.com/ncbi/SKESA
+
+## Example Usage
+
+```bash
+## Assemble PE, interleaved reads in your $PWD
+skesa --fastq /data/Ecoli-PE-interleaved.fastq.gz --use_paired_ends --cores 8 --contigs_out /data/Ecoli.skesa.contigs.fasta
+
+## Example from SKESA readme, download K. pneumoniae reads from SRA and assemble
+skesa --sra_run SRR1510963 --hash_count --contigs_out /data/SRR1510963_skesa.fasta
+
+## example using PE reads that are in your PWD
+skesa --cores 8 --memory 24 --reads /data/SRR11306390.sra_1.fastq /data/SRR11306390.sra_2.fastq --hash_count --contigs_out /data/SRR11306390.skesa.contigs.fasta
+```
diff --git a/snpeff/5.2a/Dockerfile b/snpeff/5.2a/Dockerfile
new file mode 100644
index 000000000..c69ea7989
--- /dev/null
+++ b/snpeff/5.2a/Dockerfile
@@ -0,0 +1,116 @@
+ARG SNPEFF_VER="5.2a"
+ARG SNPEFF_JAR_VER="5.2"
+ARG SNPSIFT_VER="5.1"
+
+## Builder ##
+FROM ubuntu:focal as builder
+
+ARG SNPEFF_VER
+ARG SNPEFF_JAR_VER
+ARG SNPSIFT_VER
+
+# Install open using apt
+RUN apt-get update && apt-get install -y software-properties-common && \
+ apt-get update && apt-get install -y \
+ openjdk-11-jre \
+ ant \
+ maven \
+ curl \
+ wget && apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+# Install dependencies and snpEff executables from the source code using Maven.
+RUN wget https://github.com/pcingola/SnpEff/archive/refs/tags/v${SNPEFF_VER}.tar.gz && \
+ tar -xvf v${SNPEFF_VER}.tar.gz && \
+ rm v${SNPEFF_VER}.tar.gz && \
+ cd /SnpEff-${SNPEFF_VER}/lib && \
+ # install Antlr
+ mvn install:install-file -Dfile=antlr-4.5.1-complete.jar -DgroupId=org.antlr -DartifactId=antlr -Dversion=4.5.1 -Dpackaging=jar && \
+ # install BioJava core
+ mvn install:install-file -Dfile=biojava3-core-3.0.7.jar -DgroupId=org.biojava -DartifactId=biojava3-core -Dversion=3.0.7 -Dpackaging=jar && \
+ # install BioJava structure
+ mvn install:install-file -Dfile=biojava3-structure-3.0.7.jar -DgroupId=org.biojava -DartifactId=biojava3-structure -Dversion=3.0.7 -Dpackaging=jar && \
+ cd /SnpEff-${SNPEFF_VER} && \
+ # skipping scripts_build/make.sh and instead putting relevant commands here
+ mvn clean compile assembly:single jar:jar && \
+ cp /SnpEff-${SNPEFF_VER}/target/SnpEff-${SNPEFF_JAR_VER}-jar-with-dependencies.jar /snpEff.jar && \
+ # The version for the dependencies matches that of SNPSIFT
+ mvn install:install-file -Dfile=/SnpEff-${SNPEFF_VER}/target/SnpEff-${SNPEFF_JAR_VER}.jar -DgroupId=org.snpeff -DartifactId=SnpEff -Dversion=${SNPSIFT_VER} -Dpackaging=jar -DgeneratePom=true --quiet && \
+ mkdir /data
+
+# Install dependencies and SnpSift executables from the source code using Maven.
+RUN wget https://github.com/pcingola/SnpSift/archive/refs/tags/v${SNPSIFT_VER}.tar.gz && \
+ tar -xvf v${SNPSIFT_VER}.tar.gz && \
+ rm v${SNPSIFT_VER}.tar.gz && \
+ cd /SnpSift-${SNPSIFT_VER} && \
+ mvn clean compile assembly:single jar:jar && \
+ cp target/SnpSift-${SNPSIFT_VER}-jar-with-dependencies.jar /SnpSift.jar && \
+ mvn install:install-file -Dfile=target/SnpSift-${SNPSIFT_VER}.jar -DgroupId=org.snpsift -DartifactId=SnpSift -Dversion=${SNPSIFT_VER} -Dpackaging=jar -DgeneratePom=true
+
+# Modify java executables and set environment variable $PATH
+RUN mv SnpEff-${SNPEFF_VER} snpEff && \
+ mv snpEff.jar snpEff && \
+ mv SnpSift.jar snpEff && \
+ chmod +x /snpEff/snpEff.jar && \
+ echo "#!/bin/bash" >> /snpEff/snpeff && \
+ chmod +x /snpEff/SnpSift.jar && \
+ echo "#!/bin/bash" >> /snpEff/snpsift && \
+ echo "exec java -jar /snpEff/snpEff.jar """"$""@"""" " >> /snpEff/snpeff && \
+ chmod +x /snpEff/snpeff && \
+ echo "exec java -jar /snpEff/SnpSift.jar """"$""@"""" " >> /snpEff/snpsift && \
+ chmod +x /snpEff/snpsift
+
+# Modify scripts to jar location
+RUN for file in $(grep -iw "snpEff.jar" /snpEff/scripts/*sh | cut -f 1 -d ":" ) ; do cat $file | sed 's/snpEff.jar/\/snpEff\/snpEff.jar/g' > $file.tmp ; mv $file.tmp $file ; done && \
+ for file in $(grep -iw "SnpSift.jar" /snpEff/scripts/*sh | cut -f 1 -d ":" ) ; do cat $file | sed 's/snpEff.jar/\/snpEff\/SnpSift.jar/g' > $file.tmp ; mv $file.tmp $file ; done && \
+ chmod +x /snpEff/scripts/*sh
+
+## App ##
+FROM ubuntu:focal as app
+ARG SNPEFF_VER
+ARG SNPEFF_JAR_VER
+ARG SNPSIFT_VER
+
+# Metadata
+LABEL base.image="ubuntu:focal"
+LABEL dockerfile.version="1"
+LABEL software="SnpEff & SnpSift"
+LABEL software.version=${SNPEFF_VER}
+LABEL snpeff.jarfile.version=${SNPEFF_JAR_VER}
+LABEL snpsift.software.version=${SNPSIFT_VER}
+LABEL description="Genetic variant annotation and effect prediction toolbox."
+LABEL description.SnpSift="Used after SnpEff annotation to filter and manipulate annotated files."
+LABEL website="https://pcingola.github.io/SnpEff"
+LABEL license="https://github.com/pcingola/SnpEff/blob/master/LICENSE.md"
+LABEL maintainer="Tom Iverson"
+LABEL maintainer.email="tiverson@utah.gov"
+
+ARG DEBIAN_FRONTEND=noninteractive
+
+# perl, python2, and r are required for the scripts
+RUN apt-get update && apt-get install --no-install-recommends -y \
+ openjdk-11-jre-headless \
+ perl \
+ r-base \
+ python-is-python2 \
+ curl \
+ && apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+COPY --from=builder /snpEff/snpeff /snpEff/snpsift /snpEff/snpEff.jar /snpEff/SnpSift.jar /snpEff/snpEff.config /snpEff/
+COPY --from=builder /snpEff/scripts/ /snpEff/scripts/
+
+ENV PATH="${PATH}:/snpEff:/snpEff/scripts"
+
+CMD snpEff -h
+
+WORKDIR /data
+
+# Run test of annotation
+FROM app as test
+RUN apt-get update && apt-get install -y wget
+
+COPY test_snpeff_snpsift.sh .
+
+RUN bash test_snpeff_snpsift.sh
+
+# from issue https://github.com/StaPH-B/docker-builds/issues/760
+RUN buildDbNcbi.sh CP014866.1
diff --git a/snpeff/5.2a/README.md b/snpeff/5.2a/README.md
new file mode 100644
index 000000000..f57f8810c
--- /dev/null
+++ b/snpeff/5.2a/README.md
@@ -0,0 +1,50 @@
+# snpeff container
+Main tool: [snpeff](https://pcingola.github.io/SnpEff/)
+
+Additional tools:
+SNPSift version 5.1
+
+> Genomic variant annotations, and functional effect prediction toolbox.
+
+This Dockerfile has made an attempt to allow uses to use the scripts included with SnpEff. Not all the scripts are tested before deployment, so please [submit an issue](https://github.com/StaPH-B/docker-builds/issues) for any use-cases that aren't working with the corresponding error message.
+
+Command line options: [https://pcingola.github.io/SnpEff/se_commandline/](https://pcingola.github.io/SnpEff/se_commandline/)
+# Example Usage
+### This example was taken from the test written for this image using human reference genome HG-19 and demo.1kg.vcf.
+
+```{bash}
+
+# To view the list of available SnpEff databases that may be used for annotation.
+snpeff databases
+
+# Get annotation vcf file data.
+wget -nv https://sourceforge.net/projects/snpeff/files/demo.1kg.vcf -O demo.vcf
+
+# Inspect the first five lines of the demo.vcf file.
+grep -v "^#" demo.vcf | head -5 | tr "\t" "\ " | sed -e "s/.\{75\}/&\n/g"
+
+# Using SnpEff, download human genome reference hg19.
+snpeff download -v hg19
+
+# Annotate the demo.vcf file with the hg19 data.
+snpeff hg19 demo.vcf > annotated.vcf
+
+# Inspect the first five lines of the annotated.vcf file.
+grep -v "^#" annotated.vcf | head -5 | tr "\t" "\ " | sed -e "s/.\{75\}/&\n/g"
+
+# SnpSift is a toolbox that allows you to filter and manipulate annotated files.
+# Using SnpSift, filter out samples in the annotated.vcf file with quality less than 30.
+cat annotated.vcf | snpsift filter "(QUAL>=30)" > filtered.vcf
+
+# Inspect the first five lines of the filtered.vcf file.
+grep -v "^#" filtered.vcf | head -5 | tr "\t" "\ " | sed -e "s/.\{75\}/&\n/g"
+
+```
+
+Additional usage examples are available at [https://pcingola.github.io/SnpEff/examples/](https://pcingola.github.io/SnpEff/examples/)
+
+Additional SnpEff options and features are available at [https://pcingola.github.io/SnpEff/se_introduction/](https://pcingola.github.io/SnpEff/se_introduction/)
+
+Additional SnpSift options and features are available at [https://pcingola.github.io/SnpEff/ss_introduction/](https://pcingola.github.io/SnpEff/ss_introduction/)
+
+SnpEff and SnpSift can perform annotation, primary impact assessment and variants filtering, as well as many other tasks beyond the scope of this protocol. The software developers highly recommend reading their comprehensive documentation available [here](https://pcingola.github.io/SnpEff/adds/VCFannotationformat_v1.0.pdf)
diff --git a/snpeff/5.2a/test_snpeff_snpsift.sh b/snpeff/5.2a/test_snpeff_snpsift.sh
new file mode 100644
index 000000000..a47b3c619
--- /dev/null
+++ b/snpeff/5.2a/test_snpeff_snpsift.sh
@@ -0,0 +1,33 @@
+#!/bin/bash
+# This script is to test that the program SnpEff runs as expected.
+
+# Get annotation vcf file data.
+wget -nv https://sourceforge.net/projects/snpeff/files/demo.1kg.vcf -O demo.vcf
+
+# Inspect the first five lines of the demo.vcf file.
+echo "*****TAKE A LOOK AT THE FIRST 5 LINES OF THE DEMO.VCF FILE.*****"
+grep -v "^#" demo.vcf | head -5 | tr "\t" "\ " | sed -e "s/.\{75\}/&\n/g"
+
+# Download human genome reference hg19.
+snpeff download -v hg19
+
+# Annotate the demo.vcf file with the hg19 data.
+snpeff hg19 demo.vcf > annotated.vcf
+# More SnpEff options and features are available at https://pcingola.github.io/SnpEff/se_introduction/
+
+# Inspect the first five lines of the annotated.vcf file.
+echo "*****TAKE A LOOK AT THE FIRST 5 LINES OF THE ANNOTATED.VCF FILE.*****"
+grep -v "^#" annotated.vcf | head -5 | tr "\t" "\ " | sed -e "s/.\{75\}/&\n/g"
+
+# SnpSift is a toolbox that allows you to filter and manipulate annotated files.
+# Using SnpSift, filter out samples in the annotated.vcf file with quality less than 30.
+cat annotated.vcf | snpsift filter "(QUAL>=30)" > filtered.vcf
+# More SnpSift options and features are available at https://pcingola.github.io/SnpEff/ss_introduction/
+
+# Inspect the first five lines of the filtered.vcf file.
+echo "*****TAKE A LOOK AT THE FIRST 5 LINES OF THE FILTERED.VCF FILE.*****"
+grep -v "^#" filtered.vcf | head -5 | tr "\t" "\ " | sed -e "s/.\{75\}/&\n/g"
+
+echo "*****TEST IS COMPLETE.*****"
+
+
diff --git a/spades/4.0.0/Dockerfile b/spades/4.0.0/Dockerfile
new file mode 100644
index 000000000..1e11c0e71
--- /dev/null
+++ b/spades/4.0.0/Dockerfile
@@ -0,0 +1,49 @@
+FROM ubuntu:jammy as app
+
+# to make it easier to upgrade for new versions; ARG variables only persist during docker image build time
+ARG SPADES_VER="4.0.0"
+
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="SPAdes"
+LABEL software.version="${SPADES_VER}"
+LABEL description="de novo DBG genome assembler"
+LABEL website="https://github.com/ablab/spades"
+LABEL license="https://github.com/ablab/spades/blob/v3.15.3/assembler/LICENSE"
+LABEL maintainer="Curtis Kapsak"
+LABEL maintainer.email="kapsakcj@gmail.com"
+
+# install dependencies; cleanup apt garbage
+# python v3.8.10 is installed here; point 'python' to python3
+RUN apt-get update && apt-get install --no-install-recommends -y \
+ python3 \
+ python3-distutils \
+ wget \
+ pigz \
+ ca-certificates \
+ libgomp1 && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/* && \
+ update-alternatives --install /usr/bin/python python /usr/bin/python3 10
+
+# install SPAdes binary; make /data
+RUN wget -q https://github.com/ablab/spades/releases/download/v${SPADES_VER}/SPAdes-${SPADES_VER}-Linux.tar.gz && \
+ tar -xzf SPAdes-${SPADES_VER}-Linux.tar.gz && \
+ rm -r SPAdes-${SPADES_VER}-Linux.tar.gz && \
+ mkdir /data
+
+# set PATH and locale settings for singularity
+ENV LC_ALL=C.UTF-8 \
+ PATH="${PATH}:/SPAdes-${SPADES_VER}-Linux/bin"
+
+CMD spades.py --help
+
+WORKDIR /data
+
+# test layer
+FROM app as test
+
+# print version and run the supplied test flag
+RUN spades.py --version && spades.py --help
+
+# run the supplied test
+RUN spades.py --test
diff --git a/spades/4.0.0/README.md b/spades/4.0.0/README.md
new file mode 100644
index 000000000..af7af3d96
--- /dev/null
+++ b/spades/4.0.0/README.md
@@ -0,0 +1,26 @@
+# SPAdes
+
+Main tool: [SPAdes](https://github.com/ablab/spades)
+
+SPAdes genome assembler
+
+Additional tools:
+
+* python 3.8.10
+
+## Example commands
+
+```bash
+# Test with supplied E. coli data
+docker run --rm -u $(id -u):$(id -g) -v ${PWD}:/data staphb/spades:latest spades.py --test
+
+# paired-end Illumina reads are in the $PWD
+$ ls
+SRR7062227_1.fastq.gz SRR7062227_2.fastq.gz
+
+# assemble with your own data (broken into two lines for readability)
+docker run --rm -u $(id -u):$(id -g) -v ${PWD}:/data staphb/spades:latest \
+ spades.py -1 /data/SRR7062227_1.fastq.gz -2 /data/SRR7062227_2.fastq.gz -t 8 --isolate -o /data/SRR7062227-spades-output/
+```
+
+View full `spades` help options: `docker run --rm -u $(id -u):$(id -g) -v ${PWD}:/data staphb/spades:latest spades.py --help`
diff --git a/sratoolkit/3.0.7/Dockerfile b/sratoolkit/3.0.7/Dockerfile
new file mode 100644
index 000000000..8c5dd31d6
--- /dev/null
+++ b/sratoolkit/3.0.7/Dockerfile
@@ -0,0 +1,38 @@
+FROM ubuntu:jammy as app
+
+ARG SRATOOLKIT_VER="3.0.7"
+
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="SRA Toolkit"
+LABEL software.version="${SRATOOLKIT_VER}"
+LABEL description="Collection of tools and libraries for using data in the INSDC Sequence Read Archives"
+LABEL website="https://github.com/ncbi/sra-tools"
+LABEL license="https://github.com/ncbi/sra-tools/blob/master/LICENSE"
+LABEL maintainer="Curtis Kapsak"
+LABEL maintainer.email="pjx8@cdc.gov"
+LABEL maintainer2="Kutluhan Incekara"
+LABEL maintainer2.email="kutluhan.incekara@ct.gov"
+
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ wget \
+ ca-certificates &&\
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+RUN wget https://ftp-trace.ncbi.nlm.nih.gov/sra/sdk/${SRATOOLKIT_VER}/sratoolkit.${SRATOOLKIT_VER}-ubuntu64.tar.gz &&\
+ tar -xvf sratoolkit.${SRATOOLKIT_VER}-ubuntu64.tar.gz && rm sratoolkit.${SRATOOLKIT_VER}-ubuntu64.tar.gz
+
+ENV PATH="$PATH:/sratoolkit.${SRATOOLKIT_VER}-ubuntu64/bin"\
+ LC_ALL=C
+
+CMD prefetch -h && fastq-dump -h && fasterq-dump -h
+
+WORKDIR /data
+
+## Test ##
+FROM app as test
+
+RUN prefetch -h && fastq-dump -h && fasterq-dump -h
+
+RUN fastq-dump --stdout -X 2 SRR390728
+
diff --git a/sratoolkit/3.0.7/README.md b/sratoolkit/3.0.7/README.md
new file mode 100644
index 000000000..20370b420
--- /dev/null
+++ b/sratoolkit/3.0.7/README.md
@@ -0,0 +1,19 @@
+# SRA Toolkit container
+
+Main tool: [SRA Toolkit](https://hpc.nih.gov/apps/sratoolkit.html)
+
+Code repository: https://github.com/ncbi/sra-tools
+
+Basic information on how to use this tool:
+- executable: prefetch, fastq-dump, fasterq-dump, ...
+- help: -h, --help
+- version: -V, --version
+- description: The SRA Toolkit and SDK from NCBI is a collection of tools and libraries for using data in the INSDC Sequence Read Archives.
+
+Full documentation: https://github.com/ncbi/sra-tools/wiki
+
+## Example Usage
+
+```bash
+fasterq-dump SRR000001
+```
diff --git a/staramr/0.10.0/Dockerfile b/staramr/0.10.0/Dockerfile
new file mode 100644
index 000000000..08fc12b36
--- /dev/null
+++ b/staramr/0.10.0/Dockerfile
@@ -0,0 +1,109 @@
+# base image
+FROM python:3.9-slim as app
+
+ARG STARAMR_VER="0.10.0"
+ARG MLST_VER="2.23.0"
+ARG ANY2FASTA_VERSION=0.4.2
+
+LABEL base.image="python:3.9-slim"
+LABEL dockerfile.version="1"
+LABEL software="staramr"
+LABEL software.version="${STARAMR_VER}"
+LABEL description="staramr scans bacterial genome contigs for AMR genes and plasmids"
+LABEL website="https://github.com/phac-nml/staramr"
+LABEL license="https://github.com/phac-nml/staramr/blob/master/LICENSE"
+LABEL maintainer="Rachael St. Jacques"
+LABEL maintainer.email="rachael.stjacques@dgs.virginia.gov"
+LABEL maintainer2="Curtis Kapsak"
+LABEL maintainer2.email="curtis.kapsak@theiagen.com"
+
+# install dependencies via apt; cleanup apt garbage
+# ncbi-blast+ is v2.9.0 in ubuntu:focal (as of August 2022)
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ git \
+ wget \
+ libmoo-perl \
+ liblist-moreutils-perl \
+ libjson-perl \
+ gzip \
+ file \
+ ncbi-blast+ \
+ procps \
+ ca-certificates && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+# any2fasta
+RUN wget -q https://github.com/tseemann/any2fasta/archive/refs/tags/v${ANY2FASTA_VERSION}.tar.gz && \
+ tar -xvf v${ANY2FASTA_VERSION}.tar.gz && \
+ rm v${ANY2FASTA_VERSION}.tar.gz && \
+ cd any2fasta-${ANY2FASTA_VERSION} && \
+ chmod +x any2fasta
+
+# mlst
+# apt dependencies: wget libmoo-perl liblist-moreutils-perl libjson-perl gzip file
+# also requires blast 2.9.0 or greater
+RUN wget -q https://github.com/tseemann/mlst/archive/v${MLST_VER}.tar.gz && \
+ tar -xzf v${MLST_VER}.tar.gz && \
+ rm v${MLST_VER}.tar.gz
+
+# staramr; make /data
+RUN wget -q https://github.com/phac-nml/staramr/archive/refs/tags/${STARAMR_VER}.tar.gz && \
+ pip install ${STARAMR_VER}.tar.gz && \
+ rm -rf ${STARAMR_VER}.tar.gz && \
+ mkdir /data
+
+# set $PATH and locale settings for singularity
+ENV PATH="${PATH}:/mlst-${MLST_VER}/bin:/any2fasta-${ANY2FASTA_VERSION}/" \
+ LC_ALL=C
+
+# update staramr default databases and print db info
+RUN staramr db update -d && staramr db info
+
+CMD staramr --help
+
+WORKDIR /data
+
+##### staramr db information in container at time of docker image build #####
+# 6.719 resfinder_db_dir = /usr/local/lib/python3.9/site-packages/staramr/databases/data/update/resfinder
+# 6.719 resfinder_db_url = https://bitbucket.org/genomicepidemiology/resfinder_db.git
+# 6.719 resfinder_db_commit = 97d1fe0cd0a119172037f6bdb29f8a1c7c6e6019
+# 6.719 resfinder_db_date = Sun, 28 Jan 2024 15:59
+# 6.719 pointfinder_db_dir = /usr/local/lib/python3.9/site-packages/staramr/databases/data/update/pointfinder
+# 6.719 pointfinder_db_url = https://bitbucket.org/genomicepidemiology/pointfinder_db.git
+# 6.719 pointfinder_db_commit = ce3c9aa002e9b57bf07412ae03c8a23ff1a2f95a
+# 6.719 pointfinder_db_date = Mon, 15 Jan 2024 10:24
+# 6.719 pointfinder_organisms_all = campylobacter, enterococcus_faecalis, enterococcus_faecium, escherichia_coli, helicobacter_pylori, klebsiella, mycobacterium_tuberculosis, neisseria_gonorrhoeae, plasmodium_falciparum, salmonella, staphylococcus_aureus
+# 6.719 pointfinder_organisms_valid = campylobacter, enterococcus_faecalis, enterococcus_faecium, escherichia_coli, helicobacter_pylori, salmonella
+# 6.719 plasmidfinder_db_dir = /usr/local/lib/python3.9/site-packages/staramr/databases/data/update/plasmidfinder
+# 6.719 plasmidfinder_db_url = https://bitbucket.org/genomicepidemiology/plasmidfinder_db.git
+# 6.719 plasmidfinder_db_commit = 81c11f4f2209ff12cb74b486bad4c5ede54418ad
+# 6.719 plasmidfinder_db_date = Mon, 04 Dec 2023 13:21
+# 6.719 mlst_version = 2.23.0
+# 6.719 pointfinder_gene_drug_version = 072621.2
+# 6.719 resfinder_gene_drug_version = 072621
+
+FROM app as test
+
+RUN staramr --help && staramr --version
+
+# download the FASTA file for ${GENBANK_ACCESSION}
+# Salmonella Enterica isolate from PHE-UK: https://www.ncbi.nlm.nih.gov/assembly/GCA_010941835.1/
+RUN wget -q https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/010/941/835/GCA_010941835.1_PDT000052640.3/GCA_010941835.1_PDT000052640.3_genomic.fna.gz && \
+ gzip -d GCA_010941835.1_PDT000052640.3_genomic.fna.gz
+
+# run staramr on the second genome mentioned on staramr's documentation; print resulting TSVs
+RUN staramr search -o /data/staramr-test-Salmonella \
+ --pointfinder-organism salmonella \
+ --plasmidfinder-database-type enterobacteriales \
+ /data/GCA_010941835.1_PDT000052640.3_genomic.fna
+
+# installing bsdmainutils for installing "column" command
+RUN apt-get update && apt-get install -y --no-install-recommends bsdmainutils
+
+# neatly print out resulting/output TSVs
+RUN column -t /data/staramr-test-Salmonella/mlst.tsv && echo && \
+ column -t /data/staramr-test-Salmonella/pointfinder.tsv && echo && \
+ column -t /data/staramr-test-Salmonella/plasmidfinder.tsv && echo && \
+ column -t /data/staramr-test-Salmonella/resfinder.tsv && echo && \
+ column -t /data/staramr-test-Salmonella/detailed_summary.tsv && echo && \
+ column -t /data/staramr-test-Salmonella/summary.tsv
diff --git a/staramr/0.10.0/README.md b/staramr/0.10.0/README.md
new file mode 100644
index 000000000..f5657fc8f
--- /dev/null
+++ b/staramr/0.10.0/README.md
@@ -0,0 +1,47 @@
+# staramr container
+
+Main tool : [staramr](https://github.com/phac-nml/staramr)
+
+Additional tools:
+
+- mlst 2.23.0
+- ncbi-blast+ 2.9.0
+- any2fasta 0.4.2
+- Databases for PlasmidFinder, PointFinder, ResFinder
+
+Database version information:
+
+```
+##### staramr db information at time of docker image build #####
+resfinder_db_dir = /usr/local/lib/python3.9/site-packages/staramr/databases/data/update/resfinder
+resfinder_db_url = https://bitbucket.org/genomicepidemiology/resfinder_db.git
+resfinder_db_commit = 97d1fe0cd0a119172037f6bdb29f8a1c7c6e6019
+resfinder_db_date = Sun, 28 Jan 2024 15:59
+pointfinder_db_dir = /usr/local/lib/python3.9/site-packages/staramr/databases/data/update/pointfinder
+pointfinder_db_url = https://bitbucket.org/genomicepidemiology/pointfinder_db.git
+pointfinder_db_commit = ce3c9aa002e9b57bf07412ae03c8a23ff1a2f95a
+pointfinder_db_date = Mon, 15 Jan 2024 10:24
+pointfinder_organisms_all = campylobacter, enterococcus_faecalis, enterococcus_faecium, escherichia_coli, helicobacter_pylori, klebsiella, mycobacterium_tuberculosis, neisseria_gonorrhoeae, plasmodium_falciparum, salmonella, staphylococcus_aureus
+pointfinder_organisms_valid = campylobacter, enterococcus_faecalis, enterococcus_faecium, escherichia_coli, helicobacter_pylori, salmonella
+plasmidfinder_db_dir = /usr/local/lib/python3.9/site-packages/staramr/databases/data/update/plasmidfinder
+plasmidfinder_db_url = https://bitbucket.org/genomicepidemiology/plasmidfinder_db.git
+plasmidfinder_db_commit = 81c11f4f2209ff12cb74b486bad4c5ede54418ad
+plasmidfinder_db_date = Mon, 04 Dec 2023 13:21
+mlst_version = 2.23.0
+pointfinder_gene_drug_version = 072621.2
+resfinder_gene_drug_version = 072621
+```
+
+Full documentation: https://github.com/phac-nml/staramr
+
+staramr scans bacterial genome contigs for AMR genes and plasmids
+
+## Example Usage
+
+```bash
+# run "staramr search" on a genome assembly (broken into multiple lines for readability)
+staramr search -o /data/staramrtest-Salmonella \
+ --pointfinder-organism salmonella \
+ --plasmidfinder-database-type enterobacteriales \
+ /data/salmonella_enterica_assembly.fasta
+```
diff --git a/sylph/0.4.1/Dockerfile b/sylph/0.4.1/Dockerfile
new file mode 100644
index 000000000..20d365b2c
--- /dev/null
+++ b/sylph/0.4.1/Dockerfile
@@ -0,0 +1,64 @@
+ARG SYLPH_VER="0.4.1"
+
+## Builder ##
+FROM rust:1.74 as builder
+
+ARG SYLPH_VER
+
+RUN apt update && \
+ apt install -y cmake && \
+ wget https://github.com/bluenote-1577/sylph/archive/refs/tags/v${SYLPH_VER}.tar.gz && \
+ tar -xvf v${SYLPH_VER}.tar.gz && \
+ cd sylph-${SYLPH_VER} && \
+ cargo install --path . --root ~/.cargo && \
+ chmod +x /root/.cargo/bin/sylph
+
+## App ##
+FROM ubuntu:22.04 as app
+
+ARG SYLPH_VER
+
+LABEL base.image="ubuntu:22.04"
+LABEL dockerfile.version="1"
+LABEL software="sylph"
+LABEL software.version=${SYLPH_VER}
+LABEL description="sylph is a program that can perform ultrafast (1) ANI querying or (2) metagenomic profiling for metagenomic shotgun samples."
+LABEL website="https://github.com/bluenote-1577/sylph"
+LABEL license="https://github.com/bluenote-1577/sylph/blob/main/LICENSE"
+LABEL maintainer="Stephen Turner"
+LABEL maintainer.email="vustephen@gmail.com"
+
+# copy app from builder stage
+COPY --from=builder /root/.cargo/bin/sylph /usr/local/bin/sylph
+
+# default run command
+CMD sylph -h
+
+# singularity compatibility
+ENV LC_ALL=C
+
+# final working directory in app layer is /data
+WORKDIR /data
+
+## Test ##
+FROM app as test
+
+# making sure sylph is in PATH
+RUN sylph -h
+
+ARG SYLPH_VER
+
+RUN apt update && apt install -y wget
+
+RUN wget -q https://github.com/bluenote-1577/sylph/raw/v${SYLPH_VER}/test_files/e.coli-EC590.fasta && \
+ wget -q https://github.com/bluenote-1577/sylph/raw/v${SYLPH_VER}/test_files/e.coli-K12.fasta && \
+ wget -q https://github.com/bluenote-1577/sylph/raw/v${SYLPH_VER}/test_files/e.coli-o157.fasta && \
+ wget -q https://github.com/bluenote-1577/sylph/raw/v${SYLPH_VER}/test_files/o157_reads.fastq
+
+RUN date && \
+ sylph sketch -i e.coli-*.fasta -o database && \
+ sylph sketch o157_reads.fastq && \
+ sylph query database.syldb *.sylsp > ani_queries.tsv && \
+ sylph profile database.syldb *.sylsp > profiling.tsv && \
+ cat *.tsv && \
+ date
diff --git a/sylph/0.4.1/README.md b/sylph/0.4.1/README.md
new file mode 100644
index 000000000..74114d697
--- /dev/null
+++ b/sylph/0.4.1/README.md
@@ -0,0 +1,28 @@
+# sylph container
+
+Main tool : [sylph](https://github.com/bluenote-1577/sylph)
+
+Full documentation: https://github.com/bluenote-1577/sylph/wiki
+
+sylph is a program that can perform ultrafast (1) ANI querying or (2) metagenomic profiling for metagenomic shotgun samples.
+
+## Example Usage
+
+```bash
+# all fasta -> one *.syldb; fasta are assumed to be genomes
+sylph sketch genome1.fa genome2.fa -o database
+#EQUIVALENT: sylph sketch -g genome1.fa genome2.fa -o database
+
+# multi-sample sketching of paired reads
+sylph sketch -1 A_1.fq B_1.fq -2 A_2.fq B_2.fq -d output_read_sketch_folder
+
+# multi-sample sketching for single end reads, fastq are assumed to be reads
+sylph sketch reads.fq
+#EQUIVALENT: sylph sketch -r reads.fq
+
+# ANI querying
+sylph query database.syldb *.sylsp -t (threads) > ani_queries.tsv
+
+# taxonomic profiling
+sylph profile database.syldb *.sylsp -t (threads) > profiling.tsv
+```
\ No newline at end of file
diff --git a/sylph/0.5.1/Dockerfile b/sylph/0.5.1/Dockerfile
new file mode 100644
index 000000000..c4983261f
--- /dev/null
+++ b/sylph/0.5.1/Dockerfile
@@ -0,0 +1,64 @@
+ARG SYLPH_VER="0.5.1"
+
+## Builder ##
+FROM rust:1.74 as builder
+
+ARG SYLPH_VER
+
+RUN apt update && \
+ apt install -y cmake && \
+ wget -q https://github.com/bluenote-1577/sylph/archive/refs/tags/v${SYLPH_VER}.tar.gz && \
+ tar -xvf v${SYLPH_VER}.tar.gz && \
+ cd sylph-${SYLPH_VER} && \
+ cargo install --path . --root ~/.cargo && \
+ chmod +x /root/.cargo/bin/sylph
+
+## App ##
+FROM ubuntu:jammy as app
+
+ARG SYLPH_VER
+
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="sylph"
+LABEL software.version=${SYLPH_VER}
+LABEL description="sylph is a program that can perform ultrafast (1) ANI querying or (2) metagenomic profiling for metagenomic shotgun samples."
+LABEL website="https://github.com/bluenote-1577/sylph"
+LABEL license="https://github.com/bluenote-1577/sylph/blob/main/LICENSE"
+LABEL maintainer="Stephen Turner"
+LABEL maintainer.email="vustephen@gmail.com"
+
+# copy app from builder stage
+COPY --from=builder /root/.cargo/bin/sylph /usr/local/bin/sylph
+
+# default run command
+CMD sylph -h
+
+# singularity compatibility
+ENV LC_ALL=C
+
+# final working directory in app layer is /data
+WORKDIR /data
+
+## Test ##
+FROM app as test
+
+# making sure sylph is in PATH
+RUN sylph -h
+
+ARG SYLPH_VER
+
+RUN apt update && apt install -y wget
+
+RUN wget -q https://github.com/bluenote-1577/sylph/raw/v${SYLPH_VER}/test_files/e.coli-EC590.fasta && \
+ wget -q https://github.com/bluenote-1577/sylph/raw/v${SYLPH_VER}/test_files/e.coli-K12.fasta && \
+ wget -q https://github.com/bluenote-1577/sylph/raw/v${SYLPH_VER}/test_files/e.coli-o157.fasta && \
+ wget -q https://github.com/bluenote-1577/sylph/raw/v${SYLPH_VER}/test_files/o157_reads.fastq
+
+RUN date && \
+ sylph sketch -i e.coli-*.fasta -o database && \
+ sylph sketch o157_reads.fastq && \
+ sylph query database.syldb *.sylsp > ani_queries.tsv && \
+ sylph profile database.syldb *.sylsp > profiling.tsv && \
+ cat *.tsv && \
+ date
diff --git a/sylph/0.5.1/README.md b/sylph/0.5.1/README.md
new file mode 100644
index 000000000..74114d697
--- /dev/null
+++ b/sylph/0.5.1/README.md
@@ -0,0 +1,28 @@
+# sylph container
+
+Main tool : [sylph](https://github.com/bluenote-1577/sylph)
+
+Full documentation: https://github.com/bluenote-1577/sylph/wiki
+
+sylph is a program that can perform ultrafast (1) ANI querying or (2) metagenomic profiling for metagenomic shotgun samples.
+
+## Example Usage
+
+```bash
+# all fasta -> one *.syldb; fasta are assumed to be genomes
+sylph sketch genome1.fa genome2.fa -o database
+#EQUIVALENT: sylph sketch -g genome1.fa genome2.fa -o database
+
+# multi-sample sketching of paired reads
+sylph sketch -1 A_1.fq B_1.fq -2 A_2.fq B_2.fq -d output_read_sketch_folder
+
+# multi-sample sketching for single end reads, fastq are assumed to be reads
+sylph sketch reads.fq
+#EQUIVALENT: sylph sketch -r reads.fq
+
+# ANI querying
+sylph query database.syldb *.sylsp -t (threads) > ani_queries.tsv
+
+# taxonomic profiling
+sylph profile database.syldb *.sylsp -t (threads) > profiling.tsv
+```
\ No newline at end of file
diff --git a/sylph/0.6.0/Dockerfile b/sylph/0.6.0/Dockerfile
new file mode 100644
index 000000000..df2754921
--- /dev/null
+++ b/sylph/0.6.0/Dockerfile
@@ -0,0 +1,63 @@
+ARG SYLPH_VER="0.6.0"
+
+## Builder ##
+FROM rust:1.74 as builder
+
+ARG SYLPH_VER
+
+RUN apt update && \
+ apt install -y cmake && \
+ wget -q https://github.com/bluenote-1577/sylph/archive/refs/tags/v${SYLPH_VER}.tar.gz && \
+ tar -xvf v${SYLPH_VER}.tar.gz && \
+ cd sylph-${SYLPH_VER} && \
+ cargo install --path . --root ~/.cargo && \
+ chmod +x /root/.cargo/bin/sylph
+
+## App ##
+FROM ubuntu:jammy as app
+
+ARG SYLPH_VER
+
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="sylph"
+LABEL software.version=${SYLPH_VER}
+LABEL description="sylph is a program that can perform ultrafast (1) ANI querying or (2) metagenomic profiling for metagenomic shotgun samples."
+LABEL website="https://github.com/bluenote-1577/sylph"
+LABEL license="https://github.com/bluenote-1577/sylph/blob/main/LICENSE"
+LABEL maintainer="Stephen Turner"
+LABEL maintainer.email="vustephen@gmail.com"
+
+# copy app from builder stage
+COPY --from=builder /root/.cargo/bin/sylph /usr/local/bin/sylph
+
+# default run command
+CMD sylph -h
+
+# singularity compatibility
+ENV LC_ALL=C
+
+# final working directory in app layer is /data
+WORKDIR /data
+
+## Test ##
+FROM app as test
+
+# making sure sylph is in PATH
+RUN sylph -h
+
+ARG SYLPH_VER
+
+RUN apt update && apt install -y wget
+
+WORKDIR /test
+
+COPY --from=builder /sylph-${SYLPH_VER}/test_files/* /test
+
+RUN date && \
+ sylph sketch -i e.coli-*.fasta.gz -o database && \
+ sylph sketch o157_reads.fastq.gz && \
+ sylph query database.syldb *.sylsp > ani_queries.tsv && \
+ sylph profile database.syldb *.sylsp > profiling.tsv && \
+ cat *.tsv && \
+ date
diff --git a/sylph/0.6.0/README.md b/sylph/0.6.0/README.md
new file mode 100644
index 000000000..74114d697
--- /dev/null
+++ b/sylph/0.6.0/README.md
@@ -0,0 +1,28 @@
+# sylph container
+
+Main tool : [sylph](https://github.com/bluenote-1577/sylph)
+
+Full documentation: https://github.com/bluenote-1577/sylph/wiki
+
+sylph is a program that can perform ultrafast (1) ANI querying or (2) metagenomic profiling for metagenomic shotgun samples.
+
+## Example Usage
+
+```bash
+# all fasta -> one *.syldb; fasta are assumed to be genomes
+sylph sketch genome1.fa genome2.fa -o database
+#EQUIVALENT: sylph sketch -g genome1.fa genome2.fa -o database
+
+# multi-sample sketching of paired reads
+sylph sketch -1 A_1.fq B_1.fq -2 A_2.fq B_2.fq -d output_read_sketch_folder
+
+# multi-sample sketching for single end reads, fastq are assumed to be reads
+sylph sketch reads.fq
+#EQUIVALENT: sylph sketch -r reads.fq
+
+# ANI querying
+sylph query database.syldb *.sylsp -t (threads) > ani_queries.tsv
+
+# taxonomic profiling
+sylph profile database.syldb *.sylsp -t (threads) > profiling.tsv
+```
\ No newline at end of file
diff --git a/sylph/0.6.1/Dockerfile b/sylph/0.6.1/Dockerfile
new file mode 100644
index 000000000..936535c3e
--- /dev/null
+++ b/sylph/0.6.1/Dockerfile
@@ -0,0 +1,63 @@
+ARG SYLPH_VER="0.6.1"
+
+## Builder ##
+FROM rust:1.74 as builder
+
+ARG SYLPH_VER
+
+RUN apt update && \
+ apt install -y cmake && \
+ wget -q https://github.com/bluenote-1577/sylph/archive/refs/tags/v${SYLPH_VER}.tar.gz && \
+ tar -xvf v${SYLPH_VER}.tar.gz && \
+ cd sylph-${SYLPH_VER} && \
+ cargo install --path . --root ~/.cargo && \
+ chmod +x /root/.cargo/bin/sylph
+
+## App ##
+FROM ubuntu:jammy as app
+
+ARG SYLPH_VER
+
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="sylph"
+LABEL software.version=${SYLPH_VER}
+LABEL description="sylph is a program that can perform ultrafast (1) ANI querying or (2) metagenomic profiling for metagenomic shotgun samples."
+LABEL website="https://github.com/bluenote-1577/sylph"
+LABEL license="https://github.com/bluenote-1577/sylph/blob/main/LICENSE"
+LABEL maintainer="Stephen Turner"
+LABEL maintainer.email="vustephen@gmail.com"
+
+# copy app from builder stage
+COPY --from=builder /root/.cargo/bin/sylph /usr/local/bin/sylph
+
+# default run command
+CMD sylph -h
+
+# singularity compatibility
+ENV LC_ALL=C
+
+# final working directory in app layer is /data
+WORKDIR /data
+
+## Test ##
+FROM app as test
+
+# making sure sylph is in PATH
+RUN sylph -h
+
+ARG SYLPH_VER
+
+RUN apt update && apt install -y wget
+
+WORKDIR /test
+
+COPY --from=builder /sylph-${SYLPH_VER}/test_files/* /test
+
+RUN date && \
+ sylph sketch -i e.coli-*.fasta.gz -o database && \
+ sylph sketch o157_reads.fastq.gz && \
+ sylph query database.syldb *.sylsp > ani_queries.tsv && \
+ sylph profile database.syldb *.sylsp > profiling.tsv && \
+ cat *.tsv && \
+ date
diff --git a/sylph/0.6.1/README.md b/sylph/0.6.1/README.md
new file mode 100644
index 000000000..74114d697
--- /dev/null
+++ b/sylph/0.6.1/README.md
@@ -0,0 +1,28 @@
+# sylph container
+
+Main tool : [sylph](https://github.com/bluenote-1577/sylph)
+
+Full documentation: https://github.com/bluenote-1577/sylph/wiki
+
+sylph is a program that can perform ultrafast (1) ANI querying or (2) metagenomic profiling for metagenomic shotgun samples.
+
+## Example Usage
+
+```bash
+# all fasta -> one *.syldb; fasta are assumed to be genomes
+sylph sketch genome1.fa genome2.fa -o database
+#EQUIVALENT: sylph sketch -g genome1.fa genome2.fa -o database
+
+# multi-sample sketching of paired reads
+sylph sketch -1 A_1.fq B_1.fq -2 A_2.fq B_2.fq -d output_read_sketch_folder
+
+# multi-sample sketching for single end reads, fastq are assumed to be reads
+sylph sketch reads.fq
+#EQUIVALENT: sylph sketch -r reads.fq
+
+# ANI querying
+sylph query database.syldb *.sylsp -t (threads) > ani_queries.tsv
+
+# taxonomic profiling
+sylph profile database.syldb *.sylsp -t (threads) > profiling.tsv
+```
\ No newline at end of file
diff --git a/tbprofiler/5.0.1/Dockerfile b/tbprofiler/5.0.1/Dockerfile
new file mode 100644
index 000000000..73188bc1f
--- /dev/null
+++ b/tbprofiler/5.0.1/Dockerfile
@@ -0,0 +1,62 @@
+FROM mambaorg/micromamba:1.3.0 as app
+
+USER root
+WORKDIR /
+
+ARG TBPROFILER_VER="5.0.1"
+
+# this version is the shortened commit hash on the `master` branch here https://github.com/jodyphelan/tbdb/
+# commits are found on https://github.com/jodyphelan/tbdb/commits/master
+# this was the latest commit as of 2023-10-26
+ARG TBDB_VER="e25540b"
+
+# LABEL instructions tag the image with metadata that might be important to the user
+LABEL base.image="micromamba:1.3.0"
+LABEL dockerfile.version="1"
+LABEL software="tbprofiler"
+LABEL software.version="${TBPROFILER_VER}"
+LABEL description="The pipeline aligns reads to the H37Rv reference using bowtie2, BWA or minimap2 and then calls variants using bcftools. These variants are then compared to a drug-resistance database."
+LABEL website="https://github.com/jodyphelan/TBProfiler/"
+LABEL license="https://github.com/jodyphelan/TBProfiler/blob/master/LICENSE"
+LABEL maintainer="John Arnn"
+LABEL maintainer.email="jarnn@utah.gov"
+LABEL maintainer2="Curtis Kapsak"
+LABEL maintainer2.email="kapsakcj@gmail.com"
+
+# Install dependencies via apt-get; cleanup apt garbage
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ wget \
+ ca-certificates \
+ procps && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+# install tb-profiler via bioconda; install into 'base' conda env
+RUN micromamba install --yes --name base --channel conda-forge --channel bioconda \
+ tb-profiler=${TBPROFILER_VER} && \
+ micromamba clean --all --yes
+
+# hardcode 'base' env bin into PATH, so conda env does not have to be "activated" at run time
+ENV PATH="/opt/conda/bin:${PATH}"
+
+# Version of database can be confirmed at /opt/conda/share/tbprofiler/tbdb.version.json
+# can also run 'tb-profiler list_db' to find the same version info
+# In 5.0.1 updating_tbdb does not work with tb-profiler update_tbdb --commit ${TBDB_VER}
+RUN tb-profiler update_tbdb --commit ${TBDB_VER}
+
+WORKDIR /data
+
+# Added command to bring help menu up upon running container.
+CMD tb-profiler
+
+# test stage
+FROM app as test
+
+# checking if tool is in PATH
+RUN tb-profiler && tb-profiler version
+
+WORKDIR /tests
+
+# download some TB FASTQs and run through tb-profiler
+RUN wget ftp://ftp.sra.ebi.ac.uk/vol1/fastq/ERR166/009/ERR1664619/ERR1664619_1.fastq.gz && \
+ wget ftp://ftp.sra.ebi.ac.uk/vol1/fastq/ERR166/009/ERR1664619/ERR1664619_2.fastq.gz && \
+ tb-profiler profile -1 ERR1664619_1.fastq.gz -2 ERR1664619_2.fastq.gz -t 2 -p ERR1664619 --txt
diff --git a/tbprofiler/5.0.1/README.md b/tbprofiler/5.0.1/README.md
new file mode 100644
index 000000000..80dae452a
--- /dev/null
+++ b/tbprofiler/5.0.1/README.md
@@ -0,0 +1,58 @@
+# TBProfiler Container
+
+Main tool: [TBProfiler](https://github.com/jodyphelan/TBProfiler)
+
+The pipeline aligns reads to the H37Rv reference using bowtie2, BWA or minimap2 and then calls variants using bcftools. These variants are then compared to a drug-resistance database. It also predicts the number of reads supporting drug resistance variants as an insight into hetero-resistance.
+
+## Database
+
+This tool relies on a database to run. The version (AKA git commit hash) of the database that is included in the docker image is `c2fb9a2`. This is from the GitHub repository https://github.com/jodyphelan/tbdb. This can be confirmed in the json file: `/opt/conda/share/tbprofiler/tbdb.version.json`:
+
+```bash
+$ grep 'commit' /opt/conda/share/tbprofiler/tbdb.version.json
+{"name": "tbdb", "commit": "5f3c51e", "Merge": "b1a2549 abddb8e", "Author": "Jody Phelan ", "Date": "Thu Jan 19 10:47:32 2023 +0000"}
+```
+
+Additionally you can run the command `tb-profiler list_db` to list the same information
+
+```bash
+$ tb-profiler list_db
+tbdb 5f3c51e Jody Phelan Thu Jan 19 10:47:32 2023 +0000 /opt/conda/share/tbprofiler/tbdb
+```
+
+## Additional included tools/dependencies
+
+- bedtools 2.30.0
+- gatk4 4.3.0.0
+- kmc 3.2.1
+- pathogen-profiler 2.0.4
+- perl 5.32.1
+- python 3.9.9
+- trimmomatic 0.39
+- bwa 0.7.17
+- minimap2 2.16
+- samtools 1.12
+- bcftools 1.12
+- freebayes 1.3.5
+- tqdm 4.32.2
+- parallel v20190522
+- samclip 0.4.0
+- snpeff 5.1
+
+## Example Usage
+
+Run whole pipeline on Illumina paired-end reads:
+
+```bash
+tb-profiler profile -1 ERR1664619_1.fastq.gz -2 ERR1664619_2.fastq.gz -t 4 -p ERR1664619 --txt
+```
+
+Make alternative database:
+
+```bash
+tb-profiler create_db --prefix
+tb-profiler load_library --prefix
+```
+
+## Updates
+Release 5.0.1 implemented sqlite3 database locking with https://py-filelock.readthedocs.io/en/latest/index.html. This should fix issues using it over network filing systems (NFS). For more information, official documentation can be found [here.](https://jodyphelan.gitbook.io/tb-profiler/)
diff --git a/tbprofiler/6.2.0/Dockerfile b/tbprofiler/6.2.0/Dockerfile
new file mode 100644
index 000000000..853afc4ec
--- /dev/null
+++ b/tbprofiler/6.2.0/Dockerfile
@@ -0,0 +1,66 @@
+FROM mambaorg/micromamba:1.5.8 as app
+
+USER root
+WORKDIR /
+
+ARG TBPROFILER_VER="6.2.0"
+
+# this version is the shortened commit hash on the `master` branch here https://github.com/jodyphelan/tbdb/
+# commits are found on https://github.com/jodyphelan/tbdb/commits/master
+# this was the latest commit as of 2024-04-09
+ARG TBDB_COMMIT="e6a00405e02296fd3f0211fc4c4b18995b826d3b"
+
+# LABEL instructions tag the image with metadata that might be important to the user
+LABEL base.image="micromamba:1.5.8"
+LABEL dockerfile.version="1"
+LABEL software="tbprofiler"
+LABEL software.version="${TBPROFILER_VER}"
+LABEL description="The pipeline aligns reads to the H37Rv reference using bowtie2, BWA or minimap2 and then calls variants using bcftools. These variants are then compared to a drug-resistance database."
+LABEL website="https://github.com/jodyphelan/TBProfiler/"
+LABEL license="https://github.com/jodyphelan/TBProfiler/blob/master/LICENSE"
+LABEL maintainer="John Arnn"
+LABEL maintainer.email="jarnn@utah.gov"
+LABEL maintainer2="Curtis Kapsak"
+LABEL maintainer2.email="kapsakcj@gmail.com"
+
+# Install dependencies via apt-get; cleanup apt garbage
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ wget \
+ ca-certificates \
+ procps && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+# install tb-profiler via bioconda; install into 'base' conda env
+RUN micromamba install --yes --name base --channel conda-forge --channel bioconda \
+ tb-profiler=${TBPROFILER_VER} && \
+ micromamba clean --all --yes
+
+# hardcode 'base' env bin into PATH, so conda env does not have to be "activated" at run time
+ENV PATH="/opt/conda/bin:${PATH}"
+
+# Version of database can be confirmed at /opt/conda/share/tbprofiler/tbdb.version.json
+# can also run 'tb-profiler list_db' to find the same version info
+# In 5.0.1 updating_tbdb does not work with tb-profiler update_tbdb --commit ${TBDB_VER}
+#RUN tb-profiler update_tbdb -h && whatever
+
+# https://github.com/jodyphelan/tbdb
+
+RUN tb-profiler update_tbdb --commit ${TBDB_COMMIT}
+
+WORKDIR /data
+
+# Added command to bring help menu up upon running container.
+CMD tb-profiler
+
+# test stage
+FROM app as test
+
+# checking if tool is in PATH
+RUN tb-profiler && tb-profiler version
+
+WORKDIR /tests
+
+# download some TB FASTQs and run through tb-profiler
+RUN wget -q ftp://ftp.sra.ebi.ac.uk/vol1/fastq/ERR166/009/ERR1664619/ERR1664619_1.fastq.gz && \
+ wget -q ftp://ftp.sra.ebi.ac.uk/vol1/fastq/ERR166/009/ERR1664619/ERR1664619_2.fastq.gz && \
+ tb-profiler profile -1 ERR1664619_1.fastq.gz -2 ERR1664619_2.fastq.gz -t 2 -p ERR1664619 --txt
diff --git a/tbprofiler/6.2.0/README.md b/tbprofiler/6.2.0/README.md
new file mode 100644
index 000000000..80dae452a
--- /dev/null
+++ b/tbprofiler/6.2.0/README.md
@@ -0,0 +1,58 @@
+# TBProfiler Container
+
+Main tool: [TBProfiler](https://github.com/jodyphelan/TBProfiler)
+
+The pipeline aligns reads to the H37Rv reference using bowtie2, BWA or minimap2 and then calls variants using bcftools. These variants are then compared to a drug-resistance database. It also predicts the number of reads supporting drug resistance variants as an insight into hetero-resistance.
+
+## Database
+
+This tool relies on a database to run. The version (AKA git commit hash) of the database that is included in the docker image is `c2fb9a2`. This is from the GitHub repository https://github.com/jodyphelan/tbdb. This can be confirmed in the json file: `/opt/conda/share/tbprofiler/tbdb.version.json`:
+
+```bash
+$ grep 'commit' /opt/conda/share/tbprofiler/tbdb.version.json
+{"name": "tbdb", "commit": "5f3c51e", "Merge": "b1a2549 abddb8e", "Author": "Jody Phelan ", "Date": "Thu Jan 19 10:47:32 2023 +0000"}
+```
+
+Additionally you can run the command `tb-profiler list_db` to list the same information
+
+```bash
+$ tb-profiler list_db
+tbdb 5f3c51e Jody Phelan Thu Jan 19 10:47:32 2023 +0000 /opt/conda/share/tbprofiler/tbdb
+```
+
+## Additional included tools/dependencies
+
+- bedtools 2.30.0
+- gatk4 4.3.0.0
+- kmc 3.2.1
+- pathogen-profiler 2.0.4
+- perl 5.32.1
+- python 3.9.9
+- trimmomatic 0.39
+- bwa 0.7.17
+- minimap2 2.16
+- samtools 1.12
+- bcftools 1.12
+- freebayes 1.3.5
+- tqdm 4.32.2
+- parallel v20190522
+- samclip 0.4.0
+- snpeff 5.1
+
+## Example Usage
+
+Run whole pipeline on Illumina paired-end reads:
+
+```bash
+tb-profiler profile -1 ERR1664619_1.fastq.gz -2 ERR1664619_2.fastq.gz -t 4 -p ERR1664619 --txt
+```
+
+Make alternative database:
+
+```bash
+tb-profiler create_db --prefix
+tb-profiler load_library --prefix
+```
+
+## Updates
+Release 5.0.1 implemented sqlite3 database locking with https://py-filelock.readthedocs.io/en/latest/index.html. This should fix issues using it over network filing systems (NFS). For more information, official documentation can be found [here.](https://jodyphelan.gitbook.io/tb-profiler/)
diff --git a/tbprofiler/6.2.1/Dockerfile b/tbprofiler/6.2.1/Dockerfile
new file mode 100644
index 000000000..61411962b
--- /dev/null
+++ b/tbprofiler/6.2.1/Dockerfile
@@ -0,0 +1,69 @@
+FROM mambaorg/micromamba:1.5.8 as app
+
+USER root
+WORKDIR /
+
+ARG TBPROFILER_VER="6.2.1"
+
+# this version is the shortened commit hash on the `master` branch here https://github.com/jodyphelan/tbdb/
+# commits are found on https://github.com/jodyphelan/tbdb/commits/master
+# this was the latest commit as of 2024-05-10
+ARG TBDB_COMMIT="97b5876a1a9d2f06e8bb6076ed88baf481ef5fe5"
+
+# LABEL instructions tag the image with metadata that might be important to the user
+LABEL base.image="micromamba:1.5.8"
+LABEL dockerfile.version="1"
+LABEL software="tbprofiler"
+LABEL software.version="${TBPROFILER_VER}"
+LABEL description="The pipeline aligns reads to the H37Rv reference using bowtie2, BWA or minimap2 and then calls variants using bcftools. These variants are then compared to a drug-resistance database."
+LABEL website="https://github.com/jodyphelan/TBProfiler/"
+LABEL license="https://github.com/jodyphelan/TBProfiler/blob/master/LICENSE"
+LABEL maintainer="John Arnn"
+LABEL maintainer.email="jarnn@utah.gov"
+LABEL maintainer2="Curtis Kapsak"
+LABEL maintainer2.email="kapsakcj@gmail.com"
+LABEL maintainer3="Sage Wright"
+LABEL maintainer3.email="sagemwright@gmail.com"
+
+# Install dependencies via apt-get; cleanup apt garbage
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ wget \
+ ca-certificates \
+ procps && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+# install tb-profiler via bioconda; install into 'base' conda env
+RUN micromamba install --yes --name base --channel conda-forge --channel bioconda \
+ tb-profiler=${TBPROFILER_VER} && \
+ micromamba clean --all --yes
+
+# hardcode 'base' env bin into PATH, so conda env does not have to be "activated" at run time
+ENV PATH="/opt/conda/bin:${PATH}"
+
+# Version of database can be confirmed at /opt/conda/share/tbprofiler/tbdb.version.json
+# can also run 'tb-profiler list_db' to find the same version info
+# In 5.0.1 updating_tbdb does not work with tb-profiler update_tbdb --commit ${TBDB_VER}
+# ^^ this was resolved in 6.2.1
+#RUN tb-profiler update_tbdb -h && whatever
+
+# https://github.com/jodyphelan/tbdb
+
+RUN tb-profiler update_tbdb --commit ${TBDB_COMMIT}
+
+WORKDIR /data
+
+# Added command to bring help menu up upon running container.
+CMD tb-profiler
+
+# test stage
+FROM app as test
+
+# checking if tool is in PATH
+RUN tb-profiler && tb-profiler version
+
+WORKDIR /tests
+
+# download some TB FASTQs and run through tb-profiler
+RUN wget -q ftp://ftp.sra.ebi.ac.uk/vol1/fastq/ERR166/009/ERR1664619/ERR1664619_1.fastq.gz && \
+ wget -q ftp://ftp.sra.ebi.ac.uk/vol1/fastq/ERR166/009/ERR1664619/ERR1664619_2.fastq.gz && \
+ tb-profiler profile -1 ERR1664619_1.fastq.gz -2 ERR1664619_2.fastq.gz -t 2 -p ERR1664619 --txt
diff --git a/tbprofiler/6.2.1/README.md b/tbprofiler/6.2.1/README.md
new file mode 100644
index 000000000..ff8fc5938
--- /dev/null
+++ b/tbprofiler/6.2.1/README.md
@@ -0,0 +1,58 @@
+# TBProfiler Container
+
+Main tool: [TBProfiler](https://github.com/jodyphelan/TBProfiler)
+
+The pipeline aligns reads to the H37Rv reference using bowtie2, BWA or minimap2 and then calls variants using bcftools. These variants are then compared to a drug-resistance database. It also predicts the number of reads supporting drug resistance variants as an insight into hetero-resistance.
+
+## Database
+
+This tool relies on a database to run. The version (AKA git commit hash) of the database that is included in the docker image is `97b5876`. This is from the GitHub repository https://github.com/jodyphelan/tbdb. This can be confirmed in the json file: `/opt/conda/share/tbprofiler/tbdb.version.json`:
+
+```bash
+$ grep 'commit' /opt/conda/share/tbprofiler/tbdb.version.json
+{"name": "tbdb", "commit": "5f3c51e", "Merge": "b1a2549 abddb8e", "Author": "Jody Phelan ", "Date": "Thu Jan 19 10:47:32 2023 +0000"}
+```
+
+Additionally you can run the command `tb-profiler list_db` to list the same information
+
+```bash
+$ tb-profiler list_db
+tbdb 97b5876 Jody Phelan Wed May 8 13:53:15 2024 +0100 /opt/conda/share/tbprofiler/tbdb
+```
+
+## Additional included tools/dependencies
+
+- bedtools 2.31.1
+- gatk4 4.5.0.0
+- kmc 3.2.4
+- pathogen-profiler 4.2.0
+- perl 5.32.1
+- python 3.10.14
+- trimmomatic 0.39
+- bwa 0.7.18
+- minimap2 2.28
+- samtools 1.20
+- bcftools 1.20
+- freebayes 1.3.6
+- tqdm 4.66.4
+- parallel 20240522
+- samclip 0.4.0
+- snpeff 5.2
+
+## Example Usage
+
+Run whole pipeline on Illumina paired-end reads:
+
+```bash
+tb-profiler profile -1 ERR1664619_1.fastq.gz -2 ERR1664619_2.fastq.gz -t 4 -p ERR1664619 --txt
+```
+
+Make alternative database:
+
+```bash
+tb-profiler create_db --prefix
+tb-profiler load_library --prefix
+```
+
+## Updates
+Release 5.0.1 implemented sqlite3 database locking with https://py-filelock.readthedocs.io/en/latest/index.html. This should fix issues using it over network filing systems (NFS). For more information, official documentation can be found [here.](https://jodyphelan.gitbook.io/tb-profiler/)
diff --git a/tostadas/3.1.0/Dockerfile b/tostadas/3.1.0/Dockerfile
new file mode 100644
index 000000000..8f9ec7257
--- /dev/null
+++ b/tostadas/3.1.0/Dockerfile
@@ -0,0 +1,59 @@
+FROM mambaorg/micromamba:1.5.8 as app
+
+ARG TOSTADAS_VER="3.1.0"
+
+USER root
+
+WORKDIR /
+
+LABEL authors="Cole and Ankush Gupta"
+LABEL base.image="mambaorg/micromamba:1.5.8"
+LABEL dockerfile.version="2"
+LABEL software="tostadas"
+LABEL software.version=$TOSTADAS_VER
+LABEL description="Image for the TOSTADAS: Toolkit for Open Sequence Triage, Annotation and DAtabase Submission pipeline"
+LABEL website="https://github.com/CDCgov/tostadas"
+LABEL license="https://github.com/CDCgov/tostadas/LICENSE"
+LABEL maintainer="Ankush Gupta"
+LABEL maintainer.email="ankushkgupta@deloitte.com"
+LABEL maintainer2="Kyle O'Connell"
+LABEL maintainer2.email="kyoconnell@deloitte.com"
+LABEL maintainer3="Cole Tindall"
+LABEL maintainer3.email="ctindall@deloitte.com"
+
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ wget \
+ ca-certificates \
+ procps && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+# download tostadas repo, move to /tostadas, and create /data
+RUN wget https://github.com/CDCgov/tostadas/archive/refs/tags/v${TOSTADAS_VER}.tar.gz && \
+ tar -xvf v${TOSTADAS_VER}.tar.gz && \
+ rm v${TOSTADAS_VER}.tar.gz && \
+ mv tostadas-${TOSTADAS_VER} tostadas && \
+ mkdir /data
+
+# use mamba to install conda packages
+RUN micromamba env create -f tostadas/environment.yml && \
+ micromamba clean -a -y && \
+ echo "source activate tostadas" > ~/.bashrc && \
+ rm -rf /tostadas
+
+ENV PATH=/opt/conda/envs/tostadas/bin:/opt/conda/envs/env/bin:$PATH \
+ LC_ALL=C.UTF-8
+
+WORKDIR /data
+
+##### ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- #####
+###### Step 2. Set up the testing stage. #####
+###### The docker image is built to the 'test' stage before merging, but #####
+###### the test stage (or any stage after 'app') will be lost. #####
+###### ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- #####
+
+# A second FROM insruction creates a new stage
+FROM app as test
+
+RUN liftoff --version && \
+ samtools --version && \
+ python --version
diff --git a/tostadas/3.1.0/README.md b/tostadas/3.1.0/README.md
new file mode 100644
index 000000000..a7b1ee0d4
--- /dev/null
+++ b/tostadas/3.1.0/README.md
@@ -0,0 +1,41 @@
+# tostadas container
+
+Main tool : [tostadas](https://github.com/CDCgov/tostadas)
+Version: 3.1.0
+
+Additional tools installed via conda:
+ - pip
+ - libgcc-ng=12.1.0=h8d9b700_16
+ - libstdcxx-ng=12.1.0=ha89aaad_16
+ - liftoff=1.6.3=pyhdfd78af_0
+ - lxml=4.9.1=py39hb9d737c_0
+ - nameparser=1.0.5=py_0
+ - numpy=1.22.4=py39hc58783e_0
+ - packaging=21.3=pyhd3eb1b0_0
+ - pandas=1.4.2=py39h1832856_2
+ - python-dateutil=2.8.2=pyhd8ed1ab_0
+ - python_abi=3.9=2_cp39
+ - pytz=2022.1=pyhd8ed1ab_0
+ - pyvcf3=1.0.3=pyhdfd78af_0
+ - pyyaml=6.0=py39hb9d737c_4
+ - readline=8.1=h46c0cb4_0
+ - requests=2.28.0=pyhd8ed1ab_1
+ - samtools=1.15.1=h1170115_0
+ - setuptools=62.3.2=py39hf3d152e_0
+ - simplejson=3.17.6=py39hb9d737c_1
+ - tbb=2021.5.0=h924138e_1
+ - tbl2asn=25.7=h9ee0642_1
+ - tk=8.6.12=h27826a3_0
+ - tzdata=2022a=h191b570_0
+ - ujson=5.3.0=py39h5a03fae_0
+ - urllib3=1.26.9=pyhd8ed1ab_0
+ - wgs2ncbi=1.1.2=pl5262hdfd78af_1
+ - wheel=0.37.1=pyhd8ed1ab_0
+ - xz=5.2.5=h516909a_1
+ - yaml=0.2.5=h7f98852_2
+ - openpyxl=3.0.10
+ - xmltodict=0.13.0=pyhd8ed1ab_0
+
+Full documentation: https://github.com/CDCgov/tostadas
+
+[tostadas](https://github.com/CDCgov/tostadas) is a nextflow workflow for annotation and submission of MonkeyPox Virus consensus sequences. The resultant container is not intended to run independently of the workflow.
diff --git a/trycycler/0.5.5/Dockerfile b/trycycler/0.5.5/Dockerfile
new file mode 100644
index 000000000..c2be8948c
--- /dev/null
+++ b/trycycler/0.5.5/Dockerfile
@@ -0,0 +1,90 @@
+ARG TRYCYCLER_VER=0.5.5
+
+FROM ubuntu:jammy as app
+
+ARG TRYCYCLER_VER
+ARG MASH_VER=2.3
+ARG MINIASM_VER=0.3
+ARG MINIMAP2_VER=2.28
+
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="Trycycler"
+LABEL software.version="${TRYCYCLER_VER}"
+LABEL description="A tool for generating consensus long-read assemblies for bacterial genomes"
+LABEL website="https://github.com/rrwick/Trycycler"
+LABEL license="https://github.com/rrwick/Trycycler/blob/master/LICENSE"
+LABEL maintainer="Erin Young"
+LABEL maintainer.email="eriny@utah.gov"
+
+# install prerequisites, cleanup apt garbage
+# muscle version: 3.8.31
+ARG DEBIAN_FRONTEND=noninteractive
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ python3 \
+ python3-pip \
+ gcc \
+ wget \
+ curl \
+ bzip2 \
+ build-essential \
+ procps \
+ ca-certificates \
+ libz-dev \
+ muscle \
+ r-base \
+ gfortran \
+ libblas-dev \
+ liblapack-dev && \
+ apt-get clean && apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+# minimap2
+# apt deps: curl bzip2
+RUN curl -L https://github.com/lh3/minimap2/releases/download/v${MINIMAP2_VER}/minimap2-${MINIMAP2_VER}_x64-linux.tar.bz2 | tar -jxvf - --no-same-owner
+
+# mash
+RUN wget -q https://github.com/marbl/Mash/releases/download/v${MASH_VER}/mash-Linux64-v${MASH_VER}.tar && \
+ tar -xvf mash-Linux64-v${MASH_VER}.tar --no-same-owner && \
+ rm -rf mash-Linux64-v${MASH_VER}.tar && \
+ chown root:root /mash-Linux64-v${MASH_VER}/*
+
+# miniasm
+RUN wget -q https://github.com/lh3/miniasm/archive/v${MINIASM_VER}.tar.gz && \
+ mkdir miniasm && \
+ tar -xzvf v${MINIASM_VER}.tar.gz -C miniasm --strip-components 1 && \
+ rm v${MINIASM_VER}.tar.gz && \
+ cd miniasm && \
+ make
+
+# install R packages
+RUN R -e "install.packages(c('ape','phangorn'),repos = 'http://cran.us.r-project.org')"
+
+# Trycycler
+# apt deps: muscle gcc
+RUN wget -q https://github.com/rrwick/Trycycler/archive/v${TRYCYCLER_VER}.tar.gz && \
+ tar -xzf v${TRYCYCLER_VER}.tar.gz && \
+ rm v${TRYCYCLER_VER}.tar.gz && \
+ pip3 install ./Trycycler-${TRYCYCLER_VER} Pillow && \
+ mkdir /data
+
+CMD trycycler --help
+
+# set /data as working directory
+WORKDIR /data
+
+# set env PATH variable for installed programs
+# LC_ALL for singularity compatibility
+# TERM set so that output is pretty during tests and so warnings about TERM not being set are silenced
+ENV PATH="/mash-Linux64-v${MASH_VER}:/minimap2-${MINIMAP2_VER}_x64-linux:/miniasm:${PATH}"\
+ LC_ALL=C \
+ TERM=xterm-256color
+
+FROM app as test
+
+ARG TRYCYCLER_VER
+
+WORKDIR /Trycycler-${TRYCYCLER_VER}
+
+RUN trycycler --help && trycycler --version
+
+RUN pytest
\ No newline at end of file
diff --git a/trycycler/0.5.5/README.md b/trycycler/0.5.5/README.md
new file mode 100644
index 000000000..ba19bdc7c
--- /dev/null
+++ b/trycycler/0.5.5/README.md
@@ -0,0 +1,34 @@
+# trycycler container
+
+Main tool: [trycycler](https://github.com/rrwick/Trycycler)
+
+Additional tools:
+
+- [miniasm](https://github.com/lh3/miniasm) 0.3-r179
+- [minimap2](https://github.com/lh3/minimap2) 2.24-r1122
+- [muscle](https://www.ebi.ac.uk/Tools/msa/muscle/) 3.8.1551 (recommended version)
+- [mash](https://github.com/marbl/Mash) 2.3
+- R package ['ape'](https://cran.r-project.org/web/packages/ape/index.html) 5.7
+- R package ['phangorn'](https://cran.r-project.org/web/packages/phangorn/index.html) 2.11.1
+
+Trycycler "tries" different assemblies to find the one most supported by long reads.
+
+## Example Usage
+
+```bash
+trycycler subsample --reads reads.fastq --out_dir read_subsets
+```
+
+```bash
+trycycler cluster --assemblies assemblies/*.fasta --reads reads.fastq --out_dir trycycler
+```
+
+```bash
+trycycler reconcile --reads reads.fastq --cluster_dir trycycler/cluster_001
+```
+
+```bash
+trycycler consensus --cluster_dir trycycler/cluster_001
+```
+
+It is highly recommended to read Trycycler's [wiki](https://github.com/rrwick/Trycycler/wiki) for full usability and reasoning.
diff --git a/vadr/1.6.3-hav-flu2/Dockerfile b/vadr/1.6.3-hav-flu2/Dockerfile
new file mode 100644
index 000000000..d1ee32c28
--- /dev/null
+++ b/vadr/1.6.3-hav-flu2/Dockerfile
@@ -0,0 +1,215 @@
+FROM ubuntu:focal as app
+
+# for easy upgrade later. LC_ALL set for singularity compatibility
+ENV VADR_VERSION="1.6.3" \
+ VADR_SARSCOV2_MODELS_VERSION="1.3-2" \
+ VADR_MPXV_MODELS_VERSION="1.4.2-1" \
+ VADR_RSV_MODELS_VER="1.5-2"\
+ VADR_FLU_MODELS_VER="1.6.3-2"\
+ VADR_HAV_MODELS_VER="1.0.0" \
+ LC_ALL=C \
+ VADRINSTALLDIR=/opt/vadr
+
+ENV VADRSCRIPTSDIR=$VADRINSTALLDIR/vadr \
+ VADRMINISCRIPTSDIR=$VADRINSTALLDIR/vadr/miniscripts \
+ VADRMODELDIR=$VADRINSTALLDIR/vadr-models \
+ VADRINFERNALDIR=$VADRINSTALLDIR/infernal/binaries \
+ VADREASELDIR=$VADRINSTALLDIR/infernal/binaries \
+ VADRHMMERDIR=$VADRINSTALLDIR/infernal/binaries \
+ VADRBIOEASELDIR=$VADRINSTALLDIR/Bio-Easel \
+ VADRSEQUIPDIR=$VADRINSTALLDIR/sequip \
+ VADRBLASTDIR=$VADRINSTALLDIR/ncbi-blast/bin \
+ VADRFASTADIR=$VADRINSTALLDIR/fasta/bin \
+ VADRMINIMAP2DIR=$VADRINSTALLDIR/minimap2
+
+ENV PERL5LIB=$VADRSCRIPTSDIR:$VADRSEQUIPDIR:$VADRBIOEASELDIR/blib/lib:$VADRBIOEASELDIR/blib/arch:$PERL5LIB \
+ PATH=$VADRSCRIPTSDIR:$VADRMINISCRIPTSDIR:$PATH
+
+# metadata - optional, but highly recommended
+LABEL base.image="ubuntu:focal"
+LABEL dockerfile.version="1"
+LABEL software="VADR"
+LABEL software.version="${VADR_VERSION}"
+LABEL description="Classification and annotation of viral sequences based on RefSeq annotation"
+LABEL website="https://github.com/ncbi/vadr"
+LABEL license="https://github.com/ncbi/vadr/blob/master/LICENSE"
+LABEL maintainer="Anders Goncalves da Silva"
+LABEL maintainer.email="andersgs@gmail.com"
+LABEL maintainer2="Curtis Kapsak"
+LABEL maintainer2.email="curtis.kapsak@theiagen.com"
+LABEL maintainer3="Ines Mendes"
+LABEL maintainer3.email="ines.mendes@theiagen.com"
+
+# install dependencies via apt-get. Clean up apt garbage
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ wget \
+ ca-certificates \
+ perl \
+ curl \
+ unzip \
+ build-essential \
+ autoconf \
+ libinline-c-perl \
+ liblwp-protocol-https-perl \
+ zip \
+ unzip \
+ procps \
+ zlib1g-dev && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+# install VADR
+# download entire VADR source code from GitHub release
+# use vadr-install.sh script to install VADR into $VADRINSTALLDIR (set to /opt/vadr)
+# this script grabs files from tagged release and sets things up in /opt/vadr/vadr
+# last step is to delete the original source code that is a duplicate (/opt/vadr/vadr-$VADR_VERSION)
+RUN mkdir -p ${VADRINSTALLDIR} && \
+ cd ${VADRINSTALLDIR} && \
+ wget https://github.com/ncbi/vadr/archive/refs/tags/vadr-${VADR_VERSION}.tar.gz && \
+ mkdir vadr-${VADR_VERSION} && tar -xzf vadr-${VADR_VERSION}.tar.gz -C vadr-${VADR_VERSION} --strip-components 1 && \
+ rm vadr-${VADR_VERSION}.tar.gz && \
+ bash vadr-${VADR_VERSION}/vadr-install.sh linux && \
+ rm -rf vadr-${VADR_VERSION}/ && \
+ mkdir /data
+
+# install the latest sarscov2 and mpxv models
+# copy calici model files into VADRMODELDIR to allow VADR tests to pass completely
+# cleanup duplicate copies of model files
+RUN wget -O vadr-models-sarscov2.tar.gz https://ftp.ncbi.nlm.nih.gov/pub/nawrocki/vadr-models/sarscov2/${VADR_SARSCOV2_MODELS_VERSION}/vadr-models-sarscov2-${VADR_SARSCOV2_MODELS_VERSION}.tar.gz && \
+ wget -O vadr-models-mpxv.tar.gz https://ftp.ncbi.nlm.nih.gov/pub/nawrocki/vadr-models/mpxv/${VADR_MPXV_MODELS_VERSION}/vadr-models-mpxv-${VADR_MPXV_MODELS_VERSION}.tar.gz && \
+ tar -xf vadr-models-sarscov2.tar.gz && \
+ tar -xf vadr-models-mpxv.tar.gz && \
+ mkdir -vp ${VADRMODELDIR} && \
+ cp -nv /vadr-models-sarscov2-${VADR_SARSCOV2_MODELS_VERSION}/* ${VADRMODELDIR} && \
+ cp -nv /vadr-models-mpxv-${VADR_MPXV_MODELS_VERSION}/* ${VADRMODELDIR} && \
+ rm -rf /vadr-models-sarscov2* && \
+ rm -rf /vadr-models-mpxv* && \
+ cp -nv ${VADRINSTALLDIR}/vadr-models-calici/* ${VADRMODELDIR} && \
+ rm -rf ${VADRINSTALLDIR}/vadr-models-calici/
+
+# download RSV VADR models; copy model files into VADRMODELDIR
+RUN wget https://ftp.ncbi.nlm.nih.gov/pub/nawrocki/vadr-models/rsv/${VADR_RSV_MODELS_VER}/vadr-models-rsv-${VADR_RSV_MODELS_VER}.tar.gz && \
+ tar -xf /vadr-models-rsv-${VADR_RSV_MODELS_VER}.tar.gz && \
+ rm -v /vadr-models-rsv-${VADR_RSV_MODELS_VER}.tar.gz && \
+ cp -nvr /vadr-models-rsv-${VADR_RSV_MODELS_VER}/* ${VADRMODELDIR} && \
+ rm -rfv /vadr-models-rsv-${VADR_RSV_MODELS_VER}
+
+# download flu VADR models; copy model files into VADRMODELDIR
+RUN wget https://ftp.ncbi.nlm.nih.gov/pub/nawrocki/vadr-models/flu/${VADR_FLU_MODELS_VER}/vadr-models-flu-${VADR_FLU_MODELS_VER}.tar.gz && \
+ tar -xf /vadr-models-flu-${VADR_FLU_MODELS_VER}.tar.gz && \
+ rm -v /vadr-models-flu-${VADR_FLU_MODELS_VER}.tar.gz && \
+ cp -nvr /vadr-models-flu-${VADR_FLU_MODELS_VER}/* ${VADRMODELDIR} && \
+ rm -rfv /vadr-models-flu-${VADR_FLU_MODELS_VER}
+
+# download release of HAV VADR model files and move files into $VADRMODELDIR; clean up extra copies (original downloaded files)
+RUN wget https://github.com/theiagen/VADR_models/archive/refs/tags/v${VADR_HAV_MODELS_VER}.tar.gz && \
+ tar -xf v${VADR_HAV_MODELS_VER}.tar.gz && \
+ rm -v v${VADR_HAV_MODELS_VER}.tar.gz && \
+ cp -nvr /VADR_models-${VADR_HAV_MODELS_VER}/hav/* ${VADRMODELDIR} && \
+ rm -rf /VADR_models-${VADR_HAV_MODELS_VER}
+
+# Virus model files other than sarscov2 will need to be made available to vadr either in
+# the $VADRMODELDIR or another path can be specified using the 'v-annotate.pl -mdir' option.
+# These files will need to be mounted into the container at runtime, e.g. 'docker run -v' option.
+
+# set working directory
+WORKDIR /data
+
+FROM app as test
+
+# download B.1.1.7 genome from Utah
+ADD https://raw.githubusercontent.com/StaPH-B/docker-builds/master/tests/SARS-CoV-2/SRR13957123.consensus.fa /test-data/SRR13957123.consensus.fa
+
+# print help options (which prints version at top)
+# run test script included w VADR
+# test terminal N trimming script
+# run v-annotate.pl on trimmed B.1.1.7 genome
+RUN v-annotate.pl -h && \
+ /opt/vadr/vadr/testfiles/do-install-tests-local.sh && \
+ /opt/vadr/vadr/miniscripts/fasta-trim-terminal-ambigs.pl \
+ /test-data/SRR13957123.consensus.fa \
+ --minlen 50 \
+ --maxlen 30000 \
+ > /test-data/SRR13957123.consensus.trimmed.fasta && \
+ v-annotate.pl --noseqnamemax --glsearch -s -r --nomisc \
+ --mkey sarscov2 --lowsim5seq 6 --lowsim3seq 6 --alt_fail lowscore,insertnn,deletinn \
+ "/test-data/SRR13957123.consensus.trimmed.fasta" \
+ "SRR13957123-vadr-outdir" && \
+ ls SRR13957123-vadr-outdir
+
+# install ncbi datasets tool (pre-compiled binary); place in $PATH
+RUN wget https://ftp.ncbi.nlm.nih.gov/pub/datasets/command-line/LATEST/linux-amd64/datasets && \
+ chmod +x datasets && \
+ mv -v datasets /usr/local/bin
+
+# download assembly for a MPXV from the UK
+# run VADR trimming script and v-annotate.pl
+# link to GenBank accession: https://www.ncbi.nlm.nih.gov/nuccore/OP022171
+ARG GENBANK_ACCESSION="OP022171.1"
+RUN datasets download virus genome accession ${GENBANK_ACCESSION} --filename ${GENBANK_ACCESSION}.zip && \
+ unzip ${GENBANK_ACCESSION}.zip && rm ${GENBANK_ACCESSION}.zip && \
+ mv -v ncbi_dataset/data/genomic.fna ncbi_dataset/data/${GENBANK_ACCESSION}.genomic.fna && \
+ fasta-trim-terminal-ambigs.pl /data/ncbi_dataset/data/${GENBANK_ACCESSION}.genomic.fna \
+ --minlen 50 \
+ --maxlen 210000 \
+ >/data/${GENBANK_ACCESSION}.trimmed.fasta && \
+v-annotate.pl --split --cpu 2 \
+ --glsearch -s -r \
+ --nomisc \
+ --mkey mpxv \
+ --r_lowsimok \
+ --r_lowsimxd 100 \
+ --r_lowsimxl 2000 \
+ --alt_pass discontn,dupregin \
+ --minimap2 \
+ --s_overhang 150 \
+ /data/${GENBANK_ACCESSION}.trimmed.fasta \
+ ${GENBANK_ACCESSION}-mpxv-vadr-test-output
+
+# download some test flu genomes, run through VADR using flu models
+# example commands taken from VADR flu guide: https://github.com/ncbi/vadr/wiki/Influenza-annotation
+ RUN echo "testing flu functionality..." && \
+ wget https://ftp.ncbi.nlm.nih.gov/pub/nawrocki/vadr-models/flu/pretrim.flu.3.fa && \
+ fasta-trim-terminal-ambigs.pl pretrim.flu.3.fa \
+ --minlen 60 \
+ >/data/flu.3.fa && \
+ v-annotate.pl --split \
+ -r \
+ --atgonly \
+ --xnocomp \
+ --nomisc \
+ --alt_fail extrant5,extrant3 \
+ --mkey flu \
+ /data/flu.3.fa \
+ flu-vadr-test-output
+
+# download a test HAV genome, run through VADR using HAV models
+COPY hav.fasta /data/hav.fasta
+RUN echo "testing HAV functionality..." && \
+ fasta-trim-terminal-ambigs.pl /data/hav.fasta \
+ --minlen 50 \
+ --maxlen 10500 \
+ >/data/hav.trimmed.fasta && \
+ v-annotate.pl --split \
+ -r \
+ -xnocomp \
+ -mkey hav.vadr \
+ /data/hav.trimmed.fasta \
+ hav-vadr-test-output
+
+### COMMENTING OUT RSV TEST BELOW SINCE THIS TEST CAN CONSUME UPWARDS OF 30GB RAM ###
+### it runs fine when you have that much RAM available, but not in GHActions runners that are limited to 7GB RAM ###
+
+# download a test RSV genome, run through VADR using RSV models
+# example commands taken from VADR RSV guide: https://github.com/ncbi/vadr/wiki/RSV-annotation
+# RUN echo "testing RSV functionality..." && \
+# wget https://ftp.ncbi.nlm.nih.gov/pub/nawrocki/vadr-models/rsv/rsv.r10.fa && \
+# fasta-trim-terminal-ambigs.pl rsv.r10.fa \
+# --minlen 50 \
+# --maxlen 15500 \
+# >/data/rsv.r10.trimmed.fasta && \
+# v-annotate.pl --split \
+# -r \
+# -xnocomp \
+# -mkey rsv \
+# /data/rsv.r10.trimmed.fasta \
+# rsv-vadr-test-output
diff --git a/vadr/1.6.3-hav-flu2/README.md b/vadr/1.6.3-hav-flu2/README.md
new file mode 100644
index 000000000..4509a072a
--- /dev/null
+++ b/vadr/1.6.3-hav-flu2/README.md
@@ -0,0 +1,93 @@
+# VADR container
+
+Main tool : [VADR](https://github.com/ncbi/vadr)
+
+VADR is a suite of tools for classifying and analyzing sequences homologous to a set of reference models of viral genomes or gene families. It has been mainly tested for analysis of Norovirus, Dengue, and SARS-CoV-2 virus sequences in preparation for submission to the GenBank database.
+
+You can find [additional information on the SARS-CoV-2 models used by VADR here](https://github.com/ncbi/vadr/wiki/Coronavirus-annotation#sarscov2models). The models are downloaded from the [NCBI FTP server](https://ftp.ncbi.nlm.nih.gov/pub/nawrocki/vadr-models/sarscov2/)
+
+Additional tools:
+
+- perl v5.22.1
+- infernal v1.1.5
+- ncbi-blast+ v2.15.0
+- fasta v36.3.8h (the tool, not the file format)
+- minimap2 v2.26
+
+Available VADR models:
+
+- sarscov2 v1.3-2
+- Mpox (AKA MPXV, formerly known as "Monkeypox") v1.4.2-1
+- Norovirus and other Caliciviridae
+- Dengue virus and other Flaviviridae
+- RSV v1.5.1-2
+- influenza v1.6.3-2
+
+Additional VADR models:
+
+- HAV v1.0.0
+ - The description on how this model was built can be found [here](https://github.com/theiagen/VADR_models)
+
+## FYI
+
+- Mpox FYIs
+ - **Note:** Support for MonkeyPox genome annotation was added to the VADR software (July 2022) and is under active development. Things may change quickly. See the above documentation ^ to see the latest information on the state of MPXV annotation with VADR.
+ - Also be aware that some Mpox sequences may take up to **30 minutes** to annotate, depending on how divergent it is from the RefSeq NC_063383 sequence. Some sequences may only take a minute or so.
+- Most of the VADR model files are located at `/opt/vadr/vadr-models` in the container filesystem and this path is stored in the globally accessible bash variable `$VADRMODELDIR`. For most applications, there is no need to specify `v-annotate.pl --mdir /path/to/model/files` since `$VADRMODELDIR` is set in the environment.
+ - The exception is that Dengue and other Flaviviridae model files are located at `/opt/vadr/vadr-models-flavi/` within the container filesystem. To use these models, please specify the 2 options: `v-annotate.pl --mdir /opt/vadr/vadr-models-flavi/ --mkey flavi`. A full example command can be found below.
+
+### VADR Documentation
+
+- [Full documentation](https://github.com/ncbi/vadr#vadr-documentation-)
+- [Docs on Coronavirus annotation](https://github.com/ncbi/vadr/wiki/Coronavirus-annotation)
+- [Docs on Mpox annotation](https://github.com/ncbi/vadr/wiki/Mpox-virus-annotation)
+- [Docs on Dengue and other Flaviviridae annotation](https://github.com/ncbi/vadr/wiki/Available-VADR-model-files#dengue-virus-and-other-flaviviridae-refseq-vadr-models)
+- [Docs on RSV annotation](https://github.com/ncbi/vadr/wiki/RSV-annotation)
+- [Docs on flu annotation](https://github.com/ncbi/vadr/wiki/Influenza-annotation)
+
+## Example Usage
+
+```bash
+# trim terminal Ns from my input genome (VADR requires this as the first step)
+# for MPXV, adjust maxlen to 210000
+/opt/vadr/vadr/miniscripts/fasta-trim-terminal-ambigs.pl \
+ /data/SRR13957123.consensus.fa \
+ --minlen 50 \
+ --maxlen 30000 \
+ > /data/SRR13957123.consensus.trimmed.fasta
+
+# run v-annotate.pl using the sarscov2 model to annotate a trimmed input genome
+v-annotate.pl --noseqnamemax --glsearch -s -r --nomisc \
+ --mkey sarscov2 --lowsim5seq 6 \
+ --lowsim3seq 6 --alt_fail lowscore,insertnn,deletinn \
+ /data/SRR13957123.consensus.trimmed.fasta \
+ SRR13957123-vadr-outdir
+
+# run v-annotate.pl using mpxv model to annotate a trimmed input genome
+v-annotate.pl --split --cpu 8 --glsearch -s -r --nomisc --mkey mpxv \
+ --r_lowsimok --r_lowsimxd 100 --r_lowsimxl 2000 --alt_pass discontn,dupregin \
+ --minimap2 --s_overhang 150 \
+ mpxv.consensus.trimmed.fasta \
+ mpxv-vadr-1.5-test-output
+
+# run v-annotate.pl using Flaviviridae model to annotate a Dengue viral genome
+v-annotate.pl --split --cpu 1 --group Dengue --nomisc --noprotid \
+ --mdir /opt/vadr/vadr-models-flavi/ --mkey flavi \
+ GCF_000862125.1_ViralProj15306_genomic.fna \
+ dengue-test-outdir
+
+# run v-annotate.pl using flu models to annotate input sequences in flu.fa
+v-annotate.pl --split --cpu 8 -r --atgonly --xnocomp --nomisc \
+ --alt_fail extrant5,extrant3 --mkey flu \
+ flu.fa \
+ flu-test-output
+
+# run v-annotate.pl using HAV modesl to annotate an HAV FASTA file
+# the "-mkey hav.vadr" option is required to specify the HAV model
+ v-annotate.pl --split \
+ -r \
+ -xnocomp \
+ -mkey hav.vadr \
+ hav.trimmed.fasta \
+ hav-vadr-test-output
+```
diff --git a/vadr/1.6.3-hav-flu2/hav.fasta b/vadr/1.6.3-hav-flu2/hav.fasta
new file mode 100644
index 000000000..bb92ec3c8
--- /dev/null
+++ b/vadr/1.6.3-hav-flu2/hav.fasta
@@ -0,0 +1,107 @@
+>M59809.1 Hepatitis A virus polyprotein RNA, complete cds
+GTCCCTCTTGGAAGTCCATGGTGAGGGGACTTGATACCTCACCGCCGTTTGCCTAGGCTATAGGCTAAAT
+TTTCCCTTTCCCTTTTCCCTTTCCTATTCCCTTTGTTTTGCTTGTAAATATTGATTTGTAAATATTGATT
+CCTGCAGGTTCAGGGTTCTTAAATCTGTTTCTCTATAAGAACACTCATTTCACGCTTTCTGTCTTCTTTC
+TTCCAGGGCTCTCCCCTTGCCCTAGGCTCTGGCCGTTGCGCCCGGCGGGGTCAACTCCATGATTAGCATG
+GAGCTGTAGGAGTCTAAATTGGGGACACAGATGTTTGGAACGTCACCTTGCAGTGTTAACTTGGCTTTCA
+TGAATCTCTTTGATCTTCCACAAGGGGTAGGCTACGGGTGAAACCTCTTAGGCTAATACTTCTATGAAGA
+GATGCCTTGGATAGGGTAACAGCGGCGGATATTGGTGAGTTGTTAAGACAAAAACCATTCAACGCCGGAG
+GACTGACTCTCATCCAGTGGATGCATTGAGTGGATTGACTGTCGGGGCTGTCTTTAGGCTTAATTCCAGA
+CCTCTCTGTGCTTGGGGCAAACATCATTTGGCCTTAAATGGGATTCTGTGAGAGGGGATCCCTCCATTGC
+CAGCTGGACTGTTCTTTGGGGCCTTATGTGGTGTTTGCCGCTGAGGTACTCAGGGGCATTTAGGTTTTTC
+CTCATTCTTAAATAATAATGAACATGTCTAGACAAGGTATTTTCCAGACTGTTGGGAGTGGTCTTGACCA
+CATCCTGTCTTTGGCAGACATTGAGGAAGAGCAAATGATTCAATCAGTTGATAGGACTGCAGTGACTGGT
+GCTTCTTATTTTACTTCTGTGGATCAATCTTCAGTTCATACAGCTGAGGTTGGATCACACCAGGTTGAAC
+CTTTGAGAACCTCTGTTGATAAACCCGGTTCAAAGAGGACTCAGGGAGAGAAATTTTTCTTGATTCATTC
+TGCAGATTGGCTTACTACACATGCTCTTTTCCATGAAGTTGCAAAATTGGATGTGGTGAAATTATTATAC
+AATGAGCAGTTTGCTGTTCAAGGGTTGTTGAGATACCATACATATGCAAGATTTGGCATTGAAATTCAAG
+TTCAGATAAACCCTACACCTTTCCAACAGGGGGGATTGATCTGTGCTATGGTTCCTGGTGACCAGAGCTA
+TGGTTCTATAGCATCATTGACTGTTTATCCTCATGGTTTGTTAAATTGCAATATTAACAATGTGGTTAGA
+ATAAAGGTTCCATTTATTTACACAAGAGGTGCTTACCACTTTAAAGATCCACAATACCCAGTTTGGGAAT
+TGACAATTAGAGTTTGGTCAGAATTAAATATTGGGACAGGAACTTCAGCTTATACTTCACTCAATGTTTT
+AGCTAGATTTACAGATTTGGAGTTGCATGGATTAACTCCTCTTTCTACACAAATGATGAGAAATGAATTT
+AGGGTCAGTACTACTGAGAATGTGGTGAATCTGTCAAATTATGAAGATGCAAGAGCAAAGATGTCTTTTG
+CTTTGGATCAGGAAGATTGGAAATCTGATCCGTCCCAGGGTGGTGGGATCAAAATTACTCATTTTACTAC
+TTGGACATCTATTCCAACTTTGGCTGCTCAGTTTCCATTTAATGCTTCAGCCTCAGTTGGTCAACAAATT
+AAAGTTATTCCAGTTGACCCATATTTTTTCCAAATGACAAATACGAATCCTGACCAAAAATGTATAACTG
+CTTTGGCTTCTATTTGTCAGATGTTTTGTTTTTGGAGAGGAGATCTTGTCTTTGATTTTCAAGTTTTTCC
+CACCAAATATCATTCAGGTAGATTACTGTTTTGTTTTGTTCCTGGCAATGAGCTAATAGATGTTTCTGGA
+ATCACATTAAAGCAAGCAACTACTGCTCCTTGTGCAGTAATGGATATTACAGGAGTGCAGTCAACTTTGA
+GATTTCGTGTTCCCTGGATTTCTGACACTCCTTACAGAGTGAACAGGTATACAAAGTCAGCACATCAGAA
+AGGTGAGTACACTGCCATTGGGAAGCTTATTGTGTATTGTTATAACAGATTGACCTCTCCTTCTAACGTT
+GCTTCCCATGTCAGAGTGAATGTTTATCTTTCAGCAATTAACTTGGAATGTTTTGCTCCTCTTTATCATG
+CTATGGATGTTACTACACAAGTTGGAGATGATTCTGGAGGTTTTTCAACAACAGTTTCTACAGAACAGAA
+TGTTCCAGATCCCCAAGTTGGTATAACAACCATGAAAGATTTGAAAGGAAAAGCTAACAGAGGGAAAATG
+GATGTTTCAGGAGTACAAGCACCTGTGGGAGCTATCACAACAATTGAGGATCCAGTTTTAGCAAAGAAAG
+TACCTGAGACATTTCCTGAATTGAAACCTGGAGAATCCAGACATACATCAGATCATATGTCCATCTACAA
+GTTTATGGGAAGGTCTCATTTCTTGTGCACTTTTACATTCAATTCAAATAATAAAGAGTACACATTTCCT
+ATAACCTTGTCTTCAACCTCTAATCCTCCTCATGGTTTGCCATCAACACTGAGGTGGTTTTTCAACTTGT
+TTCAGTTGTATAGAGGGCCTTTAGATCTGACAATTATTATTACAGGAGCAACTGATGTAGATGGCATGGC
+CTGGTTCACTCCAGTAGGTCTTGCCGTTGATACTCCTTGGGTAGAGAAGGAGTCAGCTTTGTCTATTGAC
+TACAAAACTGCTCTTGGAGCTGTCAGATTTAACACAAGGAGAACAGGGAGCATTCAGATTAGATTACCAT
+GGTATTCTTATTTATATGCTGTGTCTGGAGCACTGGATGGTTTGGGTGACAAGACAGATTCTACATTTGG
+ATTGGTTTCTATTCAGATTGCAAATTACAATCATTCTGATGAATACTTGTCTTTTAGTTGTTATTTGTCT
+GTCACAGAACAATCAGAGTTTTATTTTCCCAGAGCTCCATTGAACTCAAATGCCATGTTATCCACTGAAT
+CAATGGTGAGCAGAATTGCAGCTGGAGACTTGGAGTCATCAGTGGATGATCCTAGATCAGAGGAAGATAA
+AAGATTTGAGAGTCATATAGAATGCAGGAAGCCATATAAAGAACTGAGATTAGAAGTTGGGAAACAAAGA
+CTCAAGTATGCTCAGGAAGAATTGTCAAATGAAGTACTTCCACCCCCTAGGAAAATGAAGGGACTGTTTT
+CACAAGCCAACATTTCTCTTTTTTATACTGAGGAGCATGAAATGATGAAGTTTTCCTGGAGAGGTGTGAC
+TGCTGATACTAGAGCTTTAAGGAGGTTTGGATTCTCTTTGGCCGCAGGCAGAAGTGTGTGGACTCTTGAA
+ATGGATGCTGGGGTTCTTACTGGGAGACTGATTAGATTGAATGATGAGAAATGGACAGAAATGAAGGATG
+ACAAGATTGTTTCATTGATTGAAAAGTTTACAAGTAACAAATATTGGTCCAAAGTGAATTTCCCACATGG
+GATGTTGGATCTTGAAGAAATTGCTGCCAATTCTAAGGATTTTCCTAACATGTCTGAAACGGATTTGTGT
+TTCTTGCTGCATTGGTTAAATCCAAAGAAAATTAATTTAGCAGATAGAATGCTTGGATTGTCTGGAGTTC
+AGGAAATTAAAGAACAAGGTGTTGGATTAATAGCAGAGTGTAGAACTTTCTTACATTCTATTGCTGGAAC
+TTTAAAATCTATGATGTTTGGATTTCATCATTCTGTGACTGTTGAAATTATAAACACTGTGCTCTGTTTT
+GTTAAGAGTGGAATTTTGCTTTATGTAATACAACAATTGAATCAGGATGAACATTCTCACATAATTGGTC
+TGTTGAGAGTCATGAATTATGTAGATATTGGTTGTTCAGTTATTTCATGTGGCAAAGTTTTTTCCAAAAT
+GCTGGAAACAGTCTTTAATTGGCAAATGGACTCCAGAATGATGGAGTTAAGGACTCAGAGTTTTTCCAAC
+TGGTTAAGAGATATTTGTTCTGGGATCACCATTTTTAAAAACTTCAAGGATGGAATTTGTTGGCTTTATA
+CAAAATTAAAGGACTTTTATGAAGTGAATTATGGCAAGAAGAAGGACATTTTAAATATTCTTAAAGATAA
+CCAACAAAAAATAGAGAAAGCCATTGAGGAAGCCGATAAATTTTGCATTTTGCAAATCCAAGATGTGGAA
+AAATCTGAACAGTATCAGAAAGGGGTTGACTTGATACAAAAATTGAGAACTGTTTATTCAATGGCTCAGG
+TTGATCCAAATTTAATGGTTCATTTGTCACCTTTGAGAGATTGTATAGCAAGAGTTCATCAGAAACTTAA
+AAACCTTGGATTTATAAATCAGGCAATGGTAACGAGATGTGAGCCAGTTGTTTGTTATTTACATGGCAAA
+AGAGGGGGAGGAAAGAGCTTAACATCAATTGCATTGGCAACCAAAATTTGTAAACATTATGGTGTTGAGC
+CTGAAAAGAATATCTATACTAAACCTGTGGCTTCAGATTACTGGGATGGATATAGTGGACAATTAGTTTG
+CATCATTGATGATATTGGCCAAAACACAACAGATGAGGACTGGTCAGATTTTTGTCAGTTAGTGTCAGGA
+TGTCCAATGAGATTAAACATGGCCTCTCTTGAGGAGAAGGGTAGGCATTTTTCTTCTCCTTTTATAATAG
+CAACTTCAAATTGGTCAAATCCAAGTCCAAAAACAGTTTATGTTAAGGAAGCAATTGACCGCAGACTCCA
+TTTCAAGGTTGAAGTTAAACCTGCTTCATTTTTCAAAAATCCTCACAATGATATGTTGAATGTTAATTTA
+GCTAAAACAAATGATGCAATCAAAGATATGTCTTGTGTTGATTTGATAATGGATGGACATAATGTTTCAT
+TGATGGATTTGCTCAGTTCTTTAGTCATGACAGTTGATATTAGAAAACAAAACATGACTGAATTCATGGA
+GTTGTGGTCTCAGGGAATTTCAGATGATAATGATAGTGCAGTAGCTGAGTTTTTCCAGTCTTTTCCATCT
+GGTGAACCATCGAACTCTAAATTATCTGGCTTTTTCCAATCTGTTACTAATCACAAGTGGGTTGCTGTGG
+GAGCTGCAGTTGGCATTCTTGGAGTGCTCGTTGGAGGATGGGTTGTGTATAAGCATTTCTCCCACAAAGA
+GGAAGAACCAATCCCAGCTGAAGGGGTATATCATGGTGTAACTAAGCCCAAGCATGTGATTAAATTAGAT
+GCAGATCCAGTAGAATCTCAGTCAACTTTGGAAGTAGCAGGACTGGTTAGGAAGAACTTGGTTCAGTTTG
+GAGTTGGAGAGAAGAATGGATGTGTGAGATGGGTTATGAATGCCTTGGGAGTGAAAGATGATTGGCTGCT
+TGTGCCTTCCCATGCTTATAAATTTGAGAAAGATTATGAAATGATGGAGTTTTATTTTAATAGAGGTGGA
+ACTTACTATTCAATTTCAGCTGGTAATGTTGTTATTCAATCTTTGGATGTGGGATTCCAGGATGTTGTTC
+TGATGAAGGTTCCTACAATTCCTAAGTTTAGAGATATTACTCAGCATTTTATTAAGAAAGGGGATGTGCC
+TAGAGCTTTGAATCGCCTGGCAACATTAGTGACAACTGTAAATGGAACCCCTATGTTAATTTCTGAGGGC
+CCACTAAAGATGGAAGAGAAAGCTACTTATGTTCATAAGAAAAATGATGGTACAACAGTTGATTTAGCTG
+TGGATCAGGCATGGAGAGGAAAAGGCGAAGGTCTTCCTGGAATGTGTGGTGGGGCCTTGGTTTCATCGAA
+TCAATCTATACAGAATGCAATCTTGGGCATCCATGTTGCTGGAGGAAATTCAATTCTTGTTGCAAAATTG
+GTTACTCAAGAAATGTTCCAAAATATTGATAAGAAAATTGAAAGTCAGAGAATTATGAAAGTGGAGTTTA
+CTCAGTGTTCAATGAATGTGGTCTCCAAAACGCTTTTTAGAAAGAGTCCCATTTATCATCACATTGATAA
+AACCATGATTAATTTTCCTGCAGCTATGCCCTTTTCTAAAGCTGAAATTGATCCAATGGCTGTGATGTTA
+TCTAAGTATTCATTACCTATTGTAGAAGAACCAGAGGGTTATAAAGAGGCTTCAATTTTTTATCAAAATA
+AAATAGTGGGTAAGACTCAGTTAGTTGATGATTTTCTAGATCTTGATATGGCCATTACAGGGGCCCCAGG
+AATTGATGCTATCAACATGGATTCATCTCCTGGATTTCCTTATGTCCAGGAGAAGTTGACCAAAAGAGAT
+TTAATTTGGTTGGATGAAAATGGTTTATTGCTGGGAGTTCATCCAAGATTGGCTCAGAGAATCTTATTCA
+ATACTGTCATGATGGAAAATTGTTCTGATTTGGATGTTGTTTTTACAACCTGTCCAAAAGATGAATTGAG
+ACCATTAGAGAAAGTGTTGGAATCAAAAACAAGAGCTATTGATGCTTGTCCTCTGGATTACACAATTTTG
+TGCCGAATGTATTGGGGTCCAGCTATTAGTTATTTTCATTTGAATCCAGGTTTCCATACAGGTGTTGCTA
+TTGGCATAGATCCTGATAAACAGTGGGATGAACTATTTAAAACAATGATAAGATTCGGAGATGTTGGTCT
+TGATTTAGATTTCTCTGCTTTTGATGCTAGTCTTAGTCCATTTATGATTAGAGAAGCAGGTAGAATCATG
+AGTGAACTATCTGGAACTCCATCCCATTTTGGCACAGCTCTCATCAATACTATCATTTATTCCAAGCATT
+TGCTGTATAACTGTTGCTACCATGTCTGTGGTTCAATGCCCTCTGGGTCTCCTTGTACAGCTTTGCTAAA
+TTCAATTATTAATAATGTCAATTTGTATTATGTGTTTTCCAAGATATTTGGAAAGTCTCCAGTTTTCTTT
+TGTCAGGCTTTGAAGATTCTCTGTTATGGAGATGATGTTTTAATAGTTTTCTCTCGAGATGTTCAGATTG
+ATAATCTTGATTTGATTGGACAAAAAATTGTAGATGAGTTTAAGAAACTTGGCATGACAGCTACTTCTGC
+TGACAAGAATGTACCTCAGCTGAAACCAGTTTCGGAATTGACTTTTCTCAAAAGATCTTTCAATTTGGTA
+GAGGATAGAATTAGACCTGCAATTTCGGAAAAAACAATTTGGTCTTTAATAGCATGGCAGAGAAGCAACG
+CTGAGTTTGAGCAGAATTTAGAGAATGCTCAGTGGTTTGCCTTTATGCATGGCTATGAGTTTTATCAGAA
+ATTCTATTATTTTGTTCAGTCCTGTTTGGAGAAAGAGATGATAGAATACAGACTTAAATCTTATGATTGG
+TGGAGAATGAGATTTTATGACCAGTGTTTCATTTGTGACCTTTCATGATTTGTTTAAATGAACTTTCTT
\ No newline at end of file
diff --git a/vadr/1.6.3-hav/Dockerfile b/vadr/1.6.3-hav/Dockerfile
new file mode 100644
index 000000000..20b6ce55e
--- /dev/null
+++ b/vadr/1.6.3-hav/Dockerfile
@@ -0,0 +1,215 @@
+FROM ubuntu:focal as app
+
+# for easy upgrade later. LC_ALL set for singularity compatibility
+ENV VADR_VERSION="1.6.3" \
+ VADR_SARSCOV2_MODELS_VERSION="1.3-2" \
+ VADR_MPXV_MODELS_VERSION="1.4.2-1" \
+ VADR_RSV_MODELS_VER="1.5-2"\
+ VADR_FLU_MODELS_VER="1.6.3-1"\
+ VADR_HAV_MODELS_VER="1.0.0" \
+ LC_ALL=C \
+ VADRINSTALLDIR=/opt/vadr
+
+ENV VADRSCRIPTSDIR=$VADRINSTALLDIR/vadr \
+ VADRMINISCRIPTSDIR=$VADRINSTALLDIR/vadr/miniscripts \
+ VADRMODELDIR=$VADRINSTALLDIR/vadr-models \
+ VADRINFERNALDIR=$VADRINSTALLDIR/infernal/binaries \
+ VADREASELDIR=$VADRINSTALLDIR/infernal/binaries \
+ VADRHMMERDIR=$VADRINSTALLDIR/infernal/binaries \
+ VADRBIOEASELDIR=$VADRINSTALLDIR/Bio-Easel \
+ VADRSEQUIPDIR=$VADRINSTALLDIR/sequip \
+ VADRBLASTDIR=$VADRINSTALLDIR/ncbi-blast/bin \
+ VADRFASTADIR=$VADRINSTALLDIR/fasta/bin \
+ VADRMINIMAP2DIR=$VADRINSTALLDIR/minimap2
+
+ENV PERL5LIB=$VADRSCRIPTSDIR:$VADRSEQUIPDIR:$VADRBIOEASELDIR/blib/lib:$VADRBIOEASELDIR/blib/arch:$PERL5LIB \
+ PATH=$VADRSCRIPTSDIR:$VADRMINISCRIPTSDIR:$PATH
+
+# metadata - optional, but highly recommended
+LABEL base.image="ubuntu:focal"
+LABEL dockerfile.version="1"
+LABEL software="VADR"
+LABEL software.version="${VADR_VERSION}"
+LABEL description="Classification and annotation of viral sequences based on RefSeq annotation"
+LABEL website="https://github.com/ncbi/vadr"
+LABEL license="https://github.com/ncbi/vadr/blob/master/LICENSE"
+LABEL maintainer="Anders Goncalves da Silva"
+LABEL maintainer.email="andersgs@gmail.com"
+LABEL maintainer2="Curtis Kapsak"
+LABEL maintainer2.email="curtis.kapsak@theiagen.com"
+LABEL maintainer3="Ines Mendes"
+LABEL maintainer3.email="ines.mendes@theiagen.com"
+
+# install dependencies via apt-get. Clean up apt garbage
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ wget \
+ ca-certificates \
+ perl \
+ curl \
+ unzip \
+ build-essential \
+ autoconf \
+ libinline-c-perl \
+ liblwp-protocol-https-perl \
+ zip \
+ unzip \
+ procps \
+ zlib1g-dev && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+# install VADR
+# download entire VADR source code from GitHub release
+# use vadr-install.sh script to install VADR into $VADRINSTALLDIR (set to /opt/vadr)
+# this script grabs files from tagged release and sets things up in /opt/vadr/vadr
+# last step is to delete the original source code that is a duplicate (/opt/vadr/vadr-$VADR_VERSION)
+RUN mkdir -p ${VADRINSTALLDIR} && \
+ cd ${VADRINSTALLDIR} && \
+ wget https://github.com/ncbi/vadr/archive/refs/tags/vadr-${VADR_VERSION}.tar.gz && \
+ mkdir vadr-${VADR_VERSION} && tar -xzf vadr-${VADR_VERSION}.tar.gz -C vadr-${VADR_VERSION} --strip-components 1 && \
+ rm vadr-${VADR_VERSION}.tar.gz && \
+ bash vadr-${VADR_VERSION}/vadr-install.sh linux && \
+ rm -rf vadr-${VADR_VERSION}/ && \
+ mkdir /data
+
+# install the latest sarscov2 and mpxv models
+# copy calici model files into VADRMODELDIR to allow VADR tests to pass completely
+# cleanup duplicate copies of model files
+RUN wget -O vadr-models-sarscov2.tar.gz https://ftp.ncbi.nlm.nih.gov/pub/nawrocki/vadr-models/sarscov2/${VADR_SARSCOV2_MODELS_VERSION}/vadr-models-sarscov2-${VADR_SARSCOV2_MODELS_VERSION}.tar.gz && \
+ wget -O vadr-models-mpxv.tar.gz https://ftp.ncbi.nlm.nih.gov/pub/nawrocki/vadr-models/mpxv/${VADR_MPXV_MODELS_VERSION}/vadr-models-mpxv-${VADR_MPXV_MODELS_VERSION}.tar.gz && \
+ tar -xf vadr-models-sarscov2.tar.gz && \
+ tar -xf vadr-models-mpxv.tar.gz && \
+ mkdir -vp ${VADRMODELDIR} && \
+ cp -nv /vadr-models-sarscov2-${VADR_SARSCOV2_MODELS_VERSION}/* ${VADRMODELDIR} && \
+ cp -nv /vadr-models-mpxv-${VADR_MPXV_MODELS_VERSION}/* ${VADRMODELDIR} && \
+ rm -rf /vadr-models-sarscov2* && \
+ rm -rf /vadr-models-mpxv* && \
+ cp -nv ${VADRINSTALLDIR}/vadr-models-calici/* ${VADRMODELDIR} && \
+ rm -rf ${VADRINSTALLDIR}/vadr-models-calici/
+
+# download RSV VADR models; copy model files into VADRMODELDIR
+RUN wget https://ftp.ncbi.nlm.nih.gov/pub/nawrocki/vadr-models/rsv/${VADR_RSV_MODELS_VER}/vadr-models-rsv-${VADR_RSV_MODELS_VER}.tar.gz && \
+ tar -xf /vadr-models-rsv-${VADR_RSV_MODELS_VER}.tar.gz && \
+ rm -v /vadr-models-rsv-${VADR_RSV_MODELS_VER}.tar.gz && \
+ cp -nvr /vadr-models-rsv-${VADR_RSV_MODELS_VER}/* ${VADRMODELDIR} && \
+ rm -rfv /vadr-models-rsv-${VADR_RSV_MODELS_VER}
+
+# download flu VADR models; copy model files into VADRMODELDIR
+RUN wget https://ftp.ncbi.nlm.nih.gov/pub/nawrocki/vadr-models/flu/${VADR_FLU_MODELS_VER}/vadr-models-flu-${VADR_FLU_MODELS_VER}.tar.gz && \
+ tar -xf /vadr-models-flu-${VADR_FLU_MODELS_VER}.tar.gz && \
+ rm -v /vadr-models-flu-${VADR_FLU_MODELS_VER}.tar.gz && \
+ cp -nvr /vadr-models-flu-${VADR_FLU_MODELS_VER}/* ${VADRMODELDIR} && \
+ rm -rfv /vadr-models-flu-${VADR_FLU_MODELS_VER}
+
+# download release of HAV VADR model files and move files into $VADRMODELDIR; clean up extra copies (original downloaded files)
+RUN wget https://github.com/theiagen/VADR_models/archive/refs/tags/v${VADR_HAV_MODELS_VER}.tar.gz && \
+ tar -xf v${VADR_HAV_MODELS_VER}.tar.gz && \
+ rm -v v${VADR_HAV_MODELS_VER}.tar.gz && \
+ cp -nvr /VADR_models-${VADR_HAV_MODELS_VER}/hav/* ${VADRMODELDIR} && \
+ rm -rf /VADR_models-${VADR_HAV_MODELS_VER}
+
+# Virus model files other than sarscov2 will need to be made available to vadr either in
+# the $VADRMODELDIR or another path can be specified using the 'v-annotate.pl -mdir' option.
+# These files will need to be mounted into the container at runtime, e.g. 'docker run -v' option.
+
+# set working directory
+WORKDIR /data
+
+FROM app as test
+
+# download B.1.1.7 genome from Utah
+ADD https://raw.githubusercontent.com/StaPH-B/docker-builds/master/tests/SARS-CoV-2/SRR13957123.consensus.fa /test-data/SRR13957123.consensus.fa
+
+# print help options (which prints version at top)
+# run test script included w VADR
+# test terminal N trimming script
+# run v-annotate.pl on trimmed B.1.1.7 genome
+RUN v-annotate.pl -h && \
+ /opt/vadr/vadr/testfiles/do-install-tests-local.sh && \
+ /opt/vadr/vadr/miniscripts/fasta-trim-terminal-ambigs.pl \
+ /test-data/SRR13957123.consensus.fa \
+ --minlen 50 \
+ --maxlen 30000 \
+ > /test-data/SRR13957123.consensus.trimmed.fasta && \
+ v-annotate.pl --noseqnamemax --glsearch -s -r --nomisc \
+ --mkey sarscov2 --lowsim5seq 6 --lowsim3seq 6 --alt_fail lowscore,insertnn,deletinn \
+ "/test-data/SRR13957123.consensus.trimmed.fasta" \
+ "SRR13957123-vadr-outdir" && \
+ ls SRR13957123-vadr-outdir
+
+# install ncbi datasets tool (pre-compiled binary); place in $PATH
+RUN wget https://ftp.ncbi.nlm.nih.gov/pub/datasets/command-line/LATEST/linux-amd64/datasets && \
+ chmod +x datasets && \
+ mv -v datasets /usr/local/bin
+
+# download assembly for a MPXV from the UK
+# run VADR trimming script and v-annotate.pl
+# link to GenBank accession: https://www.ncbi.nlm.nih.gov/nuccore/OP022171
+ARG GENBANK_ACCESSION="OP022171.1"
+RUN datasets download virus genome accession ${GENBANK_ACCESSION} --filename ${GENBANK_ACCESSION}.zip && \
+ unzip ${GENBANK_ACCESSION}.zip && rm ${GENBANK_ACCESSION}.zip && \
+ mv -v ncbi_dataset/data/genomic.fna ncbi_dataset/data/${GENBANK_ACCESSION}.genomic.fna && \
+ fasta-trim-terminal-ambigs.pl /data/ncbi_dataset/data/${GENBANK_ACCESSION}.genomic.fna \
+ --minlen 50 \
+ --maxlen 210000 \
+ >/data/${GENBANK_ACCESSION}.trimmed.fasta && \
+v-annotate.pl --split --cpu 2 \
+ --glsearch -s -r \
+ --nomisc \
+ --mkey mpxv \
+ --r_lowsimok \
+ --r_lowsimxd 100 \
+ --r_lowsimxl 2000 \
+ --alt_pass discontn,dupregin \
+ --minimap2 \
+ --s_overhang 150 \
+ /data/${GENBANK_ACCESSION}.trimmed.fasta \
+ ${GENBANK_ACCESSION}-mpxv-vadr-test-output
+
+# download some test flu genomes, run through VADR using flu models
+# example commands taken from VADR flu guide: https://github.com/ncbi/vadr/wiki/Influenza-annotation
+ RUN echo "testing flu functionality..." && \
+ wget https://ftp.ncbi.nlm.nih.gov/pub/nawrocki/vadr-models/flu/pretrim.flu.3.fa && \
+ fasta-trim-terminal-ambigs.pl pretrim.flu.3.fa \
+ --minlen 60 \
+ >/data/flu.3.fa && \
+ v-annotate.pl --split \
+ -r \
+ --atgonly \
+ --xnocomp \
+ --nomisc \
+ --alt_fail extrant5,extrant3 \
+ --mkey flu \
+ /data/flu.3.fa \
+ flu-vadr-test-output
+
+# download a test HAV genome, run through VADR using HAV models
+COPY hav.fasta /data/hav.fasta
+RUN echo "testing HAV functionality..." && \
+ fasta-trim-terminal-ambigs.pl /data/hav.fasta \
+ --minlen 50 \
+ --maxlen 10500 \
+ >/data/hav.trimmed.fasta && \
+ v-annotate.pl --split \
+ -r \
+ -xnocomp \
+ -mkey hav.vadr \
+ /data/hav.trimmed.fasta \
+ hav-vadr-test-output
+
+### COMMENTING OUT RSV TEST BELOW SINCE THIS TEST CAN CONSUME UPWARDS OF 30GB RAM ###
+### it runs fine when you have that much RAM available, but not in GHActions runners that are limited to 7GB RAM ###
+
+# download a test RSV genome, run through VADR using RSV models
+# example commands taken from VADR RSV guide: https://github.com/ncbi/vadr/wiki/RSV-annotation
+# RUN echo "testing RSV functionality..." && \
+# wget https://ftp.ncbi.nlm.nih.gov/pub/nawrocki/vadr-models/rsv/rsv.r10.fa && \
+# fasta-trim-terminal-ambigs.pl rsv.r10.fa \
+# --minlen 50 \
+# --maxlen 15500 \
+# >/data/rsv.r10.trimmed.fasta && \
+# v-annotate.pl --split \
+# -r \
+# -xnocomp \
+# -mkey rsv \
+# /data/rsv.r10.trimmed.fasta \
+# rsv-vadr-test-output
diff --git a/vadr/1.6.3-hav/README.md b/vadr/1.6.3-hav/README.md
new file mode 100644
index 000000000..0d7b111a7
--- /dev/null
+++ b/vadr/1.6.3-hav/README.md
@@ -0,0 +1,93 @@
+# VADR container
+
+Main tool : [VADR](https://github.com/ncbi/vadr)
+
+VADR is a suite of tools for classifying and analyzing sequences homologous to a set of reference models of viral genomes or gene families. It has been mainly tested for analysis of Norovirus, Dengue, and SARS-CoV-2 virus sequences in preparation for submission to the GenBank database.
+
+You can find [additional information on the SARS-CoV-2 models used by VADR here](https://github.com/ncbi/vadr/wiki/Coronavirus-annotation#sarscov2models). The models are downloaded from the [NCBI FTP server](https://ftp.ncbi.nlm.nih.gov/pub/nawrocki/vadr-models/sarscov2/)
+
+Additional tools:
+
+- perl v5.22.1
+- infernal v1.1.5
+- ncbi-blast+ v2.15.0
+- fasta v36.3.8h (the tool, not the file format)
+- minimap2 v2.26
+
+Available VADR models:
+
+- sarscov2 v1.3-2
+- Mpox (AKA MPXV, formerly known as "Monkeypox") v1.4.2-1
+- Norovirus and other Caliciviridae
+- Dengue virus and other Flaviviridae
+- RSV v1.5.1-2
+- influenza v1.6.3-1
+
+Additional VADR models:
+
+- HAV v1.0.0
+ - The description on how this model was built can be found [here](https://github.com/theiagen/VADR_models)
+
+## FYI
+
+- Mpox FYIs
+ - **Note:** Support for MonkeyPox genome annotation was added to the VADR software (July 2022) and is under active development. Things may change quickly. See the above documentation ^ to see the latest information on the state of MPXV annotation with VADR.
+ - Also be aware that some Mpox sequences may take up to **30 minutes** to annotate, depending on how divergent it is from the RefSeq NC_063383 sequence. Some sequences may only take a minute or so.
+- Most of the VADR model files are located at `/opt/vadr/vadr-models` in the container filesystem and this path is stored in the globally accessible bash variable `$VADRMODELDIR`. For most applications, there is no need to specify `v-annotate.pl --mdir /path/to/model/files` since `$VADRMODELDIR` is set in the environment.
+ - The exception is that Dengue and other Flaviviridae model files are located at `/opt/vadr/vadr-models-flavi/` within the container filesystem. To use these models, please specify the 2 options: `v-annotate.pl --mdir /opt/vadr/vadr-models-flavi/ --mkey flavi`. A full example command can be found below.
+
+### VADR Documentation
+
+- [Full documentation](https://github.com/ncbi/vadr#vadr-documentation-)
+- [Docs on Coronavirus annotation](https://github.com/ncbi/vadr/wiki/Coronavirus-annotation)
+- [Docs on Mpox annotation](https://github.com/ncbi/vadr/wiki/Mpox-virus-annotation)
+- [Docs on Dengue and other Flaviviridae annotation](https://github.com/ncbi/vadr/wiki/Available-VADR-model-files#dengue-virus-and-other-flaviviridae-refseq-vadr-models)
+- [Docs on RSV annotation](https://github.com/ncbi/vadr/wiki/RSV-annotation)
+- [Docs on flu annotation](https://github.com/ncbi/vadr/wiki/Influenza-annotation)
+
+## Example Usage
+
+```bash
+# trim terminal Ns from my input genome (VADR requires this as the first step)
+# for MPXV, adjust maxlen to 210000
+/opt/vadr/vadr/miniscripts/fasta-trim-terminal-ambigs.pl \
+ /data/SRR13957123.consensus.fa \
+ --minlen 50 \
+ --maxlen 30000 \
+ > /data/SRR13957123.consensus.trimmed.fasta
+
+# run v-annotate.pl using the sarscov2 model to annotate a trimmed input genome
+v-annotate.pl --noseqnamemax --glsearch -s -r --nomisc \
+ --mkey sarscov2 --lowsim5seq 6 \
+ --lowsim3seq 6 --alt_fail lowscore,insertnn,deletinn \
+ /data/SRR13957123.consensus.trimmed.fasta \
+ SRR13957123-vadr-outdir
+
+# run v-annotate.pl using mpxv model to annotate a trimmed input genome
+v-annotate.pl --split --cpu 8 --glsearch -s -r --nomisc --mkey mpxv \
+ --r_lowsimok --r_lowsimxd 100 --r_lowsimxl 2000 --alt_pass discontn,dupregin \
+ --minimap2 --s_overhang 150 \
+ mpxv.consensus.trimmed.fasta \
+ mpxv-vadr-1.5-test-output
+
+# run v-annotate.pl using Flaviviridae model to annotate a Dengue viral genome
+v-annotate.pl --split --cpu 1 --group Dengue --nomisc --noprotid \
+ --mdir /opt/vadr/vadr-models-flavi/ --mkey flavi \
+ GCF_000862125.1_ViralProj15306_genomic.fna \
+ dengue-test-outdir
+
+# run v-annotate.pl using flu models to annotate input sequences in flu.fa
+v-annotate.pl --split --cpu 8 -r --atgonly --xnocomp --nomisc \
+ --alt_fail extrant5,extrant3 --mkey flu \
+ flu.fa \
+ flu-test-output
+
+# run v-annotate.pl using HAV modesl to annotate an HAV FASTA file
+# the "-mkey hav.vadr" option is required to specify the HAV model
+ v-annotate.pl --split \
+ -r \
+ -xnocomp \
+ -mkey hav.vadr \
+ hav.trimmed.fasta \
+ hav-vadr-test-output
+```
diff --git a/vadr/1.6.3-hav/hav.fasta b/vadr/1.6.3-hav/hav.fasta
new file mode 100644
index 000000000..bb92ec3c8
--- /dev/null
+++ b/vadr/1.6.3-hav/hav.fasta
@@ -0,0 +1,107 @@
+>M59809.1 Hepatitis A virus polyprotein RNA, complete cds
+GTCCCTCTTGGAAGTCCATGGTGAGGGGACTTGATACCTCACCGCCGTTTGCCTAGGCTATAGGCTAAAT
+TTTCCCTTTCCCTTTTCCCTTTCCTATTCCCTTTGTTTTGCTTGTAAATATTGATTTGTAAATATTGATT
+CCTGCAGGTTCAGGGTTCTTAAATCTGTTTCTCTATAAGAACACTCATTTCACGCTTTCTGTCTTCTTTC
+TTCCAGGGCTCTCCCCTTGCCCTAGGCTCTGGCCGTTGCGCCCGGCGGGGTCAACTCCATGATTAGCATG
+GAGCTGTAGGAGTCTAAATTGGGGACACAGATGTTTGGAACGTCACCTTGCAGTGTTAACTTGGCTTTCA
+TGAATCTCTTTGATCTTCCACAAGGGGTAGGCTACGGGTGAAACCTCTTAGGCTAATACTTCTATGAAGA
+GATGCCTTGGATAGGGTAACAGCGGCGGATATTGGTGAGTTGTTAAGACAAAAACCATTCAACGCCGGAG
+GACTGACTCTCATCCAGTGGATGCATTGAGTGGATTGACTGTCGGGGCTGTCTTTAGGCTTAATTCCAGA
+CCTCTCTGTGCTTGGGGCAAACATCATTTGGCCTTAAATGGGATTCTGTGAGAGGGGATCCCTCCATTGC
+CAGCTGGACTGTTCTTTGGGGCCTTATGTGGTGTTTGCCGCTGAGGTACTCAGGGGCATTTAGGTTTTTC
+CTCATTCTTAAATAATAATGAACATGTCTAGACAAGGTATTTTCCAGACTGTTGGGAGTGGTCTTGACCA
+CATCCTGTCTTTGGCAGACATTGAGGAAGAGCAAATGATTCAATCAGTTGATAGGACTGCAGTGACTGGT
+GCTTCTTATTTTACTTCTGTGGATCAATCTTCAGTTCATACAGCTGAGGTTGGATCACACCAGGTTGAAC
+CTTTGAGAACCTCTGTTGATAAACCCGGTTCAAAGAGGACTCAGGGAGAGAAATTTTTCTTGATTCATTC
+TGCAGATTGGCTTACTACACATGCTCTTTTCCATGAAGTTGCAAAATTGGATGTGGTGAAATTATTATAC
+AATGAGCAGTTTGCTGTTCAAGGGTTGTTGAGATACCATACATATGCAAGATTTGGCATTGAAATTCAAG
+TTCAGATAAACCCTACACCTTTCCAACAGGGGGGATTGATCTGTGCTATGGTTCCTGGTGACCAGAGCTA
+TGGTTCTATAGCATCATTGACTGTTTATCCTCATGGTTTGTTAAATTGCAATATTAACAATGTGGTTAGA
+ATAAAGGTTCCATTTATTTACACAAGAGGTGCTTACCACTTTAAAGATCCACAATACCCAGTTTGGGAAT
+TGACAATTAGAGTTTGGTCAGAATTAAATATTGGGACAGGAACTTCAGCTTATACTTCACTCAATGTTTT
+AGCTAGATTTACAGATTTGGAGTTGCATGGATTAACTCCTCTTTCTACACAAATGATGAGAAATGAATTT
+AGGGTCAGTACTACTGAGAATGTGGTGAATCTGTCAAATTATGAAGATGCAAGAGCAAAGATGTCTTTTG
+CTTTGGATCAGGAAGATTGGAAATCTGATCCGTCCCAGGGTGGTGGGATCAAAATTACTCATTTTACTAC
+TTGGACATCTATTCCAACTTTGGCTGCTCAGTTTCCATTTAATGCTTCAGCCTCAGTTGGTCAACAAATT
+AAAGTTATTCCAGTTGACCCATATTTTTTCCAAATGACAAATACGAATCCTGACCAAAAATGTATAACTG
+CTTTGGCTTCTATTTGTCAGATGTTTTGTTTTTGGAGAGGAGATCTTGTCTTTGATTTTCAAGTTTTTCC
+CACCAAATATCATTCAGGTAGATTACTGTTTTGTTTTGTTCCTGGCAATGAGCTAATAGATGTTTCTGGA
+ATCACATTAAAGCAAGCAACTACTGCTCCTTGTGCAGTAATGGATATTACAGGAGTGCAGTCAACTTTGA
+GATTTCGTGTTCCCTGGATTTCTGACACTCCTTACAGAGTGAACAGGTATACAAAGTCAGCACATCAGAA
+AGGTGAGTACACTGCCATTGGGAAGCTTATTGTGTATTGTTATAACAGATTGACCTCTCCTTCTAACGTT
+GCTTCCCATGTCAGAGTGAATGTTTATCTTTCAGCAATTAACTTGGAATGTTTTGCTCCTCTTTATCATG
+CTATGGATGTTACTACACAAGTTGGAGATGATTCTGGAGGTTTTTCAACAACAGTTTCTACAGAACAGAA
+TGTTCCAGATCCCCAAGTTGGTATAACAACCATGAAAGATTTGAAAGGAAAAGCTAACAGAGGGAAAATG
+GATGTTTCAGGAGTACAAGCACCTGTGGGAGCTATCACAACAATTGAGGATCCAGTTTTAGCAAAGAAAG
+TACCTGAGACATTTCCTGAATTGAAACCTGGAGAATCCAGACATACATCAGATCATATGTCCATCTACAA
+GTTTATGGGAAGGTCTCATTTCTTGTGCACTTTTACATTCAATTCAAATAATAAAGAGTACACATTTCCT
+ATAACCTTGTCTTCAACCTCTAATCCTCCTCATGGTTTGCCATCAACACTGAGGTGGTTTTTCAACTTGT
+TTCAGTTGTATAGAGGGCCTTTAGATCTGACAATTATTATTACAGGAGCAACTGATGTAGATGGCATGGC
+CTGGTTCACTCCAGTAGGTCTTGCCGTTGATACTCCTTGGGTAGAGAAGGAGTCAGCTTTGTCTATTGAC
+TACAAAACTGCTCTTGGAGCTGTCAGATTTAACACAAGGAGAACAGGGAGCATTCAGATTAGATTACCAT
+GGTATTCTTATTTATATGCTGTGTCTGGAGCACTGGATGGTTTGGGTGACAAGACAGATTCTACATTTGG
+ATTGGTTTCTATTCAGATTGCAAATTACAATCATTCTGATGAATACTTGTCTTTTAGTTGTTATTTGTCT
+GTCACAGAACAATCAGAGTTTTATTTTCCCAGAGCTCCATTGAACTCAAATGCCATGTTATCCACTGAAT
+CAATGGTGAGCAGAATTGCAGCTGGAGACTTGGAGTCATCAGTGGATGATCCTAGATCAGAGGAAGATAA
+AAGATTTGAGAGTCATATAGAATGCAGGAAGCCATATAAAGAACTGAGATTAGAAGTTGGGAAACAAAGA
+CTCAAGTATGCTCAGGAAGAATTGTCAAATGAAGTACTTCCACCCCCTAGGAAAATGAAGGGACTGTTTT
+CACAAGCCAACATTTCTCTTTTTTATACTGAGGAGCATGAAATGATGAAGTTTTCCTGGAGAGGTGTGAC
+TGCTGATACTAGAGCTTTAAGGAGGTTTGGATTCTCTTTGGCCGCAGGCAGAAGTGTGTGGACTCTTGAA
+ATGGATGCTGGGGTTCTTACTGGGAGACTGATTAGATTGAATGATGAGAAATGGACAGAAATGAAGGATG
+ACAAGATTGTTTCATTGATTGAAAAGTTTACAAGTAACAAATATTGGTCCAAAGTGAATTTCCCACATGG
+GATGTTGGATCTTGAAGAAATTGCTGCCAATTCTAAGGATTTTCCTAACATGTCTGAAACGGATTTGTGT
+TTCTTGCTGCATTGGTTAAATCCAAAGAAAATTAATTTAGCAGATAGAATGCTTGGATTGTCTGGAGTTC
+AGGAAATTAAAGAACAAGGTGTTGGATTAATAGCAGAGTGTAGAACTTTCTTACATTCTATTGCTGGAAC
+TTTAAAATCTATGATGTTTGGATTTCATCATTCTGTGACTGTTGAAATTATAAACACTGTGCTCTGTTTT
+GTTAAGAGTGGAATTTTGCTTTATGTAATACAACAATTGAATCAGGATGAACATTCTCACATAATTGGTC
+TGTTGAGAGTCATGAATTATGTAGATATTGGTTGTTCAGTTATTTCATGTGGCAAAGTTTTTTCCAAAAT
+GCTGGAAACAGTCTTTAATTGGCAAATGGACTCCAGAATGATGGAGTTAAGGACTCAGAGTTTTTCCAAC
+TGGTTAAGAGATATTTGTTCTGGGATCACCATTTTTAAAAACTTCAAGGATGGAATTTGTTGGCTTTATA
+CAAAATTAAAGGACTTTTATGAAGTGAATTATGGCAAGAAGAAGGACATTTTAAATATTCTTAAAGATAA
+CCAACAAAAAATAGAGAAAGCCATTGAGGAAGCCGATAAATTTTGCATTTTGCAAATCCAAGATGTGGAA
+AAATCTGAACAGTATCAGAAAGGGGTTGACTTGATACAAAAATTGAGAACTGTTTATTCAATGGCTCAGG
+TTGATCCAAATTTAATGGTTCATTTGTCACCTTTGAGAGATTGTATAGCAAGAGTTCATCAGAAACTTAA
+AAACCTTGGATTTATAAATCAGGCAATGGTAACGAGATGTGAGCCAGTTGTTTGTTATTTACATGGCAAA
+AGAGGGGGAGGAAAGAGCTTAACATCAATTGCATTGGCAACCAAAATTTGTAAACATTATGGTGTTGAGC
+CTGAAAAGAATATCTATACTAAACCTGTGGCTTCAGATTACTGGGATGGATATAGTGGACAATTAGTTTG
+CATCATTGATGATATTGGCCAAAACACAACAGATGAGGACTGGTCAGATTTTTGTCAGTTAGTGTCAGGA
+TGTCCAATGAGATTAAACATGGCCTCTCTTGAGGAGAAGGGTAGGCATTTTTCTTCTCCTTTTATAATAG
+CAACTTCAAATTGGTCAAATCCAAGTCCAAAAACAGTTTATGTTAAGGAAGCAATTGACCGCAGACTCCA
+TTTCAAGGTTGAAGTTAAACCTGCTTCATTTTTCAAAAATCCTCACAATGATATGTTGAATGTTAATTTA
+GCTAAAACAAATGATGCAATCAAAGATATGTCTTGTGTTGATTTGATAATGGATGGACATAATGTTTCAT
+TGATGGATTTGCTCAGTTCTTTAGTCATGACAGTTGATATTAGAAAACAAAACATGACTGAATTCATGGA
+GTTGTGGTCTCAGGGAATTTCAGATGATAATGATAGTGCAGTAGCTGAGTTTTTCCAGTCTTTTCCATCT
+GGTGAACCATCGAACTCTAAATTATCTGGCTTTTTCCAATCTGTTACTAATCACAAGTGGGTTGCTGTGG
+GAGCTGCAGTTGGCATTCTTGGAGTGCTCGTTGGAGGATGGGTTGTGTATAAGCATTTCTCCCACAAAGA
+GGAAGAACCAATCCCAGCTGAAGGGGTATATCATGGTGTAACTAAGCCCAAGCATGTGATTAAATTAGAT
+GCAGATCCAGTAGAATCTCAGTCAACTTTGGAAGTAGCAGGACTGGTTAGGAAGAACTTGGTTCAGTTTG
+GAGTTGGAGAGAAGAATGGATGTGTGAGATGGGTTATGAATGCCTTGGGAGTGAAAGATGATTGGCTGCT
+TGTGCCTTCCCATGCTTATAAATTTGAGAAAGATTATGAAATGATGGAGTTTTATTTTAATAGAGGTGGA
+ACTTACTATTCAATTTCAGCTGGTAATGTTGTTATTCAATCTTTGGATGTGGGATTCCAGGATGTTGTTC
+TGATGAAGGTTCCTACAATTCCTAAGTTTAGAGATATTACTCAGCATTTTATTAAGAAAGGGGATGTGCC
+TAGAGCTTTGAATCGCCTGGCAACATTAGTGACAACTGTAAATGGAACCCCTATGTTAATTTCTGAGGGC
+CCACTAAAGATGGAAGAGAAAGCTACTTATGTTCATAAGAAAAATGATGGTACAACAGTTGATTTAGCTG
+TGGATCAGGCATGGAGAGGAAAAGGCGAAGGTCTTCCTGGAATGTGTGGTGGGGCCTTGGTTTCATCGAA
+TCAATCTATACAGAATGCAATCTTGGGCATCCATGTTGCTGGAGGAAATTCAATTCTTGTTGCAAAATTG
+GTTACTCAAGAAATGTTCCAAAATATTGATAAGAAAATTGAAAGTCAGAGAATTATGAAAGTGGAGTTTA
+CTCAGTGTTCAATGAATGTGGTCTCCAAAACGCTTTTTAGAAAGAGTCCCATTTATCATCACATTGATAA
+AACCATGATTAATTTTCCTGCAGCTATGCCCTTTTCTAAAGCTGAAATTGATCCAATGGCTGTGATGTTA
+TCTAAGTATTCATTACCTATTGTAGAAGAACCAGAGGGTTATAAAGAGGCTTCAATTTTTTATCAAAATA
+AAATAGTGGGTAAGACTCAGTTAGTTGATGATTTTCTAGATCTTGATATGGCCATTACAGGGGCCCCAGG
+AATTGATGCTATCAACATGGATTCATCTCCTGGATTTCCTTATGTCCAGGAGAAGTTGACCAAAAGAGAT
+TTAATTTGGTTGGATGAAAATGGTTTATTGCTGGGAGTTCATCCAAGATTGGCTCAGAGAATCTTATTCA
+ATACTGTCATGATGGAAAATTGTTCTGATTTGGATGTTGTTTTTACAACCTGTCCAAAAGATGAATTGAG
+ACCATTAGAGAAAGTGTTGGAATCAAAAACAAGAGCTATTGATGCTTGTCCTCTGGATTACACAATTTTG
+TGCCGAATGTATTGGGGTCCAGCTATTAGTTATTTTCATTTGAATCCAGGTTTCCATACAGGTGTTGCTA
+TTGGCATAGATCCTGATAAACAGTGGGATGAACTATTTAAAACAATGATAAGATTCGGAGATGTTGGTCT
+TGATTTAGATTTCTCTGCTTTTGATGCTAGTCTTAGTCCATTTATGATTAGAGAAGCAGGTAGAATCATG
+AGTGAACTATCTGGAACTCCATCCCATTTTGGCACAGCTCTCATCAATACTATCATTTATTCCAAGCATT
+TGCTGTATAACTGTTGCTACCATGTCTGTGGTTCAATGCCCTCTGGGTCTCCTTGTACAGCTTTGCTAAA
+TTCAATTATTAATAATGTCAATTTGTATTATGTGTTTTCCAAGATATTTGGAAAGTCTCCAGTTTTCTTT
+TGTCAGGCTTTGAAGATTCTCTGTTATGGAGATGATGTTTTAATAGTTTTCTCTCGAGATGTTCAGATTG
+ATAATCTTGATTTGATTGGACAAAAAATTGTAGATGAGTTTAAGAAACTTGGCATGACAGCTACTTCTGC
+TGACAAGAATGTACCTCAGCTGAAACCAGTTTCGGAATTGACTTTTCTCAAAAGATCTTTCAATTTGGTA
+GAGGATAGAATTAGACCTGCAATTTCGGAAAAAACAATTTGGTCTTTAATAGCATGGCAGAGAAGCAACG
+CTGAGTTTGAGCAGAATTTAGAGAATGCTCAGTGGTTTGCCTTTATGCATGGCTATGAGTTTTATCAGAA
+ATTCTATTATTTTGTTCAGTCCTGTTTGGAGAAAGAGATGATAGAATACAGACTTAAATCTTATGATTGG
+TGGAGAATGAGATTTTATGACCAGTGTTTCATTTGTGACCTTTCATGATTTGTTTAAATGAACTTTCTT
\ No newline at end of file
diff --git a/vadr/1.6.3/Dockerfile b/vadr/1.6.3/Dockerfile
new file mode 100644
index 000000000..7222f1a48
--- /dev/null
+++ b/vadr/1.6.3/Dockerfile
@@ -0,0 +1,192 @@
+FROM ubuntu:focal as app
+
+# for easy upgrade later. LC_ALL set for singularity compatibility
+ENV VADR_VERSION="1.6.3" \
+ VADR_SARSCOV2_MODELS_VERSION="1.3-2" \
+ VADR_MPXV_MODELS_VERSION="1.4.2-1" \
+ VADR_RSV_MODELS_VER="1.5-2"\
+ VADR_FLU_MODELS_VER="1.6.3-1"\
+ LC_ALL=C \
+ VADRINSTALLDIR=/opt/vadr
+
+ENV VADRSCRIPTSDIR=$VADRINSTALLDIR/vadr \
+ VADRMINISCRIPTSDIR=$VADRINSTALLDIR/vadr/miniscripts \
+ VADRMODELDIR=$VADRINSTALLDIR/vadr-models \
+ VADRINFERNALDIR=$VADRINSTALLDIR/infernal/binaries \
+ VADREASELDIR=$VADRINSTALLDIR/infernal/binaries \
+ VADRHMMERDIR=$VADRINSTALLDIR/infernal/binaries \
+ VADRBIOEASELDIR=$VADRINSTALLDIR/Bio-Easel \
+ VADRSEQUIPDIR=$VADRINSTALLDIR/sequip \
+ VADRBLASTDIR=$VADRINSTALLDIR/ncbi-blast/bin \
+ VADRFASTADIR=$VADRINSTALLDIR/fasta/bin \
+ VADRMINIMAP2DIR=$VADRINSTALLDIR/minimap2
+
+ENV PERL5LIB=$VADRSCRIPTSDIR:$VADRSEQUIPDIR:$VADRBIOEASELDIR/blib/lib:$VADRBIOEASELDIR/blib/arch:$PERL5LIB \
+ PATH=$VADRSCRIPTSDIR:$VADRMINISCRIPTSDIR:$PATH
+
+# metadata - optional, but highly recommended
+LABEL base.image="ubuntu:focal"
+LABEL dockerfile.version="1"
+LABEL software="VADR"
+LABEL software.version="${VADR_VERSION}"
+LABEL description="Classification and annotation of viral sequences based on RefSeq annotation"
+LABEL website="https://github.com/ncbi/vadr"
+LABEL license="https://github.com/ncbi/vadr/blob/master/LICENSE"
+LABEL maintainer="Anders Goncalves da Silva"
+LABEL maintainer.email="andersgs@gmail.com"
+LABEL maintainer2="Curtis Kapsak"
+LABEL maintainer2.email="curtis.kapsak@theiagen.com"
+
+# install dependencies via apt-get. Clean up apt garbage
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ wget \
+ ca-certificates \
+ perl \
+ curl \
+ unzip \
+ build-essential \
+ autoconf \
+ libinline-c-perl \
+ liblwp-protocol-https-perl \
+ zip \
+ unzip \
+ procps \
+ zlib1g-dev && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+# install VADR
+# download entire VADR source code from GitHub release
+# use vadr-install.sh script to install VADR into $VADRINSTALLDIR (set to /opt/vadr)
+# this script grabs files from tagged release and sets things up in /opt/vadr/vadr
+# last step is to delete the original source code that is a duplicate (/opt/vadr/vadr-$VADR_VERSION)
+RUN mkdir -p ${VADRINSTALLDIR} && \
+ cd ${VADRINSTALLDIR} && \
+ wget https://github.com/ncbi/vadr/archive/refs/tags/vadr-${VADR_VERSION}.tar.gz && \
+ mkdir vadr-${VADR_VERSION} && tar -xzf vadr-${VADR_VERSION}.tar.gz -C vadr-${VADR_VERSION} --strip-components 1 && \
+ rm vadr-${VADR_VERSION}.tar.gz && \
+ bash vadr-${VADR_VERSION}/vadr-install.sh linux && \
+ rm -rf vadr-${VADR_VERSION}/ && \
+ mkdir /data
+
+# install the latest sarscov2 and mpxv models
+# copy calici model files into VADRMODELDIR to allow VADR tests to pass completely
+# cleanup duplicate copies of model files
+RUN wget -O vadr-models-sarscov2.tar.gz https://ftp.ncbi.nlm.nih.gov/pub/nawrocki/vadr-models/sarscov2/${VADR_SARSCOV2_MODELS_VERSION}/vadr-models-sarscov2-${VADR_SARSCOV2_MODELS_VERSION}.tar.gz && \
+ wget -O vadr-models-mpxv.tar.gz https://ftp.ncbi.nlm.nih.gov/pub/nawrocki/vadr-models/mpxv/${VADR_MPXV_MODELS_VERSION}/vadr-models-mpxv-${VADR_MPXV_MODELS_VERSION}.tar.gz && \
+ tar -xf vadr-models-sarscov2.tar.gz && \
+ tar -xf vadr-models-mpxv.tar.gz && \
+ mkdir -vp ${VADRMODELDIR} && \
+ cp -nv /vadr-models-sarscov2-${VADR_SARSCOV2_MODELS_VERSION}/* ${VADRMODELDIR} && \
+ cp -nv /vadr-models-mpxv-${VADR_MPXV_MODELS_VERSION}/* ${VADRMODELDIR} && \
+ rm -rf /vadr-models-sarscov2* && \
+ rm -rf /vadr-models-mpxv* && \
+ cp -nv ${VADRINSTALLDIR}/vadr-models-calici/* ${VADRMODELDIR} && \
+ rm -rf ${VADRINSTALLDIR}/vadr-models-calici/
+
+# download RSV VADR models; copy model files into VADRMODELDIR
+RUN wget https://ftp.ncbi.nlm.nih.gov/pub/nawrocki/vadr-models/rsv/${VADR_RSV_MODELS_VER}/vadr-models-rsv-${VADR_RSV_MODELS_VER}.tar.gz && \
+ tar -xf /vadr-models-rsv-${VADR_RSV_MODELS_VER}.tar.gz && \
+ rm -v /vadr-models-rsv-${VADR_RSV_MODELS_VER}.tar.gz && \
+ cp -nvr /vadr-models-rsv-${VADR_RSV_MODELS_VER}/* ${VADRMODELDIR} && \
+ rm -rfv /vadr-models-rsv-${VADR_RSV_MODELS_VER}
+
+# download flu VADR models; copy model files into VADRMODELDIR
+RUN wget https://ftp.ncbi.nlm.nih.gov/pub/nawrocki/vadr-models/flu/${VADR_FLU_MODELS_VER}/vadr-models-flu-${VADR_FLU_MODELS_VER}.tar.gz && \
+ tar -xf /vadr-models-flu-${VADR_FLU_MODELS_VER}.tar.gz && \
+ rm -v /vadr-models-flu-${VADR_FLU_MODELS_VER}.tar.gz && \
+ cp -nvr /vadr-models-flu-${VADR_FLU_MODELS_VER}/* ${VADRMODELDIR} && \
+ rm -rfv /vadr-models-flu-${VADR_FLU_MODELS_VER}
+
+# Virus model files other than sarscov2 will need to be made available to vadr either in
+# the $VADRMODELDIR or another path can be specified using the 'v-annotate.pl -mdir' option.
+# These files will need to be mounted into the container at runtime, e.g. 'docker run -v' option.
+
+# set working directory
+WORKDIR /data
+
+FROM app as test
+
+# download B.1.1.7 genome from Utah
+ADD https://raw.githubusercontent.com/StaPH-B/docker-builds/master/tests/SARS-CoV-2/SRR13957123.consensus.fa /test-data/SRR13957123.consensus.fa
+
+# print help options (which prints version at top)
+# run test script included w VADR
+# test terminal N trimming script
+# run v-annotate.pl on trimmed B.1.1.7 genome
+RUN v-annotate.pl -h && \
+ /opt/vadr/vadr/testfiles/do-install-tests-local.sh && \
+ /opt/vadr/vadr/miniscripts/fasta-trim-terminal-ambigs.pl \
+ /test-data/SRR13957123.consensus.fa \
+ --minlen 50 \
+ --maxlen 30000 \
+ > /test-data/SRR13957123.consensus.trimmed.fasta && \
+ v-annotate.pl --noseqnamemax --glsearch -s -r --nomisc \
+ --mkey sarscov2 --lowsim5seq 6 --lowsim3seq 6 --alt_fail lowscore,insertnn,deletinn \
+ "/test-data/SRR13957123.consensus.trimmed.fasta" \
+ "SRR13957123-vadr-outdir" && \
+ ls SRR13957123-vadr-outdir
+
+# install ncbi datasets tool (pre-compiled binary); place in $PATH
+RUN wget https://ftp.ncbi.nlm.nih.gov/pub/datasets/command-line/LATEST/linux-amd64/datasets && \
+ chmod +x datasets && \
+ mv -v datasets /usr/local/bin
+
+# download assembly for a MPXV from the UK
+# run VADR trimming script and v-annotate.pl
+# link to GenBank accession: https://www.ncbi.nlm.nih.gov/nuccore/OP022171
+ARG GENBANK_ACCESSION="OP022171.1"
+RUN datasets download virus genome accession ${GENBANK_ACCESSION} --filename ${GENBANK_ACCESSION}.zip && \
+ unzip ${GENBANK_ACCESSION}.zip && rm ${GENBANK_ACCESSION}.zip && \
+ mv -v ncbi_dataset/data/genomic.fna ncbi_dataset/data/${GENBANK_ACCESSION}.genomic.fna && \
+ fasta-trim-terminal-ambigs.pl /data/ncbi_dataset/data/${GENBANK_ACCESSION}.genomic.fna \
+ --minlen 50 \
+ --maxlen 210000 \
+ >/data/${GENBANK_ACCESSION}.trimmed.fasta && \
+v-annotate.pl --split --cpu 2 \
+ --glsearch -s -r \
+ --nomisc \
+ --mkey mpxv \
+ --r_lowsimok \
+ --r_lowsimxd 100 \
+ --r_lowsimxl 2000 \
+ --alt_pass discontn,dupregin \
+ --minimap2 \
+ --s_overhang 150 \
+ /data/${GENBANK_ACCESSION}.trimmed.fasta \
+ ${GENBANK_ACCESSION}-mpxv-vadr-test-output
+
+# download some test flu genomes, run through VADR using flu models
+# example commands taken from VADR flu guide: https://github.com/ncbi/vadr/wiki/Influenza-annotation
+ RUN echo "testing flu functionality..." && \
+ wget https://ftp.ncbi.nlm.nih.gov/pub/nawrocki/vadr-models/flu/pretrim.flu.3.fa && \
+ fasta-trim-terminal-ambigs.pl pretrim.flu.3.fa \
+ --minlen 60 \
+ >/data/flu.3.fa && \
+ v-annotate.pl --split \
+ -r \
+ --atgonly \
+ --xnocomp \
+ --nomisc \
+ --alt_fail extrant5,extrant3 \
+ --mkey flu \
+ /data/flu.3.fa \
+ flu-vadr-test-output
+
+
+### COMMENTING OUT RSV TEST BELOW SINCE THIS TEST CAN CONSUME UPWARDS OF 30GB RAM ###
+### it runs fine when you have that much RAM available, but not in GHActions runners that are limited to 7GB RAM ###
+
+# download a test RSV genome, run through VADR using RSV models
+# example commands taken from VADR RSV guide: https://github.com/ncbi/vadr/wiki/RSV-annotation
+# RUN echo "testing RSV functionality..." && \
+# wget https://ftp.ncbi.nlm.nih.gov/pub/nawrocki/vadr-models/rsv/rsv.r10.fa && \
+# fasta-trim-terminal-ambigs.pl rsv.r10.fa \
+# --minlen 50 \
+# --maxlen 15500 \
+# >/data/rsv.r10.trimmed.fasta && \
+# v-annotate.pl --split \
+# -r \
+# -xnocomp \
+# -mkey rsv \
+# /data/rsv.r10.trimmed.fasta \
+# rsv-vadr-test-output
diff --git a/vadr/1.6.3/README.md b/vadr/1.6.3/README.md
new file mode 100644
index 000000000..9c684721d
--- /dev/null
+++ b/vadr/1.6.3/README.md
@@ -0,0 +1,80 @@
+# VADR container
+
+Main tool : [VADR](https://github.com/ncbi/vadr)
+
+VADR is a suite of tools for classifying and analyzing sequences homologous to a set of reference models of viral genomes or gene families. It has been mainly tested for analysis of Norovirus, Dengue, and SARS-CoV-2 virus sequences in preparation for submission to the GenBank database.
+
+You can find [additional information on the SARS-CoV-2 models used by VADR here](https://github.com/ncbi/vadr/wiki/Coronavirus-annotation#sarscov2models). The models are downloaded from the [NCBI FTP server](https://ftp.ncbi.nlm.nih.gov/pub/nawrocki/vadr-models/sarscov2/)
+
+Additional tools:
+
+- perl v5.22.1
+- infernal v1.1.5
+- ncbi-blast+ v2.15.0
+- fasta v36.3.8h (the tool, not the file format)
+- minimap2 v2.26
+
+Available VADR models:
+
+- sarscov2 v1.3-2
+- Mpox (AKA MPXV, formerly known as "Monkeypox") v1.4.2-1
+- Norovirus and other Caliciviridae
+- Dengue virus and other Flaviviridae
+- RSV v1.5.1-2
+- influenza v1.6.3-1
+
+## FYI
+
+- Mpox FYIs
+ - **Note:** Support for MonkeyPox genome annotation was added to the VADR software (July 2022) and is under active development. Things may change quickly. See the above documentation ^ to see the latest information on the state of MPXV annotation with VADR.
+ - Also be aware that some Mpox sequences may take up to **30 minutes** to annotate, depending on how divergent it is from the RefSeq NC_063383 sequence. Some sequences may only take a minute or so.
+- Most of the VADR model files are located at `/opt/vadr/vadr-models` in the container filesystem and this path is stored in the globally accessible bash variable `$VADRMODELDIR`. For most applications, there is no need to specify `v-annotate.pl --mdir /path/to/model/files` since `$VADRMODELDIR` is set in the environment.
+ - The exception is that Dengue and other Flaviviridae model files are located at `/opt/vadr/vadr-models-flavi/` within the container filesystem. To use these models, please specify the 2 options: `v-annotate.pl --mdir /opt/vadr/vadr-models-flavi/ --mkey flavi`. A full example command can be found below.
+
+### VADR Documentation
+
+- [Full documentation](https://github.com/ncbi/vadr#vadr-documentation-)
+- [Docs on Coronavirus annotation](https://github.com/ncbi/vadr/wiki/Coronavirus-annotation)
+- [Docs on Mpox annotation](https://github.com/ncbi/vadr/wiki/Mpox-virus-annotation)
+- [Docs on Dengue and other Flaviviridae annotation](https://github.com/ncbi/vadr/wiki/Available-VADR-model-files#dengue-virus-and-other-flaviviridae-refseq-vadr-models)
+- [Docs on RSV annotation](https://github.com/ncbi/vadr/wiki/RSV-annotation)
+- [Docs on flu annotation](https://github.com/ncbi/vadr/wiki/Influenza-annotation)
+
+## Example Usage
+
+```bash
+# trim terminal Ns from my input genome (VADR requires this as the first step)
+# for MPXV, adjust maxlen to 210000
+/opt/vadr/vadr/miniscripts/fasta-trim-terminal-ambigs.pl \
+ /data/SRR13957123.consensus.fa \
+ --minlen 50 \
+ --maxlen 30000 \
+ > /data/SRR13957123.consensus.trimmed.fasta
+
+# run v-annotate.pl using the sarscov2 model to annotate a trimmed input genome
+v-annotate.pl --noseqnamemax --glsearch -s -r --nomisc \
+ --mkey sarscov2 --lowsim5seq 6 \
+ --lowsim3seq 6 --alt_fail lowscore,insertnn,deletinn \
+ /data/SRR13957123.consensus.trimmed.fasta \
+ SRR13957123-vadr-outdir
+
+# run v-annotate.pl using mpxv model to annotate a trimmed input genome
+v-annotate.pl --split --cpu 8 --glsearch -s -r --nomisc --mkey mpxv \
+ --r_lowsimok --r_lowsimxd 100 --r_lowsimxl 2000 --alt_pass discontn,dupregin \
+ --minimap2 --s_overhang 150 \
+ mpxv.consensus.trimmed.fasta \
+ mpxv-vadr-1.5-test-output
+
+# run v-annotate.pl using Flaviviridae model to annotate a Dengue viral genome
+v-annotate.pl --split --cpu 1 --group Dengue --nomisc --noprotid \
+ --mdir /opt/vadr/vadr-models-flavi/ --mkey flavi \
+ GCF_000862125.1_ViralProj15306_genomic.fna \
+ dengue-test-outdir
+
+# run v-annotate.pl using flu models to annotate input sequences in flu.fa
+v-annotate.pl --split --cpu 8 -r --atgonly --xnocomp --nomisc \
+ --alt_fail extrant5,extrant3 --mkey flu \
+ flu.fa \
+ flu-test-output
+
+```
diff --git a/verkko/2.0/Dockerfile b/verkko/2.0/Dockerfile
new file mode 100644
index 000000000..7ce83ab3d
--- /dev/null
+++ b/verkko/2.0/Dockerfile
@@ -0,0 +1,50 @@
+FROM mambaorg/micromamba:1.5.6 as app
+
+ARG VERKKO_VER="2.0"
+
+USER root
+
+WORKDIR /
+
+LABEL base.image="mambaorg/micromamba:1.5.6"
+LABEL dockerfile.version="1"
+LABEL software="Verkko"
+LABEL software.version="${VERKKO_VER}"
+LABEL description="Verkko is a hybrid genome assembly pipeline developed for telomere-to-telomere assembly of PacBio HiFi or Oxford Nanopore Duplex and Oxford Nanopore simplex reads."
+LABEL website="https://github.com/marbl/verkko"
+LABEL license="https://github.com/marbl/verkko/blob/master/README.licenses"
+LABEL maintainer="Kutluhan Incekara"
+LABEL maintainer.email="kutluhan.incekara@ct.gov"
+
+RUN apt-get update && apt-get install --no-install-recommends -y \
+ procps \
+ curl && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+RUN micromamba install --name base -c conda-forge -c bioconda verkko=${VERKKO_VER} && \
+ micromamba clean -a -y
+
+ENV PATH="/opt/conda/bin/:${PATH}" \
+ LC_ALL=C.UTF-8
+
+CMD [ "verkko", "--help" ]
+
+WORKDIR /data
+
+## Test ##
+FROM app as test
+
+ENV ENV_NAME="base"
+ARG MAMBA_DOCKERFILE_ACTIVATE=1
+
+RUN apt-get update && apt-get install --no-install-recommends -y curl
+
+# test data
+RUN curl -L https://obj.umiacs.umd.edu/sergek/shared/ecoli_hifi_subset24x.fastq.gz -o hifi.fastq.gz &&\
+ curl -L https://obj.umiacs.umd.edu/sergek/shared/ecoli_ont_subset50x.fastq.gz -o ont.fastq.gz
+
+# verkko test run
+RUN verkko -d asm --hifi ./hifi.fastq.gz --nano ./ont.fastq.gz &&\
+ head asm/assembly.hifi-coverage.csv &&\
+ head -c 1000 asm/assembly.fasta
+
diff --git a/verkko/2.0/README.md b/verkko/2.0/README.md
new file mode 100644
index 000000000..ee3b2e499
--- /dev/null
+++ b/verkko/2.0/README.md
@@ -0,0 +1,21 @@
+# Verkko container
+
+Main tool: [verkko](https://github.com/marbl/verkko)
+
+Code repository: https://github.com/marbl/verkko
+
+Basic information on how to use this tool:
+- executable: verkko
+- help: --help
+- version: --version
+- description: Verkko is a hybrid genome assembly pipeline developed for telomere-to-telomere assembly of PacBio HiFi or Oxford Nanopore Duplex and Oxford Nanopore simplex reads.
+
+Full documentation: https://github.com/marbl/verkko
+
+## Example Usage
+
+```bash
+verkko -d --hifi [--nano ]
+```
+
+
\ No newline at end of file
diff --git a/verkko/2.1/Dockerfile b/verkko/2.1/Dockerfile
new file mode 100644
index 000000000..5f77f5fba
--- /dev/null
+++ b/verkko/2.1/Dockerfile
@@ -0,0 +1,48 @@
+FROM mambaorg/micromamba:1.5.8 as app
+
+ARG VERKKO_VER="2.1"
+
+USER root
+
+WORKDIR /
+
+LABEL base.image="mambaorg/micromamba:1.5.8"
+LABEL dockerfile.version="1"
+LABEL software="Verkko"
+LABEL software.version="${VERKKO_VER}"
+LABEL description="Verkko is a hybrid genome assembly pipeline developed for telomere-to-telomere assembly of PacBio HiFi or Oxford Nanopore Duplex and Oxford Nanopore simplex reads."
+LABEL website="https://github.com/marbl/verkko"
+LABEL license="https://github.com/marbl/verkko/blob/master/README.licenses"
+LABEL maintainer="Kutluhan Incekara"
+LABEL maintainer.email="kutluhan.incekara@ct.gov"
+
+RUN apt-get update && apt-get install --no-install-recommends -y \
+ procps &&\
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+RUN micromamba install --name base -c conda-forge -c bioconda verkko=${VERKKO_VER} && \
+ micromamba clean -afy
+
+ENV PATH="/opt/conda/bin/:${PATH}" \
+ LC_ALL=C.UTF-8
+
+CMD [ "verkko", "--help" ]
+
+WORKDIR /data
+
+## Test ##
+FROM app as test
+
+RUN verkko --help
+
+RUN apt-get update && apt-get install --no-install-recommends -y curl
+
+# test data
+RUN curl -L https://obj.umiacs.umd.edu/sergek/shared/ecoli_hifi_subset24x.fastq.gz -o hifi.fastq.gz &&\
+ curl -L https://obj.umiacs.umd.edu/sergek/shared/ecoli_ont_subset50x.fastq.gz -o ont.fastq.gz
+
+# verkko test run
+RUN verkko -d asm --hifi ./hifi.fastq.gz --nano ./ont.fastq.gz &&\
+ head asm/assembly.hifi-coverage.csv &&\
+ head -c 1000 asm/assembly.fasta
+
diff --git a/verkko/2.1/README.md b/verkko/2.1/README.md
new file mode 100644
index 000000000..ee3b2e499
--- /dev/null
+++ b/verkko/2.1/README.md
@@ -0,0 +1,21 @@
+# Verkko container
+
+Main tool: [verkko](https://github.com/marbl/verkko)
+
+Code repository: https://github.com/marbl/verkko
+
+Basic information on how to use this tool:
+- executable: verkko
+- help: --help
+- version: --version
+- description: Verkko is a hybrid genome assembly pipeline developed for telomere-to-telomere assembly of PacBio HiFi or Oxford Nanopore Duplex and Oxford Nanopore simplex reads.
+
+Full documentation: https://github.com/marbl/verkko
+
+## Example Usage
+
+```bash
+verkko -d --hifi [--nano ]
+```
+
+
\ No newline at end of file
diff --git a/viridian/1.2.2/Dockerfile b/viridian/1.2.2/Dockerfile
new file mode 100644
index 000000000..71738a7bc
--- /dev/null
+++ b/viridian/1.2.2/Dockerfile
@@ -0,0 +1,215 @@
+ARG VIRIDIAN_VER="1.2.2"
+ARG SAMTOOLS_VER="1.20"
+ARG BCFTOOLS_VER=${SAMTOOLS_VER}
+ARG HTSLIB_VER=${SAMTOOLS_VER}
+ARG ENA_VER="1.7.1"
+ARG NGMERGE_VER="0.3"
+ARG VT_VER="0.57721"
+ARG RACON_VER="1.5.0"
+ARG MUMMER_VER="4.0.0rc1"
+ARG READITANDKEEP_VER="0.3.0"
+ARG CYLON_COMMIT_HASH="57d559a76254b0b95785f7c02fa58ef806713e01"
+ARG VARIFIER_COMMIT_HASH="8bc8726ed3cdb337dc47b62515e709759e451137"
+ARG MINIMAP2_VER="2.28"
+
+## Builder ##
+FROM ubuntu:jammy as build
+ARG SAMTOOLS_VER
+ARG BCFTOOLS_VER
+ARG HTSLIB_VER
+ARG NGMERGE_VER
+ARG VT_VER
+ARG RACON_VER
+ARG READITANDKEEP_VER
+ARG MINIMAP2_VER
+ARG MUMMER_VER
+
+ENV DEBIAN_FRONTEND=noninteractive
+
+RUN apt-get update && apt-get install --no-install-recommends -y \
+ wget \
+ ca-certificates \
+ perl \
+ bzip2 \
+ cmake \
+ git \
+ autoconf \
+ automake \
+ make \
+ curl \
+ gcc \
+ g++ \
+ gnuplot \
+ zlib1g-dev \
+ libbz2-dev \
+ liblzma-dev \
+ libcurl4-gnutls-dev \
+ libncurses5-dev \
+ libssl-dev \
+ libperl-dev \
+ libgsl0-dev \
+ procps \
+ gawk \
+ sed \
+ build-essential \
+ unzip \
+ nasm \
+ pkgconf \
+ libtool \
+ ruby \
+ yaggo \
+ gcc-11 && \
+ rm -rf /var/lib/apt/lists/* && apt-get autoclean
+
+# compile bcftools
+RUN wget -q https://github.com/samtools/bcftools/releases/download/${BCFTOOLS_VER}/bcftools-${BCFTOOLS_VER}.tar.bz2 && \
+ tar -xjf bcftools-${BCFTOOLS_VER}.tar.bz2 && \
+ rm -v bcftools-${BCFTOOLS_VER}.tar.bz2 && \
+ cd bcftools-${BCFTOOLS_VER} && \
+ make && \
+ make install
+
+# compile samtools
+RUN wget -q https://github.com/samtools/samtools/releases/download/${SAMTOOLS_VER}/samtools-${SAMTOOLS_VER}.tar.bz2 && \
+ tar -xjf samtools-${SAMTOOLS_VER}.tar.bz2 && \
+ cd samtools-${SAMTOOLS_VER} && \
+ ./configure && \
+ make && \
+ make install
+
+# compile htslib
+RUN wget -q https://github.com/samtools/htslib/releases/download/${HTSLIB_VER}/htslib-${HTSLIB_VER}.tar.bz2 && \
+ tar -vxjf htslib-${HTSLIB_VER}.tar.bz2 && \
+ rm -v htslib-${HTSLIB_VER}.tar.bz2 && \
+ cd htslib-${HTSLIB_VER} && \
+ make && \
+ make install
+
+# compile NGmerge
+RUN wget -q https://github.com/harvardinformatics/NGmerge/archive/refs/tags/v${NGMERGE_VER}.tar.gz && \
+ tar -vxf v${NGMERGE_VER}.tar.gz && \
+ cd NGmerge-${NGMERGE_VER} && \
+ make && \
+ cp NGmerge /usr/local/bin/.
+
+# compile vt
+RUN wget -q https://github.com/atks/vt/archive/refs/tags/${VT_VER}.tar.gz && \
+ tar -vxf ${VT_VER}.tar.gz && \
+ cd vt-${VT_VER} && \
+ make && \
+ cp vt /usr/local/bin/.
+
+# compile racon
+RUN wget -q https://github.com/lbcb-sci/racon/archive/refs/tags/${RACON_VER}.tar.gz && \
+ tar -xvf ${RACON_VER}.tar.gz && \
+ cd racon-${RACON_VER} && \
+ mkdir build && \
+ cd build && \
+ cmake -DCMAKE_BUILD_TYPE=Release .. && \
+ make && \
+ cp bin/racon /usr/local/bin/.
+
+# compile read-it-and-keep
+RUN wget -q https://github.com/GlobalPathogenAnalysisService/read-it-and-keep/archive/refs/tags/v${READITANDKEEP_VER}.tar.gz && \
+ tar -vxf v${READITANDKEEP_VER}.tar.gz && \
+ cd read-it-and-keep-${READITANDKEEP_VER}/src && \
+ make && \
+ cp readItAndKeep /usr/local/bin/.
+
+# install minimap2 binary
+RUN curl -L https://github.com/lh3/minimap2/releases/download/v${MINIMAP2_VER}/minimap2-${MINIMAP2_VER}_x64-linux.tar.bz2 | tar -jxvf - --no-same-owner && \
+ cp minimap2-${MINIMAP2_VER}_x64-linux/minimap2 /usr/local/bin
+
+RUN wget -q https://github.com/mummer4/mummer/archive/refs/tags/v${MUMMER_VER}.tar.gz && \
+ tar -xvf v${MUMMER_VER}.tar.gz && \
+ cd mummer-${MUMMER_VER} && \
+ autoreconf -i && \
+ ./configure CXXFLAGS="-std=c++11 -Wno-maybe-uninitialized" LDFLAGS=-static && \
+ make && \
+ make install && \
+ ldconfig
+
+## App ##
+FROM ubuntu:jammy as app
+
+ARG VIRIDIAN_VER
+ARG ENA_VER
+ARG CYLON_COMMIT_HASH
+ARG VARIFIER_COMMIT_HASH
+
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="viridian"
+LABEL software.version="${VIRIDIAN_VER}"
+LABEL description="Ultra-careful amplicon-aware viral assembly for tiled amplicon schemes."
+LABEL website="https://github.com/iqbal-lab-org/viridian"
+LABEL license="https://github.com/iqbal-lab-org/viridian/blob/master/LICENSE"
+LABEL maintainer="Wilson Chan"
+LABEL maintainer.email="chan.wilson.wc@gmail.com"
+LABEL maintainer2="Kutluhan Incekara"
+LABEL maintainer2.email="kutluhan.incekara@ct.gov"
+LABEL maintainer3="Erin Young"
+LABEL maintainer3.email="eriny@utah.gov"
+
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ python3 \
+ python3-pip \
+ python3-dev \
+ gzip \
+ gcc \
+ perl \
+ zlib1g \
+ libncurses5 \
+ bzip2 \
+ liblzma-dev \
+ libcurl4-gnutls-dev \
+ wget \
+ && apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+COPY --from=build /usr/local/bin/* /usr/local/bin/
+COPY --from=build /usr/local/lib/* /usr/local/lib/
+
+RUN pip install --no-cache-dir cython
+
+# ENA tools
+RUN wget -q https://github.com/enasequence/enaBrowserTools/archive/refs/tags/v${ENA_VER}.tar.gz && \
+ tar -xvf v${ENA_VER}.tar.gz && \
+ rm v${ENA_VER}.tar.gz
+
+RUN wget -q https://github.com/iqbal-lab-org/cylon/archive/${CYLON_COMMIT_HASH}.zip &&\
+ pip install --no-cache-dir ${CYLON_COMMIT_HASH}.zip && \
+ rm ${CYLON_COMMIT_HASH}.zip
+
+RUN wget -q https://github.com/iqbal-lab-org/varifier/archive/${VARIFIER_COMMIT_HASH}.zip &&\
+ pip install --no-cache-dir ${VARIFIER_COMMIT_HASH}.zip && \
+ rm ${VARIFIER_COMMIT_HASH}.zip
+
+# install viridian
+RUN wget -q https://github.com/iqbal-lab-org/viridian/archive/refs/tags/v${VIRIDIAN_VER}.tar.gz && \
+ pip install --no-cache-dir v${VIRIDIAN_VER}.tar.gz && \
+ mkdir viridian && \
+ tar -C viridian --strip-components=1 -xvf v${VIRIDIAN_VER}.tar.gz && \
+ rm v${VIRIDIAN_VER}.tar.gz
+
+WORKDIR /data
+
+CMD ["viridian", "--help "]
+
+ENV PATH="/enaBrowserTools-${ENA_VER}/python3:$PATH" LC_ALL=C
+
+## Test ##
+FROM app as test
+
+WORKDIR /test
+
+RUN cd /viridian && \
+ pip install --no-cache-dir pytest && \
+ pytest
+
+RUN viridian run_one_sample --run_accession SRR29437696 --outdir OUT && \
+ wc -l OUT/consensus.fa.gz OUT/log.json.gz OUT/qc.tsv.gz && \
+ head OUT/variants.vcf
+
+RUN viridian run_one_sample --run_accession SRR29437696 --outdir OUT2 --keep_bam && \
+ wc -l OUT2/consensus.fa.gz OUT2/log.json.gz OUT2/qc.tsv.gz OUT2/reference_mapped.bam && \
+ head OUT2/variants.vcf
diff --git a/viridian/1.2.2/README.md b/viridian/1.2.2/README.md
new file mode 100644
index 000000000..e762947fe
--- /dev/null
+++ b/viridian/1.2.2/README.md
@@ -0,0 +1,47 @@
+# Viridian container
+
+Main tool: [Viridian](https://github.com/iqbal-lab-org/viridian)
+
+Code repository: [Viridian](https://github.com/iqbal-lab-org/viridian)
+
+Additional tools:
+- samtools: 1.20
+- bcftools: 1.20
+- htslib: 1.20
+- ENA: 1.7.1
+- ngmerge: 0.3
+- vt: 0.577721
+- racon: 1.5.0
+- mummer: 4.0.0
+- read-it-and-keep: 0.3.0
+- cylon: commit hash 57d559a76254b0b95785f7c02fa58ef806713e01
+- varifier: commit hash 8bc8726ed3cdb337dc47b62515e709759e451137
+- minimap2: 2.28
+
+Basic information on how to use this tool:
+- executable: viridian
+- help: --help
+- version: --version
+- description: Ultra-careful amplicon-aware viral assembly for tiled amplicon schemes.
+
+Full documentation: [Viridian wiki](https://github.com/iqbal-lab-org/viridian/wiki)
+
+
+## Example Usage
+
+To run on paired Illumina reads:
+
+```bash
+viridian run_one_sample \
+ --tech illumina \
+ --reads1 reads_1.fastq.gz \
+ --reads2 reads_2.fastq.gz \
+ --outdir OUT
+```
+
+Download reads with accession SRR12345678 and run:
+```bash
+viridian run_one_sample --run_accession SRR12345678 --outdir OUT
+```
+
+The sequencing tech and unpaired/paired is taken from the ENA metadata for each run.