Metadata-Version: 2.4
Name: zehramsa
Version: 1.0.1
Summary: Multiple Sequence Alignment via Dynamic Programming
Requires-Python: >=3.9
Description-Content-Type: text/markdown

**Dil / Language:** [🇹🇷 Türkçe](#türkçe) · [🇬🇧 English](#english)

---

<a name="türkçe"></a>

# zehramsa — Çoklu Dizi Hizalama Kütüphanesi

zehramsa, Needleman-Wunsch dinamik programlama algoritması ve Center Star Alignment yaklaşımını kullanarak birden fazla DNA dizisini hizalayan, saf Python ile yazılmış bir kütüphanedir. Harici bağımlılık gerektirmez; pip ile kurulabilir.

---

## Teknolojiler

- **Python 3.9+**
- **Needleman-Wunsch** — global pairwise hizalama (dinamik programlama)
- **Center Star Alignment** — çoklu dizi birleştirme stratejisi
- **pyproject.toml** — pip kurulum desteği

---

## Özellikler

- İkili dizi hizalama (Needleman-Wunsch DP)
- 3+ dizi için Center Star tabanlı MSA
- Özelleştirilebilir puanlama (match / mismatch / gap)
- Hizalama skoru ve kimlik yüzdesi hesaplama
- Tip ve girdi doğrulama ile açık hata mesajları

---

## Kurulum

```bash
pip install zehramsa
```

---

## Kullanım

```python
from zehramsa import align, SimpleScoring

result = align(["GATTACA", "GCATGCU", "GAGTACA"])
print(result)

result = align(["ACGT", "ACCT", "AGGT"], scoring=SimpleScoring(match=2.0, mismatch=-1.0, gap=-2.0))
print(result.center_sequence)
```

---

## Süreç

Proje, dinamik programlama ile çoklu dizi hizalamasının sıfırdan uygulanmasına odaklanır. Önce Needleman-Wunsch algoritması ayrı bir modül olarak kuruldu; ardından 3+ dizi için Center Star stratejisi entegre edildi. Tüm çiftler için NW tek seferde çalıştırılıp cache'lenerek gereksiz hesaplama tekrarı engellendi. API kasıtlı olarak tek giriş noktasına (`align()`) indirgendi.

---

---

<a name="english"></a>

# zehramsa — Multiple Sequence Alignment Library

zehramsa is a pure Python library that aligns multiple DNA sequences using the Needleman-Wunsch dynamic programming algorithm and Center Star Alignment strategy. No external dependencies required; installable via pip.

---

## Technologies

- **Python 3.9+**
- **Needleman-Wunsch** — global pairwise alignment (dynamic programming)
- **Center Star Alignment** — multi-sequence merging strategy
- **pyproject.toml** — pip installation support

---

## Features

- Pairwise sequence alignment (Needleman-Wunsch DP)
- MSA for 3+ sequences via Center Star approach
- Customizable scoring (match / mismatch / gap)
- Alignment score and identity percentage calculation
- Type and input validation with clear error messages

---

## Installation

```bash
pip install zehramsa
```

---

## Usage

```python
from zehramsa import align, SimpleScoring

result = align(["GATTACA", "GCATGCU", "GAGTACA"])
print(result)

result = align(["ACGT", "ACCT", "AGGT"], scoring=SimpleScoring(match=2.0, mismatch=-1.0, gap=-2.0))
print(result.center_sequence)
```

---

## The Process

The project focuses on implementing multiple sequence alignment from scratch using dynamic programming. Needleman-Wunsch was built as a standalone module first; Center Star strategy was then integrated for 3+ sequences. All pairwise NW results are computed once and cached to eliminate redundant computation. The public API was intentionally reduced to a single entry point (`align()`).
