Nano'nun Günlüğü…

Ideallerimi gerceklestirmek icin arastiriyorum, Unutmamak icin yaziyorum!

  • Bulundugunuz Sayfa: 
  • Ana Sayfa
  • Java ile Multiple Sequence Alignment (5D)

Java ile Multiple Sequence Alignment (5D)

Gönderim Mayıs 26th, 2014

Bu makalemde size biyo informatik alaninda cok sik kullanilan bir hizalama yontemi olan Multiple Sequence Alignment  (5 Boyutlu) ‘in java ile kodlanmasi hakkinda basit bir uygulama paylasiyor olucam.

Yine ayni zamanda java uzerinde string kontrollerini pekistirmis olabileceksiniz.

Yazinin sonunda kullanabileceginiz birden fazla dizilim ornekleride bulunmaktadir.

MAS.Java Komutlari

public class MAS {

private String seq1, seq2, seq3, seq4, seq5;
private int matrix[][];
private int [][] sutunTopla = new int[5][2];
private int [][] ikiliMatrix = new int[5][5];
private int gap;
private int match;
private int mismatch;

public MAS()
{
ikiliMatrix[0][0] = ikiliMatrix[1][1] = ikiliMatrix[2][2] =
ikiliMatrix[3][3] = ikiliMatrix[4][4] = 0;
}

public MAS(String sequence1, String sequence2,
String sequence3, String sequence4, String sequence5,
int m, int mm, int g)
{
this.seq1 = “-” + sequence1.toUpperCase();
this.seq2 = “-” + sequence2.toUpperCase();
this.seq3 = “-” + sequence3.toUpperCase();
this.seq4 = “-” + sequence4.toUpperCase();
this.seq5 = “-” + sequence5.toUpperCase();

this.match = m;
this.gap = g;
this.mismatch = mm;
}

public void matrixDuzenle(String sBir, String sIki)
{
matrix = new int[sBir.length() + 1][sIki.length() + 1];

for (int i = 0; i < sBir.length(); i++)
for (int j = 0; j < sIki.length(); j++)
matrix[i][j] = 0;
}

public void ikiliSonuclarTabloMatrix()
{
int enBuyuk = 0, m=1;
for (int i = 0; i < 5; i++) {
sutunTopla[i][0] = 0;
for (int z = 0; z < 5; z++) {
System.out.print(ikiliMatrix[i][z] + ” “);
sutunTopla[i][0] += ikiliMatrix[i][z];
}
sutunTopla[i][1] = m;
m++;
System.out.println(sutunTopla[i][0]);
}
System.out.println(“En buyuk degere sahip sequence’ler : “);
System.out.println(sutunTopla[0][0] + ” S” + sutunTopla[0][1]);
System.out.println(sutunTopla[1][0] + ” S” + sutunTopla[1][1]);
System.out.println(sutunTopla[2][0] + ” S” + sutunTopla[2][1]);
System.out.println(sutunTopla[3][0] + ” S” + sutunTopla[3][1]);
System.out.println(sutunTopla[4][0] + ” S” + sutunTopla[4][1]);
selectionSort();
}

public void selectionSort()
{
for (int i=0; i<sutunTopla.length; i++) {
int max = i;
for (int j = i + 1; j < sutunTopla.length; j++) {
if (sutunTopla[j][0] > sutunTopla[max][0]) {
max = j;
}
}
int temp = sutunTopla[i][0];
int temp2 = sutunTopla[i][1];
sutunTopla[i][0] = sutunTopla[max][0];
sutunTopla[i][1] = sutunTopla[max][1];
sutunTopla[max][0] = temp;
sutunTopla[max][1] = temp2;
}

System.out.println(“Selection Sort sonucu buyukten kucuge siralama : “);
System.out.println(sutunTopla[0][0] + ” S” + sutunTopla[0][1]);
System.out.println(sutunTopla[1][0] + ” S” + sutunTopla[1][1]);
System.out.println(sutunTopla[2][0] + ” S” + sutunTopla[2][1]);
System.out.println(sutunTopla[3][0] + ” S” + sutunTopla[3][1]);
System.out.println(sutunTopla[4][0] + ” S” + sutunTopla[4][1]);
treeMap();
}

public void treeMap()
{
System.out.println(“Tree MAP : “);
System.out.println(“S” + sutunTopla[0][1] + “—|____”);
System.out.println(“S” + sutunTopla[1][1] + “—|”);
System.out.println(“S” + sutunTopla[2][1] + “——-|_____”);
System.out.println(“S” + sutunTopla[3][1] + “—|_________|”);
System.out.println(“S” + sutunTopla[4][1] + “—|”);
}

public void matrixOlustur(String sBir, String sIki)
{
for (int i = 0; i < sBir.length(); i++) {
for (int j = 0; j < sIki.length(); j++) {
if (i != 0 && j != 0) {
if (sBir.charAt(i) == sIki.charAt(j)) {  //match
matrix[i][j] = Math.max(0, Math.max(
matrix[i – 1][j – 1] + match, Math.max(
matrix[i – 1][j] + gap,
matrix[i][j – 1] + gap)));
} else {    //gap ve mismatch
matrix[i][j] = Math.max(0, Math.max(
matrix[i – 1][j – 1] + mismatch, Math.max(
matrix[i – 1][j] + gap,
matrix[i][j – 1] + gap)));
}
}
}
}
}

public int enYuksekBul(String sBir, String sIki)
{
int enYuksek = 0, iEnYuksek = 0, jEnYuksek = 0;
for (int i = 0; i < sBir.length(); i++) {
for (int j = 0; j < sIki.length(); j++) {
if (matrix[i][j] > enYuksek) {
enYuksek = matrix[i][j];
iEnYuksek = i;
jEnYuksek = j;
}
}
}
return enYuksek;
}

public void dizilimiBul(String sBir, String sIki)
{
int enYuksek = 0, iEnYuksek = 0, jEnYuksek = 0;
char harf1 = ‘ ‘,harf2 = ‘ ‘;
for (int i = 0; i < sBir.length(); i++) {
for (int j = 0; j < sIki.length(); j++) {
if (matrix[i][j] > enYuksek) {
enYuksek = matrix[i][j];
iEnYuksek = i;
jEnYuksek = j;
harf1 = sBir.charAt(i);
harf2 = sIki.charAt(j);

}
}
}
System.out.println(harf1 + ” ” + harf2);
}

public void matrixEkranaBas(String sBir, String sIki) {

for (int i = 0; i < sBir.length(); i++) {
if (i == 0) {
for (int z = 0; z < sIki.length(); z++) {
if (z == 0)
System.out.println(”   “);
System.out.print(sIki.charAt(z) + ”  “);
if (z == sIki.length() – 1)
System.out.println();
}
}

for (int j = 1; j < sIki.length(); j++) {
if (j == 1) {
System.out.print(sBir.charAt(i) + ”  “);
}
System.out.print(matrix[i][j] + ”  “);
}
System.out.println();
}
System.out.println();
}

public void sonuclariToparla(String sBir, String SIki)
{

matrixDuzenle(sBir,SIki);
matrixOlustur(sBir,SIki);
System.out.println(“Dizi en yuksek score: ” + enYuksekBul(sBir,SIki));
matrixEkranaBas(sBir,SIki);
dizilimiBul(sBir,SIki);
}

public static void main(String[] args) {
MAS mali = new MAS(“TTNS”, “TNSD”, “NASK”,
“NLSD”, “ALSK”, 5,-3,-1);

mali.sonuclariToparla(mali.seq1, mali.seq2);
mali.ikiliMatrix[1][0] = mali.ikiliMatrix[0][1] = mali.enYuksekBul(mali.seq1,mali.seq2);

mali.sonuclariToparla(mali.seq1, mali.seq3);
mali.ikiliMatrix[2][0] = mali.ikiliMatrix[0][2] = mali.enYuksekBul(mali.seq1, mali.seq3);

mali.sonuclariToparla(mali.seq1, mali.seq4);
mali.ikiliMatrix[3][0] = mali.ikiliMatrix[0][3] = mali.enYuksekBul(mali.seq1, mali.seq4);

mali.sonuclariToparla(mali.seq1, mali.seq5);
mali.ikiliMatrix[4][0] = mali.ikiliMatrix[0][4] = mali.enYuksekBul(mali.seq1, mali.seq5);

mali.sonuclariToparla(mali.seq2, mali.seq3);
mali.ikiliMatrix[2][1] = mali.ikiliMatrix[1][2] = mali.enYuksekBul(mali.seq2, mali.seq3);

mali.sonuclariToparla(mali.seq2, mali.seq4);
mali.ikiliMatrix[3][1] = mali.ikiliMatrix[1][3] = mali.enYuksekBul(mali.seq2, mali.seq4);

mali.sonuclariToparla(mali.seq2, mali.seq5);
mali.ikiliMatrix[4][1] = mali.ikiliMatrix[1][4] = mali.enYuksekBul(mali.seq2, mali.seq5);

mali.sonuclariToparla(mali.seq3, mali.seq4);
mali.ikiliMatrix[3][2] = mali.ikiliMatrix[2][3] = mali.enYuksekBul(mali.seq3, mali.seq4);

mali.sonuclariToparla(mali.seq3, mali.seq5);
mali.ikiliMatrix[4][2] = mali.ikiliMatrix[2][4] = mali.enYuksekBul(mali.seq3, mali.seq5);

mali.sonuclariToparla(mali.seq4, mali.seq5);
mali.ikiliMatrix[4][3] = mali.ikiliMatrix[3][4] = mali.enYuksekBul(mali.seq4, mali.seq5);

mali.ikiliSonuclarTabloMatrix();
}
}

