Instructions to use SevdanurGenc/Genetics-AI with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Keras
How to use SevdanurGenc/Genetics-AI with Keras:
# !pip install -U keras tensorflow huggingface_hub # Keras needs TensorFlow installed to read "hf://" paths, so the tensorflow backend is selected here; # "jax" and "torch" also work for computation once TensorFlow is installed. import os os.environ["KERAS_BACKEND"] = "tensorflow" import keras model = keras.saving.load_model("hf://SevdanurGenc/Genetics-AI") - Notebooks
- Google Colab
- Kaggle
File size: 11,489 Bytes
88e90c6 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 | <p align="center"><img src="mobil/ikon.png" width="96" alt="Genetik YZ simgesi"></p>
<h1 align="center">Genetik YZ</h1>
<p align="center"><i>Karyotip analizi ve DNA dizisinin görüntüsü</i></p>
<p align="center"><b>Türkçe</b> · <a href="README.en.md">English</a></p>
<p align="center">
<img alt="Android 5.0+" src="https://img.shields.io/badge/Android-5.0%2B-3DDC84?logo=android&logoColor=white">
<img alt="Çevrimdışı" src="https://img.shields.io/badge/internet-gerekmez-0B5CAD">
<img alt="Eğitim amaçlı" src="https://img.shields.io/badge/kullan%C4%B1m-e%C4%9Fitim%20ama%C3%A7l%C4%B1-E0A526">
</p>
İki bölümlü eğitim uygulaması: Karyotip sekmesi bir metafaz görüntüsünden kromozomları sayar, tiplerini tanır ve karyotip formülünü (ör. 47,XX,+21) verir; DNA → Görüntü sekmesi bir gen dizisini Kaos Oyunu ile görüntüye çevirip gen ailesini tahmin eder.
<p align="center"><img src="ekran_goruntuleri/g2_formul.png" width="280" alt="Genetik YZ ekran görüntüsü"> <img src="ekran_goruntuleri/g6_dna_sonuc.png" width="280" alt="Genetik YZ ekran görüntüsü"></p>
> [!IMPORTANT]
> **Yalnızca eğitim amaçlıdır.** Klinik tanı veya tedavi kararında kullanılamaz.
## Özet
| Özellik | Değer |
| --- | --- |
| Paket adı | tr.saglikyz.genetik |
| Sürüm | 1.0 |
| Gereksinim | Android 5.0 ve üzeri |
| Boyut | 2,3 MB |
| İnternet izni | Yok |
| Karyotip modeli | Otsu eşikleme + 24 sınıflı CNN; kromozom başına %99 doğru tip |
| DNA modeli | 6-mer FCGR + lojistik regresyon; sızıntısız test %79 |
| Veri | 160 simüle metafaz (test) · 4.380 insan gen dizisi |
**İndir:** [`Genetik_YZ.apk`](Genetik_YZ.apk)
## İçindekiler
- [Kurulum](#kurulum)
- [Karyotip sekmesi](#karyotip-sekmesi)
- [DNA → Görüntü sekmesi](#dna--görüntü-sekmesi)
- [Sorun giderme](#sorun-giderme)
- [Sunumda kullanım](#sunumda-kullanım)
- [Veri ve model](#veri-ve-model)
- [Geliştiriciler için](#geliştiriciler-için)
## Kurulum
Uygulama Play Store'da değildir; APK dosyasıyla doğrudan kurulur. Android 5.0 ve üzeri gerekir.
1. `Genetik_YZ.apk` dosyasını telefona aktarın (WhatsApp, e-posta, Google Drive veya USB kablo).
2. Telefonda **Dosyalar** veya **İndirilenler** klasöründen APK'ya dokunun.
3. "Bilinmeyen uygulamaları yükle" uyarısı çıkarsa **Ayarlar**'a dokunun, dosyayı açtığınız uygulama (ör. Dosyalar, Chrome) için **Bu kaynaktan izin ver**'i açın ve geri dönün.
4. **Yükle**'ye dokunun. Play Protect "tanınmayan geliştirici" uyarısı verirse **Ayrıntılar → Yine de yükle**'yi seçin.
5. Uygulama simgesi ana ekranda veya uygulama listesinde görünür.
**Bilgisayarda açmak için:** `mobil/www/index.html` dosyasını Chrome veya Edge ile açın; kurulum ve internet gerekmez. Sunumda projeksiyona yansıtmanın en kolay yolu budur (telefon görünümü için F12 → cihaz simgesi).
## Karyotip sekmesi
1. Uygulama Karyotip sekmesinde açılır. Sekiz örnek hücreden birine dokunun: 46,XX · 46,XY · iki Down · Edwards · Patau · Turner · Klinefelter. Ya da **Galeriden görüntü seç** ile kendi görüntünüzü yükleyin.
2. Yaklaşık 1 saniye içinde sonuç kartı açılır: en üstte modelin karyotip formülü ve klinik yorumu.
3. Altındaki görüntüde her nesne bir kutuyla işaretlenir ve her kromozomun yanına modelin verdiği numara yazılır.
<p align="center"><img src="ekran_goruntuleri/g1_acilis.png" width="280" alt="Şekil 1. Sol: Karyotip sekmesi ve örnek hücreler. Sağ: 47,XX,+21 sonucu ve işaretli kromozomlar."> <img src="ekran_goruntuleri/g2_formul.png" width="280" alt="Şekil 1. Sol: Karyotip sekmesi ve örnek hücreler. Sağ: 47,XX,+21 sonucu ve işaretli kromozomlar."></p>
<p align="center"><sub>Şekil 1. Sol: Karyotip sekmesi ve örnek hücreler. Sağ: 47,XX,+21 sonucu ve işaretli kromozomlar.</sub></p>
| Kutu rengi | Anlamı |
| --- | --- |
| Yeşil | Tek kromozom; sayıma ve sınıflandırmaya katıldı |
| Turuncu | Küme: değen veya üst üste binen kromozomlar; sayılamadı, sonuçta uyarı çıkar |
| Mavi | Ara faz çekirdeği; sayıma katılmaz |
4. Aşağı kaydırın: **Dijital karyogram**, kromozomları 1'den 22'ye ve X, Y'ye dizer. Sayısı beklenenden farklı olan tip kırmızı yazılır ve parantez içinde adedi gösterilir, örneğin **21 (3)**.
5. En altta bulunan nesne sayıları ve analiz süresi yer alır.
<p align="center"><img src="ekran_goruntuleri/g3_karyogram.png" width="280" alt="Şekil 2. Sol: dijital karyogram, 21 numaralı kromozomdan 3 adet. Sağ: Turner örneğinde 45,X."> <img src="ekran_goruntuleri/g4_turner.png" width="280" alt="Şekil 2. Sol: dijital karyogram, 21 numaralı kromozomdan 3 adet. Sağ: Turner örneğinde 45,X."></p>
<p align="center"><sub>Şekil 2. Sol: dijital karyogram, 21 numaralı kromozomdan 3 adet. Sağ: Turner örneğinde 45,X.</sub></p>
```mermaid
flowchart LR
A[Metafaz görüntüsü] --> B[Otsu eşikleme]
B --> C[Bağlı bileşenler]
C --> D{Nesne türü}
D -->|tek kromozom| E[Dik çevir, 80×24 kes]
D -->|küme / çekirdek| X[Sayıma katılmaz]
E --> F[CNN: 24 sınıf]
F --> G[Her tipe en fazla 2 kromozom]
G --> H[Karyotip formülü + karyogram]
```
> [!NOTE]
> **Karyotip sekmesinin sınırları:** Model yalnızca bilgisayarda **simüle edilmiş** G-bantlı metafazlarla eğitildi; gerçek mikroskop fotoğraflarında sonuç güvenilir değildir. Yalnızca sayısal anomalileri yakalar; translokasyon ve delesyon gibi yapısal anomalileri göremez. Ayrık kromozomlu hücrelerde formülü tam doğru bulma oranı yaklaşık %79'dur.
## DNA → Görüntü sekmesi
1. Üstteki **DNA → Görüntü** sekmesine dokunun.
2. Dokuz örnek genden birini seçin (yedi insan geni, her gen ailesinden bir tane; bir şempanze ve bir köpek geni) ya da kutuya kendi dizinizi yapıştırın. FASTA biçimi (`>` ile başlayan başlık satırı) kabul edilir; en az 50 nükleotit gerekir.
3. **Görüntüye çevir ve sınıflandır**'a dokunun (örnek seçildiğinde kendiliğinden çalışır).
<p align="center"><img src="ekran_goruntuleri/g5_dna_acilis.png" width="280" alt="Şekil 3. Sol: DNA sekmesi ve örnek genler. Sağ: iyon kanalı geninin Kaos Oyunu görüntüsü ve tahmin."> <img src="ekran_goruntuleri/g6_dna_sonuc.png" width="280" alt="Şekil 3. Sol: DNA sekmesi ve örnek genler. Sağ: iyon kanalı geninin Kaos Oyunu görüntüsü ve tahmin."></p>
<p align="center"><sub>Şekil 3. Sol: DNA sekmesi ve örnek genler. Sağ: iyon kanalı geninin Kaos Oyunu görüntüsü ve tahmin.</sub></p>
| Ekrandaki öğe | Anlamı |
| --- | --- |
| Kaos oyunu (sol kare) | Her nükleotit bir nokta. Köşeler A (sol alt), C (sol üst), G (sağ üst), T (sağ alt) |
| FCGR 64×64 (sağ kare) | Her piksel bir 6 harflik dizi parçasının (6-mer) sıklığı; parlak = sık |
| Gen ailesi tahmini | Yedi gen ailesinin olasılıkları, en olasıdan en aza |
| Alt satır | Dizi uzunluğu, sayılan 6-mer adedi; örnek gende gerçek aile |
4. **Karara katkı veren 6-mer'leri göster** kutusunu işaretleyin: sağ kare, tahmin edilen aile lehine (kırmızı) ve aleyhine (mavi) oy veren dizi parçalarını gösterir.
<p align="center"><img src="ekran_goruntuleri/g7_dna_katki.png" width="300" alt="Şekil 4. Karara katkı veren 6-mer'ler açıkken."></p>
<p align="center"><sub>Şekil 4. Karara katkı veren 6-mer'ler açıkken.</sub></p>
**Kaos Oyunu nedir?** Karenin köşelerine A, C, G, T konur; ortadan başlanır ve her harfte, bulunulan nokta ile o harfin köşesinin tam ortasına gidilir (Jeffrey, 1990). Ortaya çıkan desen dizideki tüm k-mer'lerin sıklığını tek bir resimde gösterir.
> [!NOTE]
> **DNA sekmesinin sınırları:** Model yalnızca yedi gen ailesini tanır (G-proteine bağlı reseptör, tirozin kinaz, tirozin fosfataz, sentetaz, sentaz, iyon kanalı, transkripsiyon faktörü); başka bir dizi verilse de bu yedisinden birini seçer. Benzer diziler ayrılarak ölçülen doğruluk insan genlerinde yaklaşık %79'dur.
## Sorun giderme
| Sorun | Çözüm |
| --- | --- |
| "Uygulama yüklenmedi" | Aynı paket adıyla eski bir sürüm var: önce eskisini kaldırın, sonra tekrar yükleyin. |
| "Bu tür dosya cihazınıza zarar verebilir" | Tarayıcının indirme uyarısıdır; **Yine de indir** deyin. Uygulama internet izni istemez. |
| Kurulumda Play Protect uyarısı | **Ayrıntılar → Yine de yükle**. |
| Sonuç geç geliyor | Eski telefonlarda karyotip analizi birkaç saniye sürebilir; düğmeye tekrar basmayın. |
| Turuncu kutular ve "sayılamadı" uyarısı | Kromozomlar birbirine değiyor; bu hücre sayım için uygun değil, daha iyi yayılmış bir hücre seçin. |
| "En az 50 nükleotit" uyarısı | Dizide yalnızca A, C, G, T sayılır; protein (amino asit) dizisi kabul edilmez. |
## Sunumda kullanım
46,XX ile 47,XX,+21'i art arda açıp karyogramdaki kırmızı **21 (3)** etiketini gösterin. Sonra DNA sekmesinde aynı aileden insan ve köpek geninin Kaos Oyunu desenlerini karşılaştırın.
## Veri ve model
Metafaz görüntüleri bu proje için `karyotip_sim.py` ile **simüle edildi** (gerçek göreli uzunluklar, sentromer konumları, tipe özgü bant desenleri); gerçek hasta verisi değildir. DNA dizileri: N. Singh, *DNA sequence dataset* (Kaggle) — 4.380 insan, 1.682 şempanze, 820 köpek geni. Ayrıntılar: not defterleri 3.1–3.3.
## Geliştiriciler için
### Klasör yapısı
```
03_Genetik/
├── 3_1_Metafazdan_Kromozom_Sayimina.ipynb
├── 3_2_YZ_ile_Kromozom_Tanima_ve_Karyogram.ipynb ← kromozom_model.js
├── 3_3_DNA_Dizisinden_Goruntuye_CGR.ipynb ← dna_model.js
├── karyotip_sim.py ← sentetik metafaz üreteci
├── kromozom_isleme.py ← sayım ve kesme (karyotip.js ile birebir)
├── dna_goruntu.py ← Kaos Oyunu / FCGR (dna.js ile birebir)
├── yz_aktar.py
├── veri/ metafaz/ (160 görüntü + etiketler.json) · dna/
├── model/
├── mobil/
│ ├── www/ index.html · app.js · karyotip.js · dna.js · yzmotor.js · *_model.js · ornek_*.js
│ ├── ikon.png
│ └── apk_derleme/
└── Genetik_YZ.apk
```
### APK'yı yeniden derlemek
Uygulama, `mobil/www/` içindeki HTML + JavaScript'i gösteren çok küçük bir Android WebView kabuğudur; Gradle veya Android Studio gerekmez. Ubuntu/Debian'da:
```bash
sudo apt install android-sdk android-sdk-platform-23 openjdk-17-jdk
./mobil/apk_derleme/build_apk.sh mobil/www tr.saglikyz.genetik "Genetik YZ" "#0a5257" mobil/ikon.png Genetik_YZ.apk
```
`mobil/apk_derleme/saglikyz.keystore` yalnızca eğitim için oluşturulmuş bir imza anahtarıdır (parolası betikte yazılıdır). Uygulamayı dağıtacaksanız kendi anahtarınızı üretin: `keytool -genkeypair -keystore benim.keystore -alias benim -keyalg RSA -keysize 2048 -validity 10000`.
### Modeli yeniden eğitmek
Model dosyaları (`mobil/www/*model*.js`) not defterlerinin son bölümünde üretilir. Not defterini baştan çalıştırıp yukarıdaki derleme komutunu tekrarlamak yeterlidir. Not defteri, telefondaki JavaScript motorunun Python modeliyle aynı sonucu verdiğini de otomatik olarak doğrular.
## Lisans ve atıf
Kod ve kılavuz eğitim amacıyla paylaşılmıştır. Kullanılan veri setleri kendi lisanslarına tabidir; yayınlarda veri setinin özgün kaynağına atıf yapın. Uygulamanın verdiği sonuçlar tıbbi tavsiye değildir.
|