h2seq

Nextflow pipeline for the analysis of sequencing data from HCV, HIV (and others?)

https://github.com/charlesfoster/h2seq

Science Score: 57.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 10 DOI reference(s) in README
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (9.4%) to scientific vocabulary
Last synced: 10 months ago · JSON representation ·

Repository

Nextflow pipeline for the analysis of sequencing data from HCV, HIV (and others?)

Basic Info
  • Host: GitHub
  • Owner: charlesfoster
  • License: mit
  • Language: Nextflow
  • Default Branch: master
  • Size: 16.5 MB
Statistics
  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Created almost 2 years ago · Last pushed 10 months ago
Metadata Files
Readme Changelog Contributing License Citation

README.md

GitHub Actions CI Status GitHub Actions Linting StatusCite with Zenodo nf-test

Nextflow run with conda run with docker run with singularity Launch on Seqera Platform

Introduction

charlesfoster/h2seq is a bioinformatics pipeline that has been designed to analyse molecular sequencing data of viruses for the H2Seq study. Accordingly, it has been designed with HCV and HIV in mind, but in theory should work with any (most?) viruses. The workflow will handle data from both long-read (ONT) and/or short-read (Illumina) (to be added) sequencing platforms, and can handle tiled amplicon sequencing and/or shotgun/metagenomic/capture probe sequencing.

Quality Control

  1. Read QC (FastQC)
  2. Read filtering/trimming
  3. Present QC for raw reads (MultiQC)

Amplicon Sequencing

  1. Selection of closest reference genome
  2. Alignment of reads against closest reference genome using(minimap2)
  3. Masking of amplicon primer sequences
  4. Consensus genome generation with (samtools consensus)

[!IMPORTANT] Additional options have been included over time, and this documentation will be updated accordingly at some stage. For now, just view all possible options by running the --help command (see: 'Usage' section below).

Metagenomic Sequencing

Currently there are no 'specialised' modules for metagenomics data. Just run the pipeline as if your reads are derived from amplicon sequencing, but use the --skip_primer_trimming option (see: 'Usage' section below).

Specialised Modules

HCV-GLUE

Given the initial focus of this pipeline for the H2Seq study, a module has been included to run the excellent (HCV-GLUE) tool. While the tool can do a lot, in this case the use is for generating reports based on HCV consensus genomes. The usage of HCV-GLUE, by design, needs SQL-like syntax and relies on a Docker daemon running in the background. While it makes sense for 'vanilla' usage of HCV-GLUE, unfortunately it does not make its incorporation into a pipeline strictly following the nf-core framework straightforward. Therefore, unlike all other modules in the pipeline, in which tools are automatically sourced from containers/conda, successful use of HCV-GLUE requires manual installation of it and its dependencies. Please see the (installation instructions) for HCV-GLUE if you wish to run this module.

Future considerations:

  • variant calling to produce a VCF file instead of/in addition to direct consensus generation (currently available with long reads only)
  • estimation of the amino acid consequences of SNPs/indels to aid with drug resistance analysis (currently only provided via the integrated HCV Glue workflow)
  • placement of input samples into a phylogenetic tree
  • host filtration
  • use pycoQC for Nanopore QC instead of fastQC

Usage

[!NOTE] If you are new to Nextflow and nf-core, please refer to this page on how to set-up Nextflow. Make sure to test your setup with -profile test before running the workflow on actual data.

First, prepare a samplesheet with your input data that (minimally) looks as follows:

samplesheet.csv:

csv sample,long_reads,short_reads_1,short_reads_2 sample2,sample1.long.fastq.gz,sample1_S1_L002_R1_001.fastq.gz,sample1_S1_L002_R2_001.fastq.gz

Each row points the workflow to fastq files associated with a sample. Each sample can have one long reads file, and one short read fastq file (single-end) or a pair of short read fastq files (paired end).

[!IMPORTANT] Currently single-end short read functionality is not tested and might not work.

