#genomics #phylogenomics #alignment

bin+lib segul

An ultrafast and memory-efficient tool for phylogenomics

60 releases

Uses new Rust 2024

0.23.2 Jan 30, 2026
0.22.1 Aug 8, 2024
0.21.3 May 15, 2024
0.21.0 Feb 22, 2024
0.3.2 Jul 31, 2021

#803 in Command line utilities

Download history 94/week @ 2026-01-26 80/week @ 2026-02-02 43/week @ 2026-02-09

217 downloads per month
Used in ullar

MIT license

530KB
13K SLoC

SEGUL segul logo

Segul-Tests Crate-IO GH-Release PyPI - Version install with bioconda Conda Version Crates-Download GitHub Downloads (all assets, all releases) Pepy Total Downloads Conda Downloads last-commit License GitHub top language

SEGUL simplifies complex, tedious, and error-prone data wrangling and summarization for genomics and Sanger datasets. We develop it to be easy for beginners while providing advanced features for experienced users. SEGUL is also a high performance and memory efficient genomic tool. In our tests, it consistently offers a faster and more efficient (low memory footprint) alternative to existing applications for various genomic tasks (see benchmark).

SEGUL runs on many software platforms, from mobile devices and personal computers to high-performance computing clusters. It is available as a command-line interface (CLI), a graphical user interface (GUI) application, and a Rust library and Python package (see platform support below). SEGUL is part of our ongoing effort to ensure that genomic software is accessible to everyone, regardless of their bioinformatic skills and computing resources.

Learn more about SEGUL in the documentation. We welcome feedback if you find any issues, difficulties or have ideas to improve the app and its documentation (details below).

Citation

Handika, H., and J. A. Esselstyn. 2024. SEGUL: Ultrafast, memory-efficient and mobile-friendly software for manipulating and summarizing phylogenomic datasets. Molecular Ecology Resources. https://doi.org/10.1111/1755-0998.13964.

What's New in SEGUL 0.23.0

New Features 🚀

Breaking Changes ⚠️

  • Filtering argument changes for better consistency (see docs).
  • Remove --ntax option from alignment filtering because SEGUL can automatically and fastly detect the number of sequences in the alignment.

Bug Fixes 🐛

  • Fix max-gap filtering issues.
  • Fix concatenation leading to missing data when sequence IDs in FASTA files contain trailing whitespace.

Other Changes 🛠

  • Migrate to Rust 2024 edition.
  • Update dependencies.

Supported File Formats

Sequence formats:

  1. NEXUS
  2. Relaxed PHYLIP
  3. FASTA
  4. FASTQ (gzipped and uncompressed)
  5. Multiple Alignment Format (MAF) (In development)
  6. Variant Call Format (VCF) (In development)

All formats are supported in interleave and sequential versions. The app supports DNA and amino acid sequences, except for FASTQ, MAF, and VCF (DNA only).

Alignment partition formats:

  1. RaXML
  2. NEXUS

The NEXUS partition can be written as a charset block embedded in NEXUS formatted sequences or a separate file.

Installation

GUI Version

Desktop

Microsoft Store download

Download on the Mac App Store

Get it from the Snap Store

Mobile

Download on the App Store

Get it on Google Play

Learn more about device requirements and GUI app installation in the documentation.

CLI Version

The CLI app may work in any Rust-supported platform. However, we only tested and officially support the following platforms:

  • Linux
  • MacOS
  • Windows
  • Windows Subsystem for Linux (WSL)

CLI Installation Methods

API version

The API version is available for Rust and other programming languages. For Rust users, you can install it via Cargo:

cargo add segul

Python

We provide binding for Python (called pysegul). Use SEGUL just like any other Python package:

pip install pysegul

Learn more about using SEGUL API in the documentation.

Features

NOTES: To try beta features, follow the installation instruction for the beta version.

Features Supported Input Formats Guideline Quick Links
Alignment concatenation FASTA, NEXUS, PHYLIP CLI / GUI / Python
Alignment conversion FASTA, NEXUS, PHYLIP CLI / GUI / Python
Alignment filtering FASTA, NEXUS, PHYLIP CLI / GUI / Python
Alignment splitting FASTA, NEXUS, PHYLIP CLI / GUI / Python
Alignment partition conversion RaXML, NEXUS CLI / GUI / Python
Alignment summary statistics FASTA, NEXUS, PHYLIP CLI / GUI / Python
Alignment trimming FASTA, NEXUS, PHYLIP CLI (Beta) / Coming soon
Genomic summary statistics FASTQ, FASTA (contigs) CLI / GUI / Python
Multiple alignment conversion MAF CLI (Beta) / Coming soon
Sequence addition FASTA, NEXUS, PHYLIP CLI (Beta) / Coming soon
Sequence extraction FASTA, NEXUS, PHYLIP CLI / GUI / Python
Sequence filtering FASTA, NEXUS, PHYLIP CLI / Coming soon
Sequence ID extraction FASTA, NEXUS, PHYLIP CLI / GUI / Python
Sequence ID mapping FASTA, NEXUS, PHYLIP CLI / GUI / Python
Sequence ID renaming FASTA, NEXUS, PHYLIP CLI / GUI / Coming soon
Sequence removal FASTA, NEXUS, PHYLIP CLI / GUI / Python
Sequence translation FASTA, NEXUS, PHYLIP CLI / GUI / Python

Contribution

We welcome any contribution, from issue reporting and ideas to improve the app and documentation to code contribution. For ideas and issue reporting, please post on the Github issues page. For code contribution, please fork the repository and send pull requests to this repository.

Dependencies

~27MB
~462K SLoC