Nano'nun Günlüğü…

Ideallerimi gerceklestirmek icin arastiriyorum, Unutmamak icin yaziyorum!

  • Bulundugunuz Sayfa: 
  • Ana Sayfa
  • Sabit Disk Yerine Bakteri Uygulamasi

Sabit Disk Yerine Bakteri Uygulamasi

Gönderim Ekim 19th, 2012

2010 yilinin son aylarina dogru cikan bir haber ile arastirmacilarin bakteri uzerine veri depolamasi hakkinda calismalari basinda duyurulmustu. Sunduklari fikirlere gore, bilinen bilgisayar diskleri uzerinde bilgileri DNA genetik dizilimlerine donusturulerek son olarak E.Coli bakteresi icerisinde saklanabilecegi ongorulmustur. Tabi bu konun bi an icin algoritmasi benim ilgimi cekti. Ve basit ama kucuk bir uygulama ile dusuncelerimi dile dokmus oldum.

Peki bu algoritma nasil dusunulmus?

Verileri bakterilerin uzerine yerlestirebilmek icin bakterilere ait DNA genetigi uzerinde calismamiz gerekiyor. Bunun icinde verilerimizi Adenin, Timin, Sitozin ve Guanin’lerle eslestirilmesi gerekiyormus. Bu da 4 tabaninda sayilarla calismamiz gerektiriyor. Tabi bu 4’luk tabana gelecek olan verinin onceden 10’luk tabandaki bilgisi yani Ascii ile aciklayabilecegimiz bir anlami olmasi gerekiyor.

Bu islemleri baston sona dogru mantigini dusunecek olursak;

– Oncelikle verimizin Ascii tablosunda bulunan kodlarina karsilik her bir harfin 10’luk tabanda var olan sayisal es degeri buluruz.

– Daha sonra 10’luk tabaninda olusmus sayilari A,T,C,G icin 4’luk tabana ceviririz.

– 4’luk sistemde denk gelmesini istedigimiz genlere yani 0=A, 1=T, 2=C, 3=G verilerine donusum saglariz.

Adim Adim bir ornekle aciklayacak olursak ;


 

 

 

 

 

 

 

 

 

 

 

 

Bu konu hakkinda pek cok ilgili makaleyi internette arastirabilirsiniz.

Simdi basit bir uygulama ile islemleri C# dilini kullanarak Visual Studio ortami ile kod kisminda 3 ayri metod icerisinde kullanarak gerceklestiriyor olacagiz.

Form1.Cs Kaynak Kodlari ;

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace SabitDiskYerineBakteriUygulamasi
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
listBox1.Items.Clear();
listBox2.Items.Clear();
listBox3.Items.Clear();

ConvertToAscii();
ConvertToTenFour();
ConvertToGenetic();
}

public void ConvertToAscii()
{
string KelimeAl;
int i;

KelimeAl = textBox1.Text;
for (i = 0; i < KelimeAl.Length; i++)
{
if (KelimeAl[i] == 32)
{
continue;
}
else
{
listBox1.Items.Add(Convert.ToInt32(KelimeAl[i]));
}
}
}

public void ConvertToTenFour()
{
int cevrilecekDeger;

for (int i = 0; i < listBox1.Items.Count; i++)
{
cevrilecekDeger = Convert.ToInt32(listBox1.Items[i].ToString());
string binary = “”;
while (cevrilecekDeger >= 4)
{
binary += (cevrilecekDeger % 4).ToString();
cevrilecekDeger = cevrilecekDeger / 4;
}

binary += cevrilecekDeger.ToString();
string sonuc = string.Empty;
sonuc += binary.ToString();

listBox2.Items.Add(sonuc);
}
}

public void ConvertToGenetic()
{
string TekTekAl;

for (int i = 0; i < listBox2.Items.Count; i++)
{
TekTekAl = listBox2.Items[i].ToString();

TekTekAl = TekTekAl.Replace(“0”, “A”);
TekTekAl = TekTekAl.Replace(“1”, “T”);
TekTekAl = TekTekAl.Replace(“2”, “C”);
TekTekAl = TekTekAl.Replace(“3”, “G”);

listBox3.Items.Add(TekTekAl);
}
}
}
}

Ekran Goruntusu ;

 

 

 

 

 

 

 

 

 

 

 

 

 

Keyifli Calismalar Dilerim.

Etiketler: , , , ,
Bulundugu Konu Etiketleri Bilgisayar Mühendisi, Genel, Visual Studio, Yapay Zeka, Yazilim |

Lutfen Yorumlarinizi Burdan Ulastiriniz!...

You must be Kullanici Adiniz : to post a comment.

Istatistik

  • 1 Uye
  • 334 Yazi
  • 16 Yorum Var