Ekran Ciktisi

Dizi en yuksek score: 15

–  T  N  S  D
–  0  0  0  0
T  5  4  3  2
T  5  4  3  2
N  4  10  9  8
S  3  9  15  14

S S
Dizi en yuksek score: 9

–  N  A  S  K
–  0  0  0  0
T  0  0  0  0
T  0  0  0  0
N  5  4  3  2
S  4  3  9  8

S S
Dizi en yuksek score: 9

–  N  L  S  D
–  0  0  0  0
T  0  0  0  0
T  0  0  0  0
N  5  4  3  2
S  4  3  9  8

S S
Dizi en yuksek score: 5

–  A  L  S  K
–  0  0  0  0
T  0  0  0  0
T  0  0  0  0
N  0  0  0  0
S  0  0  5  4

S S
Dizi en yuksek score: 9

–  N  A  S  K
–  0  0  0  0
T  0  0  0  0
N  5  4  3  2
S  4  3  9  8
D  3  2  8  7

S S
Dizi en yuksek score: 14

–  N  L  S  D
–  0  0  0  0
T  0  0  0  0
N  5  4  3  2
S  4  3  9  8
D  3  2  8  14

D D
Dizi en yuksek score: 5

–  A  L  S  K
–  0  0  0  0
T  0  0  0  0
N  0  0  0  0
S  0  0  5  4
D  0  0  4  3

