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

Uploaded Python 3

File details

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

File metadata

  • Download URL: miraymsa-0.1.1.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.1.tar.gz
Algorithm Hash digest
SHA256 916fe4743c73bbbe96b114ef245c32ebbeda4ff300c51420d2a31e978bd94e73
MD5 f7834afcfd31cc0153515f9df4a3cc2c
BLAKE2b-256 f2b38e1107f5ea87a9b247838583d246144ce45d697445c0e4e3347875a796f6

See more details on using hashes here.

File details

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

File metadata

  • Download URL: miraymsa-0.1.1-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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 f2af232d3be5c342f688ebbd28ddf31815790630772e83d477ad29fb4a761ed5
MD5 e1123ad0e6ae741156cbd19552a4a67f
BLAKE2b-256 86584f708025694e905bc539788782dff70c99b7e858b80b2d4217cfeac71234

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