Skip to content

eskaks logo eskaks logo

Bioconda DOI Latest release Documentation CI License: GPL v3 Rust 1.85+ Discussions PGO

Pairwise dN/dS (Ka/Ks) and per-gene pN/pS from codon-aligned sequences or VCF files. Written in Rust · one binary, no runtime dependencies · self-contained interactive HTML reports.

Install · Tutorial · CLI reference · Citation · Ask a question

New to eskaks? Start with the hands-on tutorial.

Paula Ruiz-Rodriguez1 and Mireia Coscolla1
1. Institute for Integrative Systems Biology, I2SysBio, University of Valencia-CSIC, Valencia, Spain


What is eskaks?

Fast pairwise dN/dS (Ka/Ks) and per-gene pN/pS for measuring natural selection on protein-coding genes. Two modes:

  • eskaks fasta: pairwise dN/dS from codon-aligned FASTA (Nei-Gojobori or Li/LPB93 model).
  • eskaks vcf: per-gene pN/pS from a VCF + reference + GFF3, with a genome-wide neutrality scan and a self-contained interactive HTML report.

Written in Rust, and the binary runs with nothing installed alongside it. Up to 2,641× faster than KaKs_Calculator (R² = 1.0 on the Li model).

Feature Description
🧬 Two dN/dS models Nei-Gojobori (1986) and Li (1993)/LPB93, via precomputed lookup tables
🔬 Per-gene selection scan pN/pS per gene with a mid-p binomial neutrality test, FDR, and Bonferroni
📐 Spectrum-aware sites --kappa ts/tv weighting for transition-biased genomes (e.g. M. tuberculosis)
🧮 Population genetics McDonald-Kreitman test, bootstrap CIs, and a --genomic-control λ correction
🖥️ Interactive report One self-contained HTML dashboard: colour-blind mode, scales to whole genomes
⚡ Fast & flexible Parallel and deterministic; TSV/CSV/JSON/SVG output; 20 NCBI genetic codes

Install

conda install -c bioconda eskaks

Bioconda builds linux-64 and osx-64. On Apple silicon, prefix the command with CONDA_SUBDIR=osx-64 to install the Intel build under Rosetta, or take the native arm64 binary from the release below.

Or download a binary from the latest release, which ships macOS (Apple silicon and Intel), Linux x86_64 and Windows x86_64 builds with a SHA256SUMS file and signed build provenance:

gh attestation verify eskaks-<version>-<platform>.tar.gz --owner PathoGenOmics-Lab

Or build from source, which needs a Rust toolchain of 1.85 or newer and a C compiler:

git clone https://github.com/PathoGenOmics-Lab/eskaks.git
cd eskaks && make release && cp target/release/eskaks ~/.local/bin/

cargo install eskaks is not available yet. The installation guide has the details, including what make release does differently from a plain cargo build.

Try it

The commands below run on the bundled examples/, so you need no data of your own:

# pairwise dN/dS from aligned sequences
eskaks fasta examples/genes.fasta -o first_run

# per-gene pN/pS + an interactive HTML report
eskaks vcf --ref examples/toy_genome/reference.fasta \
  --gff examples/toy_genome/genes.gff3 --vcf examples/toy_genome/variants.vcf \
  --genetic-code 11 --report -o toy_scan   # → open toy_scan_report.html

--report builds a single self-contained HTML dashboard (interactive Manhattan / volcano / QQ, McDonald-Kreitman, colour-blind mode, scales to whole genomes; no internet needed). See a live example report.

Documentation

Everything beyond this page lives on the documentation site, https://pathogenomics-lab.github.io/eskaks/. The docs/ folder in this repository holds its Markdown source, which is written for the rendered site: read it there, where the diagrams, formulas and cross-links work.

I want to Go to
Install eskaks Installation
Learn the tool step by step Getting started tutorial
Copy a command for my use case Quick start
Look up a flag CLI reference
Scan a genome for selection VCF analysis (pN/pS)
Understand what my numbers mean Interpreting results
Choose a substitution model Models
Know what each output column is Output formats
Check speed and accuracy Performance & accuracy
Look up a term Glossary
Solve a problem FAQ
Contribute code Development

Citation

If you use eskaks in your research, please cite:

Ruiz-Rodriguez P, Coscollá M. eskaks: fast pairwise dN/dS and per-gene pN/pS from sequences or VCFs. Zenodo, 2026. https://doi.org/10.5281/zenodo.21992154

@software{ruiz-rodriguez_eskaks_2026,
  title     = {eskaks: fast pairwise dN/dS and per-gene pN/pS from sequences or VCFs},
  author    = {Ruiz-Rodriguez, Paula and Coscoll{\'a}, Mireia},
  year      = {2026},
  publisher = {Zenodo},
  doi       = {10.5281/zenodo.21992154},
  url       = {https://github.com/PathoGenOmics-Lab/eskaks},
  version   = {0.1.0},
  license   = {GPL-3.0-only}
}

That DOI is the archive of 0.1.0 specifically, which is what a methods section should carry: it pins the reference to the version the results came from. To cite eskaks in general, use the concept DOI 10.5281/zenodo.21992153, which always resolves to the newest version.

License

GNU General Public License v3.0


✨ Contributors

eskaks is developed with ❤️ by:

Paula Ruiz-Rodriguez

💻 🔬 🤔 🔣 🎨 🔧

Mireia Coscolla

🔍 🤔 🧑‍🏫 🔬 📓

This project follows the all-contributors specification (emoji key).

About

Calculates dN/dS for sequences

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

4 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages