rcdk R 包无法从 SMILES 代码计算指纹

问题描述 投票:0回答:2

我正在为 chEMBL 22 数据库中可用的 FDA 批准药物使用微笑代码。我正在使用 package rcdk 并且我正在使用此代码:

library(rcdk)

dat1<-read.csv("chembl_22_drug_export.txt",sep="\t",header=T)
smi <-lapply(as.character(dat1$CANONICAL_SMILES),parse.smiles)
cmp.fp<-vector("list",nrow(dat1))

## generate fingerprints
for (i in 1:nrow(dat1)){
  cmp.fp[i]<-lapply(smi[[i]][1],get.fingerprint,type="maccs")

}

##Convert fingerprints to matrix form
fpmac<-fp.to.matrix(cmp.fp)
cmp.finger<-as.data.frame(fpmac)

但是当我这样做的时候

smi <- lapply(as.character(chembl_22_drug_export$CANONICAL_SMILES), parse.smiles)

我得到以下错误

Error in .jnew("org/openscience/cdk/smiles/SmilesParser", dcob) : 
  Java Exception <no description because toString() failed>.jnew("org/openscience/cdk/smiles/SmilesParser", dcob)<S4 object of class "jobjRef">

请指导我如何解决此错误?

r bioinformatics cheminformatics
2个回答
0
投票

没有安装rcdk包时会报错。由于 rJava 包要求导致错误加载而发生错误。 rcdk包需要jdk 7以上。 echo JAVA_HOME 并更新语言环境和语言。应该更新环境变量。更新 java 环境后关闭 R 并重新启动 R 控制台。请记住:rcdk 包需要支持库作为指纹和 rJava。


0
投票

唯一真正的解决方案是增加 Java 内存: 对于 8gb,例如:

options(java.parameters = "-Xmx8g")
library(rJava) 
library(rcdk);
© www.soinside.com 2019 - 2024. All rights reserved.