ascc

A Nextflow DSL2 pipeline for the identification of cobiont and contaminating sequences using fasta and pacbio data.

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

Science Score: 65.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
    Organization sanger-tol has institutional domain (www.sanger.ac.uk)
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (10.9%) to scientific vocabulary

Keywords

genomics nextflow pipeline
Last synced: 6 months ago · JSON representation ·

Repository

A Nextflow DSL2 pipeline for the identification of cobiont and contaminating sequences using fasta and pacbio data.

Basic Info
Statistics
  • Stars: 5
  • Watchers: 7
  • Forks: 0
  • Open Issues: 24
  • Releases: 4
Topics
genomics nextflow pipeline
Created over 2 years ago · Last pushed 6 months ago
Metadata Files
Readme Changelog Contributing License Citation

README.md

sanger-tol/ascc

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

Nextflow nf-core template version run with conda run with docker run with singularity Launch on Seqera Platform

Introduction

sanger-tol/ascc is a bioinformatics pipeline that is meant for detecting cobionts and contaminants in genome assemblies. ASCC stands for Assembly Screen for Cobionts and Contaminants. The pipeline was initially made for the Aquatic Symbiosis Genomics project but is now used for more than just that. The pipeline aggregates tools such as BLAST, GC and coverage calculation, FCS-adaptor, FCS-GX, VecScreen, BlobToolKit, the BlobToolKit pipeline, Tiara, Kraken, Diamond BLASTX, and kmer counting and with kcounter+scipy. The main outputs are:

  • A CSV table with taxonomic classifications of the sequences from the consitutent tools.
  • A BlobToolKit dataset that can contain variables that are not present in BlobToolKit datasets produced by the BlobToolKit pipeline (https://github.com/sanger-tol/blobtoolkit) on its own. For example, ASCC can incorporate FCS-GX results into a BlobToolKit dataset.
  • Individual report files for adapter, PacBio barcode and organellar contaminants. The only required input file for ASCC is the assembly FASTA file. Optional inputs are sequencing reads and organellar FASTA files. All individual components of the pipeline are optional, so it is possible to do lightweight runs with assemblies that have a simple composition of species and comprehensive runs with assemblies with complex composition.

sanger-tol/ascc overview diagram

The pipeline is in a raw state of development and has not yet been thorougly tested. Its components are functional, though, so it possible to run it.

  1. Run a selection of processes from the list below (pick any that you think will be useful).
  • FCS-GX
  • FCS-adaptor
  • VecScreen
  • Tiara
  • BlobToolKit Pipeline
  • nt BLAST
  • nr and Uniprot Diamond BLASTX
  • GC and coverage calculation
  • PacBio barcodes screen
  • Organellar BLAST
  • nt Kraken2
  • kmer counting + dimensionality reduction
  1. Postprocess the results of the previous step to produce summary files. What processes were run in the previous step determines what summary files can be generated. The possible outputs are:
  • CSV table of sequence classification results
  • BlobToolKit dataset
  • CSV table of average coverage per phylum
  • Adapter and organellar contamination report files

There is a Biodiversity Genomics Academy video that introduces the ASCC pipeline on Youtube: https://www.youtube.com/watch?v=jrqjbwrg9-c.

Installation of the databases

Instructions for installing the databases can be found here.

For testing the pipeline with tiny files, there is a script that downloads a small assembly FASTA file (a fragment of a Plasmodium genome) and small database files. The script can be found here. This is just for testing if running the pipeline works without a crash. These database files a database files are just small fragments of real databases, so they are not meant for production runs.

Usage

The pipeline uses a YAML file to specify the input file paths and parameters. A description of the YAML file contents is here.

[!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 looks as follows:

samplesheet.csv:

csv sample,assembly_type,assembly_file test_sample1,PRIMARY,/path/to/primary_assembly.fa test_sample1,HAPLO,/path/to/haplotigs_assembly.fa test_sample1,MITO,/path/to/mitochondrial_assembly.fa test_sample1,PLASTID,/path/to/plastid_assembly.fa

Each row represents an assembled haplotype or organelle of the sample. The sample ID (the first column) is up to the user to choose. assembly_type should be one of either PRIMARY (for primary assembly), HAPLO (for haplotigs assembly), MITO (for mitochondrial assembly) and PLASTID for plastid assembly. This setup assumes that you have an assembly where the primary contigs or scaffolds are in a separate file from the haplotype scaffolds or contigs. It also assumes that you have separated the organellar sequences out of the main assembly into separate files.

It is okay to leave out assembly components from the run. E.g. if your assembly does not have a mitochondrial sequence, you can leave the row with the MITO tag out. If your assembly does not have a plastid sequence, you can leave the row with the PLASTID tag out. The params-input yaml will need to contain the following data will be detailed here.

The documentation of the kmers dimensionality reduction is covered in separate markdown files dedicated to this topic:

Now, you can run the pipeline using:

bash nextflow run sanger-tol/ascc \ -profile <docker/singularity/.../institute> \ --input samplesheet \ --params-input YAML \ --outdir <OUTDIR> -entry SANGERTOL_ASCC

[!WARNING] If certain steps such as FCS-GX fail multiple times, especially when using Singularity containers then please use export NXF_SINGULARITY_NEW_PID_NAMESPACE=false. This is a known issue when some tools in singularity containers will have PID namespace conflicts and crash when anything else it attempting to access the same files. In our case the database files.

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

Output

A description of the output files of the pipeline can be found here.

Credits

sanger-tol/ascc was written by Eerik Aunin, Damon Lee Pointon, James Torrance, Ying Sims and Will Eagles. Pipeline development was supervised by Shane A. McCarthy and Matthieu Muffato.

We thank Michael Paulini, Camilla Santos, Noah Gettle and Ksenia Krasheninnikova for testing the pipeline.

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

  • 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 (CITATIONS.md)

# sanger-tol/ascc: 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

- [FCS-adaptor](https://github.com/ncbi/fcs/wiki/FCS-adaptor-quickstart.)

  > Astashyn, Alexander, Eric S. Tvedte, Deacon Sweeney, Victor Sapojnikov, Nathan Bouk, Victor Joukov, Eyal Mozes, et al. 2023. “FCS-Adaptor.” FCS-Adaptor. June 6, 2023.
  > ———. 2024. “Rapid and Sensitive Detection of Genome Contamination at Scale with FCS-GX.” Genome Biology 25 (1): 60.

- [Kcounter](https://github.com/apcamargo/kcounter).

  > Buchfink, Benjamin, Klaus Reuter, and Hajk-Georg Drost. 2021. “Sensitive Protein Alignments at Tree-of-Life Scale Using DIAMOND.” Nature Methods 18 (4): 366–68.
  > Camargo, Antônio. 2020. “Kcounter.” Kcounter. February 17, 2020. https://github.com/apcamargo/kcounter.

- [BlobToolKit](https://github.com/sanger-tol/blobtoolkit).

  > Challis, Richard, Edward Richards, Jeena Rajan, Guy Cochrane, and Mark Blaxter. 2020. “BlobToolKit - Interactive Quality Assessment of Genome Assemblies.” G3 10 (4): 1361–74. Diaz, Alexander Ramos, Zaynab Butt, Priyanka Surana, Richard Challis, Sujai Kumar, and Matthieu Muffato. 2023. “BlobToolKit Pipeline.” BlobToolKit Pipeline. May 18, 2023.

- [Tiara](https://github.com/ibe-uw/tiara).

  > Karlicki, Michał, Stanisław Antonowicz, and Anna Karnkowska. 2022. “Tiara: Deep Learning-Based Classification System for Eukaryotic Sequences.” Bioinformatics 38 (2): 344–50.

- [Minimap2](https://github.com/lh3/minimap2).

  > Li, Heng. 2018. “Minimap2: Pairwise Alignment for Nucleotide Sequences.” Bioinformatics 34 (18): 3094–3100.

- [TensorFlow](https://www.tensorflow.org/)

  > Martín Abadi, Ashish Agarwal, Paul Barham, Eugene Brevdo, Zhifeng Chen, Craig Citro, Greg S. Corrado, et al. 2015. “TensorFlow: Large-Scale Machine Learning on Heterogeneous Systems.”

- [VecScreen](https://manpages.debian.org/testing/ncbi-tools-bin/vecscreen.1.en.html).

  > NCBI. 2001. “NCBI VecScreen.” NCBI VecScreen. October 5, 2001.

- [Scikit-Learn]
  Pedregosa, F., G. Varoquaux, A. Gramfort, and V. Michel. 2011. “Scikit-Learn: Machine Learning in Python. JMLR 12, 2825–2830 (2011).” Journal of Machine Learning Research 12 (October): 2825–30.

## Software packaging/containerisation tools

- [Conda](https://conda.org/)

  > conda contributors. conda: A system-level, binary package and environment manager running on all major operating systems and platforms. Computer software. https://github.com/conda/conda

- [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
  • Fork event: 1
  • Create event: 52
  • Commit comment event: 3
  • Release event: 3
  • Issues event: 48
  • Watch event: 1
  • Delete event: 34
  • Member event: 1
  • Issue comment event: 141
  • Push event: 394
  • Pull request review event: 148
  • Pull request review comment event: 174
  • Pull request event: 96
Last Year
  • Fork event: 1
  • Create event: 52
  • Commit comment event: 3
  • Release event: 3
  • Issues event: 48
  • Watch event: 1
  • Delete event: 34
  • Member event: 1
  • Issue comment event: 141
  • Push event: 394
  • Pull request review event: 148
  • Pull request review comment event: 174
  • Pull request event: 96

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 38
  • Total pull requests: 55
  • Average time to close issues: 4 months
  • Average time to close pull requests: 15 days
  • Total issue authors: 7
  • Total pull request authors: 5
  • Average comments per issue: 1.03
  • Average comments per pull request: 1.2
  • Merged pull requests: 31
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 25
  • Pull requests: 52
  • Average time to close issues: about 1 month
  • Average time to close pull requests: 12 days
  • Issue authors: 4
  • Pull request authors: 4
  • Average comments per issue: 0.96
  • Average comments per pull request: 1.21
  • Merged pull requests: 29
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • DLBPointon (33)
  • foreignsand (6)
  • eeaunin (3)
  • yumisims (1)
  • Surbhigrewal (1)
  • prototaxites (1)
Pull Request Authors
  • DLBPointon (44)
  • eeaunin (8)
  • prototaxites (6)
  • sanger-tolsoft (1)
  • weaglesBio (1)
Top Labels
Issue Labels
enhancement (19) bug (11) Release 1 (7)
Pull Request Labels
enhancement (11) Release 1 (5) documentation (4) WIP (2) 1.X.X (1) bug (1)

Dependencies

.github/workflows/branch.yml actions
  • mshick/add-pr-comment v1 composite
.github/workflows/ci.yml actions
  • actions/checkout v3 composite
  • nf-core/setup-nextflow v1 composite
.github/workflows/clean-up.yml actions
  • actions/stale v7 composite
.github/workflows/fix-linting.yml actions
  • actions/checkout v3 composite
  • actions/setup-node v3 composite
.github/workflows/linting.yml actions
  • actions/checkout v3 composite
  • actions/setup-node v3 composite
  • actions/setup-python v4 composite
  • actions/upload-artifact v3 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
modules/nf-core/custom/dumpsoftwareversions/meta.yml cpan
modules/nf-core/fastqc/meta.yml cpan
modules/nf-core/kraken2/kraken2/meta.yml cpan
modules/nf-core/multiqc/meta.yml cpan
modules/nf-core/tiara/tiara/meta.yml cpan
pyproject.toml pypi
modules/nf-core/blast/blastn/meta.yml cpan
modules/nf-core/blast/makeblastdb/meta.yml cpan
modules/nf-core/custom/getchromsizes/meta.yml cpan
modules/nf-core/diamond/blastx/meta.yml cpan
modules/nf-core/fcs/fcsadaptor/meta.yml cpan
modules/nf-core/fcs/fcsgx/meta.yml cpan
modules/nf-core/gnu/sort/meta.yml cpan
modules/nf-core/minimap2/align/meta.yml cpan
modules/nf-core/minimap2/index/meta.yml cpan
modules/nf-core/samtools/depth/meta.yml cpan
modules/nf-core/samtools/faidx/meta.yml cpan
modules/nf-core/samtools/index/meta.yml cpan
modules/nf-core/samtools/sort/meta.yml cpan
modules/nf-core/seqkit/sliding/meta.yml cpan