mirror of
https://github.com/MillironX/taxprofiler.git
synced 2024-11-26 02:59:56 +00:00
Merge pull request #50 from nf-core/docs-prelim
Initial attempt at adding usage docs
This commit is contained in:
commit
fb2f5ed73e
3 changed files with 80 additions and 45 deletions
32
README.md
32
README.md
|
@ -18,7 +18,7 @@
|
||||||
|
|
||||||
<!-- 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 1-2 sentence summary of what data the pipeline is for and what it does -->
|
||||||
|
|
||||||
**nf-core/taxprofiler** is a bioinformatics best-practice analysis pipeline for taxonomic profiling of shotgun metagenomic data. It allows for in-parallel profiling against multiple profiling tools and databases and produces standardised output tables.
|
**nf-core/taxprofiler** is a bioinformatics best-practice analysis pipeline for taxonomic profiling of shotgun metagenomic data. It allows for in-parallel profiling with multiple profiling tools against multiple databases, produces standardised output tables.
|
||||||
|
|
||||||
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!
|
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!
|
||||||
|
|
||||||
|
@ -32,20 +32,20 @@ On release, automated continuous integration tests run the pipeline on a full-si
|
||||||
|
|
||||||
1. Read QC ([`FastQC`](https://www.bioinformatics.babraham.ac.uk/projects/fastqc/))
|
1. Read QC ([`FastQC`](https://www.bioinformatics.babraham.ac.uk/projects/fastqc/))
|
||||||
2. Performs optional read pre-processing
|
2. Performs optional read pre-processing
|
||||||
- Adapter clipping and merging (short, and nanopore reads)
|
- Adapter clipping and merging (short read: [fastp](https://github.com/OpenGene/fastp), [AdapterRemoval2](https://github.com/MikkelSchubert/adapterremoval); long read: [porechop](https://github.com/rrwick/Porechop))
|
||||||
- Low complexity filtering
|
- Low complexity filtering ([bbduk](https://jgi.doe.gov/data-and-tools/software-tools/bbtools/), [PRINSEQ++](https://github.com/Adrian-Cantu/PRINSEQ-plus-plus))
|
||||||
- Host read removal
|
- Host read removal ([BowTie2](http://bowtie-bio.sourceforge.net/bowtie2/))
|
||||||
- Run merging
|
- Run merging
|
||||||
3. Performs taxonomic profiling a choice of:
|
3. Performs taxonomic profiling using one or more of:
|
||||||
- Kraken2
|
- [Kraken2](https://ccb.jhu.edu/software/kraken2/)
|
||||||
- MetaPhlAn3
|
- [MetaPhlAn3](https://huttenhower.sph.harvard.edu/metaphlan/)
|
||||||
- MALT
|
- [MALT](https://uni-tuebingen.de/fakultaeten/mathematisch-naturwissenschaftliche-fakultaet/fachbereiche/informatik/lehrstuehle/algorithms-in-bioinformatics/software/malt/)
|
||||||
- DIAMOND
|
- [DIAMOND](https://github.com/bbuchfink/diamond)
|
||||||
- Centrifuge
|
- [Centrifuge](https://ccb.jhu.edu/software/centrifuge/)
|
||||||
- Kaiju
|
- [Kaiju](https://kaiju.binf.ku.dk/)
|
||||||
- mOTUs
|
- [mOTUs](https://motu-tool.org/)
|
||||||
4. Perform optional post-processing with:
|
4. Perform optional post-processing with:
|
||||||
- bracken
|
- [bracken](https://ccb.jhu.edu/software/bracken/)
|
||||||
5. Standardises output tables
|
5. Standardises output tables
|
||||||
6. Present QC for raw reads ([`MultiQC`](http://multiqc.info/))
|
6. Present QC for raw reads ([`MultiQC`](http://multiqc.info/))
|
||||||
|
|
||||||
|
@ -70,10 +70,8 @@ On release, automated continuous integration tests run the pipeline on a full-si
|
||||||
|
|
||||||
4. Start running your own analysis!
|
4. Start running your own analysis!
|
||||||
|
|
||||||
<!-- TODO nf-core: Update the example "typical command" below used to run the pipeline -->
|
|
||||||
|
|
||||||
```console
|
```console
|
||||||
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 --databases database.csv --outdir <OUTDIR> --run_<TOOL1> --run_<TOOL1> -profile <docker/singularity/podman/shifter/charliecloud/conda/institute>
|
||||||
```
|
```
|
||||||
|
|
||||||
## Documentation
|
## Documentation
|
||||||
|
@ -86,7 +84,7 @@ nf-core/taxprofiler was originally written by nf-core community.
|
||||||
|
|
||||||
We thank the following people for their extensive assistance in the development of this pipeline:
|
We thank the following people for their extensive assistance in the development of this pipeline:
|
||||||
|
|
||||||
<!-- TODO nf-core: If applicable, make list of people who have also contributed -->
|
[James A. Fellows Yates](https://github.com/jfy133), [Moritz Beber](https://github.com/Midnighter), [Lauri Mesilaakso](https://github.com/ljmesi), [Sofia Stamouli](https://github.com/sofsam), [Maxime Borry](https://github.com/maxibor).
|
||||||
|
|
||||||
## Contributions and Support
|
## Contributions and Support
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,6 @@
|
||||||
sample,fastq_1,fastq_2
|
sample,run_accession,instrument_platform,fastq_1,fastq_2,fasta
|
||||||
SAMPLE_PAIRED_END,/path/to/fastq/files/AEG588A1_S1_L002_R1_001.fastq.gz,/path/to/fastq/files/AEG588A1_S1_L002_R2_001.fastq.gz
|
2611,ERR5766174,ILLUMINA,,,/<path>/<to>/fasta/ERX5474930_ERR5766174_1.fa.gz
|
||||||
SAMPLE_SINGLE_END,/path/to/fastq/files/AEG588A4_S4_L003_R1_001.fastq.gz,
|
2612,ERR5766176,ILLUMINA,/<path>/<to>/fastq/ERX5474932_ERR5766176_1.fastq.gz,/<path>/<to>/fastq/ERX5474932_ERR5766176_2.fastq.gz,
|
||||||
|
2612,ERR5766180,ILLUMINA,/<path>/<to>/fastq/ERX5474936_ERR5766180_1.fastq.gz,,
|
||||||
|
2613,ERR5766181,ILLUMINA,/<path>/<to>/fastq/ERX5474937_ERR5766181_1.fastq.gz,/<path>/<to>/fastq/ERX5474937_ERR5766181_2.fastq.gz,
|
||||||
|
ERR3201952,ERR3201952,OXFORD_NANOPORE,/<path>/<to>/fastq/ERR3201952.fastq.gz,,
|
||||||
|
|
|
|
@ -8,56 +8,90 @@
|
||||||
|
|
||||||
<!-- TODO nf-core: Add documentation about anything specific to running your pipeline. For general topics, please point to (and add to) the main nf-core website. -->
|
<!-- TODO nf-core: Add documentation about anything specific to running your pipeline. For general topics, please point to (and add to) the main nf-core website. -->
|
||||||
|
|
||||||
## Samplesheet input
|
## Samplesheet inputs
|
||||||
|
|
||||||
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 6 columns, and a header row as shown in the examples below. Furthermother, nf-core/taxprofiler also requires a second comma-separated file of 3 columns with a header row as in the examples below.
|
||||||
|
|
||||||
|
This samplesheet is then specified on the command line as follows:
|
||||||
|
|
||||||
```console
|
```console
|
||||||
--input '[path to samplesheet file]'
|
--input '[path to samplesheet file]' --databases '[path to database sheet file]'
|
||||||
```
|
```
|
||||||
|
|
||||||
### Multiple runs of the same sample
|
### Multiple runs of the same sample
|
||||||
|
|
||||||
The `sample` identifiers have to be the same when you have re-sequenced the same sample more than once e.g. to increase sequencing depth. The pipeline will concatenate the raw reads before performing any downstream analysis. Below is an example for the same sample sequenced across 3 lanes:
|
The `sample` identifiers have to be the same when you have re-sequenced the same sample more than once e.g. to increase sequencing depth. The pipeline will process reads before performing profiling. Below is an example for the same sample sequenced across 3 lanes:
|
||||||
|
|
||||||
```console
|
```console
|
||||||
sample,fastq_1,fastq_2
|
sample,run_accession,instrument_platform,fastq_1,fastq_2,fasta
|
||||||
CONTROL_REP1,AEG588A1_S1_L002_R1_001.fastq.gz,AEG588A1_S1_L002_R2_001.fastq.gz
|
2612,run1,ILLUMINA,2612_run1_R1.fq.gz,,
|
||||||
CONTROL_REP1,AEG588A1_S1_L003_R1_001.fastq.gz,AEG588A1_S1_L003_R2_001.fastq.gz
|
2612,run2,ILLUMINA,2612_run2_R1.fq.gz,,
|
||||||
CONTROL_REP1,AEG588A1_S1_L004_R1_001.fastq.gz,AEG588A1_S1_L004_R2_001.fastq.gz
|
2612,run3,ILLUMINA,2612_run3_R1.fq.gz,2612_run3_R2.fq.gz,
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
> ⚠️ Runs of the same sample sequenced on Illumina platforms with a combination of single and paired-end data will **not** be run-wise concatenated, unless pair-merging is specified. In the example above, `run3` will be profiled independently of `run1` and `run2` if pairs are not merged.
|
||||||
|
|
||||||
### Full samplesheet
|
### Full samplesheet
|
||||||
|
|
||||||
The pipeline will auto-detect whether a sample is single- or paired-end using the information provided in the samplesheet. The samplesheet can have as many columns as you desire, however, there is a strict requirement for the first 3 columns to match those defined in the table below.
|
The pipeline will auto-detect whether a sample is single- or paired-end using the information provided in the samplesheet. The samplesheet can have as many columns as you desire, however, there is a strict requirement for the first 6 columns to match those defined in the table below.
|
||||||
|
|
||||||
A final samplesheet file consisting of both single- and paired-end data may look something like the one below. This is for 6 samples, where `TREATMENT_REP3` has been sequenced twice.
|
A final samplesheet file consisting of both single- and paired-end data, as well as long-read FASTA fies may look something like the one below. This is for 6 samples, where `2612` has been sequenced twice.
|
||||||
|
|
||||||
```console
|
```console
|
||||||
sample,fastq_1,fastq_2
|
2611,ERR5766174,ILLUMINA,,,/<path>/<to>/fasta/ERX5474930_ERR5766174_1.fa.gz
|
||||||
CONTROL_REP1,AEG588A1_S1_L002_R1_001.fastq.gz,AEG588A1_S1_L002_R2_001.fastq.gz
|
2612,ERR5766176,ILLUMINA,/<path>/<to>/fastq/ERX5474932_ERR5766176_1.fastq.gz,/<path>/<to>/fastq/ERX5474932_ERR5766176_2.fastq.gz,
|
||||||
CONTROL_REP2,AEG588A2_S2_L002_R1_001.fastq.gz,AEG588A2_S2_L002_R2_001.fastq.gz
|
2612,ERR5766180,ILLUMINA,/<path>/<to>/fastq/ERX5474936_ERR5766180_1.fastq.gz,,
|
||||||
CONTROL_REP3,AEG588A3_S3_L002_R1_001.fastq.gz,AEG588A3_S3_L002_R2_001.fastq.gz
|
2613,ERR5766181,ILLUMINA,/<path>/<to>/fastq/ERX5474937_ERR5766181_1.fastq.gz,/<path>/<to>/fastq/ERX5474937_ERR5766181_2.fastq.gz,
|
||||||
TREATMENT_REP1,AEG588A4_S4_L003_R1_001.fastq.gz,
|
ERR3201952,ERR3201952,OXFORD_NANOPORE,/<path>/<to>/fastq/ERR3201952.fastq.gz,,
|
||||||
TREATMENT_REP2,AEG588A5_S5_L003_R1_001.fastq.gz,
|
|
||||||
TREATMENT_REP3,AEG588A6_S6_L003_R1_001.fastq.gz,
|
|
||||||
TREATMENT_REP3,AEG588A6_S6_L004_R1_001.fastq.gz,
|
|
||||||
```
|
```
|
||||||
|
|
||||||
| Column | Description |
|
| Column | Description |
|
||||||
| --------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
| --------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||||
| `sample` | Custom sample name. This entry will be identical for multiple sequencing libraries/runs from the same sample. Spaces in sample names are automatically converted to underscores (`_`). |
|
| `sample` | Unique sample name [required]. |
|
||||||
| `fastq_1` | Full path to FastQ file for Illumina short reads 1 or Nanopore reads. File has to be gzipped and have the extension ".fastq.gz" or ".fq.gz". |
|
| `run_accession` | Run ID or name unique for each (pairs of) file(s) .Can also supply sample name again here, if only a single run was generated [required]. |
|
||||||
| `fastq_2` | Full path to FastQ file for Illumina short reads 2. File has to be gzipped and have the extension ".fastq.gz" or ".fq.gz". |
|
| `instrument_platform` | Sequencing platform reads generated on, selected from the EBI ENA [controlled vocabulary](https://www.ebi.ac.uk/ena/portal/api/controlledVocab?field=instrument_platform) [required]. |
|
||||||
|
| `fastq_1` | Path or URL to sequencing reads or for Illumina R1 sequencing reads in FASTQ format. GZipped compressed files accepted. Can be left empty if data in FASTA is specifed. Cannot be combined with `fasta`. |
|
||||||
|
| `fastq_2` | Path or URL to Illumina R2 sequencing reads in FASTQ format. GZipped compressed files accepted. Can be left empty if single end data. Cannot be combined with `fasta`. |
|
||||||
|
| `fasta` | Path or URL to long-reads or contigs in FASTA format. GZipped compressed files accepted. Can be left empty if data in FASTA is specifed. Cannot be combined with `fastq_1` or `fastq_2`. |
|
||||||
|
|
||||||
An [example samplesheet](../assets/samplesheet.csv) has been provided with the pipeline.
|
An [example samplesheet](../assets/samplesheet.csv) has been provided with the pipeline.
|
||||||
|
|
||||||
|
### Full database sheet
|
||||||
|
|
||||||
|
nf-core/taxprofiler supports multiple databases being profiled in parallel for each tool. These databases, and specific parameters for each, can be specified in a 4 column comma-separated sheet.
|
||||||
|
|
||||||
|
> ⚠️ nf-core/taxprofiler does not provide any databases by default, nor does it currently generate them for you. This must be performed manually by the user.
|
||||||
|
|
||||||
|
An example database sheet can look as follows, where 4 tools are being used, and `malt` and `kraken2` will be used against two databases each.
|
||||||
|
|
||||||
|
```console
|
||||||
|
tool,db_name,db_params,db_path
|
||||||
|
malt,malt85,-id 85,/<path>/<to>/malt/testdb-malt/
|
||||||
|
malt,malt95,-id 90,/<path>/<to>/malt/testdb-malt.tar.gz
|
||||||
|
kraken2,db1,,/<path>/<to>/kraken2/testdb-kraken2.tar.gz
|
||||||
|
kraken2,db2,--quick,/<path>/<to>/kraken2/testdb-kraken2.tar.gz
|
||||||
|
centrifuge,db1,,/<path>/<to>/centrifuge/minigut_cf.tar.gz
|
||||||
|
metaphlan3,db1,,/<path>/<to>/metaphlan3/metaphlan_database/
|
||||||
|
```
|
||||||
|
|
||||||
|
Column specifications are as follows:
|
||||||
|
|
||||||
|
| Column | Description |
|
||||||
|
| ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||||
|
| `tool` | Taxonomic profiling tool (supported by nf-core/taxprofiler) that the database has been indexed for [required]. |
|
||||||
|
| `db_name` | A unique name of the particular database [required]. |
|
||||||
|
| `db_params` | Any parameters of the given taxonomic profiler that you wish to specify that the taxonomic profiling tool should use when profiling against this specific. Can be empty to use taxonomic profiler defaults Must not be surrounded by quotes [required]. |
|
||||||
|
| `db_path` | Path to the database. Can either be a path to a directory containing the database index files or a `.tar.gz` file which contains the compressed database directory with the same name as the tar archive, minus `.tar.gz` [required]. |
|
||||||
|
|
||||||
|
> 💡 You can also specify the same database directory/file twice (ensuring unique `db_name`s) and specify different parameters for each database to compare the effect of different parameters during profiling.
|
||||||
|
|
||||||
## Running the pipeline
|
## Running the pipeline
|
||||||
|
|
||||||
The typical command for running the pipeline is as follows:
|
The typical command for running the pipeline is as follows:
|
||||||
|
|
||||||
```console
|
```console
|
||||||
nextflow run nf-core/taxprofiler --input samplesheet.csv --outdir <OUTDIR> --genome GRCh37 -profile docker
|
nextflow run nf-core/taxprofiler --input samplesheet.csv --databases databases.csv --outdir <OUTDIR> -profile docker --run_<TOOL1> --run_<TOOL2>
|
||||||
```
|
```
|
||||||
|
|
||||||
This will launch the pipeline with the `docker` configuration profile. See below for more information about profiles.
|
This will launch the pipeline with the `docker` configuration profile. See below for more information about profiles.
|
||||||
|
@ -66,7 +100,7 @@ Note that the pipeline will create the following files in your working directory
|
||||||
|
|
||||||
```console
|
```console
|
||||||
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.
|
||||||
```
|
```
|
||||||
|
|
Loading…
Reference in a new issue