|
[ruby-list:42435] Re: 空白行を除くための行数の数え方: msg#00089lang.ruby.japanese
新山です。 最初の質問時に「BioRubyを使ってGenBankデータを処理しようとしています」 と対象データ・使用ライブラリを断っておけば皆さんも混乱しなかったと思いま す(^^; データファイルを hogehoge とすると、まず $ filestrip2.rb hogehoge > hogehoge2 として空行を除いたデータをファイルに出力して、出力ファイルを普通に Bio::FlatFile.new で読み込めばいいのではないでしょうか。Bio::GenBank オ ブジェクトは文字列ではないので strip はできません。 #ていうか、GenBank のフォーマットにとって空行に何の意味もないなら #BioRuby 側で読み飛ばしてくれればいいんじゃないかと思ってみたり。 遠藤 大二 <dendoh-PkbjNfxxIARL9jVzuh4AOg@xxxxxxxxxxxxxxxx> さんの 「[ruby-list:42427] Re: 空白行を除くための行数の数え方」 <BAY110-F29326B47CA7A7A3FCBD7BE9A870-MsuGFMq8XAE@xxxxxxxxxxxxxxxx>より: > 神戸さま 片山さま > > 遠藤です > > もうしおくれました。GENBANKのデータを処理しようとしています。 > > レスポンスが遅くてすみません。 > まず、 > 1 > % sed -e '/^\/\//q' (元のファイル) > (加工されたファイル) > は、うまくいきました。ただし、とうこうではぬけていた問題として複数レコードで > は、二番め以降がなくなってしまいました。 > > first record > ---- > ---- > // > > second record > --- > ---- > // > > 2 > 片山さんからのほうほうは、最初はうまくいったのですが、下記のBioRubyのコード > の実行を試みた後は、以下のエラーが返されてしまい、実行できなくなりました。 > > getgb.rb:8: undefined method `strip!' for #<Bio::GenBank:0x2aaaab3c7198> > (NoMethodError) > from getgb.rb:7:in `each_entry' > from getgb.rb:7 > > filestrip2.rb:4: warning: regex literal in condition > > コード > getgb.rb>>>>>>>>>>>> > > #!/usr/bin/env ruby > > require 'bio' > > ff=Bio::FlatFile.new(Bio::GenBank, ARGF) > sgb=[] > ff.each_entry do |gb| > gb.strip! > p gb.definition > p gb.organism > p gb.taxonomy > gb.features.each do |feature| > p feature.feature > # p feature.position > end > # p gb.features > end > > --------------------------- > filestrip2.rb>>>>>>>>> > > #!/usr/bin/env ruby > > ARGF.each do |line| > print line unless /^$/ > end > > --------------- > 何度もすみませんが、お知恵をいただけるとさいわいです。 > > > > > > 遺伝子のデータを処理しています。 > > > ダウンロードしたデータは > > > // > > > という記号で終わるのですが、その下に二行余計な行が入っているために、処理 > がう > > > まく行きません。 > >目的の「処理」は、トライされているRubyのスクリプトとはまったく別物なの > >でしょうか? > > > > > 下記のやり方を取ろうと考えているのですが、もっとエレガントな方法を御存知 > の方 > > > がいらっしゃれば、御助言いただけないでしょうか。 > >行の番号に捕らわれすぎている気がします。 > > > > > 1ファイルの行数を調べる > > > 2'//'で始まる行の行番号を調べ、その最大数を求める > > > 3ファイルのうち2で決めた行数のみを新たに保存する。 > >"//"の行が来た時点で、ファイルを読むのを止めては、どうでしょう? Ruby > >じゃありませんが、 > > > > % sed -e '/^\/\//q' (元のファイル) > (加工されたファイル) > > > >といったことがされたい気がします。 > > > >-- > >神戸 隆博(かんべ たかひろ) at 仕事場 > > > > _________________________________________________________________ > 迷惑メールやウイルスへの対策も万全「MSN Hotmail」 > http://promotion.msn.co.jp/hotmail/ > -- 新山 徳人(Norihito Shinzan) / 鹿原 淳(Jun Kabbalah) mailto:kabbalah-dQ7LRJR+8C81vfuBshnKrCGn5s73+xxf@xxxxxxxxxxxxxxxx Web:「えりるんはいむ」 http://erirun.net/
|
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| Previous by Date: | [ruby-list:42434] Re: toplevel ウィジェットにイベントがわたらない?, Atsushi SHICHI |
|---|---|
| Next by Date: | [ruby-list:42436] Re: 空白行を除くための行数の数え方, Takahiro Kambe |
| Previous by Thread: | [ruby-list:42433] Re: 空白行を除くための行数の数え方, しん |
| Next by Thread: | [ruby-list:42438] Re: 空白行を除くための行数の数え方, 遠藤 大二 |
| Indexes: | [Date] [Thread] [Top] [All Lists] |
| News | FAQ | advertise |