SlideShare a Scribd company logo
バイオインフォマティクスで
実験ノートを取ろう
笠原 雅弘
東京大学 大学院新領域創成科学研究科
メディカル情報生命専攻
Disclaimer:
30分で作ったやっつけプレゼンです。
実際の出来事をモチーフにしつつも、個々の
話を特定できないように変えたり脚色してます。
生物系における実験ノートの
位置づけ
• 生物系のラボで実験ノートを取らない
研究者は居ない。
自分が後で
参照するため
実験が実在した
証明として
他人に後で
情報を伝えるため
論文を書くとき
• 税金を使って行う研究は論文化して成果を公開
するので、論文を書こうとするが・・・
えーっと、実験のこのステップで
確か遠心をしたような気がするんだけど
あれ、やったっけ?どうだっけ?
3,600rpm で回したような?
自分の行った操作に自信が持てないのに
論文にメソッドなんか書けません。
バイオインフォでも同じ
えーっと、bwa で何ミスマッチ許したっ
け?確か2ミスマッチが良いって結論だっ
たはず。あれ2ミスマッチってシードだっ
け、リード全体で2ミスマッチだっけ?
あーれー?
もう一度試さないとダメ?
自分の行った操作に自信が持てないのに
論文にメソッドなんか書けません。
研究が発展したとき
そのアイディアはすごいですね!
是非メダカでもやりましょう。
この系だと同じプローブでも
行けそうですね。
ってあれ・・・、そもそも
どんな配列プローブを使って
何分漬けたっけ・・・?
類似の実験をやりたくなったときに
果てしなく時間をロスします。
あのゼブラフィッシュの WISH、
論文の図を見たときスゲーって
思ったよ。ところで、私の
持ってるこのメダカで同じ実験を
やったら○○が分かって嬉しいよ!
研究が発展したとき(別ver)
そのアイディアはすごいですね!
是非メダカでもやりましょう。
と言いたいけどぼくは忙しいから
自分でやって!
類似の実験をやりたくなったときに
果てしなく時間をロスします。
あのゼブラフィッシュの WISH、
論文の図を見たときスゲーって
思ったよ。ところで、私の
持ってるこのメダカで同じ実験を
やったら○○が分かって嬉しいよ!
詳しい再現手順を教えて下さい。
バイオインフォでも同じ
そのアイディアはすごいですね!
是非寄生植物でもやりましょう。
ってあれ・・・、そもそも
PAML のオプション思い出せない。
パラメータ振って勘所を
思い出すところから再スタートか・・・
類似の実験をやりたくなったときに
果てしなく時間をロスします。
あの進化解析の論文の図を見たとき
スゲーって思ったよ。ところで、私の
持ってるこの寄生植物で同じ解析を
してみない?○○が分かってクールだぜ!
実験がヤバかったとき
えーっ・・・・、ってーか、
だとするとその後の実験が
なんで上手く行ってるの?
間違ってなかったんじゃない?
トラブルシューティングには
詳細な記録が必要です。
あの溶液、サンプルが間違っていて
がん細胞の抽出物じゃなくて、
隣で保管していた植物の抽出物
だった。ごめんね。
エタノール入れたときに
沈殿の量がいつもの5倍ぐらい
出てない?
記録してないからわかんない・・・
バイオインフォでも同じ
えーっ・・・・、ってーか、
染色体2番だけ欠損が起こる可能性が
あるようなスクリプト書いて無いんだけど?
トラブルシューティングには
詳細な記録が必要です。
貰った解析データ、
染色体2番だけ全部欠損してるんだけど。
でも実際欠損してるんですよ。
ほら、見てみて。
確かに・・・・。でも、何も記録してない
からわかんない・・・
外部の研究者からの質問
えーっ・・・・と、
5年前の実験なんて覚えてないよ。
良い仕事をしていると
意外な問い合わせが来ます。
○○論文の解析を再現したいんだけど、
ChIP に使った抗体ってどこから買った?
やっぱり複数買ってテストしないとダメ?
ノート無いの・・・?
捏造実験って言われちゃうよ?
ありますよ・・・調べますよ・・・・
バイオインフォでも同じ
そりゃ、当たり前だよ。
ストップワードは抜いてね。
良い仕事をしていると
意外な問い合わせが来ます。
○○論文の解析を再現したいんだけど、
ストップワードって除いてる?
論文のメソッドには書いて無かったから
適当に全単語を入れたらはちゃめちゃに
なったので入れてると思うんだけど。
厳密に再現したいので
使ったストップワードのリストをください。
え・・・、もうファイル無いよ。
情報系の人のよくある言い訳
コンピューターの上での解析は、
もう一度完全に同じことが自動で
できるから、もう一度同じコマンドを
走らせればいいじゃないか。
実験ノートなんて無くても
あらゆるものが再現できるし、
あらゆる質問には答えられるはずだ。
,j;;;;;j,. —一、 ` ―–‐、_ l;;;;;;
{;;;;;;ゝ T辷iフ i f’辷jァ !i;;;;;
ヾ;;;ハ ノ .::!lリ;;r゛
`Z;i 〈.,_..,. ノ;;;;;;;;> そんなふうに考えていた時期が
,;ぇハ、 、_,.ー-、_’,. ,f゛: Y;;f. 俺にもありました
~”戈ヽ `二´ r’´:::. `!
実際に起こった問題点1
• 純IT系のお仕事(研究)と比べて
バイオインフォでは自動化していない
手作業が圧倒的に多い傾向にある。
(1) Excel でデータを貰ったが「ピンク色のセルが該当サンプルIDです」
と言われた。ピンク色のセルを抜き出すスクリプトを書くのは面倒
だったので 80 個のサンプルIDを手作業で抜き出した。
(2) FASTA ファイルで配列を貰ったが、名前付けに一貫性がなくその後の処
理が面倒になりそうだったので、約3% の配列について手作業で名前を
付け直した。
(3) プライマー配列を Excel で貰ったが、3000本中 15 本は配列が全角文字に
なっており、数も少ないので半角文字に手作業で直した。6本はコドン
に合わせて3文字ごとにスペースが入っていたが、手作業でスペースを
取り除いた。
(4) いろんな恨み辛みを思い出して辛い気分になってきたのでこのへんで
ストップ。
実際に起こった問題点2
• ソフトウェアが動かなくなる、
異なる動作をする。
(1) SunFire 15K (SPARC アーキテクチャ) で動かしたバイナリを持っていても
いまどきの Linux (x86_64) では動かない・・・
(2) samtools のバージョンが上がって pileup サブコマンドとか無くなってる
んですけど・・・。
(3) Cufflinks とかバージョンが変わったら出力結構違うし、当時使ったバー
ジョンと逐一同じじゃなかったら結果が変わっても文句言えないですよ。
(4) ゲノムアセンブリーとか、マルチコアのタイミング問題で、同じデータ
を入れても毎回微妙に結果変わるので、運が悪かったのがバグ踏んだの
かは確定できないですよね・・。
私の身についた習慣(過去)
• こんなことをしたけどコストが大きくて
ちょっと不毛だよね
(1) ピンク色のセルはスクリプトで抜き出すようにした。
リネームも、スペースも全角文字も全部スクリプトで一括処理。
(2) ソフトウェアはなるべく解析ごとにソースコードもバイナリも
データとともに全部とっておいてバージョンなどが分かるようにする。
(3) マルチコアで結果が変わる場合には中間ファイルも一応全部
取っておこう。
(4) 複数のコマンドを実行する場合には makefile を作り、make を
叩けば常に、コラボレ-ターから貰ったファイルから最終解析結果まで
ノンストップで進むようにした。
理念としては良いけど・・・
理念としては素晴らしいんだけど、
やっぱり1回しかやらないことを
自動化するのは時間的にしんどいよね!
バイオインフォの人も
実験ノートを取ろう
• 実験ノートにいろいろ書こう
• 調べたこと(文献・Web)
• 実行したコマンド列やその短い結果など
• ソフトウェアやライブラリ・OSのバージョン
• インストール方法なども
• 自作のソフトなら git リポジトリアドレスと
コミット値など
• 実行時間やメモリー使用量
できれば、ラボ内の先輩や指導教員に
内容を見て貰って間違いや改善点を
指摘して貰おう。コメントを貰おう。
個人的なお勧め
• Markdown で書けるツールで実験ノートを
書こう
• Qiita:Team とか esa.io とか inc とか
Evernote+Marxico とか色々あるが・・・
Docbase いいよ Docbase !
Docbase の良いところ
• Markdown で書ける
• 数式も書ける
• コピペで図が貼れる
• API 叩けばクラスター計算機から書ける
• グループを分けて権限付与できる
• あるグループだけ外部のコラボレ-ターに共有、
とかできる。
・diff が取れる
・他人のノートへの watch/star/comment 機能
・Slack/HipChat などへの通知機能
・データのエクスポートももちろんできる
・一定以上の料金プランでは外部のコラボレーターを
無制限に招待可能
(コラボレーターにノートを見せるのが簡単。)
・開発が速い!!!
・タグ(Qiita や Evernote のタグと同じ)やメンバー、グループなどで
検索ができる。
・2段階認証もあるので比較的安心
その他の利点(順不同)
まとめ
• バイオインフォマティクスの人も
必ず実験ノートを付けよう
• docbase おすすめ

