top of page

Java ile Multiple Sequence Alignment (5D)

  • Writer: Sevdanur GENC
    Sevdanur GENC
  • May 26, 2014
  • 5 min read

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

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

= 0; } public void ikiliSonuclarTabloMatrix() { int enBuyuk = 0, m=1; for (int i = 0; i < 5; i++) { sutunTopla

<0>

= 0; for (int z = 0; z < 5; z++) { System.out.print(ikiliMatrix

+ " "); sutunTopla

<0>

+= ikiliMatrix

; } sutunTopla

<1>

= m; m++; System.out.println(sutunTopla

<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

<0>

> sutunTopla

<0>

) { max = j; } } int temp = sutunTopla

<0>

; int temp2 = sutunTopla

<1>

; sutunTopla

<0>

= sutunTopla

<0>

; sutunTopla

<1>

= sutunTopla

<1>

; sutunTopla

<0>

= temp; sutunTopla

<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

= Math.max(0, Math.max( matrix

+ match, Math.max( matrix

+ gap, matrix

+ gap))); } else {    //gap ve mismatch matrix

= Math.max(0, Math.max( matrix

+ mismatch, Math.max( matrix

+ gap, matrix

+ 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

> enYuksek) { enYuksek = matrix

; 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

> enYuksek) { enYuksek = matrix

; 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

+ "  "); } 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.

Comments


©2035 by Sevdanur Genc. Powered and secured by Wix

bottom of page