[#42454] 多量の正規表現との効率的なマッチのアイデアを、、 — しん <dezawa@...>

出沢です

22 messages 2006/06/22
[#42455] Re: 多量の正規表現との効率的なマッチのアイデアを、、 — rubikitch <rubikitch@...> 2006/06/22

From: しん <dezawa@aliadne.net>

[#42456] Re: 多量の正規表現との効率的なマッチのアイデアを、、 — しん <dezawa@...> 2006/06/23

出沢です

[#42458] Re: 多量の正規表現との効率的なマッチのアイデアを、、 — rubikitch <rubikitch@...> 2006/06/23

From: しん <dezawa@aliadne.net>

[#42459] Re: 多量の正規表現との効率的なマッチのアイデアを、、 — しん <dezawa@...> 2006/06/23

出沢です

[#42460] Re: 多量の正規表現との効率的なマッチのアイデアを、、 — rubikitch <rubikitch@...> 2006/06/23

From: しん <dezawa@aliadne.net>

[#42461] Re: 多量の正規表現との効率的なマッチのアイデアを、、 — しん <dezawa@...> 2006/06/23

出沢です。

[ruby-list:42435] Re: 空白行を除くための行数の数え方

From: "Norihito Shinzan (Jun Kabbalah)" <kabbalah@...>
Date: 2006-06-20 23:10:47 UTC
List: ruby-list #42435
  新山です。

  最初の質問時に「BioRubyを使ってGenBankデータを処理しようとしています」
と対象データ・使用ライブラリを断っておけば皆さんも混乱しなかったと思いま
す(^^;

  データファイルを hogehoge とすると、まず

$ filestrip2.rb hogehoge > hogehoge2

  として空行を除いたデータをファイルに出力して、出力ファイルを普通に 
Bio::FlatFile.new で読み込めばいいのではないでしょうか。Bio::GenBank オ
ブジェクトは文字列ではないので strip はできません。

#ていうか、GenBank のフォーマットにとって空行に何の意味もないなら
#BioRuby 側で読み飛ばしてくれればいいんじゃないかと思ってみたり。

遠藤 大二 <dendoh@hotmail.co.jp> さんの
「[ruby-list:42427] Re: 空白行を除くための行数の数え方」
<BAY110-F29326B47CA7A7A3FCBD7BE9A870@phx.gbl>より:
> 神戸さま 片山さま
> 
> 遠藤です
> 
> もうしおくれました。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@proc.org.tohoku.ac.jp
Web:「えりるんはいむ」 http://erirun.net/


In This Thread