More Related Content

What's hot

画像認識の初歩、SIFT,SURF特徴量
画像認識の初歩、SIFT,SURF特徴量画像認識の初歩、SIFT,SURF特徴量
画像認識の初歩、SIFT,SURF特徴量takaya imai
 
深層学習による自然言語処理入門: word2vecからBERT, GPT-3まで
深層学習による自然言語処理入門: word2vecからBERT, GPT-3まで深層学習による自然言語処理入門: word2vecからBERT, GPT-3まで
深層学習による自然言語処理入門: word2vecからBERT, GPT-3まで
Yahoo!デベロッパーネットワーク
 
固有表現抽出と適用例のご紹介
固有表現抽出と適用例のご紹介固有表現抽出と適用例のご紹介
固有表現抽出と適用例のご紹介
Core Concept Technologies
 
不均衡データのクラス分類
不均衡データのクラス分類不均衡データのクラス分類
不均衡データのクラス分類Shintaro Fukushima
 
Domain Adaptation 発展と動向まとめ(サーベイ資料)
Domain Adaptation 発展と動向まとめ(サーベイ資料)Domain Adaptation 発展と動向まとめ(サーベイ資料)
Domain Adaptation 発展と動向まとめ(サーベイ資料)
Yamato OKAMOTO
 
変分推論法(変分ベイズ法)(PRML第10章)
変分推論法(変分ベイズ法)(PRML第10章)変分推論法(変分ベイズ法)(PRML第10章)
変分推論法(変分ベイズ法)(PRML第10章)Takao Yamanaka
 
