Java ile Local Sequence Alignment
- 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