genomeassembly

Implementation of ToL genome assembly workflows

https://github.com/sanger-tol/genomeassembly

Science Score: 75.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 8 DOI reference(s) in README
  • Academic publication links
    Links to: zenodo.org
  • Academic email domains
  • Institutional organization owner
    Organization sanger-tol has institutional domain (www.sanger.ac.uk)
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (10.0%) to scientific vocabulary

Keywords

genome-assembly genomics nextflow pipeline
Last synced: 4 months ago · JSON representation ·

Repository

Implementation of ToL genome assembly workflows

Basic Info
Statistics
  • Stars: 20
  • Watchers: 12
  • Forks: 3
  • Open Issues: 9
  • Releases: 2
Topics
genome-assembly genomics nextflow pipeline
Created over 3 years ago · Last pushed 4 months ago
Metadata Files
Readme Changelog Contributing License Code of conduct Citation

README.md

sanger-tol/genomeassembly

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

[!WARNING] We are currently undertaking a large-scale restructuring of the development branch and this branch is not currently in a usable state. If you would like to run the pipeline, please run using the latest official release, or try using the last working commit in this branch.

Introduction

sanger-tol/genomeassembly is a bioinformatics pipeline for a genome assembly for HiFi, Illumina 10x (optional), and HiC data. It performs the following steps: raw assembly, purging from haplotigs, optional polishing, and scaffolding.

Original assembly of HiFi reads is performed using hifiasm assembler in two modes - original and using HiC data (optional). Then assembly is purged from alternative haplotigs using purge_dups. Next optional step is polishing of the purged assembly using Illumina 10X read sequencing. 10X reads are mapped to the full assembly (purged + haplotigs) using Longranger and polishing is implemented using Freebayes. HiC reads are further mapped with bwamem2 to the primary contigs, which are further scaffolded with YaHS using the provided Hi-C data. Polished and scaffolded assemblies are evaluated using GFASTATS, BUSCO and MERQURY.FK

The pipeline is built using Nextflow, 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 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 in order to make them available to all nf-core pipelines, and to everyone within the Nextflow community!

On release, automated continuous integration tests run the pipeline on a full-sized dataset on the LSF infrastructure. This ensures that the pipeline runs on LSF, 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.

Pipeline summary

While the steps are described in a sequential order, many of them can be executed as parallel jobs.

  1. Process the input YAML file, combine them by semantics into the data structures required to pass further down the pipeline.
  2. Run organnels subworkflow on the HiFi reads.
  3. Run hifiasm in the original mode.
  4. Produce numerical stats, BUSCO score and QV, completeness metrics, and kmer spectra for [3].
  5. If hifiasmhicon option is set
    1. run hifiasm in HiC mode.
    2. produce numerical stats, BUSCO score and QV, completeness metrics, and kmer spectra for [5i].
  6. Run purging subworkflow on the primary contigs from [3], i.e. produce the purged assembly and a set of haplotigs. Consider the purged contigs as the primary assembly for further steps.
  7. Take haplotigs from [6], merge with haplotigs from [3] and run purging subworkfllow on it. Discard the contigs that were purged away, continue with the purged haplotigs as a representation of the haplotig assembly.
  8. Produce numerical stats, BUSCO score and QV, completeness metrics, and kmer spectra for the primary and haplotigs from [6] and [7].
  9. If polishing_on
    1. Illumina 10X reads to the joined primary and alt contigs.
    2. polish initial assembly based on the aligment produced in [9i]. Set polished primary contigs as the primary assembly and polished haplotigs as the haplotig assembly.
    3. produce numerical stats, BUSCO score and QV, completeness metrics, and kmer spectra for [9ii].
  10. If organelles_on
    1. Run organelles subworkflow on the raw HiFi read data and the joined primary and haplotigs contigs.
  11. Map HiC data onto primary contigs.
  12. Run scaffolding for primary contigs.
  13. Produce numerical stats, BUSCO score and QV, completeness metrics, and kmer spectra for [12].

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.

Currently, it is advised to run the pipeline with docker or singularity as some modules do not have a conda env associated with them.

Now, you can run the pipeline using:

bash nextflow run sanger-tol/genomeassembly \ -profile <docker/singularity/.../institute> \ --input input.yaml \ --outdir <OUTDIR>

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

Credits