最近のKaggleに学ぶテーブルデータの特徴量エンジニアリング
最近のKaggleに学ぶテーブルデータの特徴量エンジニアリング最近のKaggleに学ぶテーブルデータの特徴量エンジニアリング
最近のKaggleに学ぶテーブルデータの特徴量エンジニアリング
mlm_kansai
 
SSII2019企画: 点群深層学習の研究動向
SSII2019企画: 点群深層学習の研究動向SSII2019企画: 点群深層学習の研究動向
SSII2019企画: 点群深層学習の研究動向
SSII
 
ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learning
ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learningゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learning
ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learning
Preferred Networks
 
画像処理AIを用いた異常検知
画像処理AIを用いた異常検知画像処理AIを用いた異常検知
画像処理AIを用いた異常検知
Hideo Terada
 
pymcとpystanでベイズ推定してみた話
pymcとpystanでベイズ推定してみた話pymcとpystanでベイズ推定してみた話
pymcとpystanでベイズ推定してみた話
Classi.corp
 
協調フィルタリング入門
協調フィルタリング入門協調フィルタリング入門
協調フィルタリング入門
hoxo_m
 
backbone としての timm 入門
backbone としての timm 入門backbone としての timm 入門
backbone としての timm 入門
Takuji Tahara
 
最近のDeep Learning (NLP) 界隈におけるAttention事情
最近のDeep Learning (NLP) 界隈におけるAttention事情最近のDeep Learning (NLP) 界隈におけるAttention事情
最近のDeep Learning (NLP) 界隈におけるAttention事情
Yuta Kikuchi
 
深層学習と確率プログラミングを融合したEdwardについて
深層学習と確率プログラミングを融合したEdwardについて深層学習と確率プログラミングを融合したEdwardについて
深層学習と確率プログラミングを融合したEdwardについて
ryosuke-kojima
 
機械学習モデルの判断根拠の説明(Ver.2)
機械学習モデルの判断根拠の説明(Ver.2)機械学習モデルの判断根拠の説明(Ver.2)
機械学習モデルの判断根拠の説明(Ver.2)
Satoshi Hara
 
CNNの構造最適化手法について
CNNの構造最適化手法についてCNNの構造最適化手法について
CNNの構造最適化手法について
MasanoriSuganuma
 
ゼロから始める転移学習
ゼロから始める転移学習ゼロから始める転移学習
ゼロから始める転移学習
Yahoo!デベロッパーネットワーク
 
実践 Amazon Mechanical Turk ※下記の注意点をご覧ください(回答の質の悪化・報酬額の相場の変化・仕様変更)
実践 Amazon Mechanical Turk ※下記の注意点をご覧ください(回答の質の悪化・報酬額の相場の変化・仕様変更)実践 Amazon Mechanical Turk ※下記の注意点をご覧ください(回答の質の悪化・報酬額の相場の変化・仕様変更)
実践 Amazon Mechanical Turk ※下記の注意点をご覧ください(回答の質の悪化・報酬額の相場の変化・仕様変更)
Ayako_Hasegawa
 
状態空間モデルの考え方・使い方 - TokyoR #38
状態空間モデルの考え方・使い方 - TokyoR #38状態空間モデルの考え方・使い方 - TokyoR #38
状態空間モデルの考え方・使い方 - TokyoR #38horihorio
 

What's hot (20)

画像認識の初歩、SIFT,SURF特徴量
画像認識の初歩、SIFT,SURF特徴量画像認識の初歩、SIFT,SURF特徴量
画像認識の初歩、SIFT,SURF特徴量
 
深層学習による自然言語処理入門: word2vecからBERT, GPT-3まで
深層学習による自然言語処理入門: word2vecからBERT, GPT-3まで深層学習による自然言語処理入門: word2vecからBERT, GPT-3まで
深層学習による自然言語処理入門: word2vecからBERT, GPT-3まで
 
固有表現抽出と適用例のご紹介
固有表現抽出と適用例のご紹介固有表現抽出と適用例のご紹介
固有表現抽出と適用例のご紹介
 
不均衡データのクラス分類
不均衡データのクラス分類不均衡データのクラス分類
不均衡データのクラス分類
 
Domain Adaptation 発展と動向まとめ(サーベイ資料)
Domain Adaptation 発展と動向まとめ(サーベイ資料)Domain Adaptation 発展と動向まとめ(サーベイ資料)
Domain Adaptation 発展と動向まとめ(サーベイ資料)
 
変分推論法(変分ベイズ法)(PRML第10章)
変分推論法(変分ベイズ法)(PRML第10章)変分推論法(変分ベイズ法)(PRML第10章)
変分推論法(変分ベイズ法)(PRML第10章)
 
最近のKaggleに学ぶテーブルデータの特徴量エンジニアリング
最近のKaggleに学ぶテーブルデータの特徴量エンジニアリング最近のKaggleに学ぶテーブルデータの特徴量エンジニアリング
最近のKaggleに学ぶテーブルデータの特徴量エンジニアリング
 
SSII2019企画: 点群深層学習の研究動向
SSII2019企画: 点群深層学習の研究動向SSII2019企画: 点群深層学習の研究動向
SSII2019企画: 点群深層学習の研究動向
 
ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learning
ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learningゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learning
ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learning
 
画像処理AIを用いた異常検知
画像処理AIを用いた異常検知画像処理AIを用いた異常検知
画像処理AIを用いた異常検知
 
pymcとpystanでベイズ推定してみた話
pymcとpystanでベイズ推定してみた話pymcとpystanでベイズ推定してみた話
pymcとpystanでベイズ推定してみた話
 
協調フィルタリング入門
協調フィルタリング入門協調フィルタリング入門
協調フィルタリング入門
 
backbone としての timm 入門
backbone としての timm 入門backbone としての timm 入門
backbone としての timm 入門
 
最近のDeep Learning (NLP) 界隈におけるAttention事情
最近のDeep Learning (NLP) 界隈におけるAttention事情最近のDeep Learning (NLP) 界隈におけるAttention事情
最近のDeep Learning (NLP) 界隈におけるAttention事情
 
深層学習と確率プログラミングを融合したEdwardについて
深層学習と確率プログラミングを融合したEdwardについて深層学習と確率プログラミングを融合したEdwardについて
深層学習と確率プログラミングを融合したEdwardについて
 
機械学習モデルの判断根拠の説明(Ver.2)
機械学習モデルの判断根拠の説明(Ver.2)機械学習モデルの判断根拠の説明(Ver.2)
機械学習モデルの判断根拠の説明(Ver.2)
 
CNNの構造最適化手法について
CNNの構造最適化手法についてCNNの構造最適化手法について
CNNの構造最適化手法について
 
ゼロから始める転移学習
ゼロから始める転移学習ゼロから始める転移学習
ゼロから始める転移学習
 
実践 Amazon Mechanical Turk ※下記の注意点をご覧ください(回答の質の悪化・報酬額の相場の変化・仕様変更)
実践 Amazon Mechanical Turk ※下記の注意点をご覧ください(回答の質の悪化・報酬額の相場の変化・仕様変更)実践 Amazon Mechanical Turk ※下記の注意点をご覧ください(回答の質の悪化・報酬額の相場の変化・仕様変更)
実践 Amazon Mechanical Turk ※下記の注意点をご覧ください(回答の質の悪化・報酬額の相場の変化・仕様変更)
 
状態空間モデルの考え方・使い方 - TokyoR #38
状態空間モデルの考え方・使い方 - TokyoR #38状態空間モデルの考え方・使い方 - TokyoR #38
状態空間モデルの考え方・使い方 - TokyoR #38
 

バイオインフォマティクスで実験ノートを取ろう