diff --git a/CHANGELOG.md b/CHANGELOG.md index bfbcad9..0242572 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,6 +20,8 @@ ### Added +- HOMER 5.1 (`images/homer/5.1`) with bedtools 2.31.1 and Python 3.12 for + FASTA-mode motif discovery, published as `ghcr.io/yeolab/homer:5.1`. - skipper-clipper-compare 1.0.0 (`images/skipper-clipper-compare/1.0.0`): the pinned Python/bedtools environment for skipper-clipper-snakemake's Skipper-vs-CLIPper comparison, published as diff --git a/images/homer/5.1/Dockerfile b/images/homer/5.1/Dockerfile new file mode 100644 index 0000000..85dd37c --- /dev/null +++ b/images/homer/5.1/Dockerfile @@ -0,0 +1,29 @@ +# HOMER 5.1 with bedtools and Python 3 for de novo motif discovery in CLIP +# peaks against region-matched random backgrounds (FASTA mode, -rna). Used by +# skipper-clipper-snakemake's homer_motifs rule, which follows +# yeolab/clip_analysis_legacy's analyze_motifs. + +FROM mambaorg/micromamba:2.9.0-debian12-slim@sha256:edce84d758b6c3029cebdf2777d9cdfdd6e44f9eee0a31c6a09a7df14be17fd2 + +LABEL software="homer" +LABEL software.version="5.1" +LABEL about.summary="HOMER motif discovery with bedtools and Python 3" +LABEL about.url="http://homer.ucsd.edu/homer/" +LABEL about.tags="Genomics,motifs,eCLIP" + +COPY --chown=$MAMBA_USER:$MAMBA_USER environment.yml /tmp/environment.yml +RUN micromamba install -y -n base -f /tmp/environment.yml \ + && micromamba clean --all --yes + +# Tools resolve on PATH without micromamba's activating entrypoint, as they +# must when Snakemake runs this image through Singularity/Apptainer. +ENV PATH=/opt/conda/bin:$PATH + +# Fail the build if HOMER cannot find motifs in FASTA mode. +RUN printf '>a\nACGTACGTTTTTACGT\n>b\nACGTACGTTTTTACGT\n' > /tmp/fg.fa \ + && printf '>c\nGGCCGGCCAAAAGGCC\n>d\nGGCCGGCCAAAAGGCC\n' > /tmp/bg.fa \ + && findMotifs.pl /tmp/fg.fa fasta /tmp/homer-check -rna -len 6 -S 2 -p 1 \ + -nofacts -noconvert -nogo -fasta /tmp/bg.fa > /dev/null 2>&1 \ + && test -s /tmp/homer-check/homerMotifs.all.motifs \ + && rm -rf /tmp/fg.fa /tmp/bg.fa /tmp/homer-check \ + && bedtools --version && python3 --version diff --git a/images/homer/5.1/README.md b/images/homer/5.1/README.md new file mode 100644 index 0000000..c388897 --- /dev/null +++ b/images/homer/5.1/README.md @@ -0,0 +1,13 @@ +# HOMER 5.1 + +[HOMER](http://homer.ucsd.edu/homer/) 5.1 with bedtools 2.31.1 and Python 3.12, +pinned in `environment.yml`. No genome packages are installed: it is meant for +FASTA-mode motif finding (`findMotifs.pl fasta -fasta `), +as used by +[skipper-clipper-snakemake](https://github.com/byee4/skipper-clipper-snakemake)'s +`homer_motifs` rule. Everything is on `PATH` without activation, so it runs under +Singularity/Apptainer: + +```bash +apptainer exec docker://ghcr.io/yeolab/homer:5.1 findMotifs.pl +``` diff --git a/images/homer/5.1/environment.yml b/images/homer/5.1/environment.yml new file mode 100644 index 0000000..f064a62 --- /dev/null +++ b/images/homer/5.1/environment.yml @@ -0,0 +1,8 @@ +name: homer +channels: + - conda-forge + - bioconda +dependencies: + - python=3.12 + - homer=5.1 + - bedtools=2.31.1