top of page

Java ile Multiple Sequence Alignment (4D)

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

Bu makalemde size biyo informatik alaninda cok sik kullanilan bir hizalama yontemi olan Multiple Sequence Alignment  (4 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.

MAS4.Java Komutlari

public class MAS4 { private String seq1, seq2, seq3, seq4; private int matrix[][]; private int [][] sutunTopla = new int<4>

<2>

; private int [][] ikiliMatrix = new int<4>

<4>

; private int gap; private int match; private int mismatch; public MAS4() { ikiliMatrix<0>

<0>

= ikiliMatrix<1>

<1>

= ikiliMatrix<2>

<2>

= ikiliMatrix<3>

<3>

=  0; } public MAS4(String sequence1, String sequence2, String sequence3, String sequence4, int m, int mm, int g) { this.seq1 = "-" + sequence1.toUpperCase(); this.seq2 = "-" + sequence2.toUpperCase(); this.seq3 = "-" + sequence3.toUpperCase(); this.seq4 = "-" + sequence4.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 < 4; i++) { sutunTopla

<0>

= 0; for (int z = 0; z < 4; 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>

); 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>

); 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>

+ "---|_________|"); } 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) { MAS4 mali = new MAS4("AACCTG", "CCAGTA", "GAATTC", "TCCCTG", 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.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.seq3, mali.seq4); mali.ikiliMatrix<3>

<2>

= mali.ikiliMatrix<2>

<3>

= mali.enYuksekBul(mali.seq3, mali.seq4); mali.ikiliSonuclarTabloMatrix(); } }

Ekran Ciktisi

Dizi en yuksek score: 13 -  C  C  A  G  T  A -  0  0  0  0  0  0 A  0  0  5  4  3  5 A  0  0  5  4  3  8 C  5  5  4  3  2  7 C  5  10  9  8  7  6 T  4  9  8  7  13  12 G  3  8  7  13  12  11 T T Dizi en yuksek score: 13 -  G  A  A  T  T  C -  0  0  0  0  0  0 A  0  5  5  4  3  2 A  0  5  10  9  8  7 C  0  4  9  8  7  13 C  0  3  8  7  6  12 T  0  2  7  13  12  11 G  5  4  6  12  11  10 C C Dizi en yuksek score: 20 -  T  C  C  C  T  G -  0  0  0  0  0  0 A  0  0  0  0  0  0 A  0  0  0  0  0  0 C  0  5  5  5  4  3 C  0  5  10  10  9  8 T  5  4  9  9  15  14 G  4  3  8  8  14  20 G G Dizi en yuksek score: 9 -  G  A  A  T  T  C -  0  0  0  0  0  0 C  0  0  0  0  0  5 C  0  0  0  0  0  5 A  0  5  5  4  3  4 G  5  4  4  3  2  3 T  4  3  3  9  8  7 A  3  9  8  8  7  6 T T Dizi en yuksek score: 13 -  T  C  C  C  T  G -  0  0  0  0  0  0 C  0  5  5  5  4  3 C  0  5  10  10  9  8 A  0  4  9  9  8  7 G  0  3  8  8  7  13 T  5  4  7  7  13  12 A  4  3  6  6  12  11 G G Dizi en yuksek score: 10 -  T  C  C  C  T  G -  0  0  0  0  0  0 G  0  0  0  0  0  5 A  0  0  0  0  0  4 A  0  0  0  0  0  3 T  5  4  3  2  5  4 T  5  4  3  2  7  6 C  4  10  9  8  7  6 C C 0 13 13 20 46 13 0 9 13 35 13 9 0 10 32 20 13 10 0 43 En buyuk degere sahip sequence'ler : 46 S1 35 S2 32 S3 43 S4 Selection Sort sonucu buyukten kucuge siralama : 46 S1 43 S4 35 S2 32 S3 Tree MAP : S1---|____ S4---| S2-------|_____ S3---|_________|

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