Nano'nun Günlüğü…

Ideallerimi gerceklestirmek icin arastiriyorum, Unutmamak icin yaziyorum!

  • Bulundugunuz Sayfa: 
  • Ana Sayfa
  • Java ile Blosum62 Hesaplama

Java ile Blosum62 Hesaplama

Gönderim Nisan 25th, 2014

Biyoinformatik alaninda protein dizilerinin hesaplanmasi konusu onemlidir ve dikkatlice yapilmasi gerekir. Dizi hizalamanin en onemli gorevi farkli DNA, RNA veya protein dizilimlerinin birbirine en cok benzer alanlarinin tespit edilmesidir. Dizi hizalamarinda temel yaklasim olarak hesaplama islemleri puanlama sistemine dayanmaktadir. Bunun icin en cok kullanilan algoritmanin BLAST oldugunu soyleyebilirim. Yapmis oldugum uygulamada, en basit seklinde bir Protein diziliminin hesaplamasi icin BLOSUM62 yontemini kullaniyor olucaz.

Blosum matrislerinin birden fazla cesiti bulunmaktadir. Blosum45, birbirine uzak iki tur protein dizilimlerinin hizalanmasindaki %45 benzerlik oranina ait matris degerleridir. Blosum80, birbirine yakin iki tur protein dizilimlerinin hizalanmasindaki %80 benzerlik oranina ait matris degerleridir. Ancak yakinligi ve uzanligi tam olarak belirlenemeyen durumlarda ise Blosum62 matrisi kullanilmaktadir. Blosum62, gunumuzde en sik kullanilan ve her zaman icin tercih edilen sequence hesaplama matrisidir. Blosum tablosunda en yuksek puan 11’dir.

Kisacasi, DNA, RNA ve protein dizilimlerinde BLAST en iyi referans olarak BLOSUM62 matrisini kullanmaktadir.

Java Kodu

import java.io.ObjectInputStream.GetField;

