2016-03-31 19 views
1

Eğer DNA'yı ikili değerler olarak temsil ediyorsam, aralarındaki mesafeyi hesaplamanın en iyi yolu nedir? ATGC ve TAAC arasındaDNA Hamming Uzaklığı

So : A = 00, T = 11, G = 01 and C = 10 

Hamming uzaklığı ancak onların ikili gösterimleri farklı bir cevap vermek, 3'tür:

Hamming 00110110 uzaklığı ve 11000010 = 5.

nedir mesafe hesaplama eğer en iyi yolu DNA bazları bu şekilde temsil edilir?

cevap

0

Böyle bir şey yapmak için ikili işlemleri kullanabilirsiniz (Java, ancak herhangi bir dilde mantığı uygulayabilirsiniz):

int seq1 = 54, seq2 = 194;//ATGC and TAAC 
int evenBit = 0xAAAAAAAA, oddBit = 0x55555555; 

int pseudoDist = seq1^seq2; 
int dist = (pseudoDist&evenBit)>>1; 
dist |= pseudoDist&oddBit; 
int finalDist = Integer.bitCount(dist);//output 3 

fikri ile farklı bitlerin sayısını elde etmektir (pseudoDist&0xAAAAAAAA>>1) ve pseudoDist&0x55555555: yerine hamming mesafe alacak çünkü kullanarak aynı bit aynı nükleotidin karşılık tüm bitleri sıkıştırmak zorunda seq1^seq2

Ama sadece, henüz bit sayamazsınız. Birincisi, bitleri çift konumlarda, ikincisini ise tuhaf konumlarda tutar.

Artık evenBits | oddBits kullanın ve bitleri sayabilirsiniz.

+0

Merhaba, bunu java'da nasıl yapacağımı gösterebilir misin? Hala programlama için yeniyim. Teşekkürler! –

+0

Bu kod Java'da, 'finalDist' size cevabı veriyor. – Maljam

+0

Teşekkürler! Son olarak, seq1 ve seq2 değerlerini nasıl aldınız anlamıyorum, 54 ve 194? –

İlgili konular