構造式検索エンジンがあるので、実際に検索できるwebアプリを作ってみた
クエリを書くのには JSME Molecule Editor http://peter-ertl.com/jsme/ を利用した。
*javascriptベースの化合物描画ツール。BSD licenseライセンス
*器は、dhtmlxにて作成
#iframe(https://web.chaperone.jp/c/index.html,style=width:100%;height:500px;)
全体はdhtmlxのdhtmlxLayoutを使ってフレーム分けさせて、左側には検索構造式を描いて、右側にはその結果をパネルで表示させた。
*dhtmlxのソースは、https://web.chaperone.jp/c/index.htmlから参照してください
*dhtmlxのフリー版でenableSmartRendering機能を使うにはXMLでのデータ受け渡しが必要。
dhtmlxDataViewをライブラリに使ってます。
myDataView = myLayout.cells("b").attachDataView({
type:{
template:"#mol#",
height:80,
width:80
}
});
myDataView.load("dv.php","xml");
として、こんな感じのphpスクリプトにした
*以前pythonで描いたがphpで作り直した
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
|
JSMEで描いた構造式はsmilesにもmol形式でも取り出せる。ここではmol形式でクエリーを受け取ってRDKitに流してみる。
まずはボタンの制御のためにjqueryライブラリを設置して、検索ボタンを押下したらJSMEと連携してMOLデータを取得する
$(function() {
$('#run').click(function(e){
if ( jsmeApplet.smiles() != "" ){
$.ajax({
type: "POST",
url: "dv.php",
data: {"mol": jsmeApplet.smiles()}
}).done(function(data){
myDataView.clearAll();
myDataView.parse(data,"xml");
});
}
});
});
こんな感じで。詳しくは現物http://web.chaperone.jp/c/index.htmlのソースをご覧下さい。
JSMEには描いた構造式をsmilesで出力する機能の他に、MDL MOL形式での出力も可能である。
このMDL MOL形式のままで検索するには、RDKitのmol_from_ctab関数を使用する。
具体的には
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| - | | | | | | | | | | | | | | | | ! |
|
な感じで直接MDL MOLを入れ込んで、末尾に「::cstring」を加える。これで行けます。