Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
509 commits
Select commit Hold shift + click to select a range
ee84f92
Merge branch 'TEMPLATE' into dev
OlivierCoen Nov 8, 2025
77db12c
fix various issues linked to merge
OlivierCoen Nov 8, 2025
0fe67d1
fix output issue with expression atlas get accessions
OlivierCoen Nov 8, 2025
ab7922a
early fix of release_annoucements.yml
OlivierCoen Nov 8, 2025
134bb45
fix malformed nextflow schema
OlivierCoen Nov 8, 2025
6445bfd
pass all module tests
OlivierCoen Nov 8, 2025
f5d82d1
remove tag "module" in module tests
OlivierCoen Nov 8, 2025
e02ca8d
add missing module tests
OlivierCoen Nov 8, 2025
80f543f
allow tsv file as input dataset; modify id mapping script to allow that
OlivierCoen Nov 9, 2025
91b9155
allow tsv files in normalisation (deseq2 and edger)
OlivierCoen Nov 9, 2025
64bcdf8
update documentation
OlivierCoen Nov 9, 2025
433dfea
change species parameter to allow more complex species names; add spe…
OlivierCoen Nov 10, 2025
c9b9dd4
update README.md
OlivierCoen Nov 10, 2025
7ddbf89
fix .github/workflows/release-announcements.yml with latest code
OlivierCoen Nov 10, 2025
7bfb57c
update get_geo_dataset_accessions.py to improve output and allow rnas…
OlivierCoen Nov 10, 2025
efbaad3
clean code; remove superseries from geo accessions
OlivierCoen Nov 11, 2025
3b09364
allow geo datasets containing multiple datasets
OlivierCoen Nov 11, 2025
c6bbfad
change base.config times
OlivierCoen Nov 11, 2025
3821964
add troubleshooting doc
OlivierCoen Nov 11, 2025
90d5b87
pass pipeline nf-tests
OlivierCoen Nov 13, 2025
2c07114
allow and improve downloading of RNAseq data from GEO
OlivierCoen Nov 14, 2025
660214c
force integer count values after mapping to ensembl gene IDs
OlivierCoen Nov 16, 2025
404f85a
functional download and parsing of rnaseq data from GEO
OlivierCoen Nov 16, 2025
5aa1acc
set ks threshold pvalue as negative by default
OlivierCoen Nov 16, 2025
459d726
fix issue with deseq2 and edger in case of only one sample; improve l…
OlivierCoen Nov 16, 2025
2e380b1
fix merge_counts environment
OlivierCoen Nov 16, 2025
1976981
fix issue with file count file parsing when first column name is empty
OlivierCoen Nov 16, 2025
81f52a4
fix synthax issue
OlivierCoen Nov 17, 2025
11bb0ba
update doc
OlivierCoen Nov 17, 2025
39c3903
fix issue with data aggregation when gene id mapping or metadata are …
OlivierCoen Nov 18, 2025
7b59db3
removed subsampling in quantile normalisations to allow full reproduc…
OlivierCoen Nov 18, 2025
997b493
fix issue with design schema not taken into account
OlivierCoen Nov 19, 2025
d2f8b58
replace lazyframes by dataframes in clean_count_data.py
OlivierCoen Nov 19, 2025
cccac73
fix most test cases
OlivierCoen Nov 19, 2025
56ca964
check the number of datasets downloaded from Expression Atlas and pre…
OlivierCoen Nov 19, 2025
b6a7138
Template update for nf-core/tools version 3.5.1
nf-core-bot Nov 20, 2025
05abc9f
prevent download of geo suppl data when multiple species are present …
OlivierCoen Nov 20, 2025
2c1b389
separate the counts obtained in different supplementary file columns …
OlivierCoen Nov 20, 2025
857e85a
fix duplicated column names
OlivierCoen Nov 20, 2025
f7cc943
spearate idmapping step in 3 substeps to make it faster and more scal…
OlivierCoen Nov 20, 2025
553f3a9
change error / retry strategy for all processes
OlivierCoen Nov 20, 2025
09f49a9
add new tests for idmapping processes
OlivierCoen Nov 20, 2025
e74b4d2
fix get_candidate_genes.py when ids are Entrez gene ids
OlivierCoen Nov 20, 2025
7293377
remove data cleansing subworkflow from workflow
OlivierCoen Nov 20, 2025
e78dce6
fix issue in aggregate_results.py when gene ids are integers
OlivierCoen Nov 20, 2025
bf29940
fix issues with id mapping reformating
OlivierCoen Nov 20, 2025
2fcdb5a
remove E-GTEX-* Expression Atlas accesssions by default
OlivierCoen Nov 21, 2025
d0d97f7
fix issues with collection of gene ids
OlivierCoen Nov 21, 2025
919b8e1
fix bug in collect_gene_ids.py when ids are integer
OlivierCoen Nov 22, 2025
a94ffcd
remove deseq2 and edger from pipeline; add new steps for computation …
OlivierCoen Nov 22, 2025
1316c54
remove unecessary tag (1) from global processes
OlivierCoen Nov 22, 2025
5aa5945
script to download annotation gff3 file given a species name
OlivierCoen Nov 22, 2025
bb60780
increase to process_high all modules that handle all data
OlivierCoen Nov 22, 2025
803227e
increase dragstically number of retries for OOM related erros
OlivierCoen Nov 23, 2025
6eb7719
make script to compute max cdna length gene per gene from GGF3 file
OlivierCoen Nov 23, 2025
e8a5916
add computation of tpm in workflow and set it as default
OlivierCoen Nov 23, 2025
c1f90eb
replace quantile normalisation by linear scaling to [0,1] in stabilit…
OlivierCoen Nov 23, 2025
ea87986
make script and module to download latest annotation from ncbi
OlivierCoen Nov 24, 2025
1ae9906
big reformating of the steps for fetching accessions and download dat…
OlivierCoen Nov 24, 2025
11d36d4
replace request to NCBI taxonomy to get species taxid in download_lat…
OlivierCoen Nov 24, 2025
583af6a
improved logging of warning and failures in multiqc
OlivierCoen Nov 24, 2025
c80eba6
improve speed of rename_gene_ids.py
OlivierCoen Nov 24, 2025
84c9417
control nb of cpus in eatlas get accessions
OlivierCoen Nov 25, 2025
9a97eee
reduce and better handle base config for cpus and memory to adapt it …
OlivierCoen Nov 25, 2025
d4e9861
fix bug in eatlas get accessions
OlivierCoen Nov 25, 2025
4729cb5
fix issue with input datasets not being used anymore
OlivierCoen Nov 25, 2025
95a894e
add more checks for input accession format
OlivierCoen Nov 25, 2025
b34612a
improve scalability
OlivierCoen Nov 25, 2025
7db7908
add process to clean gene IDs before collecting them
OlivierCoen Nov 26, 2025
4fdde27
improve gene ID logging and QC
OlivierCoen Nov 26, 2025
c5982fc
add QC statistics (ratio zeros and skewness) in multiqc
OlivierCoen Nov 26, 2025
d0ab387
add error handling when no gene ID mapping is possible
OlivierCoen Nov 26, 2025
c9d996c
fix bug in download_geo_data.R when multiple suppl columns are found
OlivierCoen Nov 26, 2025
5b3b350
handle case where there is no library_strategy column in geo metadata…
OlivierCoen Nov 27, 2025
7f010f0
major refactoring of conda/micromamba environments; update some modul…
OlivierCoen Nov 27, 2025
660f52a
add script to normalise CEL files from microarray data
OlivierCoen Nov 27, 2025
a853af3
limit number of polars threads when not using containers
OlivierCoen Dec 3, 2025
d8b5827
fix tests
OlivierCoen Dec 4, 2025
8f4fe1b
replace "Channel" by "channel" to adapt to new synthax
OlivierCoen Dec 4, 2025
3b91c74
Template update for nf-core/tools version 3.5.1
OlivierCoen Dec 8, 2025
2d4581b
merge branch TEMPLATE into dev
OlivierCoen Dec 8, 2025
7007b60
pass linters
OlivierCoen Dec 8, 2025
7b352f7
update citations
OlivierCoen Dec 8, 2025
e8ee9ee
remove profile apptainer from nf-test config in order to fix CI tests
OlivierCoen Dec 9, 2025
2a7de4d
pass prettier and ruff linters
OlivierCoen Dec 9, 2025
a1af98c
add files to skip for files_unchanged during nf-core pipelines lint
OlivierCoen Dec 9, 2025
56899e7
change base config process_high modules
OlivierCoen Dec 9, 2025
82ebd98
add random sampling based on nb of samples direclty in Expression Atl…
OlivierCoen Dec 10, 2025
bca5fc7
reinstalled appropriate version of multiqc
OlivierCoen Dec 10, 2025
7363503
propadata random sampling to geo when not enough samples were collect…
OlivierCoen Dec 10, 2025
b8eda8e
set sampling quota in geo
OlivierCoen Dec 10, 2025
d5a4a8b
set fetching geo accessions as optional
OlivierCoen Dec 11, 2025
413d313
update method description
OlivierCoen Dec 11, 2025
5757d92
fix issue with gene id mapping stats in multiqc report
OlivierCoen Dec 11, 2025
34587ce
remove set statements to prepare for strict synthax
OlivierCoen Dec 11, 2025
d3bd377
rename top stable genes by most stable genes
OlivierCoen Dec 11, 2025
ce578b3
remove access to params in merge_data and multiqc subworkflows
OlivierCoen Dec 11, 2025
026a840
add default hard limits for resources in base.config
OlivierCoen Dec 12, 2025
079be55
fix some tests
OlivierCoen Dec 15, 2025
d9b58e7
improve doc
OlivierCoen Dec 15, 2025
e30e736
fix test failures
OlivierCoen Dec 16, 2025
7814723
set default random_sampling_size at 5000 to fit with homo sapiens on …
OlivierCoen Dec 16, 2025
d7c9b09
improve doc and pass linters
OlivierCoen Dec 18, 2025
63678df
add new metromap
OlivierCoen Dec 18, 2025
9677dd9
remove geo datasets from pipeline test snapshots
OlivierCoen Dec 18, 2025
09666bc
add possibility to provide custom gene length file instead of
OlivierCoen Dec 22, 2025
4d2d9a9
update doc
OlivierCoen Dec 22, 2025
909f984
improve reproducibility of nf-tests
OlivierCoen Dec 23, 2025
ddcb9e6
add pyarrow in dash_app environmen.yml
OlivierCoen Dec 30, 2025
86faace
add subworkflow to filter out samplesthat are not valid
OlivierCoen Dec 30, 2025
44d03dd
fix issue when removing samples not valid
OlivierCoen Dec 30, 2025
047fbbc
pipeline lint
OlivierCoen Jan 3, 2026
0116d68
add nb of merged gene IDs in multiqc id mapping stat graph
OlivierCoen Jan 3, 2026
c96b9b7
big refactoring to filter out rare genes
OlivierCoen Jan 3, 2026
4dd05e2
implement filtering on rare genes; add to multiqc
OlivierCoen Jan 4, 2026
f8b10f3
fix issue when cleaning ENSG ids
OlivierCoen Jan 4, 2026
fae0fdb
increase default value of min_occurrence_quantile to 0.2
OlivierCoen Jan 4, 2026
50a0c1c
replace pandas by polars in remove_samples_not_valid.py
OlivierCoen Jan 5, 2026
2106da3
add log2 normalisation when computing tpm and cpm
OlivierCoen Jan 5, 2026
6e618d7
replace pandas by polars in quantile normalisation
OlivierCoen Jan 5, 2026
98d707a
change pandas to polars in compute_dataset_statistics.py
OlivierCoen Jan 5, 2026
5122121
big refactoring in order to better scale
OlivierCoen Jan 5, 2026
50472fe
pass nf-tests
OlivierCoen Jan 7, 2026
5ed7dc2
Merge pull request #11 from OlivierCoen/dev
OlivierCoen Jan 21, 2026
b36582c
fix issue when there there is no mapping at all
OlivierCoen Jan 21, 2026
e81b8e3
fix unused line in expression atlas getdata module
OlivierCoen Jan 27, 2026
35443e7
move computation of nb null values per sample in a separate process
OlivierCoen Jan 27, 2026
12cdb22
separation extraction of gene ids from the cleaning step
OlivierCoen Jan 28, 2026
09df841
add parameter to skip gene id cleaning
OlivierCoen Jan 28, 2026
72db6bb
place dataset statistics and detection of null values in a single sub…
OlivierCoen Jan 28, 2026
9802111
implement first version of missing value imputer
OlivierCoen Jan 29, 2026
e2bb714
improve iterative imputer
OlivierCoen Jan 29, 2026
e4f8e2f
fix issue of NA not recognised when parsing count tables
OlivierCoen Jan 29, 2026
c8990b8
rename subworkflow for filtering out samples and add module to filter…
OlivierCoen Jan 30, 2026
cd75be1
refactor computation of zero values and missing values
OlivierCoen Jan 30, 2026
77ae3c4
add zero and null value qc to multiqc
OlivierCoen Jan 30, 2026
322c9ad
rename gene statistics and merge mdules and subworkflows for better c…
OlivierCoen Jan 30, 2026
d76dee5
fix issue in computation of ratio of null values
OlivierCoen Jan 30, 2026
a38e3f8
fix issues with malus on ratio of null values
OlivierCoen Jan 30, 2026
5e60547
change default scoring weights to only take into account normfinder a…
OlivierCoen Jan 30, 2026
4eb6678
divide genes in multiple sections based on expression levels and perf…
OlivierCoen Feb 1, 2026
cf56723
integrate the different expression sections in multiqc
OlivierCoen Feb 1, 2026
5206cf7
fix section order in the multiqc custom content
OlivierCoen Feb 1, 2026
65bebd4
update multiqc
OlivierCoen Feb 1, 2026
5d36903
gather multiple steps into the reporting subworkflow
OlivierCoen Feb 1, 2026
acc09db
fix issue with candidate selection
OlivierCoen Feb 1, 2026
1b65a09
fix linting
OlivierCoen Feb 1, 2026
68915f6
fix issue with resource allocation in impute missing values
OlivierCoen Feb 1, 2026
d095d9f
limit both polars and python threads manually for most modules
OlivierCoen Feb 1, 2026
9a8a807
reduce number of displayed box boxes in multiqc
OlivierCoen Feb 2, 2026
4ac48d3
fix issue with null values not computed correctly
OlivierCoen Feb 3, 2026
3dc8d6b
control resource allocation for all python scripts using polars or mu…
OlivierCoen Feb 3, 2026
10a6630
add parameter for target gene selection
OlivierCoen Feb 4, 2026
081f3dc
export section specific stat file in get_candidate_gens.py
OlivierCoen Feb 4, 2026
3ddf532
fix issues in compute_stability_scores.py
OlivierCoen Feb 4, 2026
f2119cf
use section stat files for stability scoring
OlivierCoen Feb 5, 2026
0cd9789
add found target genes in multiqc report
OlivierCoen Feb 5, 2026
4c89e9d
add additional memory to multiqc
OlivierCoen Feb 5, 2026
43a8171
fix issue with flatMap not producing a constant number of items in sp…
OlivierCoen Feb 5, 2026
03cf0ee
replace hardcoded max memory by task's memory in quantile_normalise.py
OlivierCoen Feb 5, 2026
3017fbe
set quantile normalise module as process_low instead of process_single
OlivierCoen Feb 5, 2026
038c2f8
tweak resource management parameters for cpus
OlivierCoen Feb 5, 2026
8ec014a
limit polars and multiprocessing max nb of threads in modules, and me…
OlivierCoen Feb 5, 2026
0bdd3d0
remove cpus and memory limits inside modules
OlivierCoen Feb 5, 2026
5dc698e
fix inconsistent behaviour when splitting files into sections
OlivierCoen Feb 5, 2026
e6cf1cb
fix issue when no gene metadata is available
OlivierCoen Feb 5, 2026
150ee69
fix issue with nb of cpus being parsed as string instead of integer
OlivierCoen Feb 18, 2026
7ab8a09
update polars version in merge_counts
OlivierCoen Feb 18, 2026
25d2997
update merge_counts.py to use lazyframes instead of dataframes
OlivierCoen Feb 18, 2026
07513df
update compute_gene_statistics.py to use lazyframes instead of datafr…
OlivierCoen Feb 18, 2026
7f4cbb4
add parameter gff to provide directly genome annotation
OlivierCoen Feb 18, 2026
3c435c1
reduce number of box plots in each multiqc category to 25
OlivierCoen Feb 18, 2026
31ae1ad
replace requests by httpx in download_latest_ensembl_annotation.py
OlivierCoen Feb 18, 2026
a33f6bc
replace requests by httpx in python scripts
OlivierCoen Feb 19, 2026
fe86ec0
fix nf-tests
OlivierCoen Feb 19, 2026
0e3c88f
update galaxy test script
OlivierCoen Feb 19, 2026
01e708b
update galaxy tool
OlivierCoen Feb 20, 2026
237a0a9
fix remaining failures in nf-tests
OlivierCoen Feb 21, 2026
29123e4
update pipeline description and nf-core version
OlivierCoen Feb 21, 2026
aa7fbc8
update metromap and integrate drawio file in repo
OlivierCoen Feb 21, 2026
8de6920
fix wrong environment for aggregate results
OlivierCoen Feb 21, 2026
c6ace7a
update Galaxy tool
OlivierCoen Feb 22, 2026
9767606
update documentation
OlivierCoen Feb 22, 2026
48b7e89
update metromap
OlivierCoen Feb 22, 2026
9f2818d
update usage.md
OlivierCoen Feb 22, 2026
3bfaf65
remove unecessary merging of gene id mapping and metadata from the me…
OlivierCoen Feb 23, 2026
d328187
move pipeline overview to main README and update output.md
OlivierCoen Feb 23, 2026
3427017
fix bugs and add default graphs for dash app
OlivierCoen Feb 23, 2026
15c2393
lint pipeline
OlivierCoen Feb 23, 2026
44e53d8
update test snapshots
OlivierCoen Feb 25, 2026
6f69746
fix ruff checks
OlivierCoen Feb 25, 2026
ce06a38
remove geo data tests
OlivierCoen Feb 25, 2026
c33e663
Merge pull request #13 from OlivierCoen/dev
OlivierCoen Mar 11, 2026
9eff646
bump version
OlivierCoen Mar 14, 2026
8d0f90b
include custom configs & pass lint test for release
OlivierCoen Mar 14, 2026
8b32b51
add people who assisted the dvelopment of the pipeline in the credits
OlivierCoen Mar 15, 2026
1660e1a
replace pipeline version in tests/default.nt.test.snap
OlivierCoen Mar 15, 2026
50d1ac6
Merge pull request #14 from OlivierCoen/dev
OlivierCoen Mar 17, 2026
d0311f2
replace species in test_full
OlivierCoen Mar 17, 2026
16565c2
Merge pull request #15 from OlivierCoen/dev
OlivierCoen Mar 17, 2026
137dd91
update CHANGELOG.md for official release
OlivierCoen Mar 18, 2026
367bc85
Merge pull request #16 from OlivierCoen/dev
OlivierCoen Mar 19, 2026
f044b14
delete old folders
OlivierCoen Mar 19, 2026
7a739ab
updated all environments (docker + apptainer + conda) of modules usin…
OlivierCoen Mar 19, 2026
f02b605
insist on the experimental state of fetching geo datasets in README.md
OlivierCoen Mar 20, 2026
2adc3b4
sort dataframe for output consistency
OlivierCoen Mar 20, 2026
817f09c
sort list of files given to multiqc
OlivierCoen Mar 20, 2026
7d15085
add wget to geo getdata environment
OlivierCoen Mar 20, 2026
9e67438
fix issue not caught in geo get_data
OlivierCoen Mar 20, 2026
a58b2ef
fix bug introduced in detect_rare_genes.py
OlivierCoen Mar 21, 2026
1ade9db
fix bugs in download_geo_data.R
OlivierCoen Mar 22, 2026
b552b90
prevent modules from publising failure and warning reason files
OlivierCoen Mar 22, 2026
510992d
update tests
OlivierCoen Mar 22, 2026
cbc28b4
pass linter
OlivierCoen Mar 22, 2026
e9fd713
Merge branch 'nf-core:dev' into dev
OlivierCoen Mar 22, 2026
f3c557d
better handle connection issues in expression atlas getdata
OlivierCoen Mar 22, 2026
89fdc04
update broken links in documentation
OlivierCoen Mar 22, 2026
1564c47
update snapshots
OlivierCoen Mar 23, 2026
acbc1b1
update min version of Nextflow
OlivierCoen Mar 23, 2026
68898d7
add contributors
OlivierCoen Mar 23, 2026
32d543d
update min Nextflow version to 25.10.4
OlivierCoen Mar 23, 2026
18d41b8
act possibility to run nf-test through act
OlivierCoen Mar 24, 2026
35a1081
add pipeline test command to README.md
OlivierCoen Mar 25, 2026
960571d
Update default.nf.test.snap
OlivierCoen Mar 25, 2026
5cfd8bc
add act tests
OlivierCoen Mar 29, 2026
b989a35
fix tests
OlivierCoen Mar 29, 2026
95dd20e
authorize failure and ignore error for expression get data and geo de…
OlivierCoen Mar 30, 2026
d94cb49
fix tests
OlivierCoen Apr 2, 2026
7f81d56
improve testing with act and add README.md
OlivierCoen Apr 2, 2026
68627a8
update checkCounts function
OlivierCoen Apr 2, 2026
237ec2c
fix weird insertions in snapshots
OlivierCoen Apr 2, 2026
b79fde2
add skewness.csv to .nftignore
OlivierCoen Apr 2, 2026
12d33f8
update snapshots
OlivierCoen Apr 3, 2026
f7c4a50
fix reproductibility issue
OlivierCoen Apr 4, 2026
abcda5e
fix skewness issue
OlivierCoen Apr 4, 2026
d876bbd
fix issue with act
OlivierCoen Apr 4, 2026
25e7791
remove a pipeline test
OlivierCoen Apr 4, 2026
5919420
Update nf-test.yml
OlivierCoen Apr 4, 2026
772ca82
update snapshots
OlivierCoen Apr 4, 2026
3a3c759
fix prettier error
OlivierCoen Apr 5, 2026
a946490
update multiqc
OlivierCoen Apr 5, 2026
21489b2
adapt pipeline to new multiqc input syntax
OlivierCoen Apr 5, 2026
d315b9e
remove tests involving geo get data
OlivierCoen Apr 6, 2026
0f2b6af
improve testing with act
OlivierCoen Apr 7, 2026
734cf2e
Merge pull request #18 from OlivierCoen/dev
Ositofeliz Apr 7, 2026
91ea56d
remove tests for CI to try and avoid "No space left on disk" error
OlivierCoen Apr 8, 2026
2fdaf4a
Merge pull request #19 from OlivierCoen/dev
Ositofeliz Apr 8, 2026
1cb2b53
re-introduce tests commented to avoid "no disk space left" errros
OlivierCoen Apr 8, 2026
4999638
increase max shards from 7 to 10 for nf-tests
OlivierCoen Apr 8, 2026
3fda111
Merge pull request #20 from OlivierCoen/dev
OlivierCoen Apr 8, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
28 changes: 14 additions & 14 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
{
"name": "nfcore",
"image": "nfcore/gitpod:latest",
"remoteUser": "gitpod",
"runArgs": ["--privileged"],
"image": "nfcore/devcontainer:latest",

// Configure tool-specific properties.
"customizations": {
// Configure properties specific to VS Code.
"vscode": {
// Set *default* container specific settings.json values on container create.
"settings": {
"python.defaultInterpreterPath": "/opt/conda/bin/python"
},
"remoteUser": "root",
"privileged": true,

// Add the IDs of extensions you want installed when the container is created.
"extensions": ["ms-python.python", "ms-python.vscode-pylance", "nf-core.nf-core-extensionpack"]
}
"remoteEnv": {
// Workspace path on the host for mounting with docker-outside-of-docker
"LOCAL_WORKSPACE_FOLDER": "${localWorkspaceFolder}"
},

"onCreateCommand": "./.devcontainer/setup.sh",

"hostRequirements": {
"cpus": 4,
"memory": "16gb",
"storage": "32gb"
}
}
13 changes: 13 additions & 0 deletions .devcontainer/setup.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
#!/usr/bin/env bash

# Customise the terminal command prompt
echo "export PROMPT_DIRTRIM=2" >> $HOME/.bashrc
echo "export PS1='\[\e[3;36m\]\w ->\[\e[0m\\] '" >> $HOME/.bashrc
export PROMPT_DIRTRIM=2
export PS1='\[\e[3;36m\]\w ->\[\e[0m\\] '

# Update Nextflow
nextflow self-update

# Update welcome message
echo "Welcome to the nf-core/stableexpression devcontainer!" > /usr/local/etc/vscode-dev-containers/first-run-notice.txt
33 changes: 0 additions & 33 deletions .editorconfig

This file was deleted.

14 changes: 7 additions & 7 deletions .github/CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# nf-core/stableexpression: Contributing Guidelines
# `nf-core/stableexpression`: Contributing Guidelines

Hi there!
Many thanks for taking an interest in improving nf-core/stableexpression.
Expand Down Expand Up @@ -55,36 +55,36 @@ These tests are run both with the latest available version of `Nextflow` and als

:warning: Only in the unlikely and regretful event of a release happening with a bug.

- On your own fork, make a new branch `patch` based on `upstream/master`.
- On your own fork, make a new branch `patch` based on `upstream/main` or `upstream/master`.
- Fix the bug, and bump version (X.Y.Z+1).
- A PR should be made on `master` from patch to directly this particular bug.
- Open a pull-request from `patch` to `main`/`master` with the changes.

## Getting help

For further information/help, please consult the [nf-core/stableexpression documentation](https://nf-co.re/stableexpression/usage) and don't hesitate to get in touch on the nf-core Slack [#stableexpression](https://nfcore.slack.com/channels/stableexpression) channel ([join our Slack here](https://nf-co.re/join/slack)).

## Pipeline contribution conventions

To make the nf-core/stableexpression code and processing logic more understandable for new contributors and to ensure quality, we semi-standardise the way the code and other contributions are written.
To make the `nf-core/stableexpression` code and processing logic more understandable for new contributors and to ensure quality, we semi-standardise the way the code and other contributions are written.

### Adding a new step

If you wish to contribute a new step, please use the following coding standards:

1. Define the corresponding input channel into your new process from the expected previous process channel
1. Define the corresponding input channel into your new process from the expected previous process channel.
2. Write the process block (see below).
3. Define the output channel if needed (see below).
4. Add any new parameters to `nextflow.config` with a default (see below).
5. Add any new parameters to `nextflow_schema.json` with help text (via the `nf-core pipelines schema build` tool).
6. Add sanity checks and validation for all relevant parameters.
7. Perform local tests to validate that the new code works as expected.
8. If applicable, add a new test command in `.github/workflow/ci.yml`.
8. If applicable, add a new test in the `tests` directory.
9. Update MultiQC config `assets/multiqc_config.yml` so relevant suffixes, file name clean up and module plots are in the appropriate order. If applicable, add a [MultiQC](https://https://multiqc.info/) module.
10. Add a description of the output files and if relevant any appropriate images from the MultiQC report to `docs/output.md`.

### Default values

Parameters should be initialised / defined with default values in `nextflow.config` under the `params` scope.
Parameters should be initialised / defined with default values within the `params` scope in `nextflow.config`.

Once there, use `nf-core pipelines schema build` to add to `nextflow_schema.json`.

Expand Down
1 change: 0 additions & 1 deletion .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ body:

- [nf-core website: troubleshooting](https://nf-co.re/usage/troubleshooting)
- [nf-core/stableexpression pipeline documentation](https://nf-co.re/stableexpression/usage)

- type: textarea
id: description
attributes:
Expand Down
4 changes: 2 additions & 2 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,14 @@ These are the most common things requested on pull requests (PRs).

Remember that PRs should be made against the dev branch, unless you're preparing a pipeline release.

Learn more about contributing: [CONTRIBUTING.md](https://github.com/nf-core/stableexpression/tree/master/.github/CONTRIBUTING.md)
Learn more about contributing: [CONTRIBUTING.md](https://github.com/nf-core/stableexpression/tree/main/.github/CONTRIBUTING.md)
-->

## PR checklist

- [ ] This comment contains a description of changes (with reason).
- [ ] If you've fixed a bug or added code that should be tested, add tests!
- [ ] If you've added a new tool - have you followed the pipeline conventions in the [contribution docs](https://github.com/nf-core/stableexpression/tree/master/.github/CONTRIBUTING.md)
- [ ] If you've added a new tool - have you followed the pipeline conventions in the [contribution docs](https://github.com/nf-core/stableexpression/tree/main/.github/CONTRIBUTING.md)
- [ ] If necessary, also make a PR on the nf-core/stableexpression _branch_ on the [nf-core/test-datasets](https://github.com/nf-core/test-datasets) repository.
- [ ] Make sure your code lints (`nf-core pipelines lint`).
- [ ] Ensure the test suite passes (`nextflow run . -profile test,docker --outdir <OUTDIR>`).
Expand Down
69 changes: 69 additions & 0 deletions .github/actions/get-shards/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
name: "Get number of shards"
description: "Get the number of nf-test shards for the current CI job"
inputs:
max_shards:
description: "Maximum number of shards allowed"
required: true
paths:
description: "Component paths to test"
required: false
tags:
description: "Tags to pass as argument for nf-test --tag parameter"
required: false
outputs:
shard:
description: "Array of shard numbers"
value: ${{ steps.shards.outputs.shard }}
total_shards:
description: "Total number of shards"
value: ${{ steps.shards.outputs.total_shards }}
runs:
using: "composite"
steps:
- name: Install nf-test
uses: nf-core/setup-nf-test@v1
with:
version: ${{ env.NFT_VER }}
- name: Get number of shards
id: shards
shell: bash
run: |
# Run nf-test with dynamic parameter
nftest_output=$(nf-test test \
--profile +docker \
$(if [ -n "${{ inputs.tags }}" ]; then echo "--tag ${{ inputs.tags }}"; fi) \
--dry-run \
--ci \
--changed-since HEAD^) || {
echo "nf-test command failed with exit code $?"
echo "Full output: $nftest_output"
exit 1
}
echo "nf-test dry-run output: $nftest_output"

# Default values for shard and total_shards
shard="[]"
total_shards=0

# Check if there are related tests
if echo "$nftest_output" | grep -q 'No tests to execute'; then
echo "No related tests found."
else
# Extract the number of related tests
number_of_shards=$(echo "$nftest_output" | sed -n 's|.*Executed \([0-9]*\) tests.*|\1|p')
if [[ -n "$number_of_shards" && "$number_of_shards" -gt 0 ]]; then
shards_to_run=$(( $number_of_shards < ${{ inputs.max_shards }} ? $number_of_shards : ${{ inputs.max_shards }} ))
shard=$(seq 1 "$shards_to_run" | jq -R . | jq -c -s .)
total_shards="$shards_to_run"
else
echo "Unexpected output format. Falling back to default values."
fi
fi

# Write to GitHub Actions outputs
echo "shard=$shard" >> $GITHUB_OUTPUT
echo "total_shards=$total_shards" >> $GITHUB_OUTPUT

# Debugging output
echo "Final shard array: $shard"
echo "Total number of shards: $total_shards"
111 changes: 111 additions & 0 deletions .github/actions/nf-test/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
name: "nf-test Action"
description: "Runs nf-test with common setup steps"
inputs:
profile:
description: "Profile to use"
required: true
shard:
description: "Shard number for this CI job"
required: true
total_shards:
description: "Total number of test shards(NOT the total number of matrix jobs)"
required: true
paths:
description: "Test paths"
required: true
tags:
description: "Tags to pass as argument for nf-test --tag parameter"
required: false
runs:
using: "composite"
steps:
- name: Setup Nextflow
uses: nf-core/setup-nextflow@v2
with:
version: "${{ env.NXF_VERSION }}"

- name: Set up Python
uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6
with:
python-version: "3.14"

- name: Install nf-test
uses: nf-core/setup-nf-test@v1
with:
version: "${{ env.NFT_VER }}"
install-pdiff: true

- name: Setup apptainer
if: contains(inputs.profile, 'singularity')
uses: eWaterCycle/setup-apptainer@main

- name: Set up Singularity
if: contains(inputs.profile, 'singularity')
shell: bash
run: |
mkdir -p $NXF_SINGULARITY_CACHEDIR
mkdir -p $NXF_SINGULARITY_LIBRARYDIR

- name: Conda setup
if: contains(inputs.profile, 'conda')
uses: conda-incubator/setup-miniconda@505e6394dae86d6a5c7fbb6e3fb8938e3e863830 # v3
with:
auto-update-conda: true
conda-solver: libmamba
channels: conda-forge
channel-priority: strict
conda-remove-defaults: true

- name: Run nf-test
shell: bash
env:
NFT_WORKDIR: ${{ env.NFT_WORKDIR }}
run: |
nf-test test \
--profile=+${{ inputs.profile }} \
$(if [ -n "${{ inputs.tags }}" ]; then echo "--tag ${{ inputs.tags }}"; fi) \
--ci \
--changed-since HEAD^ \
--verbose \
--tap=test.tap \
--shard ${{ inputs.shard }}/${{ inputs.total_shards }} --debug

# Save the absolute path of the test.tap file to the output
echo "tap_file_path=$(realpath test.tap)" >> $GITHUB_OUTPUT

- name: Generate test summary
if: always()
shell: bash
run: |
# Add header if it doesn't exist (using a token file to track this)
if [ ! -f ".summary_header" ]; then
echo "# 🚀 nf-test results" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "| Status | Test Name | Profile | Shard |" >> $GITHUB_STEP_SUMMARY
echo "|:------:|-----------|---------|-------|" >> $GITHUB_STEP_SUMMARY
touch .summary_header
fi

if [ -f test.tap ]; then
while IFS= read -r line; do
if [[ $line =~ ^ok ]]; then
test_name="${line#ok }"
# Remove the test number from the beginning
test_name="${test_name#* }"
echo "| ✅ | ${test_name} | ${{ inputs.profile }} | ${{ inputs.shard }}/${{ inputs.total_shards }} |" >> $GITHUB_STEP_SUMMARY
elif [[ $line =~ ^not\ ok ]]; then
test_name="${line#not ok }"
# Remove the test number from the beginning
test_name="${test_name#* }"
echo "| ❌ | ${test_name} | ${{ inputs.profile }} | ${{ inputs.shard }}/${{ inputs.total_shards }} |" >> $GITHUB_STEP_SUMMARY
fi
done < test.tap
else
echo "| ⚠️ | No test results found | ${{ inputs.profile }} | ${{ inputs.shard }}/${{ inputs.total_shards }} |" >> $GITHUB_STEP_SUMMARY
fi

- name: Clean up
if: always()
shell: bash
run: |
sudo rm -rf /home/ubuntu/tests/
34 changes: 23 additions & 11 deletions .github/workflows/awsfulltest.yml
Original file line number Diff line number Diff line change
@@ -1,36 +1,48 @@
name: nf-core AWS full size tests
# This workflow is triggered on published releases.
# This workflow is triggered on PRs opened against the main/master branch.
# It can be additionally triggered manually with GitHub actions workflow dispatch button.
# It runs the -profile 'test_full' on AWS batch

on:
workflow_dispatch:
pull_request_review:
types: [submitted]
release:
types: [published]
workflow_dispatch:

jobs:
run-platform:
name: Run AWS full tests
if: github.repository == 'nf-core/stableexpression'
# run only if the PR is approved by at least 2 reviewers and against the master/main branch or manually triggered
if: github.repository == 'nf-core/stableexpression' && github.event.review.state == 'approved' && (github.event.pull_request.base.ref == 'master' || github.event.pull_request.base.ref == 'main') || github.event_name == 'workflow_dispatch' || github.event_name == 'release'
runs-on: ubuntu-latest
steps:
- name: Set revision variable
id: revision
run: |
echo "revision=${{ (github.event_name == 'workflow_dispatch' || github.event_name == 'release') && github.sha || 'dev' }}" >> "$GITHUB_OUTPUT"

- name: Launch workflow via Seqera Platform
uses: seqeralabs/action-tower-launch@v2
# TODO nf-core: You can customise AWS full pipeline tests as required
# Add full size test data (but still relatively small datasets for few samples)
# on the `test_full.config` test runs with only one set of parameters
with:
workspace_id: ${{ secrets.TOWER_WORKSPACE_ID }}
workspace_id: ${{ vars.TOWER_WORKSPACE_ID }}
access_token: ${{ secrets.TOWER_ACCESS_TOKEN }}
compute_env: ${{ secrets.TOWER_COMPUTE_ENV }}
revision: ${{ github.sha }}
workdir: s3://${{ secrets.AWS_S3_BUCKET }}/work/stableexpression/work-${{ github.sha }}
compute_env: ${{ vars.TOWER_COMPUTE_ENV }}
revision: ${{ steps.revision.outputs.revision }}
workdir: s3://${{ vars.AWS_S3_BUCKET }}/work/stableexpression/work-${{ steps.revision.outputs.revision }}
parameters: |
{
"hook_url": "${{ secrets.MEGATESTS_ALERTS_SLACK_HOOK_URL }}",
"outdir": "s3://${{ secrets.AWS_S3_BUCKET }}/stableexpression/results-${{ github.sha }}"
"outdir": "s3://${{ vars.AWS_S3_BUCKET }}/stableexpression/results-${{ steps.revision.outputs.revision }}"
}
profiles: test_full

- uses: actions/upload-artifact@v4
- uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
with:
name: Seqera Platform debug log file
path: |
seqera_platform_action_*.log
seqera_platform_action_*.json
tower_action_*.log
tower_action_*.json
Loading
Loading