top of page

Java ile Local Sequence Alignment

Writer: Sevdanur GENC
Sevdanur GENC
May 17, 2014
3 min read

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

LAS.Java Komutlari

public class LAS { private String seq1, seq2; private int matrix[][]; private int gap; private int match; private int mismatch; public LAS(String sequence1, String sequence2, int m, int mm, int g) { this.seq1 = "-" + sequence1.toUpperCase(); this.seq2 = "-" + sequence2.toUpperCase(); this.match = m; this.gap = g; this.mismatch = mm; matrix = new int

; for (int i = 0; i < sequence1.length(); i++) for (int j = 0; j < sequence2.length(); j++) matrix

= 0; } public void matrixOlustur() { for (int i = 0; i < seq1.length(); i++) { for (int j = 0; j < seq2.length(); j++) { if (i != 0 && j != 0) { if (seq1.charAt(i) == seq2.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() { int enYuksek = 0, iEnYuksek = 0, jEnYuksek = 0; for (int i = 0; i < seq1.length(); i++) { for (int j = 0; j < seq2.length(); j++) { if (matrix

> enYuksek) { enYuksek = matrix

; iEnYuksek = i; jEnYuksek = j; } } } return enYuksek; } public void dizilimiBul() { int enYuksek = 0, iEnYuksek = 0, jEnYuksek = 0; char harf1 = ' ',harf2 = ' '; for (int i = 0; i < seq1.length(); i++) { for (int j = 0; j < seq2.length(); j++) { if (matrix

> enYuksek) { enYuksek = matrix

; iEnYuksek = i; jEnYuksek = j; harf1 = seq1.charAt(i); harf2 = seq2.charAt(j); } } } System.out.println(harf1 + " " + harf2); } public void matrixEkranaBas() { for (int i = 0; i < seq1.length(); i++) { if (i == 0) { for (int z = 0; z < seq2.length(); z++) { if (z == 0) System.out.println("   "); System.out.print(seq2.charAt(z) + "  "); if (z == seq2.length() - 1) System.out.println(); } } for (int j = 1; j < seq2.length(); j++) { if (j == 1) { System.out.print(seq1.charAt(i) + "  "); } System.out.print(matrix

+ "  "); } System.out.println(); } System.out.println(); } public static void main(String[] args) { LAS sw = new LAS("GCGCATGGATTGAGCGA", "-TGCGCCATTGATGACCA", 5,-4,-4); sw.matrixOlustur(); System.out.println("Dizi en yuksek score: " + sw.enYuksekBul()); sw.matrixEkranaBas(); sw.dizilimiBul(); } }

Ekran Ciktisi

Dizi en yuksek score: 45 -  -  T  G  C  G  C  C  A  T  T  G  A  T  G  A  C  C  A -  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0 G  0  0  5  1  5  1  0  0  0  0  5  1  0  5  1  0  0  0 C  0  0  1  10  6  10  6  2  0  0  1  1  0  1  1  6  5  1 G  0  0  5  6  15  11  7  3  0  0  5  1  0  5  1  2  2  1 C  0  0  1  10  11  20  16  12  8  4  1  1  0  1  1  6  7  3 A  0  0  0  6  7  16  16  21  17  13  9  6  2  0  6  2  3  12 T  0  5  1  2  3  12  12  17  26  22  18  14  11  7  3  2  0  8 G  0  1  10  6  7  8  8  13  22  22  27  23  19  16  12  8  4  4 G  0  0  6  6  11  7  4  9  18  18  27  23  19  24  20  16  12  8 A  0  0  2  2  7  7  3  9  14  14  23  32  28  24  29  25  21  17 T  0  5  1  0  3  3  3  5  14  19  19  28  37  33  29  25  21  17 T  0  5  1  0  0  0  0  1  10  19  15  24  33  33  29  25  21  17 G  0  1  10  6  5  1  0  0  6  15  24  20  29  38  34  30  26  22 A  0  0  6  6  2  1  0  5  2  11  20  29  25  34  43  39  35  31 G  0  0  5  2  11  7  3  1  1  7  16  25  25  30  39  39  35  31 C  0  0  1  10  7  16  12  8  4  3  12  21  21  26  35  44  44  40 G  0  0  5  6  15  12  12  8  4  0  8  17  17  26  31  40  40  40 A  0  0  1  2  11  11  8  17  13  9  5  13  13  22  31  36  36  45 A A

Dizilim Ornekleri

"ACACACTA", "AGCACACA" "gcgcgtgc", "gcaagtgca" "GCAGAGCACG", "GCTGGAAGGCAT" "GGATCGA", "GAATTCAGTTA" "KVLEFGY", "EQLLKALEFKL" Keyifli Calismalar Dilerim.

Comments


bottom of page