-
Laurent Modolo authoredLaurent Modolo authored
Contributing
When contributing to this repository, please first discuss the change you wish to make via issues, email, or on the ENS-Bioinfo channel before making a change.
Forking
In git, the action of forking means that you are going to make your own private copy of a repository. You can then write modifications in your project, and if they are of interest for the source repository create a merge request (here LBMC/nextflow). Merge requests are sent to the source repository to ask the maintainers to integrate modifications.
Project organization
The LBMC/nextflow
project is structured as follows:
- all the code is in the
src/
folder - scripts downloading external tools should download them in the
bin/
folder - all the documentation (including this file) can be found int he
doc/
folder - the
data
andresults
folders contain the data and results of your pipelines and are ignored bygit
Code structure
The src/
folder is where we want to save the pipeline (.nf
) scripts. This folder also contains
- the
src/install_nextflow.sh
to install the nextflow executable at the root of the project. - some pipelines examples (like the one build during the nf_pratical)
- the
src/nextflow.config
global configuration file which contains thedocker
,singularity
,psmn
andccin2p3
profiles. - the
src/nf_modules
folder contains per toolsmain.nf
modules with predefined process that users can import in their projects with the DSL2
But also some hidden folders that users don't need to see when building their pipeline:
- the
src/.docker_modules
contains the recipes for thedocker
containers used in thesrc/nf_modules/<tool_names>/main.nf
files - the
src/.singularity_in2p3
andsrc/.singularity_psmn
are symbolic links to the shared folder where the singularity images are downloaded on the PSMN and CCIN2P3
Proposing a new tool
Each tool named <tool_name>
must have two dedicated folders:
-
src/nf_modules/<tool_name>
where users can find.nf
files to include -
src/.docker_modules/<tool_name>/<version_number>
where we have theDockerfile
to construct the container used in themain.nf
file
src/nf_module
guide lines
We are going to take the fastp
, nf_module
as an example.
The src/nf_modules/<tool_name>
should contain a main.nf
file that describe at least one process using <tool_name>