Metadata-Version: 2.4
Name: ErenMSA
Version: 0.1.0
Summary: Simplified MAFFT-inspired multiple sequence alignment package
Author: Eren Savas
License-Expression: MIT
Keywords: bioinformatics,msa,mafft,sequence-alignment
Classifier: Programming Language :: Python :: 3
Classifier: Operating System :: OS Independent
Classifier: Intended Audience :: Education
Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
Requires-Python: >=3.9
Description-Content-Type: text/markdown

# ErenMSA

MAFFT algoritmasının **temel progressive alignment mantığını** izleyen, eğitim amaçlı **sadeleştirilmiş** bir Multiple Sequence Alignment (MSA) Python paketidir.

> Not: Bu proje gerçek MAFFT'in tüm optimize bileşenlerini ve FFT tabanlı hızlandırmalarını birebir içermez. Amaç, algoritmanın çekirdek mantığını kısa ve açıklanabilir bir yapıyla göstermektir.

## Özellikler

- FASTA dosyası okuma
- Needleman-Wunsch ile ikili hizalama
- En benzer başlangıç çiftini seçme
- Progressive şekilde kalan dizileri mevcut hizalamaya ekleme
- Komut satırından kullanım

## Kurulum

Yerelde proje klasöründeyken:

```bash
pip install .
```

PyPI'ye yüklendikten sonra:

```bash
pip install ErenMSA
```

## Kullanım

### Komut satırından

```bash
erenmsa examples/sample.fasta
```

### Python içinden

```python
from erenmsa import msa, format_alignment

names, alignment = msa("examples/sample.fasta")
print(format_alignment(names, alignment))
```

## Örnek FASTA

```fasta
>seq1
ACTGGA
>seq2
ACTGA
>seq3
ATGGA
>seq4
ACTAGA
```

## Projenin mantığı

1. Tüm diziler arasında ikili hizalama skorları hesaplanır.
2. En benzer iki dizi başlangıç hizalaması olarak seçilir.
3. Mevcut hizalamadan bir consensus dizi çıkarılır.
4. Kalan diziler bu hizalamaya sırayla eklenir.

## Dosya yapısı

```text
ErenMSA/
├── pyproject.toml
├── README.md
├── LICENSE
├── examples/
│   └── sample.fasta
└── erenmsa/
    ├── __init__.py
    ├── __main__.py
    └── msa_mafft.py
```

## Savunmada kullanılabilecek kısa açıklama

Bu projede MAFFT algoritmasının temel progressive alignment mantığını takip eden sadeleştirilmiş bir çoklu dizi hizalama sistemi geliştirilmiştir. Önce en benzer iki dizi seçilmiş, ardından kalan diziler mevcut hizalamadan elde edilen consensus dizi yardımıyla sırayla hizalamaya eklenmiştir.
