Skip to content
Snippets Groups Projects
After you've reviewed these contribution guidelines, you'll be all set to contribute to this project.
CONTRIBUTING.md 10.92 KiB

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.

merge request button

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 and results folders contain the data and results of your pipelines and are ignored by git

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 the docker, singularity, psmn and ccin2p3 profiles.
  • the src/nf_modules folder contains per tools main.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 the docker containers used in the src/nf_modules/<tool_names>/main.nf files
  • the src/.singularity_in2p3 and src/.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_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>

container informations