Re: [BioRuby-ja] Re:PubMedのメソッドに関する質問(長文で失礼します)

Toshiaki Katayama k @ bioruby.org
2005年 10月 22日 (土) 06:00:53 EDT


坂井様

BioRuby をお使い頂きありがとうございます。

すでに解決されたということですので、参考までに:

UNIX や Cygwin などシェルの使える環境なら、元のコードのままでも
次のように実行すればファイルから読み込むことが可能じゃないかと思います。

  % ./pmfetch.rb `cat PMID.txt`

PMID.txt には PMID を空白や改行で区切って並べて書いておけば良いです。

# 昨日返信していたつもりだったのですがメールが出ていなかったようです。
# ごめんなさい。

また、

> open("PMID.txt", "r"){ |io| #追加
>  while id = io.gets         #追加
> ####ARGV.each do |id|       #
>    id.chomp!                #追加

のようにファイルに1行ずつ PMID が書かれていることを期待して良い場合も、

ARGF.each do |line|    # 変更
  id = line.chomp      # 変更
  entry = Bio::PubMed.query(id)
  medline = Bio::MEDLINE.new(entry)
  reference = medline.reference
  puts reference.bibtex
end

とすると、読み込むファイル名をプログラムに埋め込まずに

  % ./pmfetch.rb PMID.txt

のように引数でファイル名を渡せば良くなります。

ではでは。

片山


On 2005/10/22, at 16:49, sakai toshiya wrote:

> 自己レスです。すみません、解決しました。
> ruby の解説書 (たのしい ruby) を参考に、コードをいじって
> いるうちにうまくいきました。以前にいろいろがんばった時は、
> どうしてもうまく行かなかったので不思議ですが、id.chomp! 
> を加えたのが良かったかも、と想像しています。
> linux で試したのですが、windows でもうまくいくかこれから
> 試します。努力不足でお騒がせして申し訳ありません。
> 今後ともよろしくお願いいたします。
> ---------------------------------------------------------
> #!/usr/bin/env ruby
>
> require 'bio'
> open("PMID.txt", "r"){ |io| #追加
>  while id = io.gets         #追加
> ####ARGV.each do |id|       #
>    id.chomp!                #追加
>    entry = Bio::PubMed.query(id)      
>    medline = Bio::MEDLINE.new(entry) 
>    reference = medline.reference     
>    puts reference.bibtex             
>  end
> }
> ----------------------------------------------------------
> 坂井俊哉
> 北海道大学大学院医学研究科 病態内科学講座・第二内科
> e-mail: sakai-toshiya @ mvc.biglobe.ne.jp
>



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