cleanyerreads
Tags: reads quality-control trimming filtering host-removal preprocessing named-workflow
Quality control and optional host read removal from raw sequencing reads.
This workflow performs comprehensive read quality control including trimming, adapter removal, quality filtering, and optionally removes host contamination using nohuman or SRA Human Scrubber. It processes raw sequencing reads to produce high-quality clean reads ready for downstream analysis.
Usage
clean-yer-reads CLI:
clean-yer-reads \
--input samples.csv \
--outdir results/
Nextflow:
nextflow run bactopia/bactopia/workflows/cleanyerreads/main.nf \
--input samples.csv \
--outdir results/
Outputs
Expected Output Files
<BACTOPIA_DIR>
├── <SAMPLE_NAME>
│ ├── main
│ │ ├── gather
│ │ │ ├── <SAMPLE_NAME>-meta.tsv
│ │ │ └── logs
│ │ │ ├── nf.command.{begin,err,log,out,run,sh,trace}
│ │ │ └── versions.yml
│ │ └── qc
│ │ ├── <SAMPLE_NAME>_SE.fastq.gz
│ │ ├── logs
│ │ │ ├── <SAMPLE_NAME>-fastp.log
│ │ │ ├── nf.command.{begin,err,log,out,run,sh,trace}
│ │ │ └── versions.yml
│ │ └── supplemental
│ │ ├── <SAMPLE_NAME>.fastp.html
│ │ ├── <SAMPLE_NAME>.fastp.json
│ │ ├── <SAMPLE_NAME>_SE-final.json
│ │ ├── <SAMPLE_NAME>_SE-final_fastqc.html
│ │ ├── <SAMPLE_NAME>_SE-final_fastqc.zip
│ │ ├── <SAMPLE_NAME>_SE-original.json
│ │ ├── <SAMPLE_NAME>_SE-original_fastqc.html
│ │ └── <SAMPLE_NAME>_SE-original_fastqc.zip
│ └── tools
│ └── srahumanscrubber
│ ├── <SAMPLE_NAME>.scrub.report.tsv
│ ├── <SAMPLE_NAME>.scrubbed.fastq.gz
│ └── logs
│ ├── nf.command.{begin,err,log,out,run,sh,trace}
│ └── versions.yml
└── bactopia-runs
└── cleanyerreads-<TIMESTAMP>
├── merged-results
│ ├── logs
│ │ ├── meta-concat
│ │ │ ├── nf.command.{begin,err,log,out,run,sh,trace}
│ │ │ └── versions.yml
│ │ └── scrubber-concat
│ │ ├── nf.command.{begin,err,log,out,run,sh,trace}
│ │ └── versions.yml
│ ├── meta.tsv
│ └── scrubber.tsv
└── nf-reports
├── cleanyerreads-dag.dot
├── cleanyerreads-report.html
└── cleanyerreads-timeline.html
Quality Control Reports
| File | Description |
|---|---|
supplemental/*_fastqc.* | FastQC reports for raw and cleaned reads |
supplemental/*-NanoPlot.* | NanoPlot reports for Nanopore reads |
supplemental/*.fastp.* | Fastp quality reports (when applicable) |
supplemental/*_original.json | Quality metrics for original reads |
supplemental/*_final.json | Quality metrics for final reads |
Cleaned Reads
| File | Description |
|---|---|
*.fastq.gz | Quality controlled and trimmed reads |
*.unclassified.fastq.gz | Host-decontaminated reads (if scrubber enabled) |
Host Decontamination
Only created when host removal is enabled
| File | Description |
|---|---|
*.kraken2.report.txt | Kraken2 classification report |
*.scrub.report.tsv | Human contamination report |
Audit Trail
Below are files that can assist you in understanding which parameters and program versions were used.
Logs
Each process that is executed will have a folder named logs. In this folder are helpful
files for you to review if the need ever arises.
| Extension | Description |
|---|---|
| .begin | An empty file used to designate the process started |
| .err | Contains STDERR outputs from the process |
| .log | Contains both STDERR and STDOUT outputs from the process |
| .out | Contains STDOUT outputs from the process |
| .run | The script Nextflow uses to stage/unstage files and queue processes based on given profile |
| .sh | The script executed by bash for the process |
| .trace | The Nextflow trace report for the process |
| versions.yml | A YAML formatted file with program versions |
Nextflow Reports
These Nextflow reports provide great a great summary of your run. These can be used to optimize resource usage and estimate expected costs if using cloud platforms.
| Filename | Description |
|---|---|
| cleanyerreads-dag.dot | The Nextflow DAG visualization |
| cleanyerreads-report.html | The Nextflow Execution Report |
| cleanyerreads-timeline.html | The Nextflow Timeline Report |
| cleanyerreads-trace.txt | The Nextflow Trace report |
Parameters
Required Parameters
The following parameters are how you will provide either local or remote samples to be processed by Bactopia.
| Parameter | Type | Default | Description |
|---|---|---|---|
--samples | string | A FOFN (via bactopia prepare) with sample names and paths to FASTQ/FASTAs to process | |
--r1 | string | First set of compressed (gzip) Illumina paired-end FASTQ reads (requires --r2 and --sample) | |
--r2 | string | Second set of compressed (gzip) Illumina paired-end FASTQ reads (requires --r1 and --sample) | |
--se | string | Compressed (gzip) Illumina single-end FASTQ reads (requires --sample) | |
--ont | string | Compressed (gzip) Oxford Nanopore FASTQ reads (requires --sample) | |
--hybrid | boolean | false | Create hybrid assembly using Unicycler. (requires --r1, --r2, --ont and --sample) |
--short_polish | boolean | false | Create hybrid assembly from long-read assembly and short read polishing. (requires --r1, --r2, --ont and --sample) |
--sample | string | Sample name to use for the input sequences | |
--accessions | string | A file containing ENA/SRA Experiment accessions or NCBI Assembly accessions to processed | |
--accession | string | Sample name to use for the input sequences | |
--assembly | string | A assembled genome in compressed FASTA format. (requires --sample) | |
--check_samples | boolean | false | Validate the input FOFN provided by --samples |
Dataset Parameters
Define where the pipeline should find input data and save output data.
| Parameter | Type | Default | Description |
|---|---|---|---|
--species | string | Name of species for species-specific dataset to use | |
--ask_merlin | boolean | Ask Merlin to execute species specific Bactopia tools based on Mash distances | |
--coverage | integer | 100 | Reduce samples to a given coverage, requires a genome size |
--genome_size | integer | 0 | Expected genome size (bp) for all samples, required for read error correction and read subsampling |
--use_bakta | boolean | Use Bakta for annotation, instead of Prokka |
Optional Parameters
These optional parameters can be useful in certain settings.
| Parameter | Type | Default | Description |
|---|---|---|---|
--outdir | string | bactopia | Base directory to write results to |
Nextflow Profile Parameters
Parameters to fine-tune your Nextflow setup.
| Parameter | Type | Default | Description |
|---|---|---|---|
--datasets_cache | string | <HOME>/.bactopia/datasets | Directory where downloaded datasets should be stored. |
Helpful Parameters
Uncommonly used parameters that might be useful.
| Parameter | Type | Default | Description |
|---|---|---|---|
--wf | string | bactopia | Specify which workflow or Bactopia Tool to execute |
--list_wfs | boolean | List the available workflows and Bactopia Tools to use with '--wf' | |
--help_all | boolean | An alias for --help --show_hidden_params | |
--version | boolean | Display version text. |
Composition
This workflow uses the following subworkflows:
- bactopia_gather - Search, validate, gather, and standardize input samples.
- bactopia_qc - Perform comprehensive quality control on sequencing reads.
- scrubber - Remove contaminant sequences from metagenomic data.
Citations
If you use this in your analysis, please cite the following.
-
Bactopia
Petit III RA, Read TD Bactopia - a flexible pipeline for complete analysis of bacterial genomes. mSystems 5 (2020) -
BBTools
Bushnell B BBMap short read aligner, and other bioinformatic tools. (Link) -
fastp
Chen S, Zhou Y, Chen Y, and Gu J fastp: an ultra-fast all-in-one FASTQ preprocessor. Bioinformatics, 34(17), i884-i890. (2018) -
FastQC
Andrews S FastQC: a quality control tool for high throughput sequence data. (WebLink) -
fastq-scan
Petit III RA fastq-scan: generate summary statistics of input FASTQ sequences. (GitHub) -
Kraken2
Wood DE, Lu J, Langmead B Improved metagenomic analysis with Kraken 2. Genome Biology, 20(1), 257. (2019) -
Lighter
Song L, Florea L, Langmead B Lighter: Fast and Memory-efficient Sequencing Error Correction without Counting. Genome Biol. 15(11):509 (2014) -
NanoPlot
De Coster W, D'Hert S, Schultz DT, Cruts M, Van Broeckhoven C NanoPack: visualizing and processing long-read sequencing data Bioinformatics Volume 34, Issue 15 (2018) -
Nanoq
Steinig E Nanoq: Minimal but speedy quality control for nanopore reads in Rust (GitHub) -
Porechop
Wick RR, Judd LM, Gorrie CL, Holt KE. Completing bacterial genome assemblies with multiplex MinION sequencing. Microb Genom. 3(10):e000132 (2017) -
Rasusa
Hall MB Rasusa: Randomly subsample sequencing reads to a specified coverage. (2019). -
SRA Human Scrubber
Katz KS, Shutov O, Lapoint R, Kimelman M, Brister JR, and O'Sullivan C STAT: a fast, scalable, MinHash-based k-mer tool to assess Sequence Read Archive next-generation sequence submissions. Genome Biology, 22(1), 270 (2021)