1
0
Fork 0
mirror of https://github.com/MillironX/taxprofiler.git synced 2024-11-23 11:19:54 +00:00

Template update for nf-core/tools version 2.5

This commit is contained in:
nf-core-bot 2022-08-30 13:43:03 +00:00
parent a560492353
commit 6dfca81761
16 changed files with 184 additions and 91 deletions

View file

@ -8,7 +8,7 @@ trim_trailing_whitespace = true
indent_size = 4 indent_size = 4
indent_style = space indent_style = space
[*.{md,yml,yaml,html,css,scss,js}] [*.{md,yml,yaml,html,css,scss,js,cff}]
indent_size = 2 indent_size = 2
# These files are edited and tested upstream in nf-core/modules # These files are edited and tested upstream in nf-core/modules

View file

@ -15,8 +15,7 @@ Learn more about contributing: [CONTRIBUTING.md](https://github.com/nf-core/taxp
- [ ] This comment contains a description of changes (with reason). - [ ] 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 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/taxprofiler/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/taxprofiler/tree/master/.github/CONTRIBUTING.md)- [ ] If necessary, also make a PR on the nf-core/taxprofiler _branch_ on the [nf-core/test-datasets](https://github.com/nf-core/test-datasets) repository.
- [ ] If necessary, also make a PR on the nf-core/taxprofiler _branch_ on the [nf-core/test-datasets](https://github.com/nf-core/test-datasets) repository.
- [ ] Make sure your code lints (`nf-core lint`). - [ ] Make sure your code lints (`nf-core lint`).
- [ ] Ensure the test suite passes (`nextflow run . -profile test,docker --outdir <OUTDIR>`). - [ ] Ensure the test suite passes (`nextflow run . -profile test,docker --outdir <OUTDIR>`).
- [ ] Usage Documentation in `docs/usage.md` is updated. - [ ] Usage Documentation in `docs/usage.md` is updated.

View file

@ -10,7 +10,6 @@ on:
env: env:
NXF_ANSI_LOG: false NXF_ANSI_LOG: false
CAPSULE_LOG: none
jobs: jobs:
test: test:
@ -20,27 +19,17 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
strategy: strategy:
matrix: matrix:
# Nextflow versions NXF_VER:
include: - "21.10.3"
# Test pipeline minimum Nextflow version - "latest-everything"
- NXF_VER: "21.10.3"
NXF_EDGE: ""
# Test latest edge release of Nextflow
- NXF_VER: ""
NXF_EDGE: "1"
steps: steps:
- name: Check out pipeline code - name: Check out pipeline code
uses: actions/checkout@v2 uses: actions/checkout@v2
- name: Install Nextflow - name: Install Nextflow
env: uses: nf-core/setup-nextflow@v1
NXF_VER: ${{ matrix.NXF_VER }} with:
# Uncomment only if the edge release is more recent than the latest stable release version: "${{ matrix.NXF_VER }}"
# See https://github.com/nextflow-io/nextflow/issues/2467
# NXF_EDGE: ${{ matrix.NXF_EDGE }}
run: |
wget -qO- get.nextflow.io | bash
sudo mv nextflow /usr/local/bin/
- name: Run pipeline with test data - name: Run pipeline with test data
# TODO nf-core: You can customise CI pipeline run tests as required # TODO nf-core: You can customise CI pipeline run tests as required

View file

@ -35,6 +35,36 @@ jobs:
- name: Run Prettier --check - name: Run Prettier --check
run: prettier --check ${GITHUB_WORKSPACE} run: prettier --check ${GITHUB_WORKSPACE}
PythonBlack:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Check code lints with Black
uses: psf/black@stable
# If the above check failed, post a comment on the PR explaining the failure
- name: Post PR comment
if: failure()
uses: mshick/add-pr-comment@v1
with:
message: |
## Python linting (`black`) is failing
To keep the code consistent with lots of contributors, we run automated code consistency checks.
To fix this CI test, please run:
* Install [`black`](https://black.readthedocs.io/en/stable/): `pip install black`
* Fix formatting errors in your pipeline: `black .`
Once you push these changes the test should pass, and you can hide this comment :+1:
We highly recommend setting up Black in your code editor so that this formatting is done automatically on save. Ask about it on Slack for help!
Thanks again for your contribution!
repo-token: ${{ secrets.GITHUB_TOKEN }}
allow-repeats: false
nf-core: nf-core:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
@ -42,15 +72,11 @@ jobs:
uses: actions/checkout@v2 uses: actions/checkout@v2
- name: Install Nextflow - name: Install Nextflow
env: uses: nf-core/setup-nextflow@v1
CAPSULE_LOG: none
run: |
wget -qO- get.nextflow.io | bash
sudo mv nextflow /usr/local/bin/
- uses: actions/setup-python@v3 - uses: actions/setup-python@v3
with: with:
python-version: "3.6" python-version: "3.7"
architecture: "x64" architecture: "x64"
- name: Install dependencies - name: Install dependencies

56
CITATION.cff Normal file
View file

@ -0,0 +1,56 @@
cff-version: 1.2.0
message: "If you use `nf-core tools` in your work, please cite the `nf-core` publication"
authors:
- family-names: Ewels
given-names: Philip
- family-names: Peltzer
given-names: Alexander
- family-names: Fillinger
given-names: Sven
- family-names: Patel
given-names: Harshil
- family-names: Alneberg
given-names: Johannes
- family-names: Wilm
given-names: Andreas
- family-names: Ulysse Garcia
given-names: Maxime
- family-names: Di Tommaso
given-names: Paolo
- family-names: Nahnsen
given-names: Sven
title: "The nf-core framework for community-curated bioinformatics pipelines."
version: 2.4.1
doi: 10.1038/s41587-020-0439-x
date-released: 2022-05-16
url: https://github.com/nf-core/tools
prefered-citation:
type: article
authors:
- family-names: Ewels
given-names: Philip
- family-names: Peltzer
given-names: Alexander
- family-names: Fillinger
given-names: Sven
- family-names: Patel
given-names: Harshil
- family-names: Alneberg
given-names: Johannes
- family-names: Wilm
given-names: Andreas
- family-names: Ulysse Garcia
given-names: Maxime
- family-names: Di Tommaso
given-names: Paolo
- family-names: Nahnsen
given-names: Sven
doi: 10.1038/s41587-020-0439-x
journal: nature biotechnology
start: 276
end: 278
title: "The nf-core framework for community-curated bioinformatics pipelines."
issue: 3
volume: 38
year: 2020
url: https://dx.doi.org/10.1038/s41587-020-0439-x

View file

@ -1,19 +1,14 @@
# ![nf-core/taxprofiler](docs/images/nf-core-taxprofiler_logo_light.png#gh-light-mode-only) ![nf-core/taxprofiler](docs/images/nf-core-taxprofiler_logo_dark.png#gh-dark-mode-only) # ![nf-core/taxprofiler](docs/images/nf-core-taxprofiler_logo_light.png#gh-light-mode-only) ![nf-core/taxprofiler](docs/images/nf-core-taxprofiler_logo_dark.png#gh-dark-mode-only)
[![GitHub Actions CI Status](https://github.com/nf-core/taxprofiler/workflows/nf-core%20CI/badge.svg)](https://github.com/nf-core/taxprofiler/actions?query=workflow%3A%22nf-core+CI%22) [![AWS CI](https://img.shields.io/badge/CI%20tests-full%20size-FF9900?labelColor=000000&logo=Amazon%20AWS)](https://nf-co.re/taxprofiler/results)[![Cite with Zenodo](http://img.shields.io/badge/DOI-10.5281/zenodo.XXXXXXX-1073c8?labelColor=000000)](https://doi.org/10.5281/zenodo.XXXXXXX)
[![GitHub Actions Linting Status](https://github.com/nf-core/taxprofiler/workflows/nf-core%20linting/badge.svg)](https://github.com/nf-core/taxprofiler/actions?query=workflow%3A%22nf-core+linting%22)
[![AWS CI](https://img.shields.io/badge/CI%20tests-full%20size-FF9900?logo=Amazon%20AWS)](https://nf-co.re/taxprofiler/results)
[![Cite with Zenodo](http://img.shields.io/badge/DOI-10.5281/zenodo.XXXXXXX-1073c8)](https://doi.org/10.5281/zenodo.XXXXXXX)
[![Nextflow](https://img.shields.io/badge/nextflow%20DSL2-%E2%89%A521.10.3-23aa62.svg)](https://www.nextflow.io/) [![Nextflow](https://img.shields.io/badge/nextflow%20DSL2-%E2%89%A521.10.3-23aa62.svg)](https://www.nextflow.io/)
[![run with conda](http://img.shields.io/badge/run%20with-conda-3EB049?logo=anaconda)](https://docs.conda.io/en/latest/) [![run with conda](http://img.shields.io/badge/run%20with-conda-3EB049?labelColor=000000&logo=anaconda)](https://docs.conda.io/en/latest/)
[![run with docker](https://img.shields.io/badge/run%20with-docker-0db7ed?logo=docker)](https://www.docker.com/) [![run with docker](https://img.shields.io/badge/run%20with-docker-0db7ed?labelColor=000000&logo=docker)](https://www.docker.com/)
[![run with singularity](https://img.shields.io/badge/run%20with-singularity-1d355c.svg)](https://sylabs.io/docs/) [![run with singularity](https://img.shields.io/badge/run%20with-singularity-1d355c.svg?labelColor=000000)](https://sylabs.io/docs/)
[![Launch on Nextflow Tower](https://img.shields.io/badge/Launch%20%F0%9F%9A%80-Nextflow%20Tower-%234256e7)](https://tower.nf/launch?pipeline=https://github.com/nf-core/taxprofiler) [![Launch on Nextflow Tower](https://img.shields.io/badge/Launch%20%F0%9F%9A%80-Nextflow%20Tower-%234256e7)](https://tower.nf/launch?pipeline=https://github.com/nf-core/taxprofiler)
[![Get help on Slack](http://img.shields.io/badge/slack-nf--core%20%23taxprofiler-4A154B?logo=slack)](https://nfcore.slack.com/channels/taxprofiler) [![Get help on Slack](http://img.shields.io/badge/slack-nf--core%20%23taxprofiler-4A154B?labelColor=000000&logo=slack)](https://nfcore.slack.com/channels/taxprofiler)[![Follow on Twitter](http://img.shields.io/badge/twitter-%40nf__core-1DA1F2?labelColor=000000&logo=twitter)](https://twitter.com/nf_core)[![Watch on YouTube](http://img.shields.io/badge/youtube-nf--core-FF0000?labelColor=000000&logo=youtube)](https://www.youtube.com/c/nf-core)
[![Follow on Twitter](http://img.shields.io/badge/twitter-%40nf__core-1DA1F2?logo=twitter)](https://twitter.com/nf_core)
[![Watch on YouTube](http://img.shields.io/badge/youtube-nf--core-FF0000?logo=youtube)](https://www.youtube.com/c/nf-core)
## Introduction ## Introduction
@ -25,7 +20,7 @@ The pipeline is built using [Nextflow](https://www.nextflow.io), a workflow tool
<!-- TODO nf-core: Add full-sized test dataset and amend the paragraph below if applicable --> <!-- TODO nf-core: Add full-sized test dataset and amend the paragraph below if applicable -->
On release, automated continuous integration tests run the pipeline on a full-sized dataset on the AWS cloud infrastructure. This ensures that the pipeline runs on AWS, has sensible resource allocation defaults set to run on real-world datasets, and permits the persistent storage of results to benchmark between pipeline releases and other analysis sources. The results obtained from the full-sized test can be viewed on the [nf-core website](https://nf-co.re/taxprofiler/results). On release, automated continuous integration tests run the pipeline on a full-sized dataset on the AWS cloud infrastructure. This ensures that the pipeline runs on AWS, has sensible resource allocation defaults set to run on real-world datasets, and permits the persistent storage of results to benchmark between pipeline releases and other analysis sources.The results obtained from the full-sized test can be viewed on the [nf-core website](https://nf-co.re/taxprofiler/results).
## Pipeline summary ## Pipeline summary
@ -42,7 +37,7 @@ On release, automated continuous integration tests run the pipeline on a full-si
3. Download the pipeline and test it on a minimal dataset with a single command: 3. Download the pipeline and test it on a minimal dataset with a single command:
```console ```bash
nextflow run nf-core/taxprofiler -profile test,YOURPROFILE --outdir <OUTDIR> nextflow run nf-core/taxprofiler -profile test,YOURPROFILE --outdir <OUTDIR>
``` ```
@ -57,7 +52,7 @@ On release, automated continuous integration tests run the pipeline on a full-si
<!-- TODO nf-core: Update the example "typical command" below used to run the pipeline --> <!-- TODO nf-core: Update the example "typical command" below used to run the pipeline -->
```console ```bash
nextflow run nf-core/taxprofiler --input samplesheet.csv --outdir <OUTDIR> --genome GRCh37 -profile <docker/singularity/podman/shifter/charliecloud/conda/institute> nextflow run nf-core/taxprofiler --input samplesheet.csv --outdir <OUTDIR> --genome GRCh37 -profile <docker/singularity/podman/shifter/charliecloud/conda/institute>
``` ```

View file

@ -6,7 +6,6 @@
`._,._,' `._,._,'
nf-core/taxprofiler v${version} nf-core/taxprofiler v${version}
---------------------------------------------------- ----------------------------------------------------
Run Name: $runName Run Name: $runName
<% if (success){ <% if (success){

View file

@ -11,7 +11,6 @@ import sys
from collections import Counter from collections import Counter
from pathlib import Path from pathlib import Path
logger = logging.getLogger() logger = logging.getLogger()
@ -79,13 +78,15 @@ class RowChecker:
def _validate_sample(self, row): def _validate_sample(self, row):
"""Assert that the sample name exists and convert spaces to underscores.""" """Assert that the sample name exists and convert spaces to underscores."""
assert len(row[self._sample_col]) > 0, "Sample input is required." if len(row[self._sample_col]) <= 0:
raise AssertionError("Sample input is required.")
# Sanitize samples slightly. # Sanitize samples slightly.
row[self._sample_col] = row[self._sample_col].replace(" ", "_") row[self._sample_col] = row[self._sample_col].replace(" ", "_")
def _validate_first(self, row): def _validate_first(self, row):
"""Assert that the first FASTQ entry is non-empty and has the right format.""" """Assert that the first FASTQ entry is non-empty and has the right format."""
assert len(row[self._first_col]) > 0, "At least the first FASTQ file is required." if len(row[self._first_col]) <= 0:
raise AssertionError("At least the first FASTQ file is required.")
self._validate_fastq_format(row[self._first_col]) self._validate_fastq_format(row[self._first_col])
def _validate_second(self, row): def _validate_second(self, row):
@ -97,36 +98,34 @@ class RowChecker:
"""Assert that read pairs have the same file extension. Report pair status.""" """Assert that read pairs have the same file extension. Report pair status."""
if row[self._first_col] and row[self._second_col]: if row[self._first_col] and row[self._second_col]:
row[self._single_col] = False row[self._single_col] = False
assert ( if Path(row[self._first_col]).suffixes[-2:] != Path(row[self._second_col]).suffixes[-2:]:
Path(row[self._first_col]).suffixes[-2:] == Path(row[self._second_col]).suffixes[-2:] raise AssertionError("FASTQ pairs must have the same file extensions.")
), "FASTQ pairs must have the same file extensions."
else: else:
row[self._single_col] = True row[self._single_col] = True
def _validate_fastq_format(self, filename): def _validate_fastq_format(self, filename):
"""Assert that a given filename has one of the expected FASTQ extensions.""" """Assert that a given filename has one of the expected FASTQ extensions."""
assert any(filename.endswith(extension) for extension in self.VALID_FORMATS), ( if not any(filename.endswith(extension) for extension in self.VALID_FORMATS):
f"The FASTQ file has an unrecognized extension: {filename}\n" raise AssertionError(
f"It should be one of: {', '.join(self.VALID_FORMATS)}" f"The FASTQ file has an unrecognized extension: {filename}\n"
) f"It should be one of: {', '.join(self.VALID_FORMATS)}"
)
def validate_unique_samples(self): def validate_unique_samples(self):
""" """
Assert that the combination of sample name and FASTQ filename is unique. Assert that the combination of sample name and FASTQ filename is unique.
In addition to the validation, also rename the sample if more than one sample, In addition to the validation, also rename all samples to have a suffix of _T{n}, where n is the
FASTQ file combination exists. number of times the same sample exist, but with different FASTQ files, e.g., multiple runs per experiment.
""" """
assert len(self._seen) == len(self.modified), "The pair of sample name and FASTQ must be unique." if len(self._seen) != len(self.modified):
if len({pair[0] for pair in self._seen}) < len(self._seen): raise AssertionError("The pair of sample name and FASTQ must be unique.")
counts = Counter(pair[0] for pair in self._seen) seen = Counter()
seen = Counter() for row in self.modified:
for row in self.modified: sample = row[self._sample_col]
sample = row[self._sample_col] seen[sample] += 1
seen[sample] += 1 row[self._sample_col] = f"{sample}_T{seen[sample]}"
if counts[sample] > 1:
row[self._sample_col] = f"{sample}_T{seen[sample]}"
def read_head(handle, num_lines=10): def read_head(handle, num_lines=10):

View file

@ -26,6 +26,11 @@ process {
// adding in your local modules too. // adding in your local modules too.
// TODO nf-core: Customise requirements for specific processes. // TODO nf-core: Customise requirements for specific processes.
// See https://www.nextflow.io/docs/latest/config.html#config-process-selectors // See https://www.nextflow.io/docs/latest/config.html#config-process-selectors
withLabel:process_single {
cpus = { check_max( 1 , 'cpus' ) }
memory = { check_max( 6.GB * task.attempt, 'memory' ) }
time = { check_max( 4.h * task.attempt, 'time' ) }
}
withLabel:process_low { withLabel:process_low {
cpus = { check_max( 2 * task.attempt, 'cpus' ) } cpus = { check_max( 2 * task.attempt, 'cpus' ) }
memory = { check_max( 12.GB * task.attempt, 'memory' ) } memory = { check_max( 12.GB * task.attempt, 'memory' ) }

View file

@ -12,7 +12,7 @@
You will need to create a samplesheet with information about the samples you would like to analyse before running the pipeline. Use this parameter to specify its location. It has to be a comma-separated file with 3 columns, and a header row as shown in the examples below. You will need to create a samplesheet with information about the samples you would like to analyse before running the pipeline. Use this parameter to specify its location. It has to be a comma-separated file with 3 columns, and a header row as shown in the examples below.
```console ```bash
--input '[path to samplesheet file]' --input '[path to samplesheet file]'
``` ```
@ -56,7 +56,7 @@ An [example samplesheet](../assets/samplesheet.csv) has been provided with the p
The typical command for running the pipeline is as follows: The typical command for running the pipeline is as follows:
```console ```bash
nextflow run nf-core/taxprofiler --input samplesheet.csv --outdir <OUTDIR> --genome GRCh37 -profile docker nextflow run nf-core/taxprofiler --input samplesheet.csv --outdir <OUTDIR> --genome GRCh37 -profile docker
``` ```
@ -64,9 +64,9 @@ This will launch the pipeline with the `docker` configuration profile. See below
Note that the pipeline will create the following files in your working directory: Note that the pipeline will create the following files in your working directory:
```console ```bash
work # Directory containing the nextflow working files work # Directory containing the nextflow working files
<OUTIDR> # Finished results in specified location (defined with --outdir) <OUTDIR> # Finished results in specified location (defined with --outdir)
.nextflow_log # Log file from Nextflow .nextflow_log # Log file from Nextflow
# Other nextflow hidden files, eg. history of pipeline runs and old logs. # Other nextflow hidden files, eg. history of pipeline runs and old logs.
``` ```
@ -75,7 +75,7 @@ work # Directory containing the nextflow working files
When you run the above command, Nextflow automatically pulls the pipeline code from GitHub and stores it as a cached version. When running the pipeline after this, it will always use the cached version if available - even if the pipeline has been updated since. To make sure that you're running the latest version of the pipeline, make sure that you regularly update the cached version of the pipeline: When you run the above command, Nextflow automatically pulls the pipeline code from GitHub and stores it as a cached version. When running the pipeline after this, it will always use the cached version if available - even if the pipeline has been updated since. To make sure that you're running the latest version of the pipeline, make sure that you regularly update the cached version of the pipeline:
```console ```bash
nextflow pull nf-core/taxprofiler nextflow pull nf-core/taxprofiler
``` ```
@ -251,6 +251,6 @@ Some HPC setups also allow you to run nextflow within a cluster job submitted yo
In some cases, the Nextflow Java virtual machines can start to request a large amount of memory. In some cases, the Nextflow Java virtual machines can start to request a large amount of memory.
We recommend adding the following line to your environment to limit this (typically in `~/.bashrc` or `~./bash_profile`): We recommend adding the following line to your environment to limit this (typically in `~/.bashrc` or `~./bash_profile`):
```console ```bash
NXF_OPTS='-Xms1g -Xmx4g' NXF_OPTS='-Xms1g -Xmx4g'
``` ```

View file

@ -59,6 +59,7 @@ class WorkflowMain {
} }
// Print parameter summary log to screen // Print parameter summary log to screen
log.info paramsSummaryLog(workflow, params, log) log.info paramsSummaryLog(workflow, params, log)
// Check that a -profile or Nextflow config has been provided to run the pipeline // Check that a -profile or Nextflow config has been provided to run the pipeline
@ -78,17 +79,15 @@ class WorkflowMain {
System.exit(1) System.exit(1)
} }
} }
// //
// Get attribute from genome config file e.g. fasta // Get attribute from genome config file e.g. fasta
// //
public static String getGenomeAttribute(params, attribute) { public static Object getGenomeAttribute(params, attribute) {
def val = ''
if (params.genomes && params.genome && params.genomes.containsKey(params.genome)) { if (params.genomes && params.genome && params.genomes.containsKey(params.genome)) {
if (params.genomes[ params.genome ].containsKey(attribute)) { if (params.genomes[ params.genome ].containsKey(attribute)) {
val = params.genomes[ params.genome ][ attribute ] return params.genomes[ params.genome ][ attribute ]
} }
} }
return val return null
} }
} }

View file

@ -10,6 +10,7 @@ class WorkflowTaxprofiler {
public static void initialise(params, log) { public static void initialise(params, log) {
genomeExistsError(params, log) genomeExistsError(params, log)
if (!params.fasta) { if (!params.fasta) {
log.error "Genome fasta file not specified with e.g. '--fasta genome.fa' or via a detectable config file." log.error "Genome fasta file not specified with e.g. '--fasta genome.fa' or via a detectable config file."
System.exit(1) System.exit(1)
@ -41,9 +42,7 @@ class WorkflowTaxprofiler {
yaml_file_text += "data: |\n" yaml_file_text += "data: |\n"
yaml_file_text += "${summary_section}" yaml_file_text += "${summary_section}"
return yaml_file_text return yaml_file_text
} }//
//
// Exit pipeline if incorrect --genome key provided // Exit pipeline if incorrect --genome key provided
// //
private static void genomeExistsError(params, log) { private static void genomeExistsError(params, log) {

View file

@ -4,7 +4,7 @@
nf-core/taxprofiler nf-core/taxprofiler
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Github : https://github.com/nf-core/taxprofiler Github : https://github.com/nf-core/taxprofiler
Website: https://nf-co.re/taxprofiler Website: https://nf-co.re/taxprofiler
Slack : https://nfcore.slack.com/channels/taxprofiler Slack : https://nfcore.slack.com/channels/taxprofiler
---------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------
*/ */

View file

@ -3,14 +3,20 @@
"homePage": "https://github.com/nf-core/taxprofiler", "homePage": "https://github.com/nf-core/taxprofiler",
"repos": { "repos": {
"nf-core/modules": { "nf-core/modules": {
"custom/dumpsoftwareversions": { "git_url": "https://github.com/nf-core/modules.git",
"git_sha": "e745e167c1020928ef20ea1397b6b4d230681b4d" "modules": {
}, "custom/dumpsoftwareversions": {
"fastqc": { "git_sha": "e745e167c1020928ef20ea1397b6b4d230681b4d",
"git_sha": "e745e167c1020928ef20ea1397b6b4d230681b4d" "branch": "master"
}, },
"multiqc": { "fastqc": {
"git_sha": "e745e167c1020928ef20ea1397b6b4d230681b4d" "git_sha": "e745e167c1020928ef20ea1397b6b4d230681b4d",
"branch": "master"
},
"multiqc": {
"git_sha": "e745e167c1020928ef20ea1397b6b4d230681b4d",
"branch": "master"
}
} }
} }
} }

View file

@ -1,9 +1,10 @@
#!/usr/bin/env python #!/usr/bin/env python
import yaml
import platform import platform
from textwrap import dedent from textwrap import dedent
import yaml
def _make_versions_html(versions): def _make_versions_html(versions):
html = [ html = [
@ -58,11 +59,12 @@ versions_by_module = {}
for process, process_versions in versions_by_process.items(): for process, process_versions in versions_by_process.items():
module = process.split(":")[-1] module = process.split(":")[-1]
try: try:
assert versions_by_module[module] == process_versions, ( if versions_by_module[module] != process_versions:
"We assume that software versions are the same between all modules. " raise AssertionError(
"If you see this error-message it means you discovered an edge-case " "We assume that software versions are the same between all modules. "
"and should open an issue in nf-core/tools. " "If you see this error-message it means you discovered an edge-case "
) "and should open an issue in nf-core/tools. "
)
except KeyError: except KeyError:
versions_by_module[module] = process_versions versions_by_module[module] = process_versions

View file

@ -13,11 +13,11 @@ params {
// Input options // Input options
input = null input = null
// References // References
genome = null genome = null
igenomes_base = 's3://ngi-igenomes/igenomes' igenomes_base = 's3://ngi-igenomes/igenomes'
igenomes_ignore = false igenomes_ignore = false
// MultiQC options // MultiQC options
multiqc_config = null multiqc_config = null
multiqc_title = null multiqc_title = null
@ -37,6 +37,7 @@ params {
schema_ignore_params = 'genomes' schema_ignore_params = 'genomes'
enable_conda = false enable_conda = false
// Config options // Config options
custom_config_version = 'master' custom_config_version = 'master'
custom_config_base = "https://raw.githubusercontent.com/nf-core/configs/${params.custom_config_version}" custom_config_base = "https://raw.githubusercontent.com/nf-core/configs/${params.custom_config_version}"
@ -45,6 +46,7 @@ params {
config_profile_url = null config_profile_url = null
config_profile_name = null config_profile_name = null
// Max resource options // Max resource options
// Defaults only, expecting to be overwritten // Defaults only, expecting to be overwritten
max_memory = '128.GB' max_memory = '128.GB'
@ -72,6 +74,7 @@ try {
// } // }
profiles { profiles {
debug { process.beforeScript = 'echo $HOSTNAME' } debug { process.beforeScript = 'echo $HOSTNAME' }
conda { conda {
@ -82,6 +85,15 @@ profiles {
shifter.enabled = false shifter.enabled = false
charliecloud.enabled = false charliecloud.enabled = false
} }
mamba {
params.enable_conda = true
conda.useMamba = true
docker.enabled = false
singularity.enabled = false
podman.enabled = false
shifter.enabled = false
charliecloud.enabled = false
}
docker { docker {
docker.enabled = true docker.enabled = true
docker.userEmulation = true docker.userEmulation = true
@ -119,10 +131,16 @@ profiles {
podman.enabled = false podman.enabled = false
shifter.enabled = false shifter.enabled = false
} }
gitpod {
executor.name = 'local'
executor.cpus = 16
executor.memory = 60.GB
}
test { includeConfig 'conf/test.config' } test { includeConfig 'conf/test.config' }
test_full { includeConfig 'conf/test_full.config' } test_full { includeConfig 'conf/test_full.config' }
} }
// Load igenomes.config if required // Load igenomes.config if required
if (!params.igenomes_ignore) { if (!params.igenomes_ignore) {
includeConfig 'conf/igenomes.config' includeConfig 'conf/igenomes.config'
@ -130,6 +148,7 @@ if (!params.igenomes_ignore) {
params.genomes = [:] params.genomes = [:]
} }
// Export these variables to prevent local Python/R libraries from conflicting with those in the container // Export these variables to prevent local Python/R libraries from conflicting with those in the container
// The JULIA depot path has been adjusted to a fixed path `/usr/local/share/julia` that needs to be used for packages in the container. // The JULIA depot path has been adjusted to a fixed path `/usr/local/share/julia` that needs to be used for packages in the container.
// See https://apeltzer.github.io/post/03-julia-lang-nextflow/ for details on that. Once we have a common agreement on where to keep Julia packages, this is adjustable. // See https://apeltzer.github.io/post/03-julia-lang-nextflow/ for details on that. Once we have a common agreement on where to keep Julia packages, this is adjustable.