Skip to main content

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

zehramsa-1.0.2.tar.gz (10.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

zehramsa-1.0.2-py3-none-any.whl (9.3 kB view details)

Uploaded Python 3

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

Hashes for zehramsa-1.0.2.tar.gz
Algorithm Hash digest
SHA256 862285421728cf1508d1959d45ba186afba10b181ba3068fdff804850f044340
MD5 70c5ad2657e1668cc77a73180997d380
BLAKE2b-256 40c72e38123462932be475466d66853c4d0974c37c901c559baf94c45bbdb0c6

See more details on using hashes here.

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

Hashes for zehramsa-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 3d900243e8e5203a5fbbbfff5462fff947153aaa7946a7e0aa23c7a69ee199e9
MD5 5269b39e34e2eb4d83542738978d4355
BLAKE2b-256 d7cdcc2ca35e4363a3b0d0cbe39d6f5659af1f0f77de9f8d7549da3c6d5131ed

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page