Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
第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.7k
Other Decks in Science
See All in Science
機械学習 - 決定木からはじめる機械学習
trycycle
PRO
0
1.6k
Massey Ratings for Match Outcome Prediction in Table Tennis: Evidence of Greater Stability than the ITTF World Ranking
konakalab
0
140
Van Dare naar Durf
voginip
0
300
共生概念の整理と AIアライメントの構想
hiroakihamada
0
280
データベース04: SQL (1/3) 単純質問 & 集約演算
trycycle
PRO
0
1.7k
データベース15: ビッグデータ時代のデータベース
trycycle
PRO
1
560
医療 LLM ベンチマークの現在地:多面的評価 と日本ローカライズ
analokmaus
1
690
CVPR2026_VGGTとその仲間たち
mickey_0226
0
1.1k
Cross-Media Technologies, Information Science and Human-Information Interaction
signer
PRO
3
32k
Non-Gaussian, nonlinear causal discovery with hidden variables and application
sshimizu2006
0
180
社内で活躍できるデータサイエンティストになるために
aikinohara
1
160
1. CPC理論の展開と集合的知能モデル(JSAI2026 KS-27 集合的予測符号化と新たな知性の時代)
hayashiyus884
1
360
Featured
See All Featured
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
250
The SEO Collaboration Effect
kristinabergwall1
1
550
Making Projects Easy
brettharned
120
6.7k
Paper Plane (Part 1)
katiecoart
PRO
1
11k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
380
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
330
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.8k
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
710
The Spectacular Lies of Maps
axbom
PRO
1
980
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
340
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Skip the Path - Find Your Career Trail
mkilby
1
220
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