diff --git a/README.md b/README.md index da9aaae7b..96e812c76 100644 --- a/README.md +++ b/README.md @@ -151,7 +151,7 @@ To learn more about the docker pull rate limits and the open source software pro | [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) | | 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) | | https://github.com/lskatz/fasten | +| [fasten](https://hub.docker.com/r/staphb/fasten)
[![docker pulls](https://badgen.net/docker/pulls/staphb/fasten)](https://hub.docker.com/r/staphb/fasten) | | 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) | | 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 | 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 +```