[BioRuby-ja] Fwd: fasta形式の確認
dendoh@rakuno.ac.jp
daijiendoh @ gmail.com
2009年 9月 17日 (木) 11:49:37 UTC
後藤さん
返信大変遅くなってしまいました。
下記の方法で確認することができました。
伺ってみると、すごく当たり前のことで、赤面しております。
BioRuby は、やり方を伺うとものすごくシンプルなのですが、オブジェクトの取り扱いが分からず、感覚が付いてくるまで時間がかかりそうです。
いつもありがとうございます。
これで、近々プライマー設計ページをアップできます。
では、またよろしくお願いします。
On Tue, 1 Sep 2009 12:55:52 +0900
"dendoh @ rakuno.ac.jp" <daijiendoh @ gmail.com> wrote:
> 北海道の遠藤です
> 久しぶりに投稿させていただきます。
>
> 現在Webから塩基配列を fasta 形式で入力してもらって、処理をするServer application を作っています。
> まず、入力文字列がFasta形式かどうかを確認する必要があるのですが、
>
> Bio::FlatFile.new(Bio::FastaFormat, ARGF) として、null
> が帰ってきたら、FastaFormatで無いと判断すればよいのでしょうか。
それをすると、内容を問わず、無理矢理にでも Bio::FastaFormat
として入力データを解釈するので、むしろ逆です。
たとえば
ff = Bio::FlatFile.new(nil, ARGF)
if ff.dbclass != Bio::FastaFormat
$stderr.puts "Not FASTA format!"
exit(1)
end
ff.each do |entry|
# entry is a Bio::FastaFormat object
# ...
end
のような感じで、入力データ形式自動認識をさせて、その結果、希望の
フォーマット(今回は Bio::FastaFormat) として識別されているか
を調べるとよいと思います。
自動認識はもちろん完全ではないですが、実用上は問題ないことが多いです。
ただし、ウェブサーバで実行するとのことで、不特定の人が実行するのなら、
堅牢性が不十分かもしれない点には注意する必要があります。
(たとえば、改行が一切無いデータを与えると、改行コードを区切りとして
形式判別用データを先読みしているので、際限なくデータを読ませ続けて、
サーバーのメモリを食いつぶすことができるかもしれない。)
--
後藤 直久 ngoto @ gen-info.osaka-u.ac.jp
大阪大学微生物病研究所 遺伝情報実験センター ゲノム情報解析分野(安永研)
--
酪農学園大学 獣医学部 放射線学教室
遠藤大二
Tel: 011-388-4847
Fax:011-387-5890
BioRuby-ja メーリングリストの案内