public class Blosum62
{
private Blosum62()    {}

public static final int[][] blosumMatrix = new int[][]
{
/*     C   S   T   P   A   G   N   D   E   Q   H   R   K   M   I   L   V   F   Y   W*/
/*C*/{ 9, -1, -1, -3,  0, -3, -3, -3, -4, -3, -3, -3, -3, -1, -1, -1, -1, -2, -2, -2},
/*S*/{-1,  4,  1, -1,  1,  0,  1,  0,  0,  0, -1, -1,  0, -1, -2, -2, -2, -2, -2, -3},
/*T*/{-1,  1,  4,  1, -1,  1,  0,  1,  0,  0,  0, -1,  0, -1, -2, -2, -2, -2, -2, -3},
/*P*/{-3, -1,  1,  7, -1, -2, -1, -1, -1, -1, -2, -2, -1, -2, -3, -3, -2, -4, -3, -4},
/*A*/{ 0,  1, -1, -1,  4,  0, -1, -2, -1, -1, -2, -1, -1, -1, -1, -1, -2, -2, -2, -3},
/*G*/{-3,  0,  1, -2,  0,  6, -2, -1, -2, -2, -2, -2, -2, -3, -4, -4,  0, -3, -3, -2},
/*N*/{-3,  1,  0, -2, -2,  0,  6,  1,  0,  0,  1,  0,  0, -2, -3, -3, -3, -3, -2, -4},
/*D*/{-3,  0,  1, -1, -2, -1,  1,  6,  2,  0, -1, -2, -1, -3, -3, -4, -3, -3, -3, -4},
/*E*/{-4,  0,  0, -1, -1, -2,  0,  2,  5,  2,  0,  0,  1, -2, -3, -3, -3, -3, -2, -3},
/*Q*/{-3,  0,  0, -1, -1, -2,  0,  0,  2,  5,  0,  1,  1,  0, -3, -2, -2, -3, -1, -2},
/*H*/{-3, -1,  0, -2, -2, -2,  1, -1,  0,  0,  8,  0, -1, -2, -3, -3, -2, -1,  2, -2},
/*R*/{-3, -1, -1, -2, -1, -2,  0, -2,  0,  1,  0,  5,  2, -1, -3, -2, -3, -3, -2, -3},
/*K*/{-3,  0,  0, -1, -1, -2,  0, -1,  1,  1, -1,  2,  5, -1, -3, -2, -3, -3, -2, -3},
/*M*/{-1, -1, -1, -2, -1, -3, -2, -3, -2,  0, -2, -1, -1,  5,  1,  2, -2,  0, -1, -1},
/*I*/{-1, -2, -2, -3, -1, -4, -3, -3, -3, -3, -3, -3, -3,  1,  4,  2,  1,  0, -1, -3},
/*L*/{-1, -2, -2, -3, -1, -4, -3, -4, -3, -2, -3, -2, -2,  2,  2,  4,  3,  0, -1, -2},
/*V*/{-1, -2, -2, -2,  0, -3, -3, -3, -2, -2, -3, -3, -2,  1,  3,  1,  4, -1, -1, -3},
/*F*/{-2, -2, -2, -4, -2, -3, -3, -3, -3, -3, -1, -3, -3,  0,  0,  0, -1,  6,  3,  1},
/*Y*/{-2, -2, -2, -3, -2, -3, -2, -3, -2, -1,  2, -2, -2, -1, -1, -1, -1,  3,  7,  2},
/*W*/{-2, -3, -3, -4, -3, -2, -4, -4, -3, -2, -2, -3, -3, -1, -3, -2, -3,  1,  2,  11}
};

private static int getMatrixNo(char a) {
switch ((String.valueOf(a)).toUpperCase().charAt(0)) {
case ‘C’: return 0;            case ‘S’: return 1;            case ‘T’: return 2;
case ‘P’: return 3;            case ‘A’: return 4;            case ‘G’: return 5;
case ‘N’: return 6;            case ‘D’: return 7;            case ‘E’: return 8;
case ‘Q’: return 9;            case ‘H’: return 10;           case ‘R’: return 11;
case ‘K’: return 12;        case ‘M’: return 13;           case ‘I’: return 14;
case ‘L’: return 15;        case ‘V’: return 16;           case ‘F’: return 17;
case ‘Y’: return 18;        case ‘W’: return 19;           default: return 777;
}
}

public static void main(String[] args) {

String aminoAcid1 = “GEIMAASRIETYKEDAQVWIGDLPCWLADYGYWDLPKRAVGRRYRIIAGGQPVIITTEYF”;
String aminoAcid2 = “GEVMAASCIETFKEEAKVWAGESPAWLELDRRRNLPPKVVGRQYRVIAEGRPVIIITEYF”;

int score = 0;
int realLength = 0;

int AA1uzunluk = aminoAcid1.length();
int AA2uzunluk = aminoAcid2.length();

for (int i=0; i< AA1uzunluk; i++)
{
if(aminoAcid1.charAt(i) == aminoAcid2.charAt(i))
{
System.out.println(i + “. Alinan deger = ” + blosumMatrix[getMatrixNo(aminoAcid1.charAt(i))][getMatrixNo(aminoAcid2.charAt(i))]);
score =  score + blosumMatrix[getMatrixNo(aminoAcid1.charAt(i))][getMatrixNo(aminoAcid2.charAt(i))];
realLength = realLength + 1;
}
else
{
continue;
}
}

System.out.println(“———–RESULTS————“);
System.out.println(“1. AA uzunlugu = ” + AA1uzunluk);
System.out.println(“2. AA uzunlugu = ” + AA2uzunluk);
System.out.println(“score = ” + score);
System.out.println(“karsilastirilan uzunluk = ” + realLength);
}

}

Ekran Ciktisi

0. Alinan deger = 6
1. Alinan deger = 5
3. Alinan deger = 5
4. Alinan deger = 4
5. Alinan deger = 4
6. Alinan deger = 4
8. Alinan deger = 4
9. Alinan deger = 5
10. Alinan deger = 4
12. Alinan deger = 5
13. Alinan deger = 5
15. Alinan deger = 4
17. Alinan deger = 4
18. Alinan deger = 11
20. Alinan deger = 6
23. Alinan deger = 7
25. Alinan deger = 11
26. Alinan deger = 4
34. Alinan deger = 4
35. Alinan deger = 7
39. Alinan deger = 4
40. Alinan deger = 6
41. Alinan deger = 5
43. Alinan deger = 7
44. Alinan deger = 5
46. Alinan deger = 4
47. Alinan deger = 4
49. Alinan deger = 6
51. Alinan deger = 7
52. Alinan deger = 4
53. Alinan deger = 4
54. Alinan deger = 4
56. Alinan deger = 4
57. Alinan deger = 5
58. Alinan deger = 7
59. Alinan deger = 6
———–RESULTS————
1. AA uzunlugu = 60
2. AA uzunlugu = 60
score = 191
karsilastirilan uzunluk = 36

Keyifli Calismalar Dilerim.

Etiketler: , , , ,
Bulundugu Konu Etiketleri Akademik, BioInformatic, Java, Yazilim |

Lutfen Yorumlarinizi Burdan Ulastiriniz!...

You must be Kullanici Adiniz : to post a comment.

Istatistik

  • 1 Uye
  • 334 Yazi
  • 16 Yorum Var