今まで BioRuby
で genbank 形式のファイルを取得するときは BioRuby Shell
を起動して getent()
をしていたが、いちいち起動するのは面倒なので Ruby のコード内で取得する方法を調べたのでまとめる。
要約
require "bio"
acc = "NC_012920"
ret = Bio::NCBI::REST::EFetch.nucleotide(acc)
entry = Bio::GenBank.new(ret)
File.open("#{entry.entry_id}.gbk", "w") do |f|
f.puts(ret)
end
データの取得
データは Bio::NCBI::REST::EFetch.nucleotide
で取得する。
他のものの取得はここを参照。
データのパース
取得したデータは String
なのでパースする。
今回は GenBank
形式決め打ちでパースしたが、他の形式もパースできるようにするには以下のように書く。
cls = Bio::FlatFile.autodetect(ret)
entry = cls.new(ret)