Extra columns can be added to the spreadsheet as required for local purposes (e.g., tracking barcodes/serial numbers etc.), but must occur after the mandatory minimal columns and cannot use any of the mandatory minimal column names.

Now, you can minimally run the pipeline using:

bash nextflow run charlesfoster/h2seq \ -profile <docker/apptainer/...> \ --input samplesheet.csv \ --outdir <OUTDIR>

[!IMPORTANT] Development has focused on dependencies being handled by Docker or Apptainer, i.e. by including -profile docker or -profile apptainer. Currently -profile conda will NOT work, but will work in the future.

Available parameters to be configured can be viewed by running:

bash nextflow run charlesfoster/h2seq --help

[!WARNING] 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.

For more details and further functionality, please refer to the usage documentation.

Credits

charlesfoster/h2seq was originally written by Charles Foster.

We thank the following people for their extensive assistance in the development of this pipeline:

  • No one else yet!

Contributions and Support

If you would like to contribute to this pipeline, please see the contributing guidelines.

Citations

An extensive list of references for the tools used by the pipeline can be found in the CITATIONS.md file.

This pipeline uses code and infrastructure developed and maintained by the nf-core community, reused here under the MIT license.

The nf-core framework for community-curated bioinformatics pipelines.

Philip Ewels, Alexander Peltzer, Sven Fillinger, Harshil Patel, Johannes Alneberg, Andreas Wilm, Maxime Ulysse Garcia, Paolo Di Tommaso & Sven Nahnsen.

Nat Biotechnol. 2020 Feb 13. doi: 10.1038/s41587-020-0439-x.

Owner

  • Login: charlesfoster
  • Kind: user

Citation (CITATIONS.md)

# charlesfoster/h2seq: Citations

## [nf-core](https://pubmed.ncbi.nlm.nih.gov/32055031/)

> Ewels PA, Peltzer A, Fillinger S, Patel H, Alneberg J, Wilm A, Garcia MU, Di Tommaso P, Nahnsen S. The nf-core framework for community-curated bioinformatics pipelines. Nat Biotechnol. 2020 Mar;38(3):276-278. doi: 10.1038/s41587-020-0439-x. PubMed PMID: 32055031.

## [Nextflow](https://pubmed.ncbi.nlm.nih.gov/28398311/)

> Di Tommaso P, Chatzou M, Floden EW, Barja PP, Palumbo E, Notredame C. Nextflow enables reproducible computational workflows. Nat Biotechnol. 2017 Apr 11;35(4):316-319. doi: 10.1038/nbt.3820. PubMed PMID: 28398311.

## Pipeline tools

