-
Notifications
You must be signed in to change notification settings - Fork 125
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* updates to 1.5.0 and adds latest tag * adding freyja version 1.5.0 * added up-to-date database information
- Loading branch information
Showing
4 changed files
with
121 additions
and
44 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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="[email protected]" | ||
LABEL maintainer2="Curtis Kapsak" | ||
LABEL maintainer2.email="[email protected]" | ||
LABEL maintainer3="Erin Young" | ||
LABEL maintainer3.email="[email protected]" | ||
|
||
# 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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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. |