sanger-tol/genomeassembly was originally written by Ksenia Krashennikova.

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

@priyanka-surana for the code review, very helpful coding suggestions, and assistance with pushing this pipeline forward through development.

@mcshane and @c-zhou for the design and implementation of the original pipelines for purging (@mcshane), polishing (@mcshane) and scaffolding (@c-zhou).

TreeVal team Damon-Lee Pointon (@DLBPointon), Yumi Sims (@yumisims) and William Eagles (@weaglesBio) for implementation of the hic-mapping pipeline.

@muffato for help with nf-core integration, dealing with infrastructure and troubleshooting, for the code reviews and valuable suggestions at the different stages of the pipeline development.

@gq1 for the code review, valuable suggestions to the code improvement and contributions to the full test setup.

@mahesh-panchal for nextflow implementation of the purging pipeline, code review and valuable suggestions to the nf-core modules implementation.

Contributions and Support

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

Citations

If you use sanger-tol/genomeassembly for your analysis, please cite it using the following doi: 10.5281/zenodo.10391851.

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

  • Name: Tree of Life programme
  • Login: sanger-tol
  • Kind: organization
  • Location: United Kingdom

The Tree of Life Programme investigates the diversity of complex organisms (eukaryotes) through sequencing and cellular technology

Citation (CITATION.cff)

cff-version: 1.2.0
title: "sanger-tol/genomeassembly: v0.9.0 - Black Fury"
message: >-
  If you use this software, please cite it using the
  metadata from this file.
type: software
authors:
  - affiliation: Wellcome Sanger Institute
    family-names: Krasheninnikova
    given-names: Ksenia
    orcid: 0000-0002-0604-2047
  - affiliation: Wellcome Trust Sanger Institute
    family-names: Qi
    given-names: Guoying
    orcid: 0000-0003-1262-8973
  - affiliation: Wellcome Sanger Institute
    family-names: Muffato
    given-names: Matthieu
    orcid: 0000-0002-7860-3560
  - affiliation: Wellcome Sanger Institute
    family-names: Surana
    given-names: Priyanka
    orcid: 0000-0002-7167-0875
identifiers:
  - type: doi
    value: 10.5281/zenodo.10391852
repository-code: "https://github.com/sanger-tol/genomeassembly"
license: MIT
commit: TODO
version: 0.9.0
date-released: "2023-12-15"

GitHub Events

Total
  • Create event: 11
  • Issues event: 10
  • Watch event: 1
  • Delete event: 7
  • Member event: 1
  • Issue comment event: 26
  • Push event: 140
  • Pull request review comment event: 33
  • Pull request review event: 41
  • Pull request event: 19
  • Fork event: 1
Last Year
  • Create event: 11
  • Issues event: 10
  • Watch event: 1
  • Delete event: 7
  • Member event: 1
  • Issue comment event: 26
  • Push event: 140
  • Pull request review comment event: 33
  • Pull request review event: 41
  • Pull request event: 19
  • Fork event: 1

Issues and Pull Requests

Last synced: 4 months ago

All Time
  • Total issues: 7
  • Total pull requests: 12
  • Average time to close issues: 5 months
  • Average time to close pull requests: 9 days
  • Total issue authors: 5
  • Total pull request authors: 2
  • Average comments per issue: 0.71
  • Average comments per pull request: 1.25
  • Merged pull requests: 7
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 6
  • Pull requests: 12
  • Average time to close issues: 4 months
  • Average time to close pull requests: 9 days
  • Issue authors: 4
  • Pull request authors: 2
  • Average comments per issue: 0.67
  • Average comments per pull request: 1.25
  • Merged pull requests: 7
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • yumisims (3)
  • nikostr (3)
  • cintiaoi (2)
  • abdo3a (1)
  • gq1 (1)
  • muffato (1)
  • malvaradol (1)
Pull Request Authors
  • ksenia-krasheninnikova (10)
  • prototaxites (8)
  • yumisims (2)
  • sanger-tolsoft (2)
  • gq1 (2)
  • muffato (2)
  • nikostr (1)
Top Labels
Issue Labels
bug (4) enhancement (3)
Pull Request Labels
documentation (2) enhancement (1) bug (1)

Dependencies

.github/workflows/branch.yml actions
  • mshick/add-pr-comment v1 composite
.github/workflows/ci.yml actions
  • actions/checkout v2 composite
  • nf-core/setup-nextflow v1 composite
