[BioRuby-ja] gc_percentをfloatに
GOTO Naohisa
ngoto @ gen-info.osaka-u.ac.jp
2006年 6月 26日 (月) 13:57:54 UTC
後藤です。
メソッド名は、GenomeDiagramを参考に、gc_contentでよいと思います。
A/T/G/C/U以外の、R,Y等のIUPAC標準の曖昧な塩基やその他の文字は、
今までと同じく、分母・分子の両方から無視する計算法でよさそうです。
さらに、ついでに、
def at_content; (略); return at.to_f / (at+gc).to_f; end
def gc_skew; (略); return (g - c).to_f / (g + c).to_f
def at_skew; (略); return (a - t).to_f / (a + t).to_f
も追加したいと思うのですが、どうでしょうか?
gc_skewおよびat_skewは-1以上1以下の範囲の数になります。
(ちなみに、GenomeDiagramやG-languageには、スライディングウインドウで
ゲノム全体の値を計算してグラフを描く機能が付くようですが、それは全く別の話。)
それともう一点。
現状では、空の配列に対して Bio::Sequence::NA#gc_percent を実行すると、
s = Bio::Sequence::NA.new('')
p s.gc_percent
例外 ZeroDivisionError: divided by 0
が発生します。しかし、gc_percentの定義は、配列中にGとCがどれくらい含まれ
ているかの割合であり、長さ0の配列ではGC含有量は0なのだから、例外を出さず
0を返したほうがよいと思うのですが、いかがでしょうか?
--
後藤 直久 ngoto @ gen-info.osaka-u.ac.jp
大阪大学微生物病研究所 遺伝情報実験センター ゲノム情報解析分野(安永研)
BioRuby-ja メーリングリストの案内