Kazanimlar:
- Dizi hizalama, motif arama ve açık okuma çerçevesi (ORF) kavramlarını kavrayıp yapay zekaya çalıştırılabilir, doğrulanabilir Biopython/analiz kodu ürettirebilme
- Yapay zekanın ürettiği dizi ve kodda çerçeve, iplik (strand) ve genom sürümü varsayımlarını denetleyip sonucu bilinen bir referansla karşılaştırabilme
- Yapay zekanın kafadan verdiği hiçbir diziyi kullanmama ve her diziyi NCBI/Ensembl gibi birincil kaynaktan teyit etme disiplinini uygulayabilme
Dizi analizi, moleküler biyolojinin en temel işidir: A, T, G, C harflerinden oluşan bir DNA ipliğini (ya da RNA'da U'yu) okumak, karşılaştırmak, içindeki anlamlı bölgeleri (genler, motifler, düzenleyici diziler) bulmak. Bu ünitede, yapay zekayı (YZ) bu işlerde bir kod yazan ve yorumlayan ortak olarak nasıl kullanacağınızı; ama sonucu neden her zaman çalıştırılabilir kod ve birincil kaynakla doğrulamanız gerektiğini öğreneceksiniz. Temel araç setimiz Biopython (biyolojik dizilerle çalışmak için yazılmış bir Python kütüphanesi) ve resmi hizalama araçları olacak.
Önce bir uyarı: LLM, kısa bir diziyi bile ezberden yanlış üretebilir. Bir dizinin ters tümleyicisini (reverse complement — DNA'nın karşı ipliğinin dizisi, örneğin 5'-ATG-3' ipliğinin karşılığı 3'-TAC-5') kafadan hesaplaması istendiğinde bir harfi karıştırabilir. Bu yüzden dizi işlemlerini asla YZ'nin metin cevabına güvenerek değil, YZ'nin yazdığı ve sizin çalıştırdığınız kodla yapın.
Temel kavramlar: neyle çalışıyoruz?
- Baz çifti (bp): DNA'nın harf birimi. İnsan genomu yaklaşık 3,2 milyar bp'dir.
- İplik (strand): DNA çift sarmaldır; iki iplik birbirinin ters tümleyicisidir. Bir varyant hangi iplikte bildirildi, bu önemlidir.
- Kodon: Üç bazlık grup; her kodon bir amino aside (proteinin yapı taşı) karşılık gelir. Örneğin ATG genellikle başlangıç kodonudur (metiyonin).
- Açık okuma çerçevesi (ORF — Open Reading Frame): Başlangıç kodonundan durdurma kodonuna (TAA, TAG, TGA) kadar uzanan, protein kodlayabilecek dizi bölgesi.
- Motif: Belirli bir işlevi olan, tekrar eden kısa dizi kalıbı; örneğin bir transkripsiyon faktörünün bağlandığı bölge.
- Hizalama (alignment): İki ya da daha çok diziyi, benzerliklerini görecek biçimde alt alta yerleştirme.
Adım adım: dizi analizi iş akışı
1. Diziyi güvenilir kaynaktan al. Diziyi YZ'ye "hatırlat" dedirtmeyin; NCBI, Ensembl gibi bir kaynaktan FASTA (dizileri saklayan standart metin biçimi) olarak indirin ve YZ'ye bu diziyi verin.
2. İşlemi kodla yaptırın. Ters tümleyici, transkripsiyon (DNA→RNA), translasyon (RNA→protein), GC oranı gibi işlemleri Biopython koduyla yaptırın ve kodu siz çalıştırın.
3. Çerçeve ve iplik varsayımlarını kontrol edin. Kodun hangi iplikte, hangi okuma çerçevesinde çalıştığını yorum satırında açıkça belirtmesini isteyin.
4. Sonucu bilinen referansla karşılaştırın. Ürettiğiniz proteini ya da ORF'yi, veri tabanındaki bilinen kayıtla eşleştirin. Uzunluk ve başlangıç uyuşmazlığı en sık hataları yakalar.
5. Hizalamayı resmi araçla teyit edin. İki dizinin benzerliğini YZ'ye "göz kararı" yaptırmayın; BLAST (dizi benzerliği arama aracı) ya da bir hizalama kütüphanesiyle sayısal skor alın.
İpucu: Dizi uzunluğu her zaman ilk kontrolünüz olsun. Bir proteinin amino asit sayısı, kodlayan dizinin baz sayısının yaklaşık üçte biridir (durdurma kodonu hariç). Uzunluk tutmuyorsa çerçeve ya da iplik yanlıştır.
Üç mini vaka
Vaka 1 — Ters tümleyici hatası. Bir öğrenci, YZ'ye 5'-GATTACA-3' dizisinin ters tümleyicisini sordu; YZ "TGTAATC" verdi (doğru). Ancak 20 bazlık daha uzun bir dizide YZ bir bazı atladı ve sonuç 19 baz çıktı. Öğrenci Biopython'da Seq("...").reverse_complement() ile çalıştırınca 20 baz aldı ve hatayı yakaladı. Kaybedilen zaman: 2 dakika.
Vaka 2 — Çerçeve kayması. Bir araştırmacı, 900 bazlık bir kodlayan diziyi proteine çevirtti; YZ metinle 280 amino asitlik bir protein "okudu". Beklenen 299 amino asitti (900/3 − 1 durdurma). Fark, YZ'nin ikinci nükleotitten başlamasıydı. Kod ilk çerçeveden başlatılınca doğru uzunluk elde edildi.
Vaka 3 — Doğrulama kazandırdı. Bir laboratuvar teknisyeni, iki bakteri suşunun 16S rRNA dizilerini "aynı mı?" diye YZ'ye sordu; YZ "büyük olasılıkla aynı" dedi. Teknisyen BLAST çalıştırınca %97,8 benzerlik ve 12 baz farkı gördü — tür düzeyinde ayrım için kritik bir fark. Sayısal skor olmasa, yanlış "aynı" sonucu rapora girecekti.
Örnek: doğrulanabilir bir Biopython akışı
from Bio.Seq import Seq# Diziyi NCBI'den indirdiğiniz FASTA'dan alın; YZ'ye "hatırlat" dedirtmeyin.dna = Seq("ATGGCCATTGTAATGGGCCGCTGAAAGGGTGCCCGATAG")print("Uzunluk (bp):", len(dna))print("GC orani (%):", round(100 * (dna.count("G") + dna.count("C")) / len(dna), 1))print("Ters tumleyici:", dna.reverse_complement())# 1. cerceveden translasyon; durdurma kodonuna kadarprotein = dna.translate(to_stop=True)print("Protein:", protein, "| Uzunluk (aa):", len(protein))
Bu kodu YZ yazsa da, çıktının doğruluğunu siz çalıştırarak görürsünüz. Uzunluk, GC oranı ve protein, bilinen referansla karşılaştırılabilir.
Dört kopyalanabilir şablon
1) Doğrulanabilir dizi işlemi:
Şu FASTA dizisi için çalıştırılabilir bir Biopython kodu yaz: [dizi/görev].Uzunluk, GC oranı, ters tümleyici ve 1. çerçeveden translasyonu hesaplasın.Hangi iplik ve çerçeve varsayıldığını yorum satırında yaz.Diziyi sen üretme; yalnızca benim verdiğim diziyi kullan.
2) ORF tarama:
Verilen dizide üç okuma çerçevesinin de (ve isteğe bağlı ters iplikte üçünün de)tüm açık okuma çerçevelerini bulan bir Python kodu yaz.Her ORF için başlangıç konumu, uzunluk ve çevrilmiş proteini raporla.En uzun ORF'yi ayrıca işaretle.
3) Hizalama teyidi:
İki diziyi karşılaştırmak istiyorum. "Benzer mi?" diye göz kararı verme;bir hizalama (pairwise alignment) kodu yaz, benzerlik yüzdesini vefark sayısını sayısal olarak raporla. Kaynak: [dizi 1], [dizi 2].
4) Motif arama:
Verilen dizide şu motifi (düzenli ifade olarak da olabilir) ara: [motif].Tüm eşleşmelerin konumunu (1-tabanlı) listele.Örtüşen eşleşmeleri de yakalayacak biçimde yaz ve bunu belirt.
Zayıf prompt / Güçlü prompt
Zayıf: "Bu dizinin proteinini yaz: ATGGCC..."
Sorun: YZ metinle çevirir, çerçeveyi/ipliği karıştırabilir, uzunluğu doğrulayamazsınız.
Güçlü: "Şu diziyi 1. çerçeveden çeviren, uzunluğu ve durdurma kodonunu raporlayan çalıştırılabilir bir Biopython kodu yaz; diziyi değiştirme, yalnızca benim verdiğimi kullan: ATGGCC..."
Neden güçlü: İşlem kodla yapılır, çerçeve nettir, çıktı sayısal olarak doğrulanabilir.
Görev
Yanlış yaklaşım
Doğru yaklaşım
Ters tümleyici
YZ metinle yazsın
Biopython reverse_complement()
Translasyon
YZ ezberden çevirsin
Kodla, çerçeve belirtilerek
Benzerlik
"Benzer mi?" göz kararı
BLAST/hizalama skoru
Motif
YZ elle saysın
Kodla, konum listesiyle
Dizi kaynağı
YZ hatırlasın
NCBI/Ensembl'den FASTA
Sık yapılan hatalar
- Çerçeveyi belirtmemek. Yanlış çerçeveden translasyon, kısa ya da hatalı protein verir.
- İpliği karıştırmak. Varyant ya da motif ters iplikte olabilir; iplik varsayımı yazılmalı.
- Diziyi YZ'ye ezberletmek. LLM uzun diziyi hatasız üretemez; diziyi hep siz sağlayın.
- Benzerliği göz kararı vermek. Sayısal skor olmadan "aynı/benzer" demeyin.
- RNA/DNA karışımı. U ile T'yi karıştırmak translasyonu bozar; girdi tipini netleştirin.
Dikkat: BLAST ve benzeri araçlarda yüksek benzerlik yüzdesi bile biyolojik olarak "aynı" anlamına gelmeyebilir; e-değeri (rastlantı olasılığı) ve hizalanan bölgenin uzunluğu birlikte değerlendirilmelidir.
Derinlik: bir BLAST çıktısını doğru okumak
Yapay zekaya bir BLAST sonucunu yorumlatmak zaman kazandırır; ama üç sayıyı kendiniz okumadan hiçbir karar vermeyin. Birincisi e-değeri (expected value): bu skorun tesadüfen kaç kez ortaya çıkabileceğinin beklenen sayısıdır; 1e-50 gibi çok küçük bir değer güçlü, 0,1 gibi bir değer neredeyse gürültü demektir. İkincisi kapsam (query coverage): eşleşmenin sorgu dizisinin yüzde kaçını kapsadığıdır; %98 benzerlik ama yalnızca %20 kapsam, dizinin küçük bir parçasının benzediği anlamına gelir ve yanıltıcıdır. Üçüncüsü kimlik yüzdesi (percent identity). Bu üçü birlikte okunmadan tek başına yüksek bir yüzde hiçbir şey ispatlamaz.
Somut bir örnek: bir araştırmacı yeni dizdiği bir gen parçasını BLAST'ladı; yapay zeka "insan BRCA2 ile %99 eşleşiyor, aynı gen" dedi. Araştırmacı çıktıya baktığında kapsamın yalnızca %15 olduğunu gördü — eşleşen kısım BRCA2'nin binlerce bazından yalnızca kısa, tekrar içeren bir bölgeydi. Doğru yorum "aynı gen" değil, "ortak bir tekrar motifi paylaşıyor" idi. Kapsamı okumak, tümüyle yanlış bir kimliklendirmeyi önledi.
BLAST sütunu
Ne söyler
Tuzak
E-value
Rastlantı olasılığı
Yüksekse eşleşme anlamsız olabilir
Query coverage
Kapsanan sorgu oranı
Düşükse yüzde yanıltıcıdır
Percent identity
Eşleşen baz oranı
Tek başına yeterli değildir
Bit score
Normalize hizalama gücü
Uzunluğa göre yorumlanır
5) BLAST çıktısı yorumlama şablonu:
Şu BLAST tablosunu yorumla ama karar verme: her satır için e-değeri,query coverage ve percent identity'yi ayrı ayrı özetle."Aynı gen" gibi bir sonuca varmadan önce hangi eşiklerin sağlanmasıgerektiğini belirt. Tablo: [yapıştır].
Özetle
- Dizi işlemleri (ters tümleyici, translasyon, ORF, GC oranı) YZ'nin metin cevabıyla değil, YZ'nin yazıp sizin çalıştırdığınız kodla yapılmalıdır.
- Çerçeve ve iplik varsayımları her zaman açıkça belirtilmelidir; uzunluk kontrolü en hızlı hata yakalama aracıdır.
- Diziyi daima güvenilir kaynaktan (NCBI, Ensembl) alın; YZ'ye ezberletmeyin.
- Benzerlik ve hizalama, göz kararıyla değil, resmi araç ve sayısal skorlarla değerlendirilir.
Uygulama görevi
Güvenilir bir kaynaktan (örneğin NCBI) kısa bir kodlayan dizi indirin. Yukarıdaki 1. ve 2. şablonlarla YZ'den bir Biopython kodu isteyin, kodu çalıştırın; ürettiğiniz proteinin uzunluğunu ve dizisini veri tabanındaki bilinen kayıtla karşılaştırın. Bir uyuşmazlık bulursanız çerçeve/iplik varsayımını değiştirerek düzeltmeye çalışın ve süreci not edin.
Kontrol listesi
- [ ] Diziyi güvenilir bir kaynaktan aldım, YZ'ye ezberletmedim.
- [ ] Dizi işlemlerini çalıştırılabilir kodla yaptım.
- [ ] Çerçeve ve iplik varsayımını açıkça belirledim.
- [ ] Protein/ORF uzunluğunu referansla karşılaştırdım.
- [ ] Benzerliği resmi araç ve sayısal skorla değerlendirdim.
- [ ] RNA/DNA ve U/T ayrımını kontrol ettim.