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ı garanti eder — Clustal Omega, MUSCLE veya MAFFT gibi heuristic yöntemlerin aksine yaklaşık değil, kesin sonuç verir.

Ö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 DP MSA, küçük k değerleri için pratiktir. Bu doğal karmaşıklık sınırı, Clustal Omega, MUSCLE ve MAFFT gibi heuristic yöntemlerin geliştirilmesinin temel sebebidir.

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.0.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.0-py3-none-any.whl (5.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: miraymsa-0.1.0.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.0.tar.gz
Algorithm Hash digest
SHA256 563e199307a45a79ce08875606046fbab64d1c0688c9ffb86303fdb06430bdb0
MD5 6a7929f697e6a9e3021def26f40890fb
BLAKE2b-256 4f086805823936b57954d9b93de1b5463e3d97931a04cf7ae635755d8db82db7

See more details on using hashes here.

File details

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

File metadata

  • Download URL: miraymsa-0.1.0-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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2c4d9e308558547938a5e3b2d0aca445c3d10c177209f907fab89f5565cda394
MD5 5d0ab50d77349cf6d25bfb0cb454e97a
BLAKE2b-256 33a81ed1d19e91380f20ed95b69ce2f16cdf2586fccba043b9aea880eeafce83

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