Multiple Sequence Alignment via Dynamic Programming
Project description
Dil / Language: 🇹🇷 Türkçe · 🇬🇧 English
zehramsa — Çoklu Dizi Hizalama Kütüphanesi
zehramsa, Needleman-Wunsch dinamik programlama algoritması, Center Star Alignment ve k boyutlu saf DP yaklaşımını kullanarak birden fazla DNA dizisini hizalayan, saf Python ile yazılmış bir kütüphanedir. Harici bağımlılık gerektirmez; pip ile kurulabilir.
Teknolojiler
- Python 3.9+
- Needleman-Wunsch — global pairwise hizalama (dinamik programlama)
- Center Star Alignment — çoklu dizi birleştirme stratejisi
- k Boyutlu DP MSA — optimal Sum-of-Pairs garantili çoklu hizalama
- pyproject.toml — pip kurulum desteği
Özellikler
- İkili dizi hizalama (Needleman-Wunsch DP)
- 3+ dizi için Center Star tabanlı MSA
- 3+ dizi için k boyutlu saf DP tabanlı optimal MSA
- Özelleştirilebilir puanlama (match / mismatch / gap)
- Hizalama skoru ve kimlik yüzdesi hesaplama
- Tip ve girdi doğrulama ile açık hata mesajları
Kurulum
pip install zehramsa
Kullanım
Center Star ile hizalama
from zehramsa import align, SimpleScoring
result = align(["GATTACA", "GCATGCU", "GAGTACA"])
print(result)
result = align(["ACGT", "ACCT", "AGGT"], scoring=SimpleScoring(match=2.0, mismatch=-1.0, gap=-2.0))
print(result.center_sequence)
k Boyutlu DP ile optimal hizalama
from zehramsa import dp_align
result = dp_align(["GAT", "GCT", "GTT"])
print(result)
result = dp_align(["ACGT", "AGT", "ACT"], scoring=SimpleScoring(match=2.0, mismatch=-1.0, gap=-2.0))
print(result.score)
Algoritmalar
| Fonksiyon | Yöntem | Karmaşıklık | Optimal |
|---|---|---|---|
align() |
Center Star + NW | O(k·n²) | ❌ yaklaşık |
dp_align() |
k boyutlu DP | O(nᵏ·2ᵏ) | ✅ garantili |
Süreç
Proje, dinamik programlama ile çoklu dizi hizalamasının sıfırdan uygulanmasına odaklanır. Önce Needleman-Wunsch algoritması ayrı bir modül olarak kuruldu; ardından 3+ dizi için Center Star stratejisi entegre edildi. Son olarak k boyutlu saf DP tabanlı optimal MSA eklendi. Tüm çiftler için NW tek seferde çalıştırılıp cache'lenerek gereksiz hesaplama tekrarı engellendi.
zehramsa — Multiple Sequence Alignment Library
zehramsa is a pure Python library that aligns multiple DNA sequences using the Needleman-Wunsch dynamic programming algorithm, Center Star Alignment, and k-dimensional pure DP approach. No external dependencies required; installable via pip.
Technologies
- Python 3.9+
- Needleman-Wunsch — global pairwise alignment (dynamic programming)
- Center Star Alignment — multi-sequence merging strategy
- k-Dimensional DP MSA — optimal Sum-of-Pairs guaranteed alignment
- pyproject.toml — pip installation support
Features
- Pairwise sequence alignment (Needleman-Wunsch DP)
- MSA for 3+ sequences via Center Star approach
- MSA for 3+ sequences via k-dimensional pure DP (optimal)
- Customizable scoring (match / mismatch / gap)
- Alignment score and identity percentage calculation
- Type and input validation with clear error messages
Installation
pip install zehramsa
Usage
Align with Center Star
from zehramsa import align, SimpleScoring
result = align(["GATTACA", "GCATGCU", "GAGTACA"])
print(result)
result = align(["ACGT", "ACCT", "AGGT"], scoring=SimpleScoring(match=2.0, mismatch=-1.0, gap=-2.0))
print(result.center_sequence)
Align with k-dimensional DP (optimal)
from zehramsa import dp_align
result = dp_align(["GAT", "GCT", "GTT"])
print(result)
result = dp_align(["ACGT", "AGT", "ACT"], scoring=SimpleScoring(match=2.0, mismatch=-1.0, gap=-2.0))
print(result.score)
Algorithms
| Function | Method | Complexity | Optimal |
|---|---|---|---|
align() |
Center Star + NW | O(k·n²) | ❌ approximate |
dp_align() |
k-dimensional DP | O(nᵏ·2ᵏ) | ✅ guaranteed |
The Process
The project focuses on implementing multiple sequence alignment from scratch using dynamic programming. Needleman-Wunsch was built as a standalone module first; Center Star strategy was then integrated for 3+ sequences. Finally, k-dimensional pure DP based optimal MSA was added. All pairwise NW results are computed once and cached to eliminate redundant computation.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file zehramsa-1.0.2.tar.gz.
File metadata
- Download URL: zehramsa-1.0.2.tar.gz
- Upload date:
- Size: 10.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
862285421728cf1508d1959d45ba186afba10b181ba3068fdff804850f044340
|
|
| MD5 |
70c5ad2657e1668cc77a73180997d380
|
|
| BLAKE2b-256 |
40c72e38123462932be475466d66853c4d0974c37c901c559baf94c45bbdb0c6
|
File details
Details for the file zehramsa-1.0.2-py3-none-any.whl.
File metadata
- Download URL: zehramsa-1.0.2-py3-none-any.whl
- Upload date:
- Size: 9.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3d900243e8e5203a5fbbbfff5462fff947153aaa7946a7e0aa23c7a69ee199e9
|
|
| MD5 |
5269b39e34e2eb4d83542738978d4355
|
|
| BLAKE2b-256 |
d7cdcc2ca35e4363a3b0d0cbe39d6f5659af1f0f77de9f8d7549da3c6d5131ed
|