https://github.com/hhandika/segul
An ultrafast and memory efficient tool for phylogenomics
https://github.com/hhandika/segul
alignment bioinformatics command-line-tool phylogenetics phylogenomics rust
Last synced: 6 months ago
JSON representation
An ultrafast and memory efficient tool for phylogenomics
- Host: GitHub
- URL: https://github.com/hhandika/segul
- Owner: hhandika
- License: mit
- Created: 2021-06-05T19:06:24.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2024-03-14T16:54:42.000Z (over 1 year ago)
- Last Synced: 2024-03-14T18:19:55.342Z (over 1 year ago)
- Topics: alignment, bioinformatics, command-line-tool, phylogenetics, phylogenomics, rust
- Language: Rust
- Homepage: https://segul.app
- Size: 1.54 MB
- Stars: 13
- Watchers: 4
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# SEGUL

[](https://crates.io/crates/segul)
[](https://github.com/hhandika/segul/releases)
[](https://pypi.org/project/pysegul/)
[](http://bioconda.github.io/recipes/segul/README.html)







[](https://github.com/XAMPPRocky/tokei)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](https://www.segul.app/docs/cli_gui#performance)).
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](#installation)). SEGUL is part of [our ongoing effort](https://www.hhandika.com/software) to ensure that genomic software is accessible to everyone, regardless of their bioinformatic skills and computing resources.
Learn more about SEGUL in the [documentation](https://www.segul.app/). We welcome feedback if you find any issues, difficulties or have ideas to improve the app and its documentation (details [below](#contribution)).
## 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](https://doi.org/10.1111/1755-0998.13964).
## Links
- App Documentation: [[EN]](https://segul.app/)
- API Documentation: [[Rust]](https://docs.rs/segul/0.18.1/segul/)
- GUI: [[Source code]](https://github.com/hhandika/segui)
- Python API: [[Source code]](https://github.com/hhandika/pysegul) [[PyPI]](https://pypi.org/project/pysegul/)## 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. NEXUSThe NEXUS partition can be written as a charset block embedded in NEXUS formatted sequences or a separate file.
## Installation
### GUI Version
### Desktop
[
](https://apps.microsoft.com/detail/SEGUI/9NP1BQ6FW9PW?mode=direct)
[
](https://apps.apple.com/us/app/segui/id6447999874?mt=12&itsct=apps_box_badge&itscg=30200)
[](https://snapcraft.io/segui)
### Mobile
[
](https://apps.apple.com/us/app/segui/id6447999874?itsct=apps_box_badge&itscg=30200)
[
](https://play.google.com/store/apps/details?id=com.hhandika.segui&pcampaignid=pcampaignidMKT-Other-global-all-co-prtnr-py-PartBadge-Mar2515-1)
Learn more about device requirements and GUI app installation in the [documentation](https://www.segul.app/docs/installation/install_gui).
### CLI Version
The CLI app may work in any Rust-supported [platform](https://doc.rust-lang.org/nightly/rustc/platform-support.html). However, we only tested and officially support the following platforms:
- Linux
- MacOS
- Windows
- Windows Subsystem for Linux (WSL)#### CLI Installation Methods
- Pre-compiled binaries: [[Releases]](https://github.com/hhandika/segul/releases) [[Docs]](https://www.segul.app/docs/installation/install_binary)
- Conda: [[Package]](https://anaconda.org/bioconda/segul) [[Docs]](https://www.segul.app/docs/installation/install_conda)
- Package manager: [[Docs]](https://www.segul.app/docs/installation/install_cargo)
- From source: [[Docs]](https://www.segul.app/docs/installation/install_source)
- Beta version: [[Docs]](https://www.segul.app/docs/installation/install_dev)### API version
The API version is available for Rust and other programming languages. For Rust users, you can install it via Cargo:
```bash
cargo add segul
```#### Python
We provide binding for Python (called [pysegul](https://pypi.org/project/pysegul/)). Use SEGUL just like any other Python package:
```python
pip install pysegul
```Learn more about using SEGUL API in the [documentation](https://www.segul.app/docs/api-usage/python/intro).
## Features
> **NOTES**: To try beta features, follow the [installation instruction](https://www.segul.app/docs/installation/install_dev) for the beta version.
| Features | Supported Input Formats | Guideline Quick Links |
| ------------------------------ | ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Alignment concatenation | FASTA, NEXUS, PHYLIP | [CLI](https://www.segul.app/docs/cli-usage/align-concat) / [GUI](https://www.segul.app/docs/gui-usage/align-concat) / [Python](https://www.segul.app/docs/api-usage/python/align_concat) |
| Alignment conversion | FASTA, NEXUS, PHYLIP | [CLI](https://www.segul.app/docs/cli-usage/align-convert) / [GUI](https://www.segul.app/docs/gui-usage/align-convert) / [Python](https://www.segul.app/docs/api-usage/python/align_convert) |
| Alignment filtering | FASTA, NEXUS, PHYLIP | [CLI](https://www.segul.app/docs/cli-usage/align-filter) / [GUI](https://www.segul.app/docs/gui-usage/align-filter) / [Python](https://www.segul.app/docs/api-usage/python/align_filter) |
| Alignment splitting | FASTA, NEXUS, PHYLIP | [CLI](https://www.segul.app/docs/cli-usage/align-split) / [GUI](https://www.segul.app/docs/gui-usage/align-split) / [Python](https://www.segul.app/docs/api-usage/python/align_split) |
| Alignment partition conversion | RaXML, NEXUS | [CLI](https://www.segul.app/docs/cli-usage/align-partition) / [GUI](https://www.segul.app/docs/gui-usage/align-partition) / [Python](https://www.segul.app/docs/api-usage/python/align_partition) |
| Alignment summary statistics | FASTA, NEXUS, PHYLIP | [CLI](https://www.segul.app/docs/cli-usage/align-summary) / [GUI](https://www.segul.app/docs/gui-usage/align-summary) / [Python](https://www.segul.app/docs/api-usage/python/align_summary) |
| Alignment trimming | FASTA, NEXUS, PHYLIP | [CLI (Beta)](https://www.segul.app/docs/cli-usage/align-trim) / Coming soon |
| Genomic summary statistics | FASTQ, FASTA (contigs) | [CLI](https://www.segul.app/docs/cli-usage/genomic-summary) / [GUI](https://www.segul.app/docs/gui-usage/genomic) / [Python](https://www.segul.app/docs/api-usage/python/genomic_summary) |
| Multiple alignment conversion | MAF | [CLI (Beta)](https://www.segul.app/docs/cli-usage/genomic-convert) / Coming soon |
| Sequence addition | FASTA, NEXUS, PHYLIP | [CLI (Beta)](https://www.segul.app/docs/cli-usage/sequence-add) / Coming soon |
| Sequence extraction | FASTA, NEXUS, PHYLIP | [CLI](https://www.segul.app/docs/cli-usage/sequence-extract) / [GUI](https://www.segul.app/docs/gui-usage/sequence-extract) / [Python](https://www.segul.app/docs/api-usage/python/sequence_extract) |
| Sequence filtering | FASTA, NEXUS, PHYLIP | [CLI](https://www.segul.app/docs/cli-usage/sequence-filter) / Coming soon |
| Sequence ID extraction | FASTA, NEXUS, PHYLIP | [CLI](https://www.segul.app/docs/cli-usage/sequence-id) / [GUI](https://www.segul.app/docs/gui-usage/sequence-id) / [Python](https://www.segul.app/docs/api-usage/python/sequence_id) |
| Sequence ID mapping | FASTA, NEXUS, PHYLIP | [CLI](https://www.segul.app/docs/cli-usage/sequence-map) / [GUI](https://www.segul.app/docs/gui-usage/sequence-id-map) / [Python](https://www.segul.app/docs/api-usage/python/sequence_id) |
| Sequence ID renaming | FASTA, NEXUS, PHYLIP | [CLI](https://www.segul.app/docs/cli-usage/sequence-rename) / [GUI](https://www.segul.app/docs/gui-usage/sequence-rename) / Coming soon |
| Sequence removal | FASTA, NEXUS, PHYLIP | [CLI](https://www.segul.app/docs/cli-usage/sequence-remove) / [GUI](https://www.segul.app/docs/gui-usage/sequence-remove) / [Python](https://www.segul.app/docs/api-usage/python/sequence_remove) |
| Sequence translation | FASTA, NEXUS, PHYLIP | [CLI](https://www.segul.app/docs/cli-usage/sequence-translate) / [GUI](https://www.segul.app/docs/gui-usage/sequence-translate) / [Python](https://www.segul.app/docs/api-usage/python/sequence_translation) |## 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](https://github.com/hhandika/segul/issues). For code contribution, please fork the repository and send pull requests to this repository.