chemblを使おう
DESCRIPTION
ChEMBLを使おうTRANSCRIPT
ChEMBLの話
@fmkz___
自己紹介 • kzfm (@fmkz___) – blog.kzfmix.com – Shizuoka.py
• Python歴は6年くらい – WAFはFlask(最近Django) – Pandas+ggplot素敵☆
ChEMBLとは
h"p://cbi-‐society.org/home/documents/seminar/2009to12/CBI_Ikeda_511_d.pdf
インハウスにChEMBLがあるメリット☆
• セキュリティ的に安心 – 思う存分クエリを投げられる – PPだとコンポーネントのエンドポイントいじればOKらしい
• 速いし、負荷もかけられる – 快適
• webのインターフェースにない検索も出来る – doi使ったりblastと組み合わせたりとか
例1) ChEMBL-MMP
5
• 1.3 million MMPs • 1291 proteins • 206 measurement types
• 7431 journals
h"ps://github.com/kzfm/pychembldb/blob/master/examples/mmp/recreaFon.py
D1 receptorのホモログ
6
今日やること • DBMSのインストール – 今回はPostgreSQL – ChEMBL_17のMySQLのダンプはバグっているので使用しないほうがよい
• Pythonのインストール – pip – pychembldb
• その他 – Flask – BioPython(blast)
はじめましょう☆ • ChEMBL導入 – http://blog.kzfmix.com/entry/1389565991
• pychembldb導入 – http://blog.kzfmix.com/entry/1389589262
•
ここからはお題
Schema
化合物情報 (構造/prop)
実験情報 (アッセイ/値) ターゲット情報
(cell/配列/種)
結合サイト 情報
(ドメイン/位置の始めと終わり)
承認薬 情報
メカニズム/結合 情報
文献情報 (doi/Ftle)
ディレクトリリスト
参考サイト • SQLAlchemy
– http://docs.sqlalchemy.org/en/rel_0_9/
• Flask – http://flask.pocoo.org/docs/
• Blast – http://bonohu.jp/blog/2013/06/08/localblastinmountainlio/
– http://motdb.dbcls.jp/?AJACS32%2Fbono#e17b6eed
• BioPython – http://biopython.org/DIST/docs/tutorial/Tutorial.html
お題1 • Glycogen synthase kinase-3(GSK3)に対するアッセイの中でヒトを対象に行われたものを選ぶ
お題2 • 問題1でアッセイに供された化合物の活性値とsmilesを知りたい
お題3 • Glycogen synthase kinase-3(GSK3)に対するアッセイの参照元のpubmed_idとジャーナル名を知りたい
お題4 • pubmedidが15686883の文献中に記載されている化合物の重み付きQEDスコアが知りたい
お題5 • ChEMBLのターゲット用のblastdbが欲しい、そして思う存分相同性検索がしたい
• (ヒント)BLASTとBioPythonをインストールしましょう – http://bonohu.jp/blog/2013/06/08/localblastinmountainlio/
お題6 • ChEMBLのウェブサービスをローカルに実装したい – https://www.ebi.ac.uk/chembl/ws
• ここではFlaskを使ってみましょう – http://www.kzfmix.com/flaski/
答え
お題1(答)
>>> for target in chembldb.query(Target).filter_by(pref_name="Glycogen synthase kinase-3"): ... for assay in target.assays: ... if assay.assay_organism == "Homo sapiens": ... print assay.description
お題2(答)
>>> for target in chembldb.query(Target).filter_by(pref_name="Glycogen synthase kinase-3"): ... for assay in target.assays: ... if assay.assay_organism == "Homo sapiens": ... for activity in assay.activities: ... print activity.published_value, activity.compound.molecule.structure.canonical_smiles
• forループを回す
お題3(答)
>>> for target in chembldb.query(Target).filter_by(pref_name="Glycogen synthase kinase-3"): ... for assay in target.assays: ... print assay.doc.pubmed_id, assay.doc.journal
お題4(答)
>>> for journal in chembldb.query(Doc).filter_by(pubmed_id=15686883): ... for assay in journal.assays: ... for act in assay.activities: ... print act.compound.molecule.property.qed_weighted
お題5(答) • https://github.com/kzfm/pychembldb/blob/master/examples/blast/chemblast.py
お題6(答) • https://github.com/kzfm/pychembldb/blob/master/examples/chemblapi/app.py