Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
第6回ケモインフォマティクス若手の会-山崎発表
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
yamasakih
October 25, 2017
Science
470
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
第6回ケモインフォマティクス若手の会-山崎発表
yamasakih
October 25, 2017
More Decks by yamasakih
See All by yamasakih
構造活性フォーラム2023-山﨑担当分
yamasakih
0
550
第6回ケモインフォマティクス若手の会-初学者のための勉強会資料
yamasakih
0
1.6k
Other Decks in Science
See All in Science
あなたに水耕栽培を愛していないとは言わせない
mutsumix
1
340
TypeScript で WebAssembly を用いた 型安全なプラグイン設計
nagano
2
530
Conversation is the New Dashboard: 属人性を排除する第4世代BIツールの勢力図
shomaekawa
1
600
How we plan to publish 1,000 bio-logging datasets to GBIF and OBIS
peterdesmet
0
110
Bear-safety-running
akirun_run
0
160
先端因果推論特別研究チームの研究構想と 人間とAIが協働する自律因果探索の展望
sshimizu2006
3
940
[NLP2026 参加報告会] AI for Science まとめ / NLP2026
lychee1223
0
1.9k
データベース05: SQL(2/3) 結合質問
trycycle
PRO
0
1.2k
AIを用いた PID制御で部屋 の温度制御をしてみた
nearme_tech
PRO
0
150
水耕栽培:古代の知恵から宇宙農業まで
grow_design_lab
0
140
力学系から見た現代的な機械学習
hanbao
4
4.3k
機械学習 - ニューラルネットワーク入門
trycycle
PRO
0
1.1k
Featured
See All Featured
From π to Pie charts
rasagy
0
220
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
200
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
72
40k
Test your architecture with Archunit
thirion
1
2.3k
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
11k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.8k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
750
The agentic SEO stack - context over prompts
schlessera
0
820
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
1
3.6k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
560
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
190
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
330
Transcript
異世界パー ティショニングで なんやかんやした話 第6 回若手の会 @ 山口宇部 山﨑広之 @__YamYuki__ 1
WHO ARE YOU? 研究 機械学習 デー タベー スを用いた創薬研究 趣味 テニス
ボー ドゲー ム スキあらばボー ドゲー ムとケモインフォをやろうと 言ってくるので注意 2
やりましょうと言う理由 手が早いから 数撃ちゃ当たるだから 何に興味あるのかアピー ルするのは大事だから 3
入門講座とかもしてます ケモメトリックス中級編 11/5 分子動力学入門講座 with Shinya Nakamura 11/11 量子化学入門講座 11/12
ビデオで受講もできます 締め切りまでもう少し 10/27 ディスカッションしている場合じゃねぇ!! 4
最初に 今回の発表で伝えたいこと コアメンバー でも困って色々 試行錯誤してます デー タベー スさわるの楽しいですよ 5
もうちょっと詳しく本題 デー タベー スでパー ティショニングやらなんやら して高速化しようとした話 デー タベー スって触るの大変そう? そんなことな
いよ! って話 6
デー タベー スの高速化 研究で使っているデー タベー スに化合物情報が 10,000,000 個ぐらいあるので時間がかかる なんとかして速くしたい! 7
やっている検索 Fragment-Based Drug Design の研究 複数のフラグメントライブラリのフラグメントを 組み合わせてクエリとする 総クエリ数は例えば2,000,000 個とかになる クエリを用いて化合物デー
タベー スに部分構造検 索を行う 化合物数は多いと100,000,000 個とかになる 嫌になる。 8
デー タベー スの高速化 PostgreSQL (version 9.5.4) では 適切なテー ブル構造にする インデックスを貼る
などなどが一般的です 9
インデックスを貼る( レコー ド数=37 億個のとき) インデックス: なし SELECT COUNT(*) FROM substructure_records
WHERE id = 1 実行時間: 1198.8 (s) インデックス: あり CREATE INDEX idx ON substructure_records USING gist(id) SELECT COUNT(*) FROM substructure_records WHERE id = 1 実行時間: 1.157 (ms) 1,000,000 倍速い! 10
デー タベー スの高速化 それ以外に自分で考えたのが 今回は部分構造検索を行うので クエリに必ず1 つは含まれる構造キー をつかった ngerprint をつくりそれでしぼりこむ
自身のクエリを含むすでに検索済みのクエリの検 索ヒットした化合物のみを検索する 11
実際にやってみた クエリに必ず1 つは含まれる構造キー をつかった ngerprint をつくりそれでしぼりこむ すでに2段階検索が実装されておりそもそもそれ でだいぶ早い 自身のクエリを含むすでに検索済みのクエリの検 索ヒットした化合物のみを検索する
検索済みのクエリを探す時間も結構かかる ちなみにこの時点で1 ヶ月ぐらいかかってます 12
困ったので 13
質問してみた エンジニア向けのサイトはたくさんある Teratail Qiita Stackover ow 14
15
色々 アドバイスがもらえた テー ブル構造の見直し パー ティショニング 式によるインデックス 16
現在 アドバイスを基に作業を進めている コアメンバー ですら試行錯誤したり質問したりし つつ作業を進めています A すら且つB する、 いわんやC をや
皆さまも恐れることなくトライ& 質問しましょう 私以外のコアメンバー は優秀です 17
もうちょっと詳しく本題 デー タベー スでパー ティショニングやらなんやら して高速化しようとした話 デー タベー スって触るの大変そう? そんなことな
いよ! って話 18
デー タベー スって 準備が大変そう SQL 言語使えないし、 ちょっと独特だし 19
デー タベー スの準備が簡単にできてしかもSQL 言語を 使わないでできたら素敵だと思わない。 ただの夢物語 だけど・・・ 20
できらぁ! 21
どうやってする? 準備が大変そう Docker を使えば簡単に環境構築ができます SQL 言語使えないし、 ちょっと独特だし O/R マッパー を使えばプログラム言語のみで
22
Docker - 1 https://www.docker.com/ 仮想環境を構築するツー ル Moby Docker かわいい 23
Docker - 2 Windows32Bit 以外のOS で使えます パソコンからまず用意しようとしている初学者 の方がいらっしゃったらMac がオススメ 余談になるけどWindows
とMac それぞれでしか 使えないソフトや利点を議論したら面白いかも 24
準備してみる 1. Docker をインストー ルする 2. ター ミナルで以下のコマンドを打ち込む docker run
--name my-db -p 5432:5432 \ -e POSTGRES_USER=dev -e POSTGRES_PASSWORD=secret \ -d informaticsmatters/rdkit_cartridge docker run --name my-db -p 5432:5432 \ -e POSTGRES_USER=dev -e POSTGRES_PASSWORD=secret \ -d informaticsmatters/rdkit_cartridge これだけで PostgreSQL + RDKit Database Cartridge が使える! 25
ね? 簡単でしょ? 26
RDKit Database Cartridge? 27
RDKit Database Cartridge PostgreSQL に化学構造情報を保存できるようにす る拡張機能 類似構造検索、 部分構造検索といった検索も可能 分子量などの記述子計算も可能 http://www.rdkit.org/docs/Cartridge.html
28
docker run --name my-db -p 5432:5432 \ -e POSTGRES_USER=dev -e
POSTGRES_PASSWORD=secret \ -d informaticsmatters/rdkit_cartridge informaticsmatters/rdkit_cartridge をpostgres:9.6 に 変更すればPostgreSQL だけ使える --name 実行するコンテナの名前の指定 -p 解放するポー トの設定 -e ENRIONMENT_VARIANT 環境変数の設定 -d バックエンドでの実行 参考にしたサイト http://kimulla.hatenablog.com/entry/2017/04/01/23 5355 29
ぼくがかんがえたさいきょうのどっかぁー docker volume create --name pgdata docker run -it --name
my-db \ -v pgdata:/var/lib/postgresql/data \ -e POSTGRES_USER=dev -e POSTGRES_PASSWORD=secret \ -d informaticsmatters/rdkit_cartridge docker run -it --rm --link my-db:db \ informaticsmatters/rdkit_cartridge \ psql -h db -U postgres -v HOST_PATH:CONTAINER_PATH ディレクトリのマウント これで仮想環境が破棄されてもデー タは消えない 30
でもSQL 言語使わないと いけないんでしょ? 31
O/R マッパー 使いましょう! 32
O/R マッパー? SQL 以外のプログラム言語でデー タベー スからデー タを取り出す方法 組み込んでいるWeb Frame Application
一例 Ruby on Rail (Ruby) Django (Python) Flask (Python) Apatch Click (JAVA) 33
Web Frame Application?? Web アプリ(Web サイト) を作るのを支援するソフト その機能の一つとしてO/R マッパー がある
34
ケモインフォO/R マッパー django-rdkit (Django) razi (Jupyter) 35
使ってみる ベンゼン環を含む化合物を取り出す 従来のSQL SELECT * FROM Compound WHERE mol @>
'c1ccccc1' django-rdkit Compound.objects.filter(mol__has_substructures='c1ccccc1') 36
Enjoy Database Life with Python !! 37
最後に コアメンバー でも困って色々 試行錯誤してます 恐れることなくトライ& 質問しましょう デー タベー スさわるの楽しいですよ Django
など補助するツー ルをうまく使いましょう 38
Enjoy Chemoinformatics Life !! 39