.github/workflows/fix-linting.yml actions
  • actions/checkout v3 composite
  • actions/setup-node v2 composite
.github/workflows/linting.yml actions
  • actions/checkout v2 composite
  • actions/setup-node v2 composite
  • actions/setup-python v3 composite
  • actions/upload-artifact v2 composite
  • mshick/add-pr-comment v1 composite
  • nf-core/setup-nextflow v1 composite
  • psf/black stable composite
.github/workflows/linting_comment.yml actions
  • dawidd6/action-download-artifact v2 composite
  • marocchino/sticky-pull-request-comment v2 composite
.github/workflows/clean-up.yml actions
  • actions/stale v7 composite
modules/local/longranger/align/meta.yml cpan
modules/local/longranger/mkref/meta.yml cpan
modules/nf-core/bcftools/concat/meta.yml cpan
modules/nf-core/bcftools/consensus/meta.yml cpan
modules/nf-core/bcftools/index/meta.yml cpan
modules/nf-core/bcftools/norm/meta.yml cpan
modules/nf-core/bcftools/sort/meta.yml cpan
modules/nf-core/bcftools/view/meta.yml cpan
modules/nf-core/busco/meta.yml cpan
modules/nf-core/bwamem2/index/meta.yml cpan
modules/nf-core/cat/cat/meta.yml cpan
modules/nf-core/cooler/cload/meta.yml cpan
modules/nf-core/cooler/zoomify/meta.yml cpan
modules/nf-core/fastk/fastk/meta.yml cpan
modules/nf-core/fastk/histex/meta.yml cpan
modules/nf-core/freebayes/meta.yml cpan
modules/nf-core/gatk4/mergevcfs/meta.yml cpan
modules/nf-core/gfastats/meta.yml cpan
modules/nf-core/gunzip/meta.yml cpan
modules/nf-core/hifiasm/meta.yml cpan
modules/nf-core/merquryfk/merquryfk/meta.yml cpan
modules/nf-core/minimap2/align/meta.yml cpan
modules/nf-core/pretextmap/meta.yml cpan
modules/nf-core/pretextsnapshot/meta.yml cpan
modules/nf-core/purgedups/calcuts/meta.yml cpan
modules/nf-core/purgedups/getseqs/meta.yml cpan
modules/nf-core/purgedups/pbcstat/meta.yml cpan
modules/nf-core/purgedups/purgedups/meta.yml cpan
modules/nf-core/purgedups/splitfa/meta.yml cpan
modules/nf-core/samtools/collate/meta.yml cpan
modules/nf-core/samtools/faidx/meta.yml cpan
modules/nf-core/samtools/fixmate/meta.yml cpan
modules/nf-core/samtools/flagstat/meta.yml cpan
modules/nf-core/samtools/idxstats/meta.yml cpan
modules/nf-core/samtools/index/meta.yml cpan
modules/nf-core/samtools/markdup/meta.yml cpan
modules/nf-core/samtools/merge/meta.yml cpan
modules/nf-core/samtools/sort/meta.yml cpan
modules/nf-core/samtools/stats/meta.yml cpan
modules/nf-core/samtools/view/meta.yml cpan
modules/nf-core/seqtk/subseq/meta.yml cpan
modules/nf-core/yahs/meta.yml cpan
modules/nf-core/mitohifi/findmitoreference/meta.yml cpan
modules/nf-core/mitohifi/mitohifi/meta.yml cpan
.github/workflows/sanger_test.yml actions
  • actions/upload-artifact v3 composite
  • seqeralabs/action-tower-launch v2 composite
.github/workflows/sanger_test_full.yml actions
  • actions/upload-artifact v3 composite
  • seqeralabs/action-tower-launch v2 composite
modules/nf-core/oatk/meta.yml cpan
.github/workflows/download_pipeline.yml actions
  • actions/setup-python 0b93645e9fea7318ecaed2b359559ac225c90a2b composite
  • eWaterCycle/setup-apptainer 4bb22c52d4f63406c49e94c804632975787312b3 composite
  • jlumbroso/free-disk-space 54081f138730dfa15788a46383842cd2f914a1be composite
  • nf-core/setup-nextflow v2 composite
