Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Declutter README #2232

Merged
merged 18 commits into from
Apr 25, 2023
Merged
Show file tree
Hide file tree
Changes from 6 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
- Consistent syntax for branch checks in PRs ([#2202](https://github.com/nf-core/tools/issues/2202))
- Fixed minor Jinja2 templating bug that caused the PR template to miss a newline
- Updated AWS tests to use newly moved `seqeralabs/action-tower-launch` instead of `nf-core/tower-action`
- Simplify pipeline README ([#2186](https://github.com/nf-core/tools/issues/2186))

### Linting

Expand Down
20 changes: 0 additions & 20 deletions nf_core/lint/readme.py
Original file line number Diff line number Diff line change
Expand Up @@ -62,24 +62,4 @@ def readme(self):
else:
warned.append("README did not have a Nextflow minimum version badge.")

# Check that the minimum version mentioned in the quick start section is consistent
# Looking for: "1. Install [`Nextflow`](https://www.nextflow.io/docs/latest/getstarted.html#installation) (`>=22.10.1`)"
nf_version_re = r"1\.\s*Install\s*\[`Nextflow`\]\(https://www.nextflow.io/docs/latest/getstarted.html#installation\)\s*\(`>=(\d*\.\d*\.\d*)`\)"
match = re.search(nf_version_re, content)
if match:
nf_quickstart_version = match.group(1)
try:
if nf_quickstart_version != self.minNextflowVersion:
raise AssertionError()
except (AssertionError, KeyError):
failed.append(
f"README Nextflow minimium version in Quick Start section does not match config. README: `{nf_quickstart_version}`, Config `{self.minNextflowVersion}`"
)
else:
passed.append(
f"README Nextflow minimum version in Quick Start section matched config. README: `{nf_quickstart_version}`, Config: `{self.minNextflowVersion}`"
)
else:
warned.append("README did not have a Nextflow minimum version mentioned in Quick Start section.")

return {"passed": passed, "warned": warned, "failed": failed}
79 changes: 49 additions & 30 deletions nf_core/pipeline-template/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,57 +25,76 @@

## Introduction

<!-- TODO nf-core: Write a 1-2 sentence summary of what data the pipeline is for and what it does -->
<!-- TODO nf-core: Write a 2-3 sentence summary of what data the pipeline is for and what it does, e.g.

**{{ name }}** is a bioinformatics best-practice analysis pipeline for {{ description }}.
> **nf-core/rnaseq** is a bioinformatics pipeline that can be used to analyse RNA sequencing data obtained from
grst marked this conversation as resolved.
Show resolved Hide resolved
> organisms with a reference genome and annotation. It takes a samplesheet and FASTQ files as input,
> performs quality control (QC), trimming and (pseudo-)alignment, and produces a gene expression matrix and extensive QC report.
grst marked this conversation as resolved.
Show resolved Hide resolved
-->

The pipeline is built using [Nextflow](https://www.nextflow.io), a workflow tool to run tasks across multiple compute infrastructures in a very portable manner. It uses Docker/Singularity containers making installation trivial and results highly reproducible. The [Nextflow DSL2](https://www.nextflow.io/docs/latest/dsl2.html) implementation of this pipeline uses one container per process which makes it much easier to maintain and update software dependencies. Where possible, these processes have been submitted to and installed from [nf-core/modules](https://github.com/nf-core/modules) in order to make them available to all nf-core pipelines, and to everyone within the Nextflow community!

<!-- 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.
{%- if branded -%}
The results obtained from the full-sized test can be viewed on the [nf-core website](https://nf-co.re/{{ short_name }}/results).{% endif %}

## Pipeline summary
**{{ name }}** is a bioinformatics pipeline for {{ description }}.
grst marked this conversation as resolved.
Show resolved Hide resolved

<!-- TODO nf-core: Include a figure that guides the user through the major workflow steps. Many nf-core
workflows use the "tube map" design for that. See https://nf-co.re/docs/contributing/design_guidelines#examples for examples. -->
<!-- TODO nf-core: Fill in short bullet-pointed list of the default steps in the pipeline -->

1. Read QC ([`FastQC`](https://www.bioinformatics.babraham.ac.uk/projects/fastqc/))
2. Present QC for raw reads ([`MultiQC`](http://multiqc.info/))

## Quick Start
## Usage

1. Install [`Nextflow`](https://www.nextflow.io/docs/latest/getstarted.html#installation) (`>=22.10.1`)
{% if branded -%}
grst marked this conversation as resolved.
Show resolved Hide resolved
grst marked this conversation as resolved.
Show resolved Hide resolved

> **Note**
> 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)
ewels marked this conversation as resolved.
Show resolved Hide resolved
> with `-profile test` before running the workflow on actual data.

{% endif -%}
grst marked this conversation as resolved.
Show resolved Hide resolved

2. Install any of [`Docker`](https://docs.docker.com/engine/installation/), [`Singularity`](https://www.sylabs.io/guides/3.0/user-guide/) (you can follow [this tutorial](https://singularity-tutorial.github.io/01-installation/)), [`Podman`](https://podman.io/), [`Shifter`](https://nersc.gitlab.io/development/shifter/how-to-use/) or [`Charliecloud`](https://hpc.github.io/charliecloud/) for full pipeline reproducibility _(you can use [`Conda`](https://conda.io/miniconda.html) both to install Nextflow itself and also to manage software within pipelines. Please only use it within pipelines as a last resort; see [docs](https://nf-co.re/usage/configuration#basic-configuration-profiles))_.
<!-- TODO nf-core: Describe the minimum required steps to execute the pipeline, e.g. how to prepare samplesheets.
Explain what rows and columns represent.
-->
grst marked this conversation as resolved.
Show resolved Hide resolved

3. Download the pipeline and test it on a minimal dataset with a single command:
First, you need to prepare a samplesheet with your input data that looks as follows:
grst marked this conversation as resolved.
Show resolved Hide resolved
ewels marked this conversation as resolved.
Show resolved Hide resolved

```bash
nextflow run {{ name }} -profile test,YOURPROFILE --outdir <OUTDIR>
```
**samplesheet.csv**:
ewels marked this conversation as resolved.
Show resolved Hide resolved

Note that some form of configuration will be needed so that Nextflow knows how to fetch the required software. This is usually done in the form of a config profile (`YOURPROFILE` in the example command above). You can chain multiple config profiles in a comma-separated string.
```csv
sample,fastq_1,fastq_2
CONTROL_REP1,AEG588A1_S1_L002_R1_001.fastq.gz,AEG588A1_S1_L002_R2_001.fastq.gz
```

> - The pipeline comes with config profiles called `docker`, `singularity`, `podman`, `shifter`, `charliecloud` and `conda` which instruct the pipeline to use the named tool for software management. For example, `-profile test,docker`.
> - Please check [nf-core/configs](https://github.com/nf-core/configs#documentation) to see if a custom config file to run nf-core pipelines already exists for your Institute. If so, you can simply use `-profile <institute>` in your command. This will enable either `docker` or `singularity` and set the appropriate execution settings for your local compute environment.
> - If you are using `singularity`, please use the [`nf-core download`](https://nf-co.re/tools/#downloading-pipelines-for-offline-use) command to download images first, before running the pipeline. Setting the [`NXF_SINGULARITY_CACHEDIR` or `singularity.cacheDir`](https://www.nextflow.io/docs/latest/singularity.html?#singularity-docker-hub) Nextflow options enables you to store and re-use the images from a central location for future pipeline runs.
> - If you are using `conda`, it is highly recommended to use the [`NXF_CONDA_CACHEDIR` or `conda.cacheDir`](https://www.nextflow.io/docs/latest/conda.html) settings to store the environments in a central location for future pipeline runs.
Each row represents a fastq file (single-end) or a pair of fastq files (paired end).
grst marked this conversation as resolved.
Show resolved Hide resolved

4. Start running your own analysis!
Now, you can run the pipeline using:

<!-- TODO nf-core: Update the example "typical command" below used to run the pipeline -->
<!-- TODO nf-core: update the following command to include all required parameters for a minimal example -->

```bash
nextflow run {{ name }} --input samplesheet.csv --outdir <OUTDIR> --genome GRCh37 -profile <docker/singularity/podman/shifter/charliecloud/conda/institute>
```
```bash
nextflow run {{ name }} \
--input samplesheet.csv \
-profile <docker/singularity/.../institute>
grst marked this conversation as resolved.
Show resolved Hide resolved
```

> **Warning**
grst marked this conversation as resolved.
Show resolved Hide resolved
> 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**;
grst marked this conversation as resolved.
Show resolved Hide resolved
> see [docs](https://nf-co.re/usage/configuration#custom-configuration-files).

{% if branded -%}

For more details, please refer to the [usage documentation](https://nf-co.re/{{ short_name }}/usage) and the [parameter documentation](https://nf-co.re/{{ short_name }}/parameters).

{% endif -%}

{% if branded -%}
grst marked this conversation as resolved.
Show resolved Hide resolved

## Documentation
## Pipeline output

The {{ name }} pipeline comes with documentation about the pipeline [usage](https://nf-co.re/{{ short_name }}/usage), [parameters](https://nf-co.re/{{ short_name }}/parameters) and [output](https://nf-co.re/{{ short_name }}/output).
[results](https://nf-co.re/{{ short_name }}/results) section of the documentation.
grst marked this conversation as resolved.
Show resolved Hide resolved
For more details about the output files and reports, please refer to the
[output documentation](https://nf-co.re/{{ short_name }}/output).

{% endif -%}

Expand Down