DNAをバイナリ値で表現すると、それらの間の距離を計算する最良の方法は何ですか? ATGC
とTAAC
間DNAハミング距離
So : A = 00, T = 11, G = 01 and C = 10
ハミング距離は3であり、但しそのバイナリ表現が異なる答えを与える:場合00110110
と11000010
= 5
いただきましたの
ハミング距離を距離計算の最良の方法をDNA塩基はこのように表されますか?
DNAをバイナリ値で表現すると、それらの間の距離を計算する最良の方法は何ですか? ATGC
とTAAC
間DNAハミング距離
So : A = 00, T = 11, G = 01 and C = 10
ハミング距離は3であり、但しそのバイナリ表現が異なる答えを与える:場合00110110
と11000010
= 5
いただきましたの
ハミング距離を距離計算の最良の方法をDNA塩基はこのように表されますか?
あなたはこのような何かをする二項演算を使用することができます(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
を使用しており、その数を数えることができます。
こんにちは、これをjavaで行う方法を教えてください。私はまだプログラミングに新しいです。ありがとう! –
そのコードはJavaにあり、 'finalDist'はあなたに答えを与えます。 – Maljam
ありがとう!最後に、seq1とseq2の値(54と194)の取得方法が分かりません。 –