.github/workflows/template_version_comment.yml actions
  • actions/checkout 11bd71901bbe5b1630ceea73d27597364c9af683 composite
  • mshick/add-pr-comment b8f338c590a895d50bcbfa6c5859251edc8952fc composite
  • nichmor/minimal-read-yaml v0.0.2 composite
modules/nf-core/gawk/meta.yml cpan
modules/nf-core/genomescope2/meta.yml cpan
modules/nf-core/merquryfk/hapmaker/meta.yml cpan
modules/nf-core/minimap2/index/meta.yml cpan
modules/nf-core/yak/count/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/nf-core/seqkit/grep/meta.yml cpan
modules/nf-core/cat/cat/environment.yml conda
  • pigz 2.3.4.*
modules/nf-core/fastk/fastk/environment.yml conda
  • fastk 1.1.0.*
modules/nf-core/fastk/histex/environment.yml conda
  • fastk 1.1.0.*
modules/nf-core/gawk/environment.yml conda
  • gawk 5.3.0.*
modules/nf-core/genomescope2/environment.yml conda
  • genomescope2 2.0.*
modules/nf-core/hifiasm/environment.yml conda
  • hifiasm 0.24.0.*
modules/nf-core/merquryfk/hapmaker/environment.yml conda
  • fastk 1.1.0.*
  • merquryfk 1.1.1.*
  • r-ggplot2 3.4.0.*
  • r-viridis 0.6.5.*
modules/nf-core/minimap2/align/environment.yml conda
  • htslib 1.20.*
  • minimap2 2.28.*
  • samtools 1.20.*
modules/nf-core/minimap2/index/environment.yml conda
  • minimap2 2.29.*
modules/nf-core/pretextsnapshot/environment.yml conda
  • pretextsnapshot 0.0.4.*
modules/nf-core/purgedups/calcuts/environment.yml conda
  • purge_dups 1.2.6.*
modules/nf-core/purgedups/getseqs/environment.yml conda
  • purge_dups 1.2.6.*
modules/nf-core/purgedups/pbcstat/environment.yml conda
  • purge_dups 1.2.6.*
modules/nf-core/purgedups/purgedups/environment.yml conda
  • purge_dups 1.2.6.*
modules/nf-core/purgedups/splitfa/environment.yml conda
  • purge_dups 1.2.6.*
modules/nf-core/samtools/collate/environment.yml conda
  • htslib 1.21.*
  • samtools 1.21.*
modules/nf-core/samtools/fixmate/environment.yml conda
  • htslib 1.21.*
  • samtools 1.21.*
modules/nf-core/samtools/flagstat/environment.yml conda
  • htslib 1.21.*
  • samtools 1.21.*
modules/nf-core/samtools/idxstats/environment.yml conda
  • htslib 1.21.*
  • samtools 1.21.*
modules/nf-core/samtools/index/environment.yml conda
  • htslib 1.21.*
  • samtools 1.21.*
modules/nf-core/samtools/sort/environment.yml conda
  • htslib 1.21.*
  • samtools 1.21.*
modules/nf-core/samtools/stats/environment.yml conda
  • htslib 1.21.*
  • samtools 1.21.*
modules/nf-core/samtools/view/environment.yml conda
  • htslib 1.21.*
  • samtools 1.21.*
modules/nf-core/yak/count/environment.yml conda
  • yak 0.1.*
modules/sanger-tol/hiccramalign/bwamem2align/environment.yml conda
  • bwa-mem2 2.2.1.*
  • htslib 1.22.1.*
  • samtools 1.22.1.*
modules/sanger-tol/hiccramalign/minimap2align/environment.yml conda
  • gawk 5.3.1.*
  • htslib 1.22.1.*
  • minimap2 2.30.*
  • perl 5.32.1.*
  • samtools 1.22.1.*
modules/local/bamtobed_sort/environment.yml pypi
modules/nf-core/bcftools/concat/environment.yml pypi
modules/nf-core/bcftools/consensus/environment.yml pypi
modules/nf-core/bcftools/index/environment.yml pypi
modules/nf-core/bcftools/norm/environment.yml pypi
modules/nf-core/bcftools/sort/environment.yml pypi
modules/nf-core/bcftools/view/environment.yml pypi
modules/nf-core/bwamem2/index/environment.yml pypi
modules/nf-core/freebayes/environment.yml pypi
modules/nf-core/gatk4/mergevcfs/environment.yml pypi