S S
Dizi en yuksek score: 8

–  N  L  S  D
–  0  0  0  0
N  5  4  3  2
A  4  3  2  1
S  3  2  8  7
K  2  1  7  6

S S
Dizi en yuksek score: 14

–  A  L  S  K
–  0  0  0  0
N  0  0  0  0
A  5  4  3  2
S  4  3  9  8
K  3  2  8  14

K K
Dizi en yuksek score: 10

–  A  L  S  K
–  0  0  0  0
N  0  0  0  0
L  0  5  4  3
S  0  4  10  9
D  0  3  9  8

S S
0 15 9 9 5 38
15 0 9 14 5 43
9 9 0 8 14 40
9 14 8 0 10 41
5 5 14 10 0 34
En buyuk degere sahip sequence’ler :
38 S1
43 S2
40 S3
41 S4
34 S5
Selection Sort sonucu buyukten kucuge siralama :
43 S2
41 S4
40 S3
38 S1
34 S5
Tree MAP :
S2—|____
S4—|
S3——-|_____
S1—|_________|
S5—|

Dizilim Ornekleri

“ACACACTA”, “AGCACACA”

“gcgcgtgc”, “gcaagtgca”

“GCAGAGCACG”, “GCTGGAAGGCAT”

“GGATCGA”, “GAATTCAGTTA”

“KVLEFGY”, “EQLLKALEFKL”
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