Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
546591f
add fst SD as error bars in line graph instead of separate trace
Jul 18, 2025
b3b0d90
report updates, postprocess cleanup
Jul 24, 2025
d1be175
extract sequences, update report, fix caching issues
Jul 30, 2025
27cca7e
cut some extra junk out
Jul 30, 2025
b19112d
conver fisher test and sequence extract to use data.table
Aug 2, 2025
b0e5f53
convert poolfstat to use data.table
Aug 2, 2025
6b12553
convert joinfreq to data.table
Aug 2, 2025
84c1797
update containers and conda environments for data.table conversions
Aug 2, 2025
fb8616e
small fixes to fisher & poolfstat
Aug 4, 2025
b110cd9
convert report to data.table
Aug 4, 2025
bd58cfa
remove commented-out dplyr code from R scripts
Aug 4, 2025
541c269
small tweak to report
Aug 4, 2025
c856189
add na.rm to quantile
Aug 4, 2025
cd0486f
add na.rm where necessary
Aug 4, 2025
b917e3d
use args2 for gawk processes, as theyre supposed to
Aug 5, 2025
3a3e5bd
change column to log_fisher
Aug 5, 2025
acf3556
change pops to factors in fst table (maybe causes memory error in pan…
Aug 5, 2025
f2f0e09
add sync input option, tweak report, etc.
Aug 7, 2025
c0cd936
update fisher plot to use global slider
Aug 7, 2025
a334150
Merge branch 'sync_input' into dev
Aug 7, 2025
7326e71
remove svg device from fisher plots
Aug 7, 2025
099f647
adding suggested default options yaml file
Aug 8, 2025
8efc24b
update publish directories
Aug 8, 2025
a55aabe
svg output for correlation plots
Aug 8, 2025
bab33c0
update to mulled containers
Aug 11, 2025
14038ae
modified editorconfig
Mar 16, 2026
034d88f
update citations
Mar 16, 2026
2847ce5
fix input schema to allow ?thing=whatever on urls
Mar 17, 2026
c81a499
update test profile
Mar 17, 2026
0d13d88
update input schema to allow ?thing=whatever for vcf index
Mar 17, 2026
f4bda4e
update documentation for non-official version
Mar 17, 2026
8cb5a09
remove bcftools-reheader module
Mar 17, 2026
ab131aa
fix test data url in schema
Mar 17, 2026
db75a8d
fix unchanged email template
Mar 17, 2026
3353ee2
various linting fixes, mostly addressing TODOs
Mar 17, 2026
b2b6bd5
ignore manifest.homePage in linting
Mar 17, 2026
4c2a3ba
remove some ignore lines in .nf-core.yml
Mar 17, 2026
ebb5f57
removing nf-core/ from various things
Mar 17, 2026
3a33fb9
remove nf-core/ prefix from various references to the pipeline name
Mar 17, 2026
9ee4188
fix case
Mar 17, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ indent_style = space

[*.{md,yml,yaml,html,css,scss,js,r,rmd,R,Rmd}]
indent_size = 2
trim_trailing_whitespace = false

# These files are edited and tested upstream in nf-core/modules
[/modules/nf-core/**]
Expand Down
12 changes: 5 additions & 7 deletions .nf-core.yml
Original file line number Diff line number Diff line change
@@ -1,16 +1,14 @@
lint:
files_exist:
- conf/igenomes.config
- conf/igenomes_ignored.config
- assets/multiqc_config.yml
- conf/igenomes.config
- conf/igenomes_ignored.config
- assets/multiqc_config.yml
nextflow_config:
- manifest.homePage
files_unchanged:
- .github/CONTRIBUTING.md
- assets/email_template.html
- assets/sendmail_template.txt
- .github/CONTRIBUTING.md
- assets/sendmail_template.txt
template_strings:
- assets/assesspool_report.Rmd
multiqc_config: false
nf_core_version: 3.3.1
repository_type: pipeline
Expand Down
4 changes: 2 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
# nf-core/assesspool: Changelog
# assessPool: Changelog

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## v1.0.0dev - [date]

Initial release of nf-core/assesspool, created with the [nf-core](https://nf-co.re/) template.
Initial release of assessPool, created with the [nf-core](https://nf-co.re/) template.

### `Added`

Expand Down
32 changes: 32 additions & 0 deletions CITATIONS.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,38 @@

## Pipeline tools

- [PoPoolation2](https://sourceforge.net/p/popoolation2/wiki/Tutorial/)

> Kofler, R., Pandey, R. V., & Schlötterer, C. (2011). PoPoolation2: identifying differentiation between populations using sequencing of pooled DNA samples (Pool-Seq). Bioinformatics, 27(24), 3435-3436.

- [poolfstat](https://doi.org/10.1111/1755-0998.13557)

> Gautier, M., Vitalis, R., Flori, L., & Estoup, A. (2022). f‐Statistics estimation and admixture graph construction with Pool‐Seq or allele count data using the R package poolfstat. Molecular Ecology Resources, 22(4), 1394-1416.

- [grenedalf](https://github.com/lczech/grenedalf)

> Czech, L., Spence, J. P., & Expósito-Alonso, M. (2024). grenedalf: population genetic statistics for the next generation of pool sequencing. Bioinformatics, 40(8), btae508.

- [bcftools](https://samtools.github.io/bcftools/bcftools.html)

> Danecek, P., Bonfield, J. K., Liddle, J., Marshall, J., Ohan, V., Pollard, M. O., ... & Li, H. (2021). Twelve years of SAMtools and BCFtools. Gigascience, 10(2), giab008.

- [vcftools](https://vcftools.github.io/)

> Danecek, P., Auton, A., Abecasis, G., Albers, C. A., Banks, E., DePristo, M. A., ... & 1000 Genomes Project Analysis Group. (2011). The variant call format and VCFtools. Bioinformatics, 27(15), 2156-2158.

- [samtools](https://samtools.github.io/)

> Danecek, P., Bonfield, J. K., Liddle, J., Marshall, J., Ohan, V., Pollard, M. O., ... & Li, H. (2021). Twelve years of SAMtools and BCFtools. Gigascience, 10(2), giab008.

- [Rsamtools](https://www.bioconductor.org/packages/release/bioc/html/Rsamtools.html)

> Morgan M, Pagès H, Obenchain V, Hayden N (2024). _Rsamtools: Binary alignment (BAM), FASTA, variant call (BCF), and tabix
file import_. doi:10.18129/B9.bioc.Rsamtools <https://doi.org/10.18129/B9.bioc.Rsamtools>, R package version 2.22.0,
<https://bioconductor.org/packages/Rsamtools>.



## Software packaging/containerisation tools

- [Anaconda](https://anaconda.com)
Expand Down
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
MIT License

Copyright (c) The nf-core/assesspool team
Copyright (c) The assessPool team

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
133 changes: 84 additions & 49 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,64 +1,93 @@
<h1>
<picture>
<source media="(prefers-color-scheme: dark)" srcset="docs/images/nf-core-assesspool_logo_dark.png">
<img alt="nf-core/assesspool" src="docs/images/nf-core-assesspool_logo_light.png">
<source media="(prefers-color-scheme: dark)" srcset="docs/images/logo.png" >
<img height="150px" alt="assessPool" src="docs/images/logo.png" >
</picture>
</h1>

[![GitHub Actions CI Status](https://github.com/nf-core/assesspool/actions/workflows/ci.yml/badge.svg)](https://github.com/nf-core/assesspool/actions/workflows/ci.yml)
[![GitHub Actions Linting Status](https://github.com/nf-core/assesspool/actions/workflows/linting.yml/badge.svg)](https://github.com/nf-core/assesspool/actions/workflows/linting.yml)[![AWS CI](https://img.shields.io/badge/CI%20tests-full%20size-FF9900?labelColor=000000&logo=Amazon%20AWS)](https://nf-co.re/assesspool/results)[![Cite with Zenodo](http://img.shields.io/badge/DOI-10.5281/zenodo.XXXXXXX-1073c8?labelColor=000000)](https://doi.org/10.5281/zenodo.XXXXXXX)
[![nf-test](https://img.shields.io/badge/unit_tests-nf--test-337ab7.svg)](https://www.nf-test.com)

[![Nextflow](https://img.shields.io/badge/version-%E2%89%A524.04.2-green?style=flat&logo=nextflow&logoColor=white&color=%230DC09D&link=https%3A%2F%2Fnextflow.io)](https://www.nextflow.io/)
[![nf-core template version](https://img.shields.io/badge/nf--core_template-3.3.1-green?style=flat&logo=nfcore&logoColor=white&color=%2324B064&link=https%3A%2F%2Fnf-co.re)](https://github.com/nf-core/tools/releases/tag/3.3.1)
[![run with conda](http://img.shields.io/badge/run%20with-conda-3EB049?labelColor=000000&logo=anaconda)](https://docs.conda.io/en/latest/)
[![run with docker](https://img.shields.io/badge/run%20with-docker-0db7ed?labelColor=000000&logo=docker)](https://www.docker.com/)
[![run with singularity](https://img.shields.io/badge/run%20with-singularity-1d355c.svg?labelColor=000000)](https://sylabs.io/docs/)
[![Launch on Seqera Platform](https://img.shields.io/badge/Launch%20%F0%9F%9A%80-Seqera%20Platform-%234256e7)](https://cloud.seqera.io/launch?pipeline=https://github.com/nf-core/assesspool)

[![Get help on Slack](http://img.shields.io/badge/slack-nf--core%20%23assesspool-4A154B?labelColor=000000&logo=slack)](https://nfcore.slack.com/channels/assesspool)[![Follow on Bluesky](https://img.shields.io/badge/bluesky-%40nf__core-1185fe?labelColor=000000&logo=bluesky)](https://bsky.app/profile/nf-co.re)[![Follow on Mastodon](https://img.shields.io/badge/mastodon-nf__core-6364ff?labelColor=FFFFFF&logo=mastodon)](https://mstdn.science/@nf_core)[![Watch on YouTube](http://img.shields.io/badge/youtube-nf--core-FF0000?labelColor=000000&logo=youtube)](https://www.youtube.com/c/nf-core)
[![Nextflow](https://img.shields.io/badge/nextflow-%E2%89%A50.24.04.2-brightgreen.svg)](https://www.nextflow.io/)

## Introduction

**nf-core/assesspool** is a bioinformatics pipeline that ...

<!-- TODO nf-core:
Complete this sentence with a 2-3 sentence summary of what types of data the pipeline ingests, a brief overview of the
major pipeline sections and the types of output it produces. You're giving an overview to someone new
to nf-core here, in 15-20 seconds. For an example, see https://github.com/nf-core/rnaseq/blob/master/README.md#introduction
-->
**assessPool** is a population genetics analysis pipeline designed for pooled sequencing runs (pool-seq). Starting from raw genomic variants (VCF or sync format), assessPool performs the following operations:

* Filters SNPs based on adjustable criteria with suggestions for pooled data
* Calculates population genetic statistics using [PoPoolation2](https://sourceforge.net/p/popoolation2/wiki/Main/), [poolfstat](https://doi.org/10.1111/1755-0998.13557), and/or [grenedalf](https://github.com/lczech/grenedalf).
* Generates an HTML report including visualizations of population genetic statistics
* Outputs results in tabular format for downstream analyses

Required inputs are a variant description file (sync or VCF) and a reference assembly (FASTA). These can be output from any number of reduced representation data processing pipelines (e.g., [grenepipe](https://github.com/moiexpositoalonsolab/grenepipe), [dDocent](https://ddocent.com/), etc.).

Major pipeline operations:

1. Import, index, and/or compress variant description and reference
1. Perform stepwise filtering to determine effects of individual filter options (count lost loci):
1. Min/max read depth
1. Minor allele count
1. Hardy-Weinberg equilibrium cutoff
1. Missing data
1. Allele length
1. Quality:depth ratio
1. Minimum read quality
1. Variant type
1. Mispaired read likelihood
1. Alternate observations
1. Mapping quality
1. Mapping ratio
1. Overall depth
1. Number of pools with data
1. Read balance
1. Variant thinning
1. Perform cumulative filtering (for VCF input)
1. Generate sync files
1. Unified (all pools)
1. Split pairwise
1. Generate allele frequency table
1. Calculate F<sub>st</sub>
1. PoPoolation2
1. &#123;poolfstat&#125;
1. grenedalf
1. Calculate Fisher's exact test for individual SNPs
1. PoPoolation2
1. assessPool native
1. Join frequency data to F<sub>st</sub> results
1. Extract contigs containing (user-configurable) strongly-differentiated loci
1. Create HTML report
1. Save all output data in tabular format for downstream analysis

<!-- TODO nf-core: Include a figure that guides the user through the major workflow steps. Many nf-core
workflows use the "tube map" design for that. See https://nf-co.re/docs/guidelines/graphic_design/workflow_diagrams#examples for examples. -->
<!-- TODO nf-core: Fill in short bullet-pointed list of the default steps in the pipeline -->

## Usage

> [!NOTE]
> If you are new to Nextflow and nf-core, please refer to [this page](https://nf-co.re/docs/usage/installation) on how to set-up Nextflow. Make sure to [test your setup](https://nf-co.re/docs/usage/introduction#how-to-run-a-pipeline) with `-profile test` before running the workflow on actual data.

<!-- TODO nf-core: Describe the minimum required steps to execute the pipeline, e.g. how to prepare samplesheets.
Explain what rows and columns represent. For instance (please edit as appropriate):

First, prepare a samplesheet with your input data that looks as follows:
First, prepare a sample sheet with your input data that looks as follows:

`samplesheet.csv`:

```csv
sample,fastq_1,fastq_2
CONTROL_REP1,AEG588A1_S1_L002_R1_001.fastq.gz,AEG588A1_S1_L002_R2_001.fastq.gz
project,input,vcf_index,reference,pools,pool_sizes
poolseq_test,data/pools.vcf.gz,data/pools.vcf.gz.tbi,data/ref.fasta,,"35,38,22,52,17,19"
```

Each row represents a fastq file (single-end) or a pair of fastq files (paired end).
Each row represents a complete pool-seq project or experiment. Column descriptions:

-->
`project` (required): A brief unique identifier for this pool-seq project
`input` (required): Variant description file in sync or VCF format (optionally compressed using `bgzip`)
`vcf_index` (optional): TABIX-format index of the input VCF file (generated if not supplied)
`reference` (required): Reference assembly (FASTA)
`pools` (optional): Comma-separated list of pool names (will replace any names in the input file)
`pool_sizes` (required): Number of individuals in each pool. Either a single number for uniform pool sizes or a comma-separated list of sizes for each pool.

Now, you can run the pipeline using:

<!-- TODO nf-core: update the following command to include all required parameters for a minimal example -->
Required columns are `project`, `input`, `reference`, and `pool_sizes`.

Now, you can run the pipeline using:

```bash
nextflow run nf-core/assesspool \
nextflow run tobodev/assesspool \
-profile <docker/singularity/.../institute> \
--input samplesheet.csv \
--outdir <OUTDIR>
Expand All @@ -67,41 +96,47 @@ nextflow run nf-core/assesspool \
> [!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](https://nf-co.re/docs/usage/getting_started/configuration#custom-configuration-files).

For more details and further functionality, please refer to the [usage documentation](https://nf-co.re/assesspool/usage) and the [parameter documentation](https://nf-co.re/assesspool/parameters).
For more details and further functionality, please refer to the [usage documentation](docs/usage.md) and the [parameter documentation](parameters.md).

## Testing the pipeline
assessPool comes with two built-in profiles that allow the user to test the pipeline with a fully-functional input dataset. These profiles (whose descriptions can be found in [conf/test.confg](conf/test.config) and [conf/test_full.config](conf/test_full.config)) will run assessPool with either a full or reduced dataset of SNPs sequenced from wild populations of the coral *Montipora capitata*. Pipeline tests can be run by passing either `test` or `test_full` to the `-profile` option, along with a software/container management subsystem. For example, using singularity:

```
nextflow run tobodev/assesspool \
-profile test,singularity
```
or
```
nextflow run tobodev/assesspool \
-profile test_full,singularity
```

## Pipeline output

To see the results of an example test run with a full size dataset refer to the [results](https://nf-co.re/assesspool/results) tab on the nf-core website pipeline page.
Results of an example test run with a full size dataset can be found [here](https://tobodev.github.io/assesspool/).
For more details about the output files and reports, please refer to the
[output documentation](https://nf-co.re/assesspool/output).
[output documentation](docs/output.md).

## Credits

nf-core/assesspool was originally written by Evan B Freel, Emily E Conklin, Mykle L Hoban, Derek W Kraft, Jonathan L Whitney, Ingrid SS Knapp, Zac H Forsman, Robert J Toonen.
assessPool was originally written by Evan B Freel, Emily E Conklin, Mykle L Hoban, Derek W Kraft, Jonathan L Whitney, Ingrid SS Knapp, Zac H Forsman, Robert J Toonen.

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 -->
Richard Coleman, &#x02bb;Ale&#x02bb;alani Dudoit, and Cataixa López, who used assessPool during development and helped identify issues and suggest key feature improvements. We would also like to thank Iliana Baums, Tanya Beirne, Dave Carlon, Greg Conception, Matt Craig, Jeff Eble, Scott Godwin, Matt Iacchei, Frederique Kandel, Steve Karl, Jim Maragos, Bob Moffitt, Joe O'Malley, Lawrie Provost, Jennifer Salerno, Derek Skillings, Michael Stat, Ben Wainwright, and Kim Weersing, for their efforts in sample collection.

## Contributions and Support

If you would like to contribute to this pipeline, please see the [contributing guidelines](.github/CONTRIBUTING.md).

For further information or help, don't hesitate to get in touch on the [Slack `#assesspool` channel](https://nfcore.slack.com/channels/assesspool) (you can join with [this invite](https://nf-co.re/join/slack)).

## Citations

<!-- TODO nf-core: Add citation for pipeline after first release. Uncomment lines below and update Zenodo doi and badge at the top of this file. -->
<!-- If you use nf-core/assesspool for your analysis, please cite it using the following doi: [10.5281/zenodo.XXXXXX](https://doi.org/10.5281/zenodo.XXXXXX) -->

<!-- TODO nf-core: Add bibliography of tools and data used in your pipeline -->

An extensive list of references for the tools used by the pipeline can be found in the [`CITATIONS.md`](CITATIONS.md) file.
A list of references for the tools used by the pipeline can be found in the [`CITATIONS.md`](CITATIONS.md) file.

You can cite the `nf-core` publication as follows:
This pipeline uses code and infrastructure developed and maintained by the [nf-core](https://nf-co.re) community, reused here under the [MIT license](https://github.com/nf-core/tools/blob/master/LICENSE).

> **The nf-core framework for community-curated bioinformatics pipelines.**
> 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](https://dx.doi.org/10.1038/s41587-020-0439-x).
> Nat Biotechnol. 2020 Feb 13. doi: 10.1038/s41587-020-0439-x.
2 changes: 1 addition & 1 deletion assets/adaptivecard.json
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
"size": "Large",
"weight": "Bolder",
"color": "<% if (success) { %>Good<% } else { %>Attention<%} %>",
"text": "nf-core/assesspool v${version} - ${runName}",
"text": "assessPool v${version} - ${runName}",
"wrap": true
},
{
Expand Down
Loading
Loading