- [FastQC](https://www.bioinformatics.babraham.ac.uk/projects/fastqc/)

  > Andrews, S. (2010). FastQC: A Quality Control Tool for High Throughput Sequence Data [Online].

- [MultiQC](https://pubmed.ncbi.nlm.nih.gov/27312411/)

  > Ewels P, Magnusson M, Lundin S, Käller M. MultiQC: summarize analysis results for multiple tools and samples in a single report. Bioinformatics. 2016 Oct 1;32(19):3047-8. doi: 10.1093/bioinformatics/btw354. Epub 2016 Jun 16. PubMed PMID: 27312411; PubMed Central PMCID: PMC5039924.

## Software packaging/containerisation tools

- [Anaconda](https://anaconda.com)

  > Anaconda Software Distribution. Computer software. Vers. 2-2.4.0. Anaconda, Nov. 2016. Web.

- [Bioconda](https://pubmed.ncbi.nlm.nih.gov/29967506/)

  > Grüning B, Dale R, Sjödin A, Chapman BA, Rowe J, Tomkins-Tinch CH, Valieris R, Köster J; Bioconda Team. Bioconda: sustainable and comprehensive software distribution for the life sciences. Nat Methods. 2018 Jul;15(7):475-476. doi: 10.1038/s41592-018-0046-7. PubMed PMID: 29967506.

- [BioContainers](https://pubmed.ncbi.nlm.nih.gov/28379341/)

  > da Veiga Leprevost F, Grüning B, Aflitos SA, Röst HL, Uszkoreit J, Barsnes H, Vaudel M, Moreno P, Gatto L, Weber J, Bai M, Jimenez RC, Sachsenberg T, Pfeuffer J, Alvarez RV, Griss J, Nesvizhskii AI, Perez-Riverol Y. BioContainers: an open-source and community-driven framework for software standardization. Bioinformatics. 2017 Aug 15;33(16):2580-2582. doi: 10.1093/bioinformatics/btx192. PubMed PMID: 28379341; PubMed Central PMCID: PMC5870671.

- [Docker](https://dl.acm.org/doi/10.5555/2600239.2600241)

  > Merkel, D. (2014). Docker: lightweight linux containers for consistent development and deployment. Linux Journal, 2014(239), 2. doi: 10.5555/2600239.2600241.

- [Singularity](https://pubmed.ncbi.nlm.nih.gov/28494014/)

  > Kurtzer GM, Sochat V, Bauer MW. Singularity: Scientific containers for mobility of compute. PLoS One. 2017 May 11;12(5):e0177459. doi: 10.1371/journal.pone.0177459. eCollection 2017. PubMed PMID: 28494014; PubMed Central PMCID: PMC5426675.

GitHub Events

Total
  • Delete event: 1
  • Push event: 16
  • Public event: 1
  • Pull request event: 1
  • Create event: 1
Last Year
  • Delete event: 1
  • Push event: 16
  • Public event: 1
  • Pull request event: 1
  • Create event: 1

Dependencies

.github/workflows/branch.yml actions
  • mshick/add-pr-comment b8f338c590a895d50bcbfa6c5859251edc8952fc composite
.github/workflows/ci.yml actions
  • actions/checkout 0ad4b8fadaa221de15dcec353f45205ec38ea70b composite
  • jlumbroso/free-disk-space 54081f138730dfa15788a46383842cd2f914a1be composite
  • nf-core/setup-nextflow v2 composite
.github/workflows/clean-up.yml actions
  • actions/stale 28ca1036281a5e5922ead5184a1bbf96e5fc984e composite
.github/workflows/download_pipeline.yml actions
  • actions/setup-python 82c7e631bb3cdc910f68e0081d67478d79c6982d composite
  • eWaterCycle/setup-singularity 931d4e31109e875b13309ae1d07c70ca8fbc8537 composite
  • jlumbroso/free-disk-space 54081f138730dfa15788a46383842cd2f914a1be composite
  • nf-core/setup-nextflow v2 composite
.github/workflows/fix-linting.yml actions
  • actions/checkout 0ad4b8fadaa221de15dcec353f45205ec38ea70b composite
  • actions/setup-python 82c7e631bb3cdc910f68e0081d67478d79c6982d composite
  • peter-evans/create-or-update-comment 71345be0265236311c031f5c7866368bd1eff043 composite
.github/workflows/linting.yml actions
  • actions/checkout 0ad4b8fadaa221de15dcec353f45205ec38ea70b composite
  • actions/setup-python 82c7e631bb3cdc910f68e0081d67478d79c6982d composite
  • actions/upload-artifact 65462800fd760344b1a7b4382951275a0abb4808 composite
  • nf-core/setup-nextflow v2 composite
  • pietrobolcato/action-read-yaml 1.1.0 composite
.github/workflows/linting_comment.yml actions
  • dawidd6/action-download-artifact bf251b5aa9c2f7eeb574a96ee720e24f801b7c11 composite
  • marocchino/sticky-pull-request-comment 331f8f5b4215f0445d3c07b4967662a32a2d3e31 composite
modules/local/samtools/consensus/meta.yml cpan
modules/nf-core/bedtools/bamtobed/meta.yml cpan
modules/nf-core/bwa/index/meta.yml cpan
modules/nf-core/bwa/mem/meta.yml cpan
modules/nf-core/fastp/meta.yml cpan
modules/nf-core/fastqc/meta.yml cpan
modules/nf-core/kallisto/index/meta.yml cpan
modules/nf-core/kallisto/quant/meta.yml cpan
modules/nf-core/minimap2/align/meta.yml cpan
modules/nf-core/mosdepth/meta.yml cpan
modules/nf-core/multiqc/meta.yml cpan
modules/nf-core/nanoq/meta.yml cpan
modules/nf-core/salmon/index/meta.yml cpan
modules/nf-core/salmon/quant/meta.yml cpan
modules/nf-core/samtools/ampliconclip/meta.yml cpan
modules/nf-core/samtools/faidx/meta.yml cpan
modules/nf-core/samtools/sort/meta.yml cpan
modules/nf-core/seqkit/grep/meta.yml cpan
modules/nf-core/seqkit/stats/meta.yml cpan
subworkflows/nf-core/utils_nextflow_pipeline/meta.yml cpan
subworkflows/nf-core/utils_nfcore_pipeline/meta.yml cpan
subworkflows/nf-core/utils_nfschema_plugin/meta.yml cpan
modules/local/custom/calculate_read_stats/environment.yml conda
  • biopython 1.70.*
modules/local/custom/clair3/environment.yml conda
  • clair3 1.1.1-0.*
  • conda-forge 3.9.0.*
modules/local/custom/remove_empty_sequences/environment.yml conda
  • biopython 1.70.*
modules/local/custom/select_best_reference/environment.yml conda
  • pandas 2.2.1.*
modules/local/custom/split_consensus_genomes/environment.yml conda
  • biopython 1.70.*
modules/local/samtools/consensus/environment.yml conda
  • htslib 1.20.*
  • samtools 1.20.*
modules/nf-core/bedtools/bamtobed/environment.yml conda
  • bedtools 2.31.1.*
modules/nf-core/bwa/index/environment.yml conda
  • bwa 0.7.18.*
modules/nf-core/bwa/mem/environment.yml conda
  • bwa 0.7.18.*
  • htslib 1.20.0.*
  • samtools 1.20.*
modules/nf-core/fastp/environment.yml conda
  • fastp 0.23.4.*
modules/nf-core/fastqc/environment.yml conda
  • fastqc 0.12.1.*
modules/nf-core/kallisto/index/environment.yml conda
  • kallisto 0.48.0.*
modules/nf-core/kallisto/quant/environment.yml conda
  • kallisto 0.48.0.*
modules/nf-core/minimap2/align/environment.yml conda
  • htslib 1.20.*
  • minimap2 2.28.*
  • samtools 1.20.*
modules/nf-core/mosdepth/environment.yml conda
  • mosdepth 0.3.8.*
modules/nf-core/multiqc/environment.yml conda
  • multiqc 1.21.*
modules/nf-core/nanoq/environment.yml conda
  • nanoq 0.10.0.*
modules/nf-core/salmon/index/environment.yml conda
  • salmon 1.10.1.*
modules/nf-core/salmon/quant/environment.yml conda
  • salmon 1.10.1.*
modules/nf-core/samtools/ampliconclip/environment.yml conda
  • htslib 1.20.*
  • samtools 1.20.*
modules/nf-core/samtools/faidx/environment.yml conda
  • htslib 1.21.*
  • samtools 1.21.*
modules/nf-core/samtools/sort/environment.yml conda
  • htslib 1.20.*
  • samtools 1.20.*
modules/nf-core/seqkit/grep/environment.yml conda
  • seqkit 2.8.1.*
modules/nf-core/seqkit/stats/environment.yml conda
  • seqkit 2.8.1.*
modules/local/custom/create_pattern_file/environment.yml pypi