Admin¶
Structure of the build directory tree¶
Among the different files and folders created in the build
directory, we just focus on the workDir
folder that contains the files that are automatically generated by geniac
. For example:
└── workDir
└── results
├── conda
│ └── environment.yml
├── conf
│ ├── cluster.config
│ ├── conda.config
│ ├── docker.config
│ ├── multiconda.config
│ ├── multipath.config
│ ├── path.config
│ └── singularity.config
└── singularity
├── deffiles
│ ├── fastqc.def
│ ├── helloWorld.def
│ ├── multiqc.def
│ ├── onlyLinux.def
│ ├── python.def
│ └── trickySoftware.def
└── images
├── alpine.sif
├── fastqc.sif
├── helloworld.sif
├── multiqc.sif
├── onlylinux.sif
├── python.sif
└── trickysoftware.sif
The Nextflow scripts that are used to generate the *.config
files and containers are also located in the workDir
folder. There are:
docker.nf
: generates the Docker containers and Dockerfiles.singularity.nf
: generates the*.config
files, the Singularity images and def files.nextflow.config
: is used by the above.
Generate preload cache with default values¶
In order to generate the pre-load a script geniac/install/cmake-init-default.cmake
to populate the cmake cache, use the geniac/cmake/initCmakePreload.sh
as follows:
export WORK_DIR="${HOME}/tmp/myPipeline"
export SRC_DIR="${WORK_DIR}/src"
export BUILD_DIR="${WORK_DIR}/build"
export GIT_URL="https://github.com/bioinfo-pf-curie/geniac-demo.git"
mkdir -p ${INSTALL_DIR} ${BUILD_DIR}
# clone the repository
# the option --recursive is needed if you use geniac as a submodule
# the option --remote-submodules will pull the last geniac version
# using the release branch from https://github.com/bioinfo-pf-curie/geniac
git clone --remote-submodules --recursive ${GIT_URL} ${SRC_DIR}
cd {BUILD_DIR}
bash ${SRC_DIR}/geniac/cmake/initCmakePreload.sh ${SRC_DIR} > cmake-init-default.cmake
Containers¶
Build¶
The geniac/install/singularity.nf
and geniac/install/docker.nf
nextflow scripts allow the automatic generation of recipes def files and Dockerfiles respectively. They also allow the building of the containers.
Options can be passed to these scripts and can be seen the geniac/install/nextflow.config
.
These scripts are automatically called during the build step of the project (see Installation), thus you don’t have to run them manually.
Labels¶
In order to tack from which repository and version the containers were built, some labels are added in the recipes. Here is an example from a singularity def file:
%labels
gitUrl ssh://git@gitlab.curie.fr:2222/pipeline_templates/data-analysis_template.git
gitCommit 80f6511b453a365be39e3bede6d79f0ce7253d16
Documentation¶
Build the documentation locally:
conda create -n readthedocs python=3.7.9
conda activate readthedocs
pip install --upgrade --no-cache-dir pip 'setuptools<58.3.0'
pip install --upgrade --no-cache-dir mock==1.0.1 pillow==5.4.1 'alabaster>=0.7,<0.8,!=0.7.5' commonmark==0.8.1 recommonmark==0.5.0 sphinx sphinx-rtd-theme 'readthedocs-sphinx-ext<2.2'
cd docs
python -m sphinx -T -E -b html -d _build/doctrees -D language=en . _build/html