openbabelのフィンガープリントを使ってSVMの予測モデルを作る

久々にケモインフォクックブックを更新した。

で、このフィンガープリント使って予測モデルを作ってみる。

Benchmark Data Set for in Silico Prediction of Ames Mutagenicity のSupporting InformationにAmes試験のデータセットがあるのでこれを使ってcsvを用意する。

babel -ismi ci900161g_si_001/smiles_cas_N6512.smi -ofpt ci900161g.fpt -xh -xfFP2

これでfptファイルを用意してクックブックので変換

f2b.py ci900161g.fpt > fingerprint.txt

さらにフィンガープリントをcsvにするのは下のやっつけスクリプトで。

file = "ci900161g_si_001/smiles_cas_N6512.smi"

dic = {"0":"negative","1":"positive"}
act = {}
for l in open(file,"r"):
   smi,id,num = l.split()
   act[id] = dic[num]


fingerprints_file = "fingerprint.txt"

header = "ID,"

for i in range(1,1025):
   header += "bit" + str(i) + ","

header += "act"
print header

for l in open(fingerprints_file, "r"):
   col = ""
   id, fp = l.split()
   col += "\"" +id + "\","
   for c in fp:
       col += c + ","
   col += "\"" + act[id] + "\""
   print col

実行

python fconv.py > ci900161g.csv

でRで解析してみる。

ames <- read.csv("/Users/kzfm/ci900161g.csv")
set.seed(50)
tr.num <- sample(6512,2500)
ames.train <- ames[tr.num,]
ames.test <- ames[-tr.num,]
ames.svm <- ksvm(act ~.,data=ames.train[,-1])
ames.pre <- predict(ames.svm, ames.test[,c(-1,-1026)])
ames.tab <- table(ames.test[,1026],ames.pre)
sum(diag(ames.tab))/sum(ames.tab)

結果

>     sum(diag(ames.tab))/sum(ames.tab)
[1] 0.7771685
> ames.tab
          ames.pre
           negative positive
  negative     1424      425
  positive      469     1694

まぁまあかなぁ。フィンガープリントとかカーネルを考えればもうちょっと精度が上がる気もするが。

参考

ProductName マシンラーニング (Rで学ぶデータサイエンス 6)
辻谷 将明,竹澤 邦夫
共立出版 / ¥ 3,675 ()
通常1~2か月以内に発送

Drug-like Properties: Concepts, Structure Design and Methods: from ADME to Toxicity Optimization

第一部を読んだ。

ProductName Drug-like Properties: Concepts, Structure Design and Methods: from ADME to Toxicity Optimization
Edward Kerns,Li Di
Academic Press / ¥ 9,048 ()
在庫あり。

これはなかなか名著の予感がしますな。(DMPKやin silicoから見ると)ちょっと浅い気もするが、メディシナルケミスト向けの本だったらこのぐらい押さえておけばいいのかもしれない(というかこの本の内容理解してるケミストって数人しか知らんけど)。

LeadOptimizationから前臨床のあたりのin vivoにおいてどういったパラメータに気をつけながら合成をするか的な内容なので、コンピュテーショナルなヒトだとEkinsなんかを併せて読んだほうがいいかもしれない。

BKChem

ちょっと描きたいときに便利なので、macbookに入れた。

bkchem

BKChem

本が出てた

ドッキングシミュレーション関係の本だろうか。

ProductName タンパク質計算科学 ―基礎と創薬への応用― [CD-ROM付]
神谷 成敏
共立出版 / 5040円 ( 2009-08-25 )


あとGaussian

Gaussianは使ってないのでこっちはあまり興味をそそられないが。

カーネル主成分分析

普通のPCAとちがうのは非線形主成分を扱えること。でも、カーネル関数をうまく選ばないといけないことを意味する。

Rとカーネル法を参考に。

> library(kernlab)
> x <- as.matrix(iris[,1:4])
> iris.kpc1 <- kpca(x,kernel="rbfdot",feature=2,kpar=list(sigma=0.1))
> plot(pcv(iris.kpc1),col=as.integer(iris[,5]))

kpca

あータニモトカーネルを使ったkernel PCAとかなんかいいかもしれない。

ProductName パターン認識と機械学習 下 - ベイズ理論による統計的予測
C. M. ビショップ
シュプリンガー・ジャパン株式会社 / ¥ 8,190 ()
在庫あり。

macbookでpymol

trunk(Rev: 3829)をDLしてきてコンパイル

svn co https://pymol.svn.sourceforge.net/svnroot/pymol/trunk pymol

freetypeがらみのヘッダーがないとかいうエラーがでてきたので

cd /usr/X11R6/include
sudo ln -s freetype2/freetype freetype

とsymbolic link張って解決

ProductName Bioinformatics Programming Using Python
Mitchell L. Model
Oreilly & Associates Inc / 5075円 ( 2009-12-23 )


fpocket

コマンドラインでタンパク質のポケットを探索してくれる。

fpocket

論文によるとVoronoi tesselationをつかってalpha sphere detectionをやるみたい。

1R39に対して試してみた。

実行は

fpocket -f 1R39.pdb

と叩けば、ディレクトリが出来てPyMol,VMD用のファイルが出力される。

1r39

フッ素の役割

昨日、ワークショップで雑談してて、メディシナルケミストリーにおけるフッ素の役割がとか。

ハロゲンのくせに、Cl,Brとはちょっと違うよねとか。

ProductName Bioorganic and Medicinal Chemistry of Fluorine
Jean-Pierre Bégué
Wiley-Interscience / 11185円 ( 2008-05-27 )


Pharmacokinetics and Metabolism in Drug Design

DMPK,TKを考慮したドラッグデザインの際に考慮することなど。

多分メディシナルケミスト向けなんだろうなと思うんだが、コンパクトにまとまっているので、chemoinformaticsのヒトが読んでも参考になることが多い。

ProductName Pharmacokinetics and Metabolism in Drug Design (Methods and Principles in Medicinal Chemistry)
Dennis A. Smith,Han van de Waterbeemd,Don K. Walker
Wiley-VCH / ¥ 12,813 ()
在庫あり。

  • 2.11 Slow offset compounds
    • フレキシブルな化合物はassociation-disassociationが素早くおこる可能性がある
  • 3.6 Estimation of Absorption Potential
    • AP =logP + logFnon + logS(So . Vl/Xo)
  • Distribution and Tmax

薄いわりにはちとお高めだが、投資と思い割り切った(今回は)。

分子エディタ

Avogadroだとタンパク質のアミノ酸とかを簡単にエディットできないな。

1r9l

スクリプト書いてリガンドから半径なんぼ以内の残基を切り出すようにすればさくさく動くかも。