Пакет 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);
Другие вопросы по тегам