2016-03-31 25 views
1

DNAをバイナリ値で表現すると、それらの間の距離を計算する最良の方法は何ですか? ATGCTAACDNAハミング距離

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

ハミング距離は3であり、但しそのバイナリ表現が異なる答えを与える:場合0011011011000010 = 5

いただきましたの

ハミング距離を距離計算の最良の方法をDNA塩基はこのように表されますか?

答えて

0

あなたはこのような何かをする二項演算を使用することができます(Javaで、しかし、あなたはどの言語でロジックを適用することができます):

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 

アイデアがで異なっているビットの合計数を取得することです(pseudoDist&0xAAAAAAAA>>1)pseudoDist&0x55555555:あなたの代わりにハミング距離を取得するので、あなたが使用して同じビットに同じヌクレオチドに対応するすべてのビットを圧縮する必要がありますのでseq1^seq2

しかし、あなたはただ、まだビットをカウントすることはできません。最初のビットはビットを偶数の位置に、2番目のビットを奇数の位置に保ちます。

今ではevenBits | oddBitsを使用しており、その数を数えることができます。

+0

こんにちは、これをjavaで行う方法を教えてください。私はまだプログラミングに新しいです。ありがとう! –

+0

そのコードはJavaにあり、 'finalDist'はあなたに答えを与えます。 – Maljam

+0

ありがとう!最後に、seq1とseq2の値(54と194)の取得方法が分かりません。 –

関連する問題