nf-core standards
The nf-core template comes with a "profile" named test
and one named test_full
.
The test
profile is meant to define minimal input data and parameters so that the pipeline can run in
5-10 minutes and within the resources available on GitHub (4 CPUs, 16 GB RAM).
The goal is to check that the pipeline can successfully run and
generate some non-empty files.
Given the time constraint, the input data are typically a very small region of a genome,
sequencing data are limited to 1,000-10,000 reads, etc.
The test_full
profile is meant to define input data and parameters that represent
a complete dataset. Such runs will typically take hours to complete on the farm.
Neither of those profiles is expected to cover 100% of the pipeline features.
nf-test is gradually making its way through nf-core. Presently, a minority of our pipelines implement nf-test, but we expect this to change as nf-core define a standard way of running nf-test for pipelines in a future version.
Test data
The test
profile should be usable by anyone anywhere.
This means that its input data should be on publicly accessible web servers.
We use Sanger's Ceph S3
- Deposit your data under
/lustre/scratch123/tol/resources/nextflow/test-data/
. - Ask @gq1 or @muffato to synchronise the directory.
- Access your data throuh
https://tolit.cog.sanger.ac.uk/test-data/
(same sub-path as on disk)
We currently do not set such requirements for the inputs of the test_full
profile.
Continuous Integration (CI)
The nf-core template includes a Continuous Integration workflow that runs the test
profile.
GitHub will run the test in pull-requests and will block the merge until the test
passes.
The test
profile needs to give you reasonable confidence the changes don't
break the pipeline.
Note: you may need to add steps to download and configure input databases that are
required by the pipeline. The file is .github/workflows/ci.yml
.
Our policy is to also run the test_full
profile but only after the pull-requests are
merged due to the compute costs.
For that purpose, we provide a CI workflow sanger_test_full.yml
that you can add to your .github/workflows/
directory.
This workflow will trigger a run of the test_full
profile on the farm, via
Nextflow Tower (Seqera Platform).
The outputs of the test_full
profile on the main
branch are also
used to populate the "Results" tab of your pipeline on this website.
Finally, we also provide the equivalent CI workflow for the test
profile:
sanger_test.yml
.
This is mostly used for debugging test
profile failures.