In each nf-core config or pipeline, these lines are included. So basically, nf-core custom.config and the pipeline rnaseq.config will get pulled in.
// Load nf-core custom profiles from different institutions
// If params.custom_config_base is set AND either the NXF_OFFLINE environment variable is not set or params.custom_config_base is a local path, the nfcore_custom.config file from the specified base path is included.
// Load nf-core/rnaseq custom profiles from different institutions.
includeConfig params.custom_config_base && (!System.getenv('NXF_OFFLINE') || !params.custom_config_base.startsWith('http')) ? "${params.custom_config_base}/nfcore_custom.config" : "/dev/null"
// Load nf-core/rnaseq custom profiles from different institutions.
includeConfig params.custom_config_base && (!System.getenv('NXF_OFFLINE') || !params.custom_config_base.startsWith('http')) ? "${params.custom_config_base}/pipeline/rnaseq.config" : "/dev/null"We've reorganized cluster configurations to improve maintainability and co-locate related files. The new structure follows this pattern:
conf/<cluster>/
├── nextflow.config # Main cluster configuration
├── README.md # Cluster documentation and usage
└── pipelines/ # Pipeline-specific configurations
├── <pipeline1>/
│ ├── nextflow.config # Pipeline-specific config
│ └── README.md # Pipeline-specific docs
└── <pipeline2>/
├── nextflow.config
└── README.md
conf/uppmax/
├── nextflow.config # Main UPPMAX configuration
├── README.md # UPPMAX usage guide
└── pipelines/
├── ampliseq/
│ ├── nextflow.config # AmplicSeq-specific UPPMAX config
│ └── README.md # AmplicSeq on UPPMAX docs
└── sarek/
├── nextflow.config # Sarek-specific UPPMAX config
└── README.md # Sarek on UPPMAX docs
conf/sanger/
├── nextflow.config # Main Sanger configuration
└── README.md # Sanger usage guide (if exists)
Use the provided automation script to reorganize existing clusters:
./bin/reorganize-cluster.sh <cluster_name>This script:
- Creates the cluster directory if it doesn't exist
- Moves
conf/cluster.config→conf/cluster/nextflow.config - Renames
pipeline/→pipelines/(if exists) - Moves pipeline configs from
conf/pipeline/*/cluster.config - Moves pipeline docs from
docs/pipeline/*/cluster.md - Updates
nfcore_custom.configwith the new path - Cleans up duplicate files
- Create directory:
mkdir conf/<cluster> - Move main config:
mv conf/<cluster>.config conf/<cluster>/nextflow.config - Move pipeline configs:
mv conf/pipeline/<pipeline>/<cluster>.config conf/<cluster>/pipelines/<pipeline>/nextflow.config - Move documentation:
mv docs/pipeline/<pipeline>/<cluster>.md conf/<cluster>/pipelines/<pipeline>/README.md - Update registry: Edit
nfcore_custom.configto point toconf/<cluster>/nextflow.config
- Co-location: All cluster-related files are in one place
- Consistent naming:
nextflow.configandREADME.mdeverywhere - Better discoverability: Easier for maintainers to find cluster-specific files
- Reduced duplication: Single source of truth for each cluster configuration
- Improved maintainability: Clear separation between general and pipeline-specific configs
When moving cluster configs, always update nfcore_custom.config:
profiles {
cluster_name {
- includeConfig "${params.custom_config_base}/conf/cluster_name.config"
+ includeConfig "${params.custom_config_base}/conf/cluster_name/nextflow.config"
}
}This is automatically handled by the reorganization script.