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:
- Global İkili Hizalama (Needleman-Wunsch): Girilen diziler, dinamik programlama matrisi ($len(x)+1 \times len(y)+1$) oluşturularak ikişerli şekilde hizalanır.
- 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
- Match (Eşleşme):
- 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
Metadata
Release files for ahmetmsa 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| ahmetmsa-1.0.0.tar.gz | 4.5 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ahmetmsa-1.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 9.4 kB
Release files / ahmetmsa-1.0.0.tar.gz
| Download URL | ahmetmsa-1.0.0.tar.gz |
|---|---|
| Size | 4.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
faba4a8f880c99d22a426762c35a01cd27dbfdbaa45b5f828f4cea30472525dd
|
|
BLAKE2b-256 checksum How to use checksums |
fe7b8c5c639617f1e3a29d19f8e075fdd2925d554fdab3a6d78c4d91253e6f7a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.5
|
Release files / ahmetmsa-1.0.0-py3-none-any.whl
| Download URL | ahmetmsa-1.0.0-py3-none-any.whl |
|---|---|
| Size | 4.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e9507a3c7d292d2b8c36519eb821cee23e6e2493d2f1a83664224f8fd03a1e50
|
|
BLAKE2b-256 checksum How to use checksums |
17d125b72769067ffc86fac0f5dbc222fad400cd6fe3a4ae1bd058f4c528d13b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.5
|
Security for ahmetmsa 1.0.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.