BioRuby 入 門 はじめてのプログラム 言 語 Naohisa Goto / 後 藤 直 久 Genome Information Research Center, Research Institute for Microbial Diseases, Osaka Univ. 大 阪 大 学 微 生 物 病 研 究 所 附 属 遺 伝 情 報 実 験 センター Email: ngoto@gen-info.osaka-u.ac.jp twitter: @ngotogenome
Who am I? / 自 己 紹 介 Name: Naohisa Goto 名 前 : 後 藤 直 久 所 属 : 大 阪 大 学 微 生 物 病 研 究 所 附 属 遺 伝 情 報 実 験 センター ゲノム 情 報 解 析 分 野 職 位 : 助 教 Twitter: @ngotogenome Email: ngoto@gen-info.osaka-u.ac.jp
Ruby とは? コンピュータ 用 の 言 語 のひとつ オブジェクト 指 向 スクリプト 言 語 日 本 発 世 界 に 広 まったソフトウェア 作 者 : まつもとゆきひろ 氏 1995 年 に 最 初 のバージョン 世 界 中 で 利 用 されている 国 際 的 開 発 体 制 フリーソフトウェア 配 布 利 用 改 変 が 自 由 http://www.ruby-lang.org/
プログラミング 言 語 BASIC C C++ C# COBOL D Fortran Haskell Java JavaScript Lisp ML Pascal Perl PHP PL/I Prolog Python R Ruby Smalltalk
なぜRuby? シンプル わかりやすく 生 産 性 も 高 い 洗 練 された 文 法 読 みやすく 書 きやすい 書 籍 や 各 種 情 報 が 多 い 特 に 日 本 語 の 本 やウェブサイトは 多 い 各 地 でボランティアベースの 勉 強 会 が 開 催 目 的 に 応 じた 既 存 のライブラリやツールを 使 える Ruby on Rails ( 動 的 ウェブサイト 構 築 用 ), BioRuby 最 先 端 のインターネット 企 業 も 使 用 Twitter,
BioRubyとは? Rubyで 書 かれた 生 物 情 報 科 学 (バイオインフォマティ クス) 用 ライブラリとツール 集 ライブラリ=ソフトウェアの 部 品 を 集 めたもの フリーソフトウェア 配 布 利 用 改 変 が 自 由 最 新 バージョン 1.4.3 2012 年 8 月 22 日 リリース http://bioruby.org/
BioRubyの 機 能 基 本 データ 構 造 Formats Tools 配 列 (Bio::Sequence) フィーチャー (Bio::Features) 位 置 範 囲 (Bio::Locations) パスウェイ (Bio::Pathway) 文 献 データ (Bio::Reference) 系 統 樹 (Bio::Tree) Analysis Design SiRNA Restriction enzyme I/O Bio::FlatFile BioFetch BioSQL FlatFile indexing DAS GenBank EMBL UniProt KEGG PDB MEDLINE REBASE FASTA FASTQ GFF Web Service DDBJ KEGG API NCBI EBI TogoWS ABIF SCF GCG MSF Lasergene GO Newick PhyloXML NEXUS PSORT TargetP PTS1 SOSUI TMHMM BLAST FASTA EMBOSS HMMER InterProScan GeneScan BLAT Sim4 MEME Utility Clustal W MUSCLE MAFFT T-Coffee ProbCons PHYLIP PAML Molecular weight Codon table Convert sequence format Color Scheme Contingency Table
BioRuby 略 歴 2000/11 BioRubyプロジェクト 開 始 2001/06 最 初 のバージョン (BioRuby 0.1) 2001/10 BioRuby 0.3 : 2005/06-2006/03 IPA 未 踏 プロジェクトに 採 択 2006/02 BioRuby 1.0.0 : 2010/08 Bioinformatics 誌 に 論 文 掲 載 : 2012/08 BioRuby 1.4.3 Goto, N., Prins, P., Nakao, M., Bonnal, R., Aerts, J. and Katayama, T. (2010) BioRuby: Bioinformatics software for the Ruby programming language. Bioinformatics, 26(20), 2617-2619.
BioRubyの 規 模 最 新 バージョン: BioRuby 1.4.3 (2012/8/22) ファイル 数 Library: 230 files Tests: 120 files Sample codes: 70 files 行 数 (コメント 空 行 除 く) Library: 35,000 lines Tests: 22,000 lines 機 能 単 位 (クラス/モジュール, メソッド) 数 580 classes/modules 2800 methods
BioRuby 開 発 者 コミュニティ 現 在 の 主 要 開 発 者 Toshiaki Katayama (leader) (DBCLS) Naohisa Goto (release manager) (RIMD, Osaka Univ.) Pjotr Prins (Wageningen University, Netherlands) Raoul Bonnal (INGM, Italy) Jan Aerts Mitsuteru Nakao Francesco Strozzi これまでに 合 計 30 人 以 上 がBioRubyに 寄 与 開 発 サイト: http://github.com/bioruby/bioruby
ハッカソン による 開 発 の 促 進 Hackathon an event when programmers meet to do collaborative computer programming (from WikiPedia) formed from the intellectual slang hack and marathon 2002/02 BioHackathon (Arizona and Cape town) (Katayama) 2003/02 BioHackathon (Singapore) (Katayama) 2006/12 Phyloinformatics Hackathon (Durham) (Katayama, Goto) 2008/02 DBCLS BioHackathon2008 (Tokyo) 2009/03 DBCLS BioHackathon2009 (Tokyo, Okinawa) 2010/02 DBCLS BioHackathon2010 (Tokyo) 2010/10 DBCLS BH10.10 (Shizuoka) 2011/08 NBDC / DBCLS BioHackathon2011 (Kyoto) 2012/09 NBDC / DBCLS BioHackathon2012 (Toyama)
参 考 書 籍 多 田 雅 人 著 Rubyではじめる バイオインフォマティクス 培 風 館 (2009) 3,255 円 オープンバイオ 研 究 会 編 オープンソー スで 学 ぶバイオインフォマティクス 東 京 電 機 大 学 出 版 局 (2008) 4,095 円
Rubyのインストール Windows http://rubyinstaller.org/ から 最 新 版 をダウンロードして インストール 2012/8 現 在 の 最 新 版 はRuby 1.9.3-p194 Mac OS X (Leopard 以 降 ) 必 ずXcodeをインストールすること Rubyはいちおう 最 初 からインストール 済 み ただしバージョンが 古 かったり 微 妙 に 不 具 合 があったりする 可 能 なら Homebrew, MacPorts, fink などを 用 いて 最 新 版 を 入 れるのが 推 奨
BioRubyのインストール Windows ( 先 ほどの Ruby 1.9.3-p194の 場 合 ) インターネットに 接 続 する スタート すべてのプログラム Ruby 1.9.3-p194 Start Command Prompt with Ruby をクリック gem install bio と 入 力 してEnter しばらく 待 つ( 添 付 のドキュメントの 整 形 に 時 間 がかる) 新 しめのRubyがインストールされているMac インターネットに 接 続 する アプリケーション ユーティリティ にある ターミナル (Terminal.app)を 起 動 sudo gem install bio と 入 力 してEnter しばらく 待 つ
BioRubyのインストール 古 いRubyの 入 っているMacの 場 合 http://rubygems.org/downloads/bio-1.4.3.gem また は http://bioruby.org/archive/gems/bio-1.4.3.gem を デスクトップにダウンロード アプリケーション ユーティリティ にある ターミナル (Terminal.app)を 起 動 cd Desktop と 入 力 sudo gem install bio-1.4.3.gem と 入 力
Rubyのインタラクティブ 環 境 の 起 動 Windows ( 先 ほどの Ruby 1.9.3-p194の 場 合 ) スタート すべてのプログラム Ruby 1.9.3-p194 Start Command Prompt with Ruby をクリック ( 右 クリックして コピー し デスクトップ 上 で 貼 り 付 け し てアイコンをデスクトップに 作 っておくと 便 利 ) ( 日 本 語 が 化 ける 場 合 は ウインドウ 左 上 のアイコンを 右 ク リックして プロパティ をクリック フォント を 表 示 必 要 な ら 好 みのサイズに 変 更 して OK を 押 す) irb と 入 力 してEnter
Rubyのインタラクティブ 環 境 の 起 動 Macの 場 合 アプリケーション ユーティリティ にある ターミナル (Terminal.app)を 起 動 ドックに 入 れておくと 後 で 便 利 です 起 動 済 みの 場 合 はメニューの シェル 新 規 ウインドウ Basic で 新 規 ウインドウを 開 く(または 既 存 のウインド ウを 使 い 回 してもよい) irb と 入 力 しEnter
Rubyのインタラクティブ 環 境 irb Ruby 言 語 を 対 話 的 に 使 う 環 境 入 力 したら 計 算 結 果 がすぐに 出 てくる 計 算 時 間 は 計 算 内 容 次 第 で 長 くなることもあります まずは 電 卓 代 わりに 使 ってみる 1+2 * 3 と 入 力 してEnter 答 : 7 括 弧 も 使 える ((1+2) * (3+4) + 5) * 6 答 : 156
割 り 算 の 注 意 点 例 : 10 / 3 は? 整 数 同 士 の 割 り 算 は 答 えを 整 数 に 丸 めて 返 す 小 数 になってもいい 場 合 は 10.0 / 3 または 10 / 3.0 ま たは 10.quo(3)とする
変 数 名 前 を 付 けて 数 字 その 他 を 一 時 的 に 記 憶 a = 1 b = 2 c = a + b aaa = c * 3 アルファベット 小 文 字 から 始 まり アルファベット 数 字 または_(アンダーバー)を 名 前 に 使 える 変 数 名 = 値 で 変 数 に 値 をセット( 代 入 )
変 数 後 から 値 を 変 更 できる a = 1 a = 2 a = a * 3 値 をセットしていない 変 数 を 読 もうとすると a = xxx エラーが 出 る
文 字 列 a = "this is a string" b = 'testtest' a = a + b * 2 " (ダブルクオート)または ' (シングルクオート)で 囲 った 中 身 が 文 字 列 " と ' では 特 殊 文 字 の 取 り 扱 いが 異 なる
文 字 列 の 一 部 を 切 り 出 す a = "atgccgta" a[0..2] a[2,4] 文 字 列 [ 開 始 位 置.. 終 了 位 置 ] 文 字 列 [ 開 始 位 置, 文 字 数 ] 先 頭 文 字 はゼロ 文 字 目
( 数 学 情 報 科 学 の) 配 列 (Array) 複 数 の 値 をひとまとめにして 扱 う a = [ 3, 4, 5 ] b = [ 1, 2 ] c = a + b c[2] c[2] = 9 配 列 [ 位 置 ] で 特 定 位 置 の 値 をゲット/セット 先 頭 の 位 置 はゼロ 文 字 列 と 同 様 に 複 数 を 同 時 に 取 ってくることもできる 配 列 [ 位 置.. 位 置 ] 配 列 [ 位 置, 個 数 ]
画 面 表 示 print puts p 表 示 表 示 した 後 改 行 オブジェクトの 外 見 を 表 示 a = "this is test" b = 1 print a print a, b puts a puts a, b p a
Bioruby Shell の 起 動 Windows スタート すべてのプログラム Ruby 1.9.3-p194 Start Command Prompt with Ruby をクリック bioruby と 入 力 してEnter Mac Terminalの 新 規 ウインドウで bioruby と 入 力 してEnter
Bioruby Shell 基 本 はirbと 同 じ 対 話 的 Ruby 環 境 バイオインフォ 用 のコマンドが 追 加 されている 終 了 時 に 入 力 の 履 歴 や 変 数 を 保 存 し 次 回 起 動 時 に 復 元 してくれる 複 数 同 時 起 動 した 場 合 は 最 後 に 保 存 したもののみ 有 効 応 用 として biorubyコマンドにオプションを 付 けてプロジェクト 名 を 付 けることで 複 数 同 時 起 動 も 可 能
BioRuby Shell の 便 利 コマンド codontable
BioRuby Shellの 面 白 いコマンド doublehelix DNA 塩 基 配 列 を 二 重 螺 旋 っぽく 表 示
BioRuby Shellの 面 白 いコマンド DNA music のMIDIファイルを 作 成 # 配 列 データ s = Bio::Sequence::NA.new("atgccc") # DNA music midifile("test.mid", s)
BioRuby 基 礎 : 塩 基 配 列 # 作 成 s = Bio::Sequence::NA.new("atgccc") # 長 さ puts s.length # 分 子 量 puts s.molecular_weight # 塩 基 組 成 puts s.composition # 相 補 鎖 の 配 列 puts s.complement # 逆 順 ( 生 物 学 的 にはあまり 意 味 がない?) puts s.reverse # アミノ 酸 への 翻 訳 puts s.translate
BioRuby 基 礎 :アミノ 酸 配 列 # 作 成 a = Bio::Sequence::AA.new("DTPGHVDF") # 分 子 量 puts a.molecular_weight # アミノ 酸 組 成 puts a.composition # 3 文 字 コード puts a.codes 他 はBioRubyに 添 付 の 文 書 やサンプルコードを 参 照 Windowsの 場 合 C: Ruby193 lib ruby gems 1.9.1 gems bio-1.4.3 の 中 に doc や sample というフォルダがある
ファイルの 読 み 込 み Bio::FlatFile.open("ファイル 名 ") do ff f.each do e # 配 列 エントリの 定 義 puts e.definition # 塩 基 配 列 を 表 示 puts e.naseq end end ファイルフォーマットは 自 動 判 別 手 動 で 指 定 する 方 法 もあるが 略 判 別 に 失 敗 する 場 合 はたいがい 未 対 応 フォーマット
irb / BioRuby Shell の 終 了 方 法 exit と 入 力 してEnter コマンドラインのウインドウは 残 る 他 のコマンドライン 操 作 ができる 必 要 無 くなったら を 押 して 閉 じる (この 講 習 中 は 閉 じずに 置 いておくと 何 かと 便 利 です)
Rubyスクリプトの 実 行 コマンドラインを 準 備 Windows Mac スタート すべてのプログラム Ruby 1.9.3-p194 Start Command Prompt with Ruby をクリック(または 既 存 のものを 流 用 ) Terminalの 新 規 ウインドウを 作 成 (または 既 存 のものを 流 用 スクリプトやデータのファイルを 適 切 な 場 所 に 準 備 cdコマンドでデータを 置 いた 場 所 に 移 動 ruby ファイル 名.rb と 入 力
テキストエディタ Rubyスクリプトはテキストエディタで 入 力 Windows メモ 帳 ( 何 も 無 い 場 合 の 緊 急 用 ) サクラエディタ TeraPad, xyzzy などのフリーソフトの 利 用 を 推 奨 ( 秀 丸 などの 商 品 でも 構 わない) Mac テキストエディタ( 何 も 無 い 場 合 の 緊 急 用 ) 保 存 の 際 の 形 式 の 指 定 が 少 々ややこしい mi (http://www.mimikaki.net/), CotEditor などのフ リーソフトの 利 用 を 推 奨 Microsoft Word は 使 用 しないこと!
ファイル 入 力 処 理 ファイル 書 き 出 し 例 :DNA アミノ 酸 への 翻 訳 require "rubygems" require "bio" f = Bio::FlatFile.open(ARGF) f.each do entry dna = entry.naseq aa = dna.translate seq = Bio::Sequence.new(seq) print seq.output_fasta(e.definition) end 上 記 をテキストエディタで 入 力 ファイル 名 translate.rb として 保 存 ruby translate.rb 入 力 データファイル > 出 力 ファイル 名
参 考 Ruby http://www.ruby-lang.org/ BioRuby BioRuby 付 属 の 文 書 doc/ 特 に Tutorial.rd.html と Tutorial.rd.ja.html sample/ 特 に sample/demo_*.rb テスト 用 データは test/data にあり http://bioruby.org/
書 籍 多 田 雅 人 著 Rubyではじめる バイオインフォマティクス 培 風 館 (2009) 3,255 円 オープンバイオ 研 究 会 編 オープンソー スで 学 ぶバイオインフォマティクス 東 京 電 機 大 学 出 版 局 (2008) 4,095 円