https://github.com/benhid/sequoya
Solving Multiple Sequence Alignment (MSA) problems with multi-objective metaheuristics
https://github.com/benhid/sequoya
metaheuristics msa multiple-sequence-alignment optimization python sequence-alignments
Last synced: 6 months ago
JSON representation
Solving Multiple Sequence Alignment (MSA) problems with multi-objective metaheuristics
- Host: GitHub
- URL: https://github.com/benhid/sequoya
- Owner: benhid
- License: mit
- Created: 2018-01-30T09:53:29.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2020-03-10T13:17:47.000Z (over 5 years ago)
- Last Synced: 2024-12-02T11:57:14.883Z (6 months ago)
- Topics: metaheuristics, msa, multiple-sequence-alignment, optimization, python, sequence-alignments
- Language: Python
- Homepage:
- Size: 111 MB
- Stars: 17
- Watchers: 3
- Forks: 3
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
![]()
# Solving Multiple Sequence Alignments with Python
[](https://travis-ci.org/benhid/Sequoya)
[]()
[]()Sequoya is an open source software tool aimed at for solving
*M*ultiple *S*equence *A*lignment problems with multi-objective metaheuristics.This tool implements a distributed async version of the [M2Align](https://github.com/KhaosResearch/M2Align) algorithm as shown in:
> "M2Align: parallel multiple sequence alignment with a multi-objective metaheuristic". Cristian Zambrano-Vega, Antonio J. Nebro José García-Nieto, José F. Aldana-Montes. Bioinformatics, Volume 33, Issue 19, 1 October 2017, Pages 3011–3017 ([DOI](https://doi.org/10.1093/bioinformatics/btx338)).
## Features
* **Score functions**:
* Sum of pairs,
* Star,
* Minimum entropy,
* Percentage of non-gaps,
* Percentage of totally conserved columns,
* STRIKE.
* **Algorithm**:
* NSGA-II,
* Distributed NSGA-II
* **Crossover operator**:
* Single-point crossover (`GapSequenceSolutionSinglePoint`).
* **Mutation operators**:
* Shift closest gap group (`ShiftClosedGapGroups`),
* Shift gap group (`ShiftGapGroup`),
* Random gap insertion (`OneRandomGapInsertion`),
* Merge two random adjacent gaps group (`TwoRandomAdjacentGapGroup`),
* Multiple mutation (`MultipleMSAMutation`).## Install
To download and install Sequoya just clone the Git repository hosted in GitHub:```console
git clone https://github.com/benhid/Sequoya.git
cd Sequoya
python setup.py install
```Or via *pip*:
```console
pip install Sequoya
```## Usage
Examples of running Sequoya are located in the [`examples`](examples/) folder:### Dask distributed
For running Sequoya in a cluster of machines, first [setup a network](http://distributed.dask.org/en/latest/setup.html)
with at least one `dask-cheduler` node and several `dask-worker` nodes:```console
conda create --name dask-cluster
conda activate dask-clusterpip install git+https://github.com/benhid/Sequoya.git@develop
```Then, on the master node run:
```console
dask-scheduler
```On each slave node run:
```console
dask-worker :8786 --nprocs --nthreads 1
```## Authors
### Active development team
* [Antonio Benítez-Hidalgo](https://benhid.com/)
* [Antonio J. Nebro](http://www.lcc.uma.es/%7Eantonio/)## License
This project is licensed under the terms of the MIT - see the [LICENSE](LICENSE) file for details.