Skip to content

Commit

Permalink
Update: Thu Jun 1 10:49:41 EDT 2023
Browse files Browse the repository at this point in the history
  • Loading branch information
wclose committed Jun 1, 2023
1 parent bd49610 commit 7f8deeb
Show file tree
Hide file tree
Showing 5 changed files with 189 additions and 65 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ This analysis pipeline is designed to analyze single-cell ATAC-Seq data and comb
* This software has been tested on the following Linux operating systems: 64-bit CentOS 7 and 8, and Ubuntu 18.04.6, 20.04 LTS, 21.04, and 21.10.
* The software may run on additional Linux distrubitions and/or versions beyond these if they are able to run the dependencies and versions listed below, but these are not officially supported.
* Internet connection
* [Nextflow](https://github.com/nextflow-io/nextflow#quick-start) (>=21.04.0)
* [Nextflow](https://github.com/nextflow-io/nextflow#quick-start) (21.04.0-22.10.3)
* [Docker](https://docs.docker.com/engine/install/) (>=20.10.7) or [Singularity](https://sylabs.io/guides/3.6/user-guide/quick_start.html#quick-installation-steps) (>=3.6.4)

> **NOTE:** If using Docker, your `USER` must be added to the [`docker` root user group](https://docs.docker.com/engine/install/linux-postinstall/) before executing the pipeline. On shared systems, such as HPC clusters, this may not be possible due to security risks and the pipeline should be executed using the Singularity profile (default) instead.
Expand Down
55 changes: 27 additions & 28 deletions containers/omnition-archr/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -2,51 +2,50 @@

# Copyright 2020 Bio-Rad Laboratories, Inc.

# Starting with image already containing conda
FROM continuumio/miniconda3:4.7.12
# Starting with image already containing mamba
FROM mambaorg/micromamba:1.0-bullseye-slim

# Building image using bash shell
SHELL ["/bin/bash", "-c"]

# Name of conda environment being created (must match env.yaml filename)
ARG CONDA_ENV="omnition-archr"
# Name of mamba environment being created (must match env.yaml filename)
ARG MAMBA_ENV="omnition-archr"

# Installing image dependencies
RUN apt-get --allow-releaseinfo-change update && \
apt-get install -y procps=2:3.3.15-2 && \
apt-get clean -y
USER root
RUN apt-get --allow-releaseinfo-change update \
&& apt-get install -y procps=2:3.3.17-5 gawk=1:5.1.0-1 \
&& apt-get clean -y

# Building the conda environment
COPY $CONDA_ENV.yaml /opt/biorad/env/
RUN conda env create -f /opt/biorad/env/$CONDA_ENV.yaml && \
conda clean -afy
# Building the mamba environment
COPY $MAMBA_ENV.yaml /opt/biorad/env/
RUN micromamba create -f /opt/biorad/env/$MAMBA_ENV.yaml \
&& micromamba clean -afy

# Removing default acitvation commands and setting correct ones
RUN rm root/.bashrc
RUN echo "source /etc/container.bashrc" >> /etc/bash.bashrc && \
echo "set +u" > /etc/container.bashrc && \
echo ". /opt/conda/etc/profile.d/conda.sh" >> /etc/container.bashrc && \
echo "conda activate $CONDA_ENV" >> /etc/container.bashrc

# Adding in an empty folder to the BSgenome package which is required but not always installed depending on the source
RUN mkdir -p /opt/conda/envs/${CONDA_ENV}/lib/R/library/BSgenome/pkgtemplates/BSgenome_datapkg/inst/extdata
RUN rm /root/.bashrc
RUN echo "source /etc/container.bashrc" >> /etc/bash.bashrc \
&& echo "set +u" > /etc/container.bashrc \
&& echo 'eval "$(micromamba shell hook --shell=bash)"' >> /etc/container.bashrc \
&& echo "micromamba activate $MAMBA_ENV" >> /etc/container.bashrc

# Activating environment when using non-login, non-interactive shell
ENV BASH_ENV /etc/container.bashrc
ENV ENV /etc/container.bashrc

# Install Archr prereqs
RUN apt-get install -y libcairo2-dev && \
Rscript -e 'BiocManager::install("TFBSTools")' && \
Rscript -e 'devtools::install_github("immunogenomics/presto", ref = "e7c9c6b708584aa23e590c5722bb5d35442f183d", upgrade = "never" , repos = BiocManager::repositories())' && \
apt-get install -y libxt-dev &&\
apt-get clean -y
# Adding empty folder required for the BSgenome package
RUN mkdir -p /opt/conda/envs/${MAMBA_ENV}/lib/R/library/BSgenome/pkgtemplates/BSgenome_datapkg/inst/extdata

# Install ArchR
RUN Rscript -e 'devtools::install_github("GreenleafLab/ArchR", ref = "48dccf361bab6d9191a4d9b61e1317acfa71167c", upgrade = "never", repos = BiocManager::repositories())'
# RUN Rscript -e 'ArchR::installExtraPackages()'
RUN Rscript -e 'devtools::install_github("GreenleafLab/ArchR", ref = "v1.0.2", upgrade = "never", repos = BiocManager::repositories())'
RUN apt-get update \
&& apt-get install -y libcairo2-dev \
&& Rscript -e 'install.packages("Cairo", repos = "http://cran.us.r-project.org")' \
&& Rscript -e 'ArchR::installExtraPackages()'

# Adding Bio-Rad bin to path
ENV PATH /opt/biorad/bin/:$PATH

# Setting default working directory
# WARNING: This is not preserved by Singularity
WORKDIR /opt/biorad/

45 changes: 23 additions & 22 deletions containers/omnition-report/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -2,31 +2,32 @@

# Copyright 2020 Bio-Rad Laboratories, Inc.

# Starting with image already containing conda
FROM continuumio/miniconda3:4.7.12
# Starting with image already containing mamba
FROM mambaorg/micromamba:1.0-bullseye-slim

# Building image using bash shell
SHELL ["/bin/bash", "-c"]

# Name of conda environment being created (must match env.yaml filename)
ARG CONDA_ENV="omnition-report"
# Name of mamba environment being created (must match env.yaml filename)
ARG MAMBA_ENV="omnition-report"

# Installing image dependencies
RUN apt-get --allow-releaseinfo-change update && \
apt-get install -y procps=2:3.3.15-2 && \
apt-get clean -y
USER root
RUN apt-get --allow-releaseinfo-change update \
&& apt-get install -y procps=2:3.3.17-5 gawk=1:5.1.0-1 \
&& apt-get clean -y

# Building the conda environment
COPY $CONDA_ENV.yaml /opt/biorad/env/
RUN conda env create -f /opt/biorad/env/$CONDA_ENV.yaml && \
conda clean -afy
# Building the mamba environment
COPY $MAMBA_ENV.yaml /opt/biorad/env/
RUN micromamba create -f /opt/biorad/env/$MAMBA_ENV.yaml \
&& micromamba clean -afy

# Removing default acitvation commands and setting correct ones
RUN rm root/.bashrc
RUN echo "source /etc/container.bashrc" >> /etc/bash.bashrc && \
echo "set +u" > /etc/container.bashrc && \
echo ". /opt/conda/etc/profile.d/conda.sh" >> /etc/container.bashrc && \
echo "conda activate $CONDA_ENV" >> /etc/container.bashrc
RUN rm /root/.bashrc
RUN echo "source /etc/container.bashrc" >> /etc/bash.bashrc \
&& echo "set +u" > /etc/container.bashrc \
&& echo 'eval "$(micromamba shell hook --shell=bash)"' >> /etc/container.bashrc \
&& echo "micromamba activate $MAMBA_ENV" >> /etc/container.bashrc

# Activating environment when using non-login, non-interactive shell
ENV BASH_ENV /etc/container.bashrc
Expand All @@ -41,12 +42,12 @@ WORKDIR $APP_HOME
RUN curl -sL https://deb.nodesource.com/setup_12.x | bash -

# Install application
RUN --mount=type=secret,id=GITHUB_TOKEN conda activate $CONDA_ENV && \
git clone --branch v1.0.3-alpha.1 \
https://$(cat /run/secrets/GITHUB_TOKEN):x-oauth-basic@github.com/BioRadOpenSource/cuttlesoft-single-cell-report.git ./ && \
for FILE in $(cat .dockerignore); do rm -rf $FILE; done && \
rm -rf .dockerignore .git* && \
npm i
RUN --mount=type=secret,id=GITHUB_TOKEN micromamba activate $MAMBA_ENV \
&& git clone --branch v1.0.3-alpha.1 \
https://$(cat /run/secrets/GITHUB_TOKEN):x-oauth-basic@github.com/BioRadOpenSource/cuttlesoft-single-cell-report.git ./ \
&& for FILE in $(cat .dockerignore); do rm -rf $FILE; done \
&& rm -rf .dockerignore .git* \
&& npm i

# Adding Bio-Rad bin to path
ENV PATH /opt/biorad/bin/:$PATH
Expand Down
139 changes: 131 additions & 8 deletions containers/omnition-report/omnition-report.yaml
Original file line number Diff line number Diff line change
@@ -1,11 +1,134 @@
name: omnition-report
channels:
- conda-forge
- bioconda
- https://conda.anaconda.org/conda-forge
dependencies:
- curl=7.83.1
- deepmerge=1.0.1
- matplotlib=3.5.1
- nodejs=12.19.0
- pyreadr=0.4.4
- structlog=21.5.0
- _libgcc_mutex=0.1=conda_forge
- _openmp_mutex=4.5=2_gnu
- alsa-lib=1.2.3.2=h166bdaf_0
- attr=2.5.1=h166bdaf_1
- brotli=1.0.9=h166bdaf_8
- brotli-bin=1.0.9=h166bdaf_8
- bzip2=1.0.8=h7f98852_4
- c-ares=1.18.1=h7f98852_0
- ca-certificates=2022.12.7=ha878542_0
- certifi=2022.12.7=pyhd8ed1ab_0
- curl=7.83.1=h7bff187_0
- cycler=0.11.0=pyhd8ed1ab_0
- dbus=1.13.6=h5008d03_3
- deepmerge=1.0.1=pyhd8ed1ab_0
- expat=2.5.0=h27087fc_0
- fftw=3.3.10=nompi_hf0379b8_106
- font-ttf-dejavu-sans-mono=2.37=hab24e00_0
- font-ttf-inconsolata=3.000=h77eed37_0
- font-ttf-source-code-pro=2.038=h77eed37_0
- font-ttf-ubuntu=0.83=hab24e00_0
- fontconfig=2.14.2=h14ed4e7_0
- fonts-conda-ecosystem=1=0
- fonts-conda-forge=1=0
- fonttools=4.38.0=py310h5764c6d_1
- freetype=2.12.1=hca18f0e_1
- gettext=0.21.1=h27087fc_0
- git=2.39.0=pl5321ha3eba64_0
- gst-plugins-base=1.18.5=hf529b03_3
- gstreamer=1.18.5=h9f60fe5_3
- icu=68.2=h9c3ff4c_0
- jack=1.9.18=hfd4fe87_1001
- jpeg=9e=h0b41bf4_3
- keyutils=1.6.1=h166bdaf_0
- kiwisolver=1.4.4=py310hbf28c38_1
- krb5=1.19.3=h3790be6_0
- lcms2=2.14=hfd0df8a_1
- ld_impl_linux-64=2.40=h41732ed_0
- lerc=4.0.0=h27087fc_0
- libblas=3.9.0=16_linux64_openblas
- libbrotlicommon=1.0.9=h166bdaf_8
- libbrotlidec=1.0.9=h166bdaf_8
- libbrotlienc=1.0.9=h166bdaf_8
- libcap=2.64=ha37c62d_0
- libcblas=3.9.0=16_linux64_openblas
- libclang=13.0.1=default_hc23dcda_0
- libcups=2.3.3=h3e49a29_2
- libcurl=7.83.1=h7bff187_0
- libdb=6.2.32=h9c3ff4c_0
- libdeflate=1.17=h0b41bf4_0
- libedit=3.1.20191231=he28a2e2_2
- libev=4.33=h516909a_1
- libevent=2.1.10=h9b69904_4
- libffi=3.4.2=h7f98852_5
- libflac=1.3.4=h27087fc_0
- libgcc-ng=12.2.0=h65d4601_19
- libgfortran-ng=12.2.0=h69a702a_19
- libgfortran5=12.2.0=h337968e_19
- libglib=2.74.1=h606061b_1
- libgomp=12.2.0=h65d4601_19
- libiconv=1.17=h166bdaf_0
- liblapack=3.9.0=16_linux64_openblas
- libllvm13=13.0.1=hf817b99_2
- libnghttp2=1.51.0=hdcd2b5c_0
- libnsl=2.0.0=h7f98852_0
- libogg=1.3.4=h7f98852_1
- libopenblas=0.3.21=pthreads_h78a6416_3
- libopus=1.3.1=h7f98852_1
- libpng=1.6.39=h753d276_0
- libpq=14.5=h72a31a5_3
- libsndfile=1.0.31=h9c3ff4c_1
- libsqlite=3.40.0=h753d276_0
- libssh2=1.10.0=haa6b8db_3
- libstdcxx-ng=12.2.0=h46fd767_19
- libtiff=4.5.0=h6adf6a1_2
- libtool=2.4.7=h27087fc_0
- libudev1=252=h166bdaf_0
- libuuid=2.32.1=h7f98852_1000
- libuv=1.41.1=h7f98852_0
- libvorbis=1.3.7=h9c3ff4c_0
- libwebp-base=1.2.4=h166bdaf_0
- libxcb=1.13=h7f98852_1004
- libxkbcommon=1.0.3=he3ba5ed_0
- libxml2=2.9.12=h72842e0_0
- libzlib=1.2.13=h166bdaf_4
- matplotlib=3.5.1=py310hff52083_0
- matplotlib-base=3.5.1=py310h23f4a51_0
- munkres=1.1.4=pyh9f0ad1d_0
- mysql-common=8.0.32=h14678bc_0
- mysql-libs=8.0.32=h54cf53e_0
- ncurses=6.3=h27087fc_1
- nodejs=12.19.0=h8b53aa1_3
- nspr=4.35=h27087fc_0
- nss=3.88=he45b914_0
- numpy=1.23.4=py310h53a5b5f_1
- openjpeg=2.5.0=hfec8fc6_2
- openssl=1.1.1t=h0b41bf4_0
- packaging=23.0=pyhd8ed1ab_0
- pandas=1.5.3=py310h9b08913_0
- pcre2=10.40=hc3806b6_0
- perl=5.32.1=2_h7f98852_perl5
- pillow=9.4.0=py310h023d228_1
- pip=23.0=pyhd8ed1ab_0
- pthread-stubs=0.4=h36c2ea0_1001
- pulseaudio=14.0=hbc9ff1d_7
- pyparsing=3.0.9=pyhd8ed1ab_0
- pyqt=5.15.4=py310hd8f1fbe_0
- pyqt5-sip=12.9.0=py310hd8f1fbe_0
- pyreadr=0.4.4=py310h957f721_1
- python=3.10.8=h257c98d_0_cpython
- python-dateutil=2.8.2=pyhd8ed1ab_0
- python_abi=3.10=3_cp310
- pytz=2022.7.1=pyhd8ed1ab_0
- qt-main=5.15.2=hf8cb05d_0
- readline=8.1.2=h0f457ee_0
- setuptools=67.3.1=pyhd8ed1ab_0
- sip=6.5.1=py310h122e73d_2
- six=1.16.0=pyh6c4a22f_0
- sqlite=3.40.0=h4ff8645_0
- structlog=21.5.0=pyhd8ed1ab_0
- tk=8.6.12=h27826a3_0
- toml=0.10.2=pyhd8ed1ab_0
- tornado=6.2=py310h5764c6d_1
- tzdata=2022g=h191b570_0
- unicodedata2=15.0.0=py310h5764c6d_0
- wheel=0.38.4=pyhd8ed1ab_0
- xorg-libxau=1.0.9=h7f98852_0
- xorg-libxdmcp=1.1.3=h7f98852_0
- xz=5.2.6=h166bdaf_0
- zlib=1.2.13=h166bdaf_4
- zstd=1.5.2=h3eb15da_6
13 changes: 7 additions & 6 deletions nextflow.config
Original file line number Diff line number Diff line change
Expand Up @@ -50,8 +50,8 @@ manifest {
description = 'Bio-Rad Omnition analysis software for single-cell data.'
defaultBranch = 'main'
mainScript = 'main.nf'
nextflowVersion = '!>=21.04.0'
version = 'v1.0.0'
nextflowVersion = '!>=21.04.0, <=22.10.3'
version = 'v1.0.1'
recurseSubmodules = true

}
Expand Down Expand Up @@ -150,22 +150,23 @@ profiles {


// Pipeline execution report settings
def trace_timestamp = new java.util.Date().format( 'yyyyMMdd-HHmmss')
report {
enabled = true
file = params.prefix ? "${params.outputDir}/pipeline_info/${params.prefix}-omnition-execution_report.html" : "${params.outputDir}/pipeline_info/omnition-execution_report.html"
file = params.prefix ? "${params.outputDir}/pipeline_info/${params.prefix}-omnition-execution_report-${trace_timestamp}.html" : "${params.outputDir}/pipeline_info/omnition-execution_report-${trace_timestamp}.html"
}
timeline {
enabled = true
file = params.prefix ? "${params.outputDir}/pipeline_info/${params.prefix}-omnition-timeline.html" : "${params.outputDir}/pipeline_info/omnition-timeline.html"
file = params.prefix ? "${params.outputDir}/pipeline_info/${params.prefix}-omnition-timeline-${trace_timestamp}.html" : "${params.outputDir}/pipeline_info/omnition-timeline-${trace_timestamp}.html"
}
trace {
enabled = true
fields = "task_id,hash,native_id,name,status,exit,submit,duration,realtime,cpus,%cpu,peak_rss,peak_vmem,rchar,wchar"
file = params.prefix ? "${params.outputDir}/pipeline_info/${params.prefix}-omnition-trace.txt" : "${params.outputDir}/pipeline_info/omnition-trace.txt"
file = params.prefix ? "${params.outputDir}/pipeline_info/${params.prefix}-omnition-trace-${trace_timestamp}.txt" : "${params.outputDir}/pipeline_info/omnition-trace-${trace_timestamp}.txt"
}
dag {
enabled = true
file = params.prefix ? "${params.outputDir}/pipeline_info/${params.prefix}-omnition-dag.html" : "${params.outputDir}/pipeline_info/omnition-dag.html"
file = params.prefix ? "${params.outputDir}/pipeline_info/${params.prefix}-omnition-dag-${trace_timestamp}.html" : "${params.outputDir}/pipeline_info/omnition-dag-${trace_timestamp}.html"
}


Expand Down

0 comments on commit 7f8deeb

Please sign in to comment.