Successfully reported this slideshow.
Your SlideShare is downloading. ×

R以外の研究ツール

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Loading in …3
×

Check these out next

1 of 32 Ad

More Related Content

Slideshows for you (20)

Viewers also liked (20)

Advertisement

Similar to R以外の研究ツール (20)

More from 弘毅 露崎 (20)

Advertisement

Recently uploaded (20)

R以外の研究ツール

  1. 1. R以外の研究ツール antiplastics@Kashiwa.R#10
  2. 2. @antiplastics 露崎 弘毅(つゆざき こうき) 理化学研究所 バイオインフォマティクスユニット JRA(火~金) 東京理科大学 薬学研究科 博士後期課程3年(土~月)
  3. 3. 作ったRパッケージ metaSeq (RNA-seqのメタ解析パッケージ) MeSH ORA Framework (MeSHを利用した 遺伝子アノテーション)
  4. 4. →今日はR以外の話をします! ・最近Rのネタが無い ・結構飽きてる ・そもそもRだけで研究している訳が無い
  5. 5. コードスニペット
  6. 6. Sublime Text 2 (ST2) • http://www.sublimetext.com/ • エディタはこれ一択(3も出てる), V*(*) / E****は使わない • どのOSでも使える、シンタックスがかっこいい、多機能、使いやすい
  7. 7. 基本的なショートカット • Command(⌘) + F : 検索 • Command(⌘) + S : 保存 • Command(⌘) + Z : 戻る • Command(⌘) + Y : 進む … メモ帳、Office、ブラウザとかと全く同じ
  8. 8. 高度な機能 # ショートカット • Command(⌘) + / : コメントアウト • Command(⌘) + option + 数字 : Window分割 • Control + Shift +数字: 指定した分割Windowに飛ぶ • Command(⌘)を押しながら色々な箇所を選択 : マルチカーソル • 文字列選択後に、Command(⌘) + D : 一括置換
  9. 9. 高度な機能 • Command(⌘) + P : ファイル選択 • Command(⌘) + Control + P : コマンドパレット (シンタックス、スニペット、パッケージ…etcを検索) http://qiita.com/mryreplicant/items/97d96fd156cf 30744b8b # Package Control (簡単にパッケージを管理できるようにする機能) https://sublime.wbond.net/installation#st2
  10. 10. コードスニペット • コードの切れ端 • よく書くプログラミングのパターンをあらかじめ登録しておいて、 すぐ取り出せるようにする ”Snippet: html”を選ぶだけ! 登録したコードが生成! コマンドパレット (Command (⌘) + Ctrl + P)を起動
  11. 11. スニペットの作り方 ツールバーのTools>New Snippetで出てきた上の記述様式の通りに書いて、 /Users/ユーザー名/Library/Application Support/Sublime Text 2/Packages/User に保存するだけ(拡張子はsublime-snippet) Command (⌘) + Ctrl + Pでhelloとうつ と上のコードが生成さ れる 生成されるコード 生成時に1番目に選 択される箇所 ${1:this}が選択され た後にtabを押すと ジャンプする箇所 hello.sublime-snippet
  12. 12. bash.sublime-snippet シェバン行(パス)とかどう書くのか ググるのめんどい いつもなんかしらIDをまとめたファイル を基に繰り返し処理を行っている シェルスクリプト : 同じプログラムを何回もぶん回す時に使ってる 5個のうち、4個をバックグラウンドで 実行(&)する(なんちゃって並列化)
  13. 13. perl.sublime-snippet シェバン行(パス)めんどい あるファイルを読み込んで、 出力ファイルに書き出す Perl : 正規表現である特定の文字列だけ抽出する時に使ってる グループマッチを使う事が多い
  14. 14. Rake.sublime-snippet desc, task, 依存ファイルとかの書き方をすぐ忘れる Rake : 状況に応じて走らせるプログラムを使い分けたい時に使ってる
  15. 15. RSQLite.sublime-snippet dbDriver, dbConnect, dbGetQuery と書くのをすぐ忘れる RSQLite : Rでsqliteファイルにアクセスする時使ってる
  16. 16. サーバ上でプログラムを実行する場合 自分はこれでサーバ上でプログラムを書くのを回避してます>< SSHでログイン 自動転送 方法1) サーバ上で編集 -> サーバで実行 V*(*) / E***で プログラムを編集 方法2) ローカルマシン上で編集 -> サーバで実行 ST2で プログラムを編集 > vim plot.R 実行 > R CMD BATCH plot.R 実行 > R CMD BATCH plot.R ssfhs + OSXFUSE (Max OS X) Expandrive, DokanFS(Windows)
  17. 17. バージョン管理システム
  18. 18. バージョン管理(VCS)とは なぜ2を作る必要が あったのか!? ファイルとは日々更新されていくもの 途中の過程を残しておきたい場面が出 てくる 分岐も出てくる可能性がある (パラメーターの違い、英語・日本語版 の各々の作成とか) 戻ってやり直したり、他の分岐したものと マージしたくなる場面もある 1とか2とかナンバリングしてるだけだと そのうち訳がわからなくなる この!!!にどんな思い を込めたのか!? 二年前の自分の修論
  19. 19. VCSができる事 • 差分を登録 • これまでの差分を閲覧 : ログ • バックアップ • 分岐 : ブランチ • 統合 : マージ • 過去の状態に戻る : ロールバック • 公開、共同作業 : 共有リポジトリ … 有名どころとして、git, Subversion(SVN), Mercurial, CVS …等がある http://www.slideshare.net/dallarosa/svn-9725505
  20. 20. 基本操作(git) mkdir work && cd work 作業ディレクトリ (端末) リポジトリ インデックス アッド コミット 仮登録みたいなところ (ステージ) 保存される場所 (差分毎にハッシュ 値がふられる) FileA ×n work http://dotinstall.com/lessons/basic_git チェック アウト リセット FileB FileC FileD # reposをgitに登録する git init # FileA.txtというファイルができたとする echo “This is first commit” > FileA.txt # アッド git add . # コミット git commit –m “First Commit” # 状況確認 git status # これまでのコミットしたものを閲覧 git log # ロールバック git reset –hard 191dsoghohodaohgohdgoa
  21. 21. GitHub • gitを用いてソースコードをWebに公開するための共有Web サービス • gitコマンドを知らなくても大丈夫(クライアントソフトがあるから) • その他にもGist(1テキストファイルのみの公開)、 Pages(webページの公開)など様々な機能を持つ http://www.atmarkit.co.jp/fjava/column/andoh/andoh60. html アッド & コミット web https://github.com/kokitsuyuzaki
  22. 22. BioconductorにおけるVCS Bioconductorのパッケージには“ソフトウェアパッケージ”と“実験データパッケージ” があり、共に全パッケージをSVNでバージョン管理している BioC2.14 リリース版 (release) ビルド、チェック、バイナリ化 が正常に走るのかチェック (一日1回ペースくらい?) BioC3.0 開発者版 (devel)
  23. 23. BioconductorにおけるVCS metaSeq work 1. パッケージをCore Teamに送り、受理される 2. SubversionのユーザーIDとパスワードが送られてくる 3. パッケージに何か変更・修正があるたび、SVNで向こうのリポジトリにコミットする 4. 木全体のバージョンが上がる (誰かが何か変更するたび全体の数字が上がる) release metaSeq metaSeq devel metaSeq metaSeq 82010 82011 release devel どっちかに コミット
  24. 24. mkdir work && cd work # release版と同期 # First CommitだけCore Teamがやってくれているので、チェックアウトする svn co https://hedgehog.fhcrc.org/bioconductor/branches/RELEASE_2_13/madman/Rpacks/met aSeq/ # devel版と同期する場合 svn co https://hedgehog.fhcrc.org/bioconductor/trunk/madman/Rpacks/metaSeq/ # 作業ディレクトリに修正版パッケージをコピー cp –rf ../metaSeq . # アッド svn add * # コミット svn commit –m “Added parallel function” # 状況確認 svn status BioconductorにおけるVCS http://master.bioconductor.org/de velopers/how-to/source-control/
  25. 25. x.y.zルール http://master.bioconductor.org/developers/how-to/version-numbering/ ・パッケージのバージョン番号には以下のようなものがある(x.y.z) 1.2.3, 0.0.1, 0.4.5, 0.2.3 ・ xが0である限り、公開はされない ・但し0.99.zにすると次のリリースで1.0.0として公開される (99ルール) ・yはdevelだと奇数、releaseだと偶数にしなくてはならない (偶数-奇数ルール) ・BioCのバージョンアップ毎、yの数字は増やされる (バンプアップ) Bioconductorのバージョンに加え、個々のパッケージのバージョンもある (例: Bioconductor 2.14で登録されたmeshr-1.0.3)
  26. 26. x.y.zルール Q1: 最初にパッケージを作った時、バージョンは何番? Q2: 0.99.0をCore Teamに送ったところ、一部を修正しろと言われました。 次のバージョンは何番? Q3: 0.99.4にして、BioC2.13で公開していいと言われました。 公開時のバージョンはrelease, develで各々何番? Q4: 次のBioC2.14ではこのパッケージのバージョンは、release, develで各々何番? A1: 0.99.0 (99ルール、きたるreleaseで1.0.0として公開してほしいから) A2: 0.99.1(まだOKをもらってないから、自分から1.0.0にはできない) A3: 1.0.0 (release), 1.1.0 (devel) (偶数-奇数ルール) A4: 1.2.0 (release), 1.3.0 (devel) (バンプアップ + 偶数-奇数ルール)
  27. 27. x.y.zルール Q5: Vignette(ドキュメント)に一部間違いが書かれていました。 修正したバージョンはどこに何番としてコミットすべき? Q6: Vignette修正後にパッケージに追加機能を付けたくなってきました。 機能追加Verのパッケージは、どこに何番としてコミットすべき? Q7: 今1.0.1(release), 1.1.2(devel)ですが、BioC2.14だとrelease, develで各々何番? Q8: コミット先を間違えて1.1.1 (release), 1.1.1(devel)として公開されてしまいました。 各々何番として再度コミットすべき? A5: release, devel両方に、1.0.1 (release), 1.1.1 (devel) (バグは直ちに修正) A6: develのみに、1.1.2 (devel) (バグ以外は全てdevelのみに反映→次回のreleaseで公開) A7: 1.2.0 (release), 1.3.0 (devel) (バンプアップ時はyの数字だけ見る) A8: 1.2.0 (release), 1.3.0 (devel) (ユーザーが戸惑うから、基本的に数字は減らさない) 以下は説明が無いが、Core Teamに言われた事
  28. 28. 仮想マシン
  29. 29. 仮想マシンとは 主な周辺ツール • Vagrant : VirtualBoxをコマンドで操作する • Chef : Vagrantの起動時の設定を色々する • Docker : Vagrant + Chefみたいな事をより軽量に行うツール • Boot2docker, Docker provider : Mac OS XでDockerを使うためのツール OS上であたかも一つのソフトウェアのように起動された他のOS(例: Mac上で起動するWindows) Mac Book Air (物理マシン) 仮想化ソフト Virtual Box、 VM ware Fusion、 Vagrant-LXC、 Parallels、KVC...など Windows 7 (仮想マシン)
  30. 30. 一度作っておけば、再度インストール不要、どこでもすぐ使えるし 同じ動作をする、メイン環境が壊れない、実験的な事ができる 仮想マシンの研究利用 解析結果の再現性が保証される (このまま論文のAdditional Fileにしたいくらい) Mac OS X (仮想マシン) R, R-studio, Evernote, Skitch, ST2, Office, Cyberduck, IGV, AppCleaner, Dropbox, GitHub, FastQC, Keynote, Xcode, homebrew, Skype, Xmarks, Growl, … データ 解析結果
  31. 31. BioCパッケージ開発用マシン Mac Book Air (物理マシン) Ubuntu-14.04 LTS (仮想マシン) 作り方、イメージ(自分用に設定した状態の仮想マシン)を公開中 仮想環境構築(Docker) [参考] ・ドットインストールの「Docker入門」 ・はじめてのDocker on Mac OS X、Installing Docker on Max OS X ・Vagrant を使って Bioconductor Devel の解析・開発環境をAWSに構築する (Hacking is believing) r-base、subversion、 ccache、r-base-dev、 libxml2-dev、r-cran- xml、libcurl3-gnutls-dev、 XML(R package)、Rcurl (R package) Docker on Virtual Box パッケージ開発 に必要なツール Docker Index (マシン丸ごと バージョン管理)プッシュ
  32. 32. まとめ • コードスニペット – ST2にがしがし登録 → ⌘ + Ctrl + P • バージョン管理 : – git, svnで差分を登録 (BioCのパッケージを作成するならsvnの知識が必須) • 仮想マシン – 一度作っておくと便利、他の環境に影響しない隔離し たマシンが作れる

×