[BioRuby-ja] Fwd: consensus_iupac

遠藤大二 dendoh @ rakuno.ac.jp
2007年 7月 27日 (金) 00:36:21 UTC


遠藤です。 後藤様ありがとうございました。


>お役に立てて幸いです。
>ドキュメントが、いまいち、わかりにくいのは、徐々に直していきたいと思います。

>> 加えて、質問なのですが、mafftでは"-"で示されている
>> ギャップがconsensusでは?にされています。この文字の選択については背景に意味があるのでしょうか。

>BioPerlの実装に合わせただけで、深い意味はなかったと思います、たぶん。

是非お願いします。ただ、使う側としても効率良く情報を見る必要を感じました。
たとえば、ギャップの標記などについてはbioperlが参考になっているわけですから、bioperlの仕様や説明も参照するようにすると良いことがわかりました。

>実は、consensus_iupac は以下のようなギャップの取扱いを指定するための
オプションを取ります。consensus_string も同様のオプションを取りますが、
consensus_stringの第一引数は閾値である点は注意してください。

これほど細かい設定が出来るとは、知りませんでした。ありがとうございました。
すぐに使います。



>もちろん、ギャップが何個以下だったら救出するが、それ以上だったら
ギャップ扱い、のような複雑なことをしようと思えば、自分独自の
ルーチンを組む必要があります。

このとき、each_site というイテレータを使えば便利と思います。

  # さきほどのプログラムの続きとします
  a.each_site { |x| p x }

これを実行すると
["a", "a", "a"]
["a", "a", "-"]
["a", "c", "a"]
["a", "c", "-"]
["a", "g", "a"]
["a", "g", "-"]
["a", "t", "a"]
["a", "t", "-"]
["c", "g", "c"]
["c", "g", "-"]
["c", "t", "c"]
["c", "t", "-"]
["g", "t", "g"]
["g", "t", "-"]
>と表示されます。つまり、各サイトの内容をArray (より正確には、Arrayを
継承した Bio::Alignment::Site クラスのオブジェクト)に入れた内容で、
繰り返し実行してくれます。

このSiteのイテレータを利用して、consensusの条件付けをしたいと思います。
報告塩基配列にも間違いがある可能性はありますから、下記のような条件で自分用のconsensusを決定したいと思います。

1 明示されている塩基が90%以上一致しており、残りが「その塩基を含む混合塩基のとき」
90%以上の塩基を採用する
2 99%以上が明示されている塩基(またはギャップ)である場合、その塩基(またはギャップ)を採用する
3 明らかな未読領域がギャップとして表示されている場合、10本以上の配列が一致して表示されていれば、その塩基配列を採用する。

上記のような条件は個々の使用者ごとに変わると思いますが、多数の塩基配列を参照するときには、必要な条件であると思います。

では、またよろしくお願いします。


-- 
酪農学園大学 獣医学部 放射線学教室
遠藤大二
Tel: 011-388-4847
Fax:011-387-5890



BioRuby-ja メーリングリストの案内