Nano'nun Günlüğü…

Ideallerimi gerceklestirmek icin arastiriyorum, Unutmamak icin yaziyorum!

  • Bulundugunuz Sayfa: 
  • Ana Sayfa
  • Java ile Local Sequence Alignment

Java ile Local Sequence Alignment

Gönderim Mayıs 17th, 2014

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[sequence1.length() + 1][sequence2.length() + 1];

for (int i = 0; i < sequence1.length(); i++)
for (int j = 0; j < sequence2.length(); j++)
matrix[i][j] = 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[i][j] = Math.max(0, Math.max(
matrix[i – 1][j – 1] + match, Math.max(
matrix[i – 1][j] + gap,
matrix[i][j – 1] + gap)));
} else {    //gap ve mismatch
matrix[i][j] = Math.max(0, Math.max(
matrix[i – 1][j – 1] + mismatch, Math.max(
matrix[i – 1][j] + gap,
matrix[i][j – 1] + 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[i][j] > enYuksek) {
enYuksek = matrix[i][j];
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[i][j] > enYuksek) {
enYuksek = matrix[i][j];
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[i][j] + ”  “);
}
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.

Etiketler: , , , ,
Bulundugu Konu Etiketleri Akademik, BioInformatic, Java, Yazilim |

Lutfen Yorumlarinizi Burdan Ulastiriniz!...

You must be Kullanici Adiniz : to post a comment.

Istatistik

  • 1 Uye
  • 334 Yazi
  • 16 Yorum Var