Пакет rcdk R не может вычислить отпечатки пальцев из кодов SMILES
Я использую коды улыбки для одобренных FDA лекарств, доступных в базе данных chEMBL 22. Я использую пакет 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">
Пожалуйста, сообщите мне, как решить эту ошибку?
2 ответа
Решение
Ошибка выдается, когда пакет rcdk не установлен. Ошибка возникает из-за загрузки ошибки из-за требования пакета rJava. Для пакета rcdk требуется jdk 7 или более. Отобразите JAVA_HOME и обновите локаль вместе с языком. Переменная среды должна быть обновлена. Закройте R и перезапустите консоль R после обновления среды Java. Помните: пакет rcdk требует поддержки библиотеки как отпечатков пальцев, так и rJava.
Единственное реальное решение — увеличить память Java: например, для 8 ГБ:
options(java.parameters = "-Xmx8g")
library(rJava)
library(rcdk);