Let’s try to build model using RDKit and Scikit-learn . Scikit-learn is simple and efficient tools for data mining and data analysis. I referred this page. here At first, build model using molecular descriptors . Here we go. OK! Next, build model using molecular fingerprint . Let’s try ! RF method using molecular descriptors showedContinue reading “RDKit & Scikitlearn”
Monthly Archives: August 2013
CHEMBL_MMP
またしてもMMPねた RDKit のMMPモジュールを使ってCHEMBLのデータを全部くっつけるバージョン。 ただし今回はkinase_sarfariのみ。 準備として https://www.ebi.ac.uk/chembl/sarfari/kinasesarfari ここからデータを持ってきます。 ks_compound.txt ks_bioactivity.txt でディレクトリにrfrag.py, index.pyと上のデータを入れます。 くっつけるのは、、 chembl_mmp.pyとして こんな感じ ターゲットごとのMMPができます。
RECAPとか
RDKitのRECAPルールを使うと 分子をある一定の結合で切断できます。 ライブラリーにアプライして得られる頻度を見ると これよく使ってるよね。みたいなのが分かるかもと思います。 こちらのブログを拝見させていただき、pytagcloudなるものを知りました。 使うのにSDFとかpygamesとか入れないとなんなくて面倒でした。 が一応環境ができたのでRECAPで分子を切断した後 HTMLに出力するようなスクリプトを書いてみました。 ちなみにほとんどは、githubにあがっているpytagcloudのunittestのコードを ベースにしています。 で実行します。 htmlのテンプレートは https://github.com/atizo/PyTagCloud/tree/master/pytagcloud/test/web のtemplate.htmlです。 で、 カレントディレクトリにwebというフォルダを作ってそこに入れておきます。 outというフォルダにtagcloudなsmilesが作成されます。多分。 分子数が多いとRECAPで結構時間を食うし、fragmentは1っこでもカウントしてるので 適当な数以上になったらタグにするとかしないと重たい感じ。 リンクになってるからマウスオーバーしたら親化合物が見えるとか、 smi2jpgみたいになると素敵ですが、、、ちょっと技術力不足、、、 JSのらいぶらりだけどTagCloudjsというの今日教えてもらったが便利そう。
雑記
これ早いらしいです。 いろんなページで見るのですがどうなんだろうって、興味はあったけど 手を出していませんでした。 が、どうもインストールはターボール落としておしまいだそうで。 ちょっとやってみたくなったので早速、、 速度だいぶ違いました。 少しいじってみたくなりました。
Lillyのフィルタ
J.Med.Chem. 2012, 55, 9763-9772 Lillyのこれまで積み重ねてきたフィルタに関しての報告です。 ソースコードがGitHubにあがっているので、ちょっと使ってみました。 でインストールはよろしくやってくれます。簡単です。 続いてデータセットの準備をします。CHEMBLからDPP4阻害剤のデータを取ってきました。 入力に使うフォーマットはsmiles tab idにしないとだめなので 今度はPANDASで加工します。 で確認します。 ということでファイルができました。 実際に計算してみましょう 結果はsmiles / id / demerit / detailsのような出力です。 17クラスからなる275のルールから構成されるフィルターで バイオレーションによってDemeritのスレッシュフォルドが決まります。 デフォルトは100でリラックス(ゆるめ)で160をカットオフにしています。 テスト用のデータが4万件くらいでしたが、手元のMBAで数十秒でした。 プロジェクトが進んでからのアプライは???ですが、 市販のセットやHTS用のセットに一度当てるのは面白そうですね。
三島で飲んだ
今日は、とあるつながりから同業者の方と、お食事をする機会を持てました。 中華料理店で料理もおいしく、お酒もおいしく楽しく過ごせました。 忘備録的に 1)FBDDのセットどうするかって議論は結構お〜そうだなーって思いました。 過去の成功医薬品を分解したセットを作るといいんじゃないかってことに対して それではやっぱり新しいものは出てこないし。って言う意見。 そうだなあ、、、そうですよねぇ。 そこをしっかり考えるのこそケミストの仕事ですよねえ、、、と痛感。 2)ケミストはコンサバ。 これはうちもそうだな〜って激しく同意。 変えるリスク、変わらずに結果もでないリスク。自分なら前者ですが、 みんながそうでもない訳で、一人でやきもきしても疲弊するだけだなあって思うものの、、、悶々とする。 新しいことやろうとすると取りあえず否定、経験ベースの否定 やめてもらいたい。 3)バージョン管理で Gitいいですよね〜 引き続き勉強する。 4)ハンズオンに向けて RDKitのなんかと、Redmineの事例まとめとく。 取りまとめ感謝。
RDKitで2d_pharmacophore
RDKitにある2Dファーマコフォアを使って シミラリティマトリックスを作るスクリプトを書いてみた。 下のデフォルト設定では3000ビット以上のFPになるので 適当なbinに指定し直した方が計算が速くなるかも。 分子によってはGitBitIdxでエラーになるのでそれを回避するため try/except処理にした。エラーが出る分子については後で原因を追う。 TCの計算はお決まりの書き方でやると、エラーにうまく対処できない。 見にくいけどdict型でindxとFPの関係を保つようにしてみた。 よくよく考えると、SVMとかするならFPをbitstringで返しておしまいにした方がいいと気がついた。 使い方 $ python p4core.py で入力SDFに関してシミラリティマトリックスを出力される。 ECFP/FCFP/MACCSのTC 諸々と合わせて出力させると違いが分かるかな。
RDKit-MMPA2
今日は昼休み中にRDKitのMMPAスクリプトをいじってました。 kzfmさんのブログを拝見させていただいたのがきっかけです。 RDKit_2013_03_2/Contrib/mmpa配下のrfag.pyの切断ルールをRECAP風にアレンジしてみました。 209行目以降 を とします。 これでエーテル、アミド、環状アミン、エステル、芳香環−芳香環、芳香族n−芳香環、スルフォンアミド、芳香環−N−芳香環(buchwald_amination)のボンドのサーチをかけてマッチした部分の結合に関わるアトムインデックスをゲッツします。 エーテルは飽和炭素ー酸素ー飽和炭素のインデックスをとるのでインデックスは前のペアと 後ろのペアを返すようにしました。 同様に芳香環−N−芳香環も同じです。 アミドやエステルはC(=O)N, C(=O)Oのインデックスになるので0と2のインデックスだけとるようにリスト内包表記にします。 で、後はカットするのですがデフォルトのトリプルカットですとバレンスがおかしくなる可能性があるのでシングルカットにしました。 二回目以降をコメントアウトしただけですけど。 シングルカットなのである意味Rグループ分解と同じと言えば同じですが 合成する側から見ると、一気に処理できるのはいいかも。 フラッグメチルやハロゲンの効果はこのスクリプトからは見えませんけど。 あ、これの後は一緒にあるindexing.pyをいじらず実行するとRECAP風MMPができます。 SMART表記が未だにしっくりこないのでその辺が課題です。 ちょっとコード自身もきれいじゃないですね。