- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- ソース を表示
- バイオ・データ・マイニング/アミノ酸の条件付き生起確率を調べる へ行く。
- 1 (2011-02-06 (日) 11:46:21)
はじめに †
こちらで,シロイヌナズナにのたんぱく質における開始アミノ酸の生起確率を調べました.
ここで,バイグラムによる分析(二文字ずつの分析)を行い,直前のアミノ酸によってアミノ酸の生起確率に違いがあるかどうか,つまり,条件付き生起確率を調べ,直前のアミノ酸ごとに比べます.
プログラム †
前回作成したRuby 1.9のプログラムを基にして,次のようなプログラムを作りました.
require 'zlib' h = Hash.new # カウントを保存するハッシュ "ABCDEFGHIKLMNPQRSTUVWXYZ".each_char do |c1| "ABCDEFGHIKLMNPQRSTUVWXYZ".each_char do |c2| h[c1+c2] = 0 # カウントを0に初期化 end end Zlib::GzipReader.open('At_GB_all_prot.gz') do |gz| gz.each do |l| c = l[0] next if c == '>' # ヘッダ行はスキップ for i in 0..(l.chomp!.length-2) do token = l[i]+l[i+1] # バイグラムのトークン h[token] += 1 end end end # 列見出し print "," "ABCDEFGHIKLMNPQRSTUVWXYZ".each_char do |c| print "#{c}," end print "\n" "ABCDEFGHIKLMNPQRSTUVWXYZ".each_char do |c1| sum = 0 # 合計 "ABCDEFGHIKLMNPQRSTUVWXYZ".each_char do |c2| sum += h[c1+c2] # 合計 end print "#{c1}," # 行見出し "ABCDEFGHIKLMNPQRSTUVWXYZ".each_char do |c2| print "#{h[c1+c2]/sum.to_f}," # 条件付き確率の計算と出力 end print "\n" end
行の最後に余分なコンマが付きますが,ここでは気にしないことにします.
グラフ †

コメント †
特殊なB, U, X, Zは別としても,他のと結構違うアミノ酸もありますね.