Skip to main content

Dinamik Programlama (Needleman-Wunsch) ve UPGMA Guide Tree Tabanlı Çoklu Dizi Hizalama Kütüphanesi

Project description

ahmetmsa - Dinamik Programlama Tabanlı Çoklu Dizi Hizalama Kütüphanesi

[cite_start]Bu kütüphane, Biyoinformatik dersi final projesi kapsamında, birden fazla biyolojik diziyi (DNA/RNA/Protein) hizalamak amacıyla geliştirilmiştir[cite: 2]. [cite_start]Projede çekirdek hizalama motoru olarak Dinamik Programlama (Needleman-Wunsch) algoritması kullanılmış, çoklu hizalama süreci ise Aşamalı Hizalama (Progressive Alignment) stratejisiyle yönetilmiştir[cite: 8].

🧬 Algoritma Mantığı ve Tasarım Adımları

Kütüphane, karmaşık çok boyutlu matris hesaplamalarından kaçınarak verimli bir Çoklu Dizi Hizalaması (MSA) gerçekleştirmek için şu adımları uygular:

  1. Global İkili Hizalama (Needleman-Wunsch): Girilen diziler, dinamik programlama matrisi ($len(x)+1 \times len(y)+1$) oluşturularak ikişerli şekilde hizalanır.
  2. Skorlama Parametreleri: Hizalama esnasında ders senaryosuna uygun olarak şu ceza ve ödül puanları uygulanır:
    • Match (Eşleşme): +1
    • Mismatch (Uyuşmazlık): -1
    • Gap (Boşluk): -2
  3. Aşamalı Birleştirme (Progressive Alignment): İlk iki dizi dinamik programlama ile hizalanarak temel bir "profil" oluşturulur. Kalan diğer diziler, bu profile sırayla ve geriye doğru iz sürme (traceback) mantığıyla aşama aşama dahil edilerek nihai çoklu hizalama sonucuna ulaşılır.

📂 Proje Klasör Yapısı

ahmetMSA_project/
│
├── pyproject.toml         # Kütüphane paketleme ve bağımlılık ayarları
├── main.py                # Test ve çalıştırma scripti
│
└── ahmetmsa/              # Ana kütüphane modülü
    ├── __init__.py        # Dışa aktarım (export) tanımlamaları
    ├── dp_aligner.py      # İkili Dinamik Programlama (NW) ve Traceback kodları
    └── progressive.py     # Aşamalı çoklu hizalama ve MSA skorlama motoru


    🛠️ Kurulum
Kütüphaneyi yerel bilgisayarınızda bir Python paketi olarak kurmak için projenin ana dizininde (ahmetMSA_project/) terminali açıp aşağıdaki komutu çalıştırmanız yeterlidir:

Bash
pip install .
🚀 Kullanım ve Örnek Çıktı
Kütüphaneyi kurduktan sonra main.py dosyasını çalıştırarak veya kendi Python kodunuza dahil ederek kullanabilirsiniz:

Python
from ahmetmsa.progressive import progressive_alignment

# Test dizileri
test_sequences = ["AATCGCC", "AATGC", "ATCGCC", "AATCG"]

# Algoritmayı çalıştırma
msa_result, total_score, _, _ = progressive_alignment(test_sequences)

# Sonuçları yazdırma
print("----- HİZALAMA SONUCU -----")
for idx, aligned_seq in enumerate(msa_result, start=1):
    print(f"Dizi {idx}: {aligned_seq}")
print(f"Toplam Skor: {float(total_score)}")
Örnek Terminal Çıktısı:
Plaintext
----- HİZALAMA SONUCU -----
Dizi 1: AATCGCC
Dizi 2: AATG-C-
Dizi 3: -ATCGCC
Dizi 4: AATCG--
Toplam Skor: 5.0
👨‍💻 Geliştirici
İsim: Ahmet Fatih Menteş

Öğrenci Numarası: 221201007

Ders: Biyoinformatik Final Projesi

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

ahmetmsa-1.0.0.tar.gz (4.5 kB view details)

Uploaded Source

Built Distribution

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

ahmetmsa-1.0.0-py3-none-any.whl (4.9 kB view details)

Uploaded Python 3

File details

Details for the file ahmetmsa-1.0.0.tar.gz.

File metadata

  • Download URL: ahmetmsa-1.0.0.tar.gz
  • Upload date:
  • Size: 4.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for ahmetmsa-1.0.0.tar.gz
Algorithm Hash digest
SHA256 faba4a8f880c99d22a426762c35a01cd27dbfdbaa45b5f828f4cea30472525dd
MD5 50f7f37be3f97b64a33dfc11a2a54ffe
BLAKE2b-256 fe7b8c5c639617f1e3a29d19f8e075fdd2925d554fdab3a6d78c4d91253e6f7a

See more details on using hashes here.

File details

Details for the file ahmetmsa-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: ahmetmsa-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 4.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for ahmetmsa-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e9507a3c7d292d2b8c36519eb821cee23e6e2493d2f1a83664224f8fd03a1e50
MD5 1c1bd85c313d7bf297ca509ede6bacc4
BLAKE2b-256 17d125b72769067ffc86fac0f5dbc222fad400cd6fe3a4ae1bd058f4c528d13b

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