Metadata-Version: 2.4
Name: biopygeon
Version: 1.0.0
Summary: The Last Mile Publication Aggregator CLI
Author-email: Bio Dev <dev@example.com>
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.9
Description-Content-Type: text/markdown
Requires-Dist: typer>=0.9.0
Requires-Dist: rich>=13.0.0
Requires-Dist: pandas>=2.0.0
Requires-Dist: matplotlib>=3.7.0
Requires-Dist: scipy>=1.10.0
Requires-Dist: requests>=2.25.0
Requires-Dist: beautifulsoup4>=4.9.0
Requires-Dist: reportlab>=4.0.0
Requires-Dist: semanticscholar>=0.8.0
Requires-Dist: biopython>=1.80
Requires-Dist: matplotlib-venn>=0.11
Requires-Dist: rdkit>=2023.3.1
Requires-Dist: gemmi>=0.6.2
Requires-Dist: meeko>=0.7.1
Requires-Dist: python-docx>=1.1.0
Requires-Dist: primer3-py>=2.0.1
Requires-Dist: networkx>=3.0
Requires-Dist: seaborn>=0.12.0
Requires-Dist: pyvis>=0.3.1
Requires-Dist: jinja2>=3.1.2
Requires-Dist: requests-cache>=1.0.0
Requires-Dist: tenacity>=8.2.0

# 🕊️ Biopygeon
**The Last Mile Publication Aggregator & Intelligent Bioinformatics Assistant**

Biopygeon adalah antarmuka baris perintah (CLI) inovatif yang mengintegrasikan instrumen bioinformatika (NCBI BLAST, ExPASy ProtParam, Enrichr, PDB) langsung dengan agen kecerdasan buatan (LLM - Groq). Alat ini dirancang untuk menjadi jembatan antara output mentah data biologis dan pembuatan visualisasi serta laporan berstandar jurnal Q1 (*Nature*, *Science*, *Elsevier*).

Berbeda dengan skrip statis konvensional, Biopygeon dibekali dengan **AI Router** yang secara dinamis dan otonom dapat memanggil hingga **17 alat cerdas (Tools)** berdasarkan percakapan (bahasa natural) dengan pengguna.

---

## 🚀 Fitur Utama

- 🤖 **Agen Asisten Cerdas Otonom (`biopygeon chat`)**: AI secara dinamis merutekan obrolan Anda ke 17 fungsi bioinformatika tanpa perlu Anda menghafal *command*.
- 🔬 **Katalog Lengkap Analisis Biologi**: Dari kalkulasi *ProtParam*, pencarian struktur 3D, *Multiple Sequence Alignment*, hingga desain primer kloning!
- 📊 **Visualisasi Q1 (Omics & Jaringan)**: Membuat *Bubble Plot*, merender jaringan interaktif (SSN), dan mengharmonisasi data CSV secara algoritmik.
- 📚 **Pencarian Literatur Tiga Mesin**: Akses simultan ke Semantic Scholar, OpenAlex, dan PubMed dengan manajemen API *Polite Pool* (bebas banned).
- 📑 **Penyusunan Metodologi & PDF Otomatis**: Menyusun narasi draf penelitian dan laporan eksekutif PDF secara instan dari hasil komputasi.

---

## 🛠️ Panduan Instalasi (Onboarding)

Pastikan Anda menggunakan Python 3.9 atau yang lebih baru.
```bash
pip install biopygeon
```

*Untuk kebutuhan pengembang (Developer) agar dapat menjalankan Unit Tests:*
```bash
pip install pytest pytest-mock responses
```

---

## 🔐 Autentikasi & Konfigurasi API

Sistem memerlukan autentikasi minimum untuk beroperasi optimal. Data kunci (Keys) dan Email akan disimpan aman secara lokal di `~/.bio_pipeline/config.json`.

**1. Mengatur API Keys dan Email**
Untuk mematuhi kebijakan *Polite Pool* (NCBI E-utilities & OpenAlex) dan mencegah pembatasan kecepatan (*rate limit*):
```bash
biopygeon auth set-key --groq-key "gsk_xxxx..." --s2-key "xxxx..." --email "anda@email.com"
```

**2. Verifikasi Status**
```bash
biopygeon auth status
```

---

## 🧠 Katalog Lengkap Alat AI (17 Smart Tools Blueprint)

Melalui perintah `biopygeon chat`, agen AI memiliki akses langsung ke *blueprint* alat berikut. Anda cukup meminta dalam bahasa manusia, dan AI akan merangkai parameter fungsinya!

### A. Modul Literatur & Pencarian (Literature Engine)
1. **`lit_search`**: Ekstraksi artikel dan metadata dari PubMed dan Semantic Scholar untuk menjawab pertanyaan (Q&A).
2. **`lit_search_bibliometrics`**: Ekstraksi jurnal berskala masif melalui OpenAlex untuk pemetaan jaringan publikasi (SSN).
3. **`export_results`**: Menyimpan dan mengonversi data hasil pencarian literatur ke format PDF, CSV, XML, JSON, TSV, atau FASTA.

### B. Modul Komputasi Biologi (Bio Engine)
4. **`find_protein`**: Melakukan kueri langsung ke RCSB PDB untuk menemukan struktur kristal 3D / NMR.
5. **`download_protein_data`**: Mengunduh dan mengekstrak berkas `.pdb` (struktur) atau `.fasta` (sekuens) dari RCSB PDB.
6. **`analyze_protparam`**: Mengkalkulasi sifat fisikokimia seperti titik isoelektrik (pI), berat molekul, dan indeks kestabilan (mengandalkan BioPython).
7. **`calculate_protein_params`**: Ekstensi kalkulasi massa untuk protein rekombinan (misalnya ditambahkan dengan tag purifikasi seperti His-tag).
8. **`run_blast`**: Eksekusi *remote* NCBI BLAST (blastp/blastn) dengan *parsing* data HSP secara real-time.
9. **`run_msa`**: Memicu *Multiple Sequence Alignment* secara asinkron menggunakan server EBI Clustal Omega.
10. **`extract_domain`**: Mengekstrak domain/nukleotida spesifik dari genom lengkap berdasarkan pencocokan motif (RegEx).
11. **`design_primer`**: Mendesain dan memvalidasi pasangan oligonukleotida (primer) untuk reaksi PCR dan perakitan kloning (*Primer3* wrapper).
12. **`prepare_docking`**: Melakukan pra-pemrosesan model PDB dengan membersihkan molekul pelarut (H2O) dan membuang rantai heteroatom.

### C. Modul Data Omics & Visualisasi (Pipeline Engine)
13. **`harmonize_data`**: Pra-pemrosesan Data CSV (*Baseline correction ALS*, imputasi *missing value* dengan *mean/median*).
14. **`plot_enrichment`**: Menggenerasi grafik *Bubble Plot* berkualitas publikasi dari dataset *Enrichment*.
15. **`render_network`**: Mengomputasi kolom target & sumber (*edges*) menjadi diagram SSN format HTML interaktif.
16. **`plot_q1_figure`**: Pembuatan gambar beresolusi 300 DPI dengan palet warna ala *Nature* atau *Elsevier* (tersedia *Boxplot*, *Violin*, *Scatter*).
17. **`generate_methodology`**: Asisten merumuskan dan menulis ulang parameter data ke dalam draf paragraf "Metode Penelitian".

---

## 💬 Contoh Interaksi Pengguna (AI Chat Mode)

Daripada menghafal 17 format perintah CLI (meski opsi ini tetap ada), metode interaksi utama dan yang direkomendasikan adalah **Obrolan AI**.

Mulai sesi interaktif:
```bash
biopygeon chat
```

**Anda dapat mengetikkan perintah natural seperti:**
- *"Cari 10 jurnal terbaru tentang terapi sel punca."* (Memicu `lit_search`)
- *"Berapa bobot molekul dan pI dari sekuens protein MLRYAIL?"* (Memicu `analyze_protparam`)
- *"Jalankan BLAST untuk 1SLT_A dan tolong unduhkan data strukturnya."* (Memicu `run_blast` dan `download_protein_data`)
- *"Buat plot jaringan SSN interaktif dari file interaksi.csv"* (Memicu `render_network`)
- *"Bersihkan molekul air pada protein_saya.pdb agar siap didocking"* (Memicu `prepare_docking`)

AI akan secara pintar menangani parameter (*routing*), menanyakan jika ada data masukan yang kurang, dan menyajikan hasil beserta opsi pembuatan laporan eksekutif berformat PDF.

---

## 🧪 Validasi Perangkat Lunak (QA & Testing)

Sebagai perangkat lunak kelas penelitian (*Research-Grade Software*), Biopygeon menggunakan *Unit Testing* ketat dengan isolasi API (*API Mocking*) agar *test suite* dapat dijalankan tanpa menghabiskan kuota jaringan.

Untuk memvalidasi integritas 17 fungsi sebelum pembaruan (diperlukan `pytest`):
```bash
$env:PYTHONPATH="."  # Untuk pengguna Windows
# atau export PYTHONPATH="." untuk Mac/Linux

python -m pytest tests/
```
Uji coba otomatis mengeksekusi *Dummy Responses* (XML dari PubMed, JSON dari OpenAlex, RCSB, dsb) untuk memastikan seluruh pipa data (*pipeline*) stabil 100%.

---

*Dikembangkan untuk mentransformasi analisis bioinformatika yang kompleks menjadi dialog sederhana — dari data mentah menuju publikasi Q1 secara instan.*
