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


©2035 by Sevdanur Genc. Powered and secured by Wix

bottom of page