diff --git a/nextflow.config b/nextflow.config index 0d85f07..151493b 100644 --- a/nextflow.config +++ b/nextflow.config @@ -41,7 +41,6 @@ params { show_hidden = false version = false modules_testdata_base_path = 's3://ngi-igenomes/testdata/nf-core/modules/' - pipelines_testdata_base_path = 'https://raw.githubusercontent.com/nf-core/test-datasets/' trace_report_suffix = new java.util.Date().format( 'yyyy-MM-dd_HH-mm-ss') // Schema validation default options @@ -313,7 +312,7 @@ manifest { homePage = 'https://github.com/seqeralabs/nf-aggregate' description = """Pipeline to aggregate pertinent metrics across pipeline runs on the Seqera Platform.""" mainScript = 'main.nf' - defaultBranch = 'master' + defaultBranch = 'main' nextflowVersion = '!>=24.04.2' version = '0.5.0' doi = '' @@ -325,7 +324,6 @@ plugins { } validation { - defaultIgnoreParams = ["genomes"] monochromeLogs = params.monochrome_logs help { enabled = true diff --git a/nextflow_schema.json b/nextflow_schema.json index fff787b..3806fdb 100644 --- a/nextflow_schema.json +++ b/nextflow_schema.json @@ -31,6 +31,64 @@ } } }, + "pipeline_options": { + "title": "Pipeline-specific options", + "type": "object", + "fa_icon": "fas fa-terminal", + "description": "Generic options for the pipeline.", + "help_text": "Generic options for the pipeline.", + "properties": { + "seqera_api_endpoint": { + "type": "string", + "default": "https://api.cloud.seqera.io", + "description": "Seqera Platform API endpoint URL.", + "fa_icon": "fas fa-question-circle" + }, + "seqera_cli_extra_args": { + "type": "string", + "description": "Extra arguments to pass to the Seqera Platform CLI command in addition to defaults defined by the pipeline.", + "fa_icon": "fas fa-plus" + }, + "java_truststore_path": { + "type": "string", + "description": "Path to custom cacerts Java truststore used by Seqera Platform.", + "fa_icon": "fas fa-key" + }, + "java_truststore_password": { + "type": "string", + "description": "Password for custom cacerts Java truststore used by Seqera Platform.", + "fa_icon": "fas fa-key" + }, + "skip_run_gantt": { + "type": "boolean", + "description": "Skip GANTT chart creation for each run.", + "fa_icon": "fas fa-fast-forward" + }, + "skip_multiqc": { + "type": "boolean", + "description": "Skip MultiQC.", + "fa_icon": "fas fa-fast-forward" + }, + "generate_benchmark_report": { + "type": "boolean", + "fa_icon": "fas fa-tachometer-alt", + "description": "Compile a benchmarking report for Seqera Platform runs." + }, + "benchmark_aws_cur_report": { + "type": "string", + "fa_icon": "fas fa-dollar-sign", + "description": "AWS CUR report from data exports.", + "pattern": "^\\S+\\.parquet", + "format": "file-path" + }, + "remove_failed_tasks": { + "type": "boolean", + "fa_icon": "fas fa-times-circle", + "description": "Remove failed tasks from the benchmark report." + } + }, + "required": ["seqera_api_endpoint"] + }, "generic_options": { "title": "Generic options", "type": "object", @@ -119,13 +177,6 @@ "hidden": true, "fa_icon": "fas fa-clone" }, - "pipelines_testdata_base_path": { - "type": "string", - "fa_icon": "far fa-check-circle", - "description": "Base URL or local path to location of pipeline test dataset files", - "default": "https://raw.githubusercontent.com/nf-core/test-datasets/", - "hidden": true - }, "trace_report_suffix": { "type": "string", "fa_icon": "far calendar", diff --git a/ro-crate-metadata.json b/ro-crate-metadata.json index 7a2c701..5153453 100644 --- a/ro-crate-metadata.json +++ b/ro-crate-metadata.json @@ -1,12 +1,29 @@ { - "@context": "https://w3id.org/ro/crate/1.1/context", + "@context": [ + "https://w3id.org/ro/crate/1.1/context", + { + "GithubService": "https://w3id.org/ro/terms/test#GithubService", + "JenkinsService": "https://w3id.org/ro/terms/test#JenkinsService", + "PlanemoEngine": "https://w3id.org/ro/terms/test#PlanemoEngine", + "TestDefinition": "https://w3id.org/ro/terms/test#TestDefinition", + "TestInstance": "https://w3id.org/ro/terms/test#TestInstance", + "TestService": "https://w3id.org/ro/terms/test#TestService", + "TestSuite": "https://w3id.org/ro/terms/test#TestSuite", + "TravisService": "https://w3id.org/ro/terms/test#TravisService", + "definition": "https://w3id.org/ro/terms/test#definition", + "engineVersion": "https://w3id.org/ro/terms/test#engineVersion", + "instance": "https://w3id.org/ro/terms/test#instance", + "resource": "https://w3id.org/ro/terms/test#resource", + "runsOn": "https://w3id.org/ro/terms/test#runsOn" + } + ], "@graph": [ { "@id": "./", "@type": "Dataset", "creativeWorkStatus": "Stable", - "datePublished": "2025-02-26T15:26:45+00:00", - "description": "# seqeralabs/nf-aggregate\n\n[![GitHub Actions CI Status](https://github.com/seqeralabs/nf-aggregate/actions/workflows/ci.yml/badge.svg)](https://github.com/seqeralabs/nf-aggregate/actions/workflows/ci.yml)\n[![GitHub Actions Linting Status](https://github.com/seqeralabs/nf-aggregate/actions/workflows/linting.yml/badge.svg)](https://github.com/seqeralabs/nf-aggregate/actions/workflows/linting.yml)[![Cite with Zenodo](http://img.shields.io/badge/DOI-10.5281/zenodo.XXXXXXX-1073c8?labelColor=000000)](https://doi.org/10.5281/zenodo.XXXXXXX)\n[![nf-test](https://img.shields.io/badge/unit_tests-nf--test-337ab7.svg)](https://www.nf-test.com)\n\n[![Nextflow](https://img.shields.io/badge/version-%E2%89%A524.04.2-green?style=flat&logo=nextflow&logoColor=white&color=%230DC09D&link=https%3A%2F%2Fnextflow.io)](https://www.nextflow.io/)\n[![nf-core template version](https://img.shields.io/badge/nf--core_template-3.3.0.dev0-green?style=flat&logo=nfcore&logoColor=white&color=%2324B064&link=https%3A%2F%2Fnf-co.re)](https://github.com/nf-core/tools/releases/tag/3.3.0.dev0)\n[![run with conda](http://img.shields.io/badge/run%20with-conda-3EB049?labelColor=000000&logo=anaconda)](https://docs.conda.io/en/latest/)\n[![run with docker](https://img.shields.io/badge/run%20with-docker-0db7ed?labelColor=000000&logo=docker)](https://www.docker.com/)\n[![run with singularity](https://img.shields.io/badge/run%20with-singularity-1d355c.svg?labelColor=000000)](https://sylabs.io/docs/)\n[![Launch on Seqera Platform](https://img.shields.io/badge/Launch%20%F0%9F%9A%80-Seqera%20Platform-%234256e7)](https://cloud.seqera.io/launch?pipeline=https://github.com/seqeralabs/nf-aggregate)\n\n## Introduction\n\n**seqeralabs/nf-aggregate** is a bioinformatics pipeline that ...\n\n\n\n\n1. Read QC ([`FastQC`](https://www.bioinformatics.babraham.ac.uk/projects/fastqc/))2. Present QC for raw reads ([`MultiQC`](http://multiqc.info/))\n\n## Usage\n\n> [!NOTE]\n> If you are new to Nextflow and nf-core, please refer to [this page](https://nf-co.re/docs/usage/installation) on how to set-up Nextflow. Make sure to [test your setup](https://nf-co.re/docs/usage/introduction#how-to-run-a-pipeline) with `-profile test` before running the workflow on actual data.\n\n\n\nNow, you can run the pipeline using:\n\n\n\n```bash\nnextflow run seqeralabs/nf-aggregate \\\n -profile \\\n --input samplesheet.csv \\\n --outdir \n```\n\n> [!WARNING]\n> Please provide pipeline parameters via the CLI or Nextflow `-params-file` option. Custom config files including those provided by the `-c` Nextflow option can be used to provide any configuration _**except for parameters**_; see [docs](https://nf-co.re/docs/usage/getting_started/configuration#custom-configuration-files).\n\n## Credits\n\nseqeralabs/nf-aggregate was originally written by SciDev Team, Seqera.\n\nWe thank the following people for their extensive assistance in the development of this pipeline:\n\n\n\n## Contributions and Support\n\nIf you would like to contribute to this pipeline, please see the [contributing guidelines](.github/CONTRIBUTING.md).\n\n## Citations\n\n\n\n\n\n\nAn extensive list of references for the tools used by the pipeline can be found in the [`CITATIONS.md`](CITATIONS.md) file.\n\nThis pipeline uses code and infrastructure developed and maintained by the [nf-core](https://nf-co.re) community, reused here under the [MIT license](https://github.com/nf-core/tools/blob/main/LICENSE).\n\n> **The nf-core framework for community-curated bioinformatics pipelines.**\n>\n> Philip Ewels, Alexander Peltzer, Sven Fillinger, Harshil Patel, Johannes Alneberg, Andreas Wilm, Maxime Ulysse Garcia, Paolo Di Tommaso & Sven Nahnsen.\n>\n> _Nat Biotechnol._ 2020 Feb 13. doi: [10.1038/s41587-020-0439-x](https://dx.doi.org/10.1038/s41587-020-0439-x).\n", + "datePublished": "2025-02-26T16:30:32+00:00", + "description": "# seqeralabs/nf-aggregate\n\n[![GitHub Actions CI Status](https://github.com/seqeralabs/nf-aggregate/actions/workflows/ci.yml/badge.svg)](https://github.com/seqeralabs/nf-aggregate/actions/workflows/ci.yml)\n[![GitHub Actions Linting Status](https://github.com/seqeralabs/nf-aggregate/actions/workflows/linting.yml/badge.svg)](https://github.com/seqeralabs/nf-aggregate/actions/workflows/linting.yml)\n[![nf-test](https://img.shields.io/badge/unit_tests-nf--test-337ab7.svg)](https://www.nf-test.com)\n\n[![Nextflow](https://img.shields.io/badge/version-%E2%89%A524.04.2-green?style=flat&logo=nextflow&logoColor=white&color=%230DC09D&link=https%3A%2F%2Fnextflow.io)](https://www.nextflow.io/)\n[![nf-core template version](https://img.shields.io/badge/nf--core_template-3.3.0.dev0-green?style=flat&logo=nfcore&logoColor=white&color=%2324B064&link=https%3A%2F%2Fnf-co.re)](https://github.com/nf-core/tools/releases/tag/3.3.0.dev0)\n[![run with conda](http://img.shields.io/badge/run%20with-conda-3EB049?labelColor=000000&logo=anaconda)](https://docs.conda.io/en/latest/)\n[![run with docker](https://img.shields.io/badge/run%20with-docker-0db7ed?labelColor=000000&logo=docker)](https://www.docker.com/)\n[![run with singularity](https://img.shields.io/badge/run%20with-singularity-1d355c.svg?labelColor=000000)](https://sylabs.io/docs/)\n[![Launch on Seqera Platform](https://img.shields.io/badge/Launch%20%F0%9F%9A%80-Seqera%20Platform-%234256e7)](https://cloud.seqera.io/launch?pipeline=https://github.com/seqeralabs/nf-aggregate)\n\n## Introduction\n\n**seqeralabs/nf-aggregate** is a Nextflow pipeline to aggregate pertinent metrics across pipeline runs on the Seqera Platform.\n\n

\n \"MultiQC\n

\n\nThe pipeline performs the following steps:\n\n1. Downloads run information via the Seqera CLI in parallel\n2. Runs MultiQC to aggregate all of the run metrics into a single report\n\nYou can download an example MultiQC report [here](assets/multiqc_report.html).\n\n## Prerequisites\n\n- [Nextflow](https://www.nextflow.io/docs/latest/getstarted.html#installation) >=23.10.0\n- Account in [Seqera Platform](https://seqera.io/platform/)\n- [Access token](https://docs.seqera.io/platform/23.3.0/api/overview#authentication) which is your personal authorization token for the Seqera Platform CLI. This can be created in the user menu under **Your tokens**. Export the token as a shell variable directly into your terminal if running the pipelie locally. You will not need to set this if running the pipeline within the Seqera Platform as it will automatically be inherited from the executing environment.\n\n ```bash\n export TOWER_ACCESS_TOKEN=\n ```\n\n## Usage\n\nThe primary input to the pipeline is a file containing a list of run identifiers from the Seqera Platform. These can be obtained from details in the runs page for any pipeline execution. For example, we can create a file called `run_ids.csv` with the following contents:\n\n```\nid,workspace\n4Bi5xBK6E2Nbhj,community/showcase\n4LWT4uaXDaGcDY,community/showcase\n38QXz4OfQDpwOV,community/showcase\n2lXd1j7OwZVfxh,community/showcase\n```\n\nThis pipeline can then be executed with the following command:\n\n```\nnextflow run seqeralabs/nf-aggregate \\\n --input run_ids.csv \\\n --outdir ./results \\\n -profile docker\n```\n\nIf you are using a Seqera Platform Enterprise instance that is secured with a private CA SSL certificate not recognized by default Java certificate authorities, you can specify a custom `cacerts` store path through the `--java_truststore_path` parameter and optionally, a password with the `--java_truststore_password`. This certificate will be used to achieve connectivity with your Seqera Platform instance through API and CLI.\n\n### Benchmark reports\n\nIf you want to generate a benchmark report comparing multiple runs, you can include a `group` column in your `run_ids.csv` file. This allows you to organize and analyze runs based on custom groupings in the final report.\n\n```\nid,workspace,group\n3VcLMAI8wyy0Ld,community/showcase,group1\n4VLRs7nuqbAhDy,community/showcase,group2\n```\n\nTo incorporate AWS cost data into the benchmark report, use the benchmark_aws_cur_report parameter. This should point to a valid AWS Cost and Usage Report (CUR) file in Parquet format, supporting both CUR 1.0 and CUR 2.0 schemas. The file can be stored locally or in a cloud bucket. To run nf-aggregate and generate benchmark reports, you can use the following command:\n\n```\nnextflow run seqeralabs/nf-aggregate \\\n --input run_ids.csv \\\n --outdir ./results \\\n --run_benchmark \\\n --benchmark_aws_cur_report ./aws_cost_report.parquet\n```\n\n## Output\n\nThe results from the pipeline will be published in the path specified by the `--outdir` and will consist of the following contents:\n\n```\n./results\n\u251c\u2500\u2500 multiqc/\n\u2502 \u251c\u2500\u2500 multiqc_data/\n\u2502 \u251c\u2500\u2500 multiqc_plots/\n\u2502 \u2514\u2500\u2500 multiqc_report.html ## MultiQC report\n\u251c\u2500\u2500 nf-core_rnaseq/\n\u2502 \u251c\u2500\u2500 gantt/\n\u2502 \u2502 \u2514\u2500\u2500 4Bi5xBK6E2Nbhj_gantt.html ## Gantt plot for run\n\u2502 \u2514\u2500\u2500 runs_dump/\n\u2502 \u2514\u2500\u2500 4Bi5xBK6E2Nbhj/ ## Output of 'tw runs dump'\n\u2502 \u251c\u2500\u2500 service-info.json\n\u2502 \u251c\u2500\u2500 workflow-launch.json\n\u2502 \u251c\u2500\u2500 workflow-load.json\n\u2502 \u251c\u2500\u2500 workflow-metrics.json\n\u2502 \u251c\u2500\u2500 workflow-tasks.json\n\u2502 \u2514\u2500\u2500 workflow.json\n\u2514\u2500\u2500 pipeline_info/\n```\n\n> [!NOTE]\n> Gantt plots depend on information derived from the Fusion logs. For that reason, Gantt plots will be ommitted from the pipeline outputs for non-Fusion runs, irrespective of whether the `--skip_run_gantt` parameter has been set.\n\n## Contributions and Support\n\nIf you would like to contribute to this pipeline, please see the [contributing guidelines](.github/CONTRIBUTING.md).\n\n## Credits\n\nnf-aggregate was written by the Scientific Development and MultiQC teams at [Seqera Labs](https://seqera.io/).\n\n## Citations\n\nThis pipeline uses code and infrastructure developed and maintained by the [nf-core](https://nf-co.re) community, reused here under the [MIT license](https://github.com/nf-core/tools/blob/master/LICENSE).\n\nYou can cite the `nf-core` publication as follows:\n\n> **The nf-core framework for community-curated bioinformatics pipelines.**\n>\n> Philip Ewels, Alexander Peltzer, Sven Fillinger, Harshil Patel, Johannes Alneberg, Andreas Wilm, Maxime Ulysse Garcia, Paolo Di Tommaso & Sven Nahnsen.\n>\n> _Nat Biotechnol._ 2020 Feb 13. doi: [10.1038/s41587-020-0439-x](https://dx.doi.org/10.1038/s41587-020-0439-x).\n", "hasPart": [ { "@id": "main.nf" @@ -15,13 +32,13 @@ "@id": "assets/" }, { - "@id": "conf/" + "@id": "bin/" }, { - "@id": "docs/" + "@id": "modules/" }, { - "@id": "modules/" + "@id": "modules/local/" }, { "@id": "modules/nf-core/" @@ -44,21 +61,12 @@ { "@id": "CHANGELOG.md" }, - { - "@id": "LICENSE" - }, { "@id": "CITATIONS.md" }, { "@id": "modules.json" }, - { - "@id": "docs/usage.md" - }, - { - "@id": "docs/output.md" - }, { "@id": ".nf-core.yml" }, @@ -70,10 +78,14 @@ } ], "isBasedOn": "https://github.com/seqeralabs/nf-aggregate", - "license": "MIT", "mainEntity": { "@id": "main.nf" }, + "mentions": [ + { + "@id": "#d57e5f05-159d-42cc-ac7d-5688e10bf944" + } + ], "name": "seqeralabs/nf-aggregate" }, { @@ -98,15 +110,31 @@ "SoftwareSourceCode", "ComputationalWorkflow" ], + "creator": [ + { + "@id": "#rob.syme@gmail.com" + }, + { + "@id": "#drpatelh@users.noreply.github.com" + } + ], "dateCreated": "", - "dateModified": "2025-02-26T16:26:45Z", + "dateModified": "2025-02-26T17:30:32Z", "dct:conformsTo": "https://bioschemas.org/profiles/ComputationalWorkflow/1.0-RELEASE/", "keywords": [ "nf-core", "nextflow" ], "license": [ - "MIT" + null + ], + "maintainer": [ + { + "@id": "#rob.syme@gmail.com" + }, + { + "@id": "#drpatelh@users.noreply.github.com" + } ], "name": [ "seqeralabs/nf-aggregate" @@ -137,25 +165,56 @@ }, "version": "!>=24.04.2" }, + { + "@id": "#d57e5f05-159d-42cc-ac7d-5688e10bf944", + "@type": "TestSuite", + "instance": [ + { + "@id": "#949b33a0-6b05-4775-9db5-620911520c56" + } + ], + "mainEntity": { + "@id": "main.nf" + }, + "name": "Test suite for seqeralabs/nf-aggregate" + }, + { + "@id": "#949b33a0-6b05-4775-9db5-620911520c56", + "@type": "TestInstance", + "name": "GitHub Actions workflow for testing seqeralabs/nf-aggregate", + "resource": "repos/seqeralabs/nf-aggregate/actions/workflows/ci.yml", + "runsOn": { + "@id": "https://w3id.org/ro/terms/test#GithubService" + }, + "url": "https://api.github.com" + }, + { + "@id": "https://w3id.org/ro/terms/test#GithubService", + "@type": "TestService", + "name": "Github Actions", + "url": { + "@id": "https://github.com" + } + }, { "@id": "assets/", "@type": "Dataset", "description": "Additional files" }, { - "@id": "conf/", + "@id": "bin/", "@type": "Dataset", - "description": "Configuration files" + "description": "Scripts that must be callable from a pipeline process" }, { - "@id": "docs/", + "@id": "modules/", "@type": "Dataset", - "description": "Markdown files for documenting the pipeline" + "description": "Modules used by the pipeline" }, { - "@id": "modules/", + "@id": "modules/local/", "@type": "Dataset", - "description": "Modules used by the pipeline" + "description": "Pipeline-specific modules" }, { "@id": "modules/nf-core/", @@ -192,11 +251,6 @@ "@type": "File", "description": "Information on changes made to the pipeline" }, - { - "@id": "LICENSE", - "@type": "File", - "description": "The license - should be MIT" - }, { "@id": "CITATIONS.md", "@type": "File", @@ -207,16 +261,6 @@ "@type": "File", "description": "Version information for modules from nf-core/modules" }, - { - "@id": "docs/usage.md", - "@type": "File", - "description": "Usage documentation" - }, - { - "@id": "docs/output.md", - "@type": "File", - "description": "Output documentation" - }, { "@id": ".nf-core.yml", "@type": "File", @@ -237,6 +281,18 @@ "@type": "Organization", "name": "nf-core", "url": "https://nf-co.re/" + }, + { + "@id": "#rob.syme@gmail.com", + "@type": "Person", + "email": "rob.syme@gmail.com", + "name": "Rob Syme" + }, + { + "@id": "#drpatelh@users.noreply.github.com", + "@type": "Person", + "email": "drpatelh@users.noreply.github.com", + "name": "Harshil Patel" } ] } \ No newline at end of file