Skip to main content

Dinamik programlama ile çoklu dizi hizalama (Multiple Sequence Alignment)

Project description

miraymsa

Dinamik programlama ile çoklu dizi hizalama (Multiple Sequence Alignment) kütüphanesi.

Bu kütüphane, Needleman-Wunsch algoritmasını ve onun k boyuta genelleştirilmiş halini kullanarak dizileri global olarak hizalar. Sum-of-Pairs (SP) skorlaması ile optimal hizalamayı matematiksel olarak garanti eder.

Özellikler

  • 2 dizi için klasik Needleman-Wunsch global hizalama
  • k dizi için saf dinamik programlama tabanlı MSA
  • Özelleştirilebilir match / mismatch / gap skorları
  • Optimal Sum-of-Pairs skoru garanti
  • İnteraktif komut satırı demosu

Kurulum

git clone https://github.com/<miraykahveci>/miraymsa.git
cd miraymsa
pip install numpy

Kullanım

2 dizi için (Needleman-Wunsch)

from miraymsa import needleman_wunsch

h1, h2, skor = needleman_wunsch("GATTACA", "GCATGCU")
print(h1)    # GATTACA
print(h2)    # GCATGCU
print(skor)  # -1

k dizi için (çoklu hizalama)

from miraymsa import msa_align

hizalananlar, skor = msa_align(["GAT", "GCT", "GTT"])
for h in hizalananlar:
    print(h)
# GAT
# GCT
# GTT
print("Skor:", skor)  # 3

Özelleştirilmiş skorlama parametreleriyle

hizalananlar, skor = msa_align(
    ["ACGT", "AGT", "ACT"],
    match=2,
    mismatch=-1,
    gap=-2
)

İnteraktif demo

python demo.py

Demo, kullanıcıdan dizi sayısını, dizileri ve skorlama parametrelerini alır. 2 dizi girilirse Needleman-Wunsch, 3+ dizi girilirse k boyutlu DP MSA kullanılır.

Algoritma

Needleman-Wunsch (2 dizi)

Klasik 2 boyutlu dinamik programlama rekürrensi

k boyutlu DP (çoklu dizi)

k dizi için her hücrede 2^k - 1 yön ihtimali değerlendirilir. Sütun skoru, sütundaki tüm karakter çiftlerinin toplamıdır (Sum-of-Pairs)

Karmaşıklık

Zaman Bellek
2 dizi NW O(n·m) O(n·m)
k dizi DP MSA O(n^k · 2^k) O(n^k)

Saf dinamik programlama yaklaşımı, küçük k değerleri için pratik bir çözüm sunar; büyük k değerleri için ise karmaşıklık doğal olarak artar.

Testler

python -m tests.test_basic

Tüm test sonuçları doğrulanmıştır:

  • Skorlama fonksiyonu: match, mismatch, gap
  • 2 dizi Needleman-Wunsch: 3 örnek
  • k dizi DP MSA: 3, 4 dizi örnekleri
  • Tutarlılık testi: msa_align(2 dizi) = needleman_wunsch(2 dizi)

Yazar

Müzeyyen Miray Kahveci — 231201047 Rumeli Üniversitesi, Bilgisayar Mühendisliği

Final projesi, Biyoinformatik dersi, 2025–2026 Bahar Dönemi.

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

miraymsa-0.1.2.tar.gz (5.0 kB view details)

Uploaded Source

Built Distribution

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

miraymsa-0.1.2-py3-none-any.whl (5.5 kB view details)

Uploaded Python 3

File details

Details for the file miraymsa-0.1.2.tar.gz.

File metadata

  • Download URL: miraymsa-0.1.2.tar.gz
  • Upload date:
  • Size: 5.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.13

File hashes

Hashes for miraymsa-0.1.2.tar.gz
Algorithm Hash digest
SHA256 b016be9c6d3ad029d96de75fb147d49df0ba0ae278dc030b31e9d331a70e32a9
MD5 550ff834e720e71672b894ca6366b824
BLAKE2b-256 c865ef2c6a83a35a0e2f4be3fe4107a58546fd26b0ff900414d558308ce2a757

See more details on using hashes here.

File details

Details for the file miraymsa-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: miraymsa-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 5.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.13

File hashes

Hashes for miraymsa-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 c6607374c9720734079b4d6e05da0b6df300c2da7111d462f04395029114079a
MD5 8ebd04e15658ba378afe87bffa9d37f7
BLAKE2b-256 87cd6ade8136f032ef19929ee505d06b299611cb58dc0ef463acb9575f114bbd

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