たこぜりー研究室

大腸菌DNAは4.64Mbp。酵母は13Mbpで、ヒトは3Gbp

スポンサーサイト

#
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

卒業研究 #7

#418
using System.Collections.Generic;

コドン使用頻度 (codon usage) を求める作戦に移行。

アミノ酸 20 こに三つ組コドンが 4*4*4 = 64 こが割り当てられていて、つまり、アミノ酸 1 こにコドンが複数割り当てられていることがある。単純に考えれば、そのうちのどれを使ってもいいはずなのだが、使用頻度はけっこうばらついているようだ。
以上説明終わり。


教科書的にはコドン表が 16*4 の 2 次元表になっているわけだが、ここでは 64*1 の辞書にする。
問題はキーのコドンで、どう表すかですね。

とりあえずファイルをバイト列で読み込んでるし、コドンもバイト列で、の方向でいく。
つまり、Dictionary<byte[], int> 。

一応 IEqualityComparer<byte[]> も実装しておく。

int hash = 0;
foreach (byte value in obj)
{
  hash <<= 8;
  hash += value;
}

としておけば、{0x65, 0x84, 0x71} のハッシュ値は 0x00658471 となる。


結果 :

44.49 sec, 244.29 MB

出力 (一部) :

M ATG 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00
I ATA 0.19 0.19 0.19 0.18 0.19 0.18 0.21 0.21 0.30 0.27 0.30 0.25
I ATT 0.33 0.32 0.32 0.32 0.32 0.32 0.31 0.31 0.44 0.36 0.37 0.39
I ATC 0.48 0.49 0.50 0.50 0.50 0.49 0.48 0.48 0.26 0.37 0.33 0.36

第 1 列がアミノ酸、第 2 列がコドン、それ以降の 12 列が codon usage 。
ちなみに M はメチオニン、I はイソロイシン。

コメント


コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバックURL:  http://takojelly.blog2.fc2.com/tb.php/418-f300a6c6
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。