Yaşamımıza anlam katan, bizi oluşturan, canlıların veri tabanı DNA’yı inceleyen Biyoinformatik bilim dalını inceleyelim. Biyoloji, matematik gibi temel bilimlerinin yanı sıra bilgisayar bilimlerini de içeren multidisipliner bilim dalıdır.
Biyoinformatik Nedir?
Biyoinformatik, anlaşılması zor biyolojik verinin insanların anlayabilecek düzeye bilgisayarlar sayesinde indirgenmesi ve analiz edilmesini sağlayan yöntemlerdir diyebiliriz. Sadece yöntemlerle kısıtlı olmayan bu alan ilginç algoritma tasarımları ve değişik uygulamalar da içermektedir. Daha sonraki kısımlarda bu algoritmalardan ve uygulamalardan kısaca bahsedeceğim.
Biyoinformatik, genç bir bilim dalıdır. 4 harfli bir alfabe ile kodlanan genetik bilginin, 20 harfli bir alfabeyi kullanan proteinlere çevrilmesini inceler. Bu kodlanan proteinler, tek hücreli ve çok hücreli canlılara göre önemli işlevlerinin gerçekleşmesini sağlayan üç boyutlu katlanmaları da mercek altına alır. Biyoinformatik‘in amacı, biyoloji alanındaki veri ve bilginin toplanıp, temsil ve analizinin yapılmasının sağlanması sonucu ortaya çıkan problemleri çözümlemeye yönelik en son teknoloji yöntemler ve tasarımlar geliştirmektir.
Biyoinformatik’in Kısa Tarihçesi
Yeni yeni ortaya çıkmaya başlamış olsa bile birden fazla bilime katkı sağlamaya ve önem kazanmaya devam etmektedir. 1980’lerin sonlarına doğru, bilgisayar bilimindeki başarılardan sonra bu yeteneklerin biyoloji alanına uygulanmasından sonra ortaya çıkmıştır. Ayrıca, genom dizileme, mikrodüzenler ve proteomik gibi alanlarda tanık olunan biyoteknolojik gelişmeler biyoinformatiğin daha da hızlı bir şekilde gelişmesine sebep olmuştur. İnternetin gelişmesi ve yaygınlaşmasıyla birlikte bu yöntemler ve gelişmeler herkese yayılmış, Dünya çapında bu bilim dalının ünlendiğini söyleyebiliriz.
Günümüzde, BLAST (Basic Local Alignment Search Tool) algoritması, ikili ve çoklu dizi karşılaştırmalarında, biyolojik veri tabanlarının sorgulanmasında ve filogenetik analizlerinde doğa bilimciler tarafından çokça kullanılmaktadır. Protein ve DNA dizilerini karşılaştırmak için kullanılan ilk algoritma ise Needleman ve Wunsch tarafından 1970 yılında geliştirilmiştir. 1970 yılında ilk algoritma geliştirilmesine rağmen, biyoinformatik kavramı 1978 yılında literatüre geçmiştir. “Biyotik sistemlerde bilgi süreçlerinin çalışılması” olarak tanımlanmıştır. Biyoinformatik kelimesinin üretilmesinden yaklaşık 20 yıl sonra kemoinformatik yayınlanmıştır. Bu da biyoinformatik gibi biyoloji alanında değil kimya alanında işlevsellik göstermektedir. Kimya çalışmalarında kullanılmaktadır. Bu alandaki en önemli gelişme, 1990 yılında başlayan İnsan Genom Projesi’dir. Bu sayede Dünya’da daha da tanınmış ve 2000’li yıllarda bilim dalı olarak tanınmıştır.
Biyoinformatik’in Çalışma Alanları
- DNA dizileme
- Protein dizileme
- DNA, RNA, Protein gibi yapıların 2 boyutlu ve 3 boyutlu yapı araştırmaları
- Biyolojik veri tabanlarının oluşturulması, entegrasyonu
- Bilgisayar ile veri analizi
- Proteinlerin yapılarının ve fonksiyonlarının belirlenmesi
- Genetik faktörlerin hastalık yatkınlığının etkilerinin incelenmesi
- Tıbbi amaçlı yeni makro moleküllerinin üretilmesi
- Protein yapı temelli akılcı ilaç tasarımı
- Ökaryotik genomların çözümlenmesi
gibi örnekler Biyoinformatik‘in çalışma alanları olarak bahsedilebilir. Biyoinformatik alanında geliştirilen bazı algoritmalardan da bahsedelim.
Temel Algoritmalar
- Hamming Distance Problem: 2 DNA dizisinin karşılaştırılırken aralarında farklara bakılmasını temel alır. Python ile kolayca kodlanabilen küçük fonksiyon parçası diyebiliriz. Fakat çoğu karşılaştırma algoritmasının temel yapı taşıdır.
- Skew Diagram: DNA’nın nereden eşlenmesinin bulunması probleminde DNA origin’inin bulunmasına yardımcı olan algoritmadır. C-G çiftlerine bakılarak yapılıyor. Genellikle minimum noktaları DNA eşlenme noktasını gösterir.
- Approximate Pattern Count: DNA karşılaştırmalarında kullanılan, DNA içinde bulunan k-mer çiftlerinin sayılarının bulunmasını sağlar. Hamming distance burada önemli rol oynar. İşlemleri temel dizi işlemleri gibi düşünebilirsiniz. Yani, TCGATA gibi bir dizimiz olduğunu düşünün. Eğer bize 2-mer soruluyorsa, TC- CG- GA- AT- TA gibi nükleotit dizilerinin toplam sayılarına bakılacak. Şu an size az görünmüş olsa da DNA milyonlarca nükleotit içerdiğinden bu elde edilen sonuç çok önemli olabilmektedir.
- Approximate Pattern Matching: Üsttekine benzer bir mantıkla çalışır. Sadece 2 DNA karşılaştırılması sırasında içerisindeki farklılıkların da işin içine dahil edilmesini sağlar. Yani, ATCGAT ve ATAGTT örneklerinde görüldüğü üzere, ikisi arasındaki farklılık 2’dir. Bu kısımda ise bunlara bakılarak anlamlı bir sonuç elde edilmektedir.
- Motifs: DNA dizilerinin alt alta farklılıkların görülebilmesi için sıralanmasını sağlar.
- Score: Motifler kullanılarak her DNA zinciri için bir score elde edilmektedir. Bu score’lar DNA zincirleri arasındaki farklılıkları temsil eder.
- Count: A-T-C-G’lerinin her DNA zinciri için nerede bulunabileceği olasılığı hesaplanır.
- Profile: Count’un sağladığı sonuçlar burada gösterilmektedir.
- Consensus: DNA’nın eşlenmesinin başladığı en mantıklı motif yazdırılmaktadır.
Aslında, hepsi birbirine bağlı algoritmalar diyebiliriz. Greedy Motif Search, Randomized Motif Search, GibbsSampler gibi birbirinden farklı gibi gözüken, fakat ortak noktaları bulunan bu algoritmalar da kullanılmaktadır. Daha nice problemleri çözen algoritmalar var. Buradakiler genellikle DNA’nın nereden eşlenmeye başlayacağı problemine cevap aramaktadır.