Как использовать Cheminformatics Toolkit для R, чтобы сравнить набор структур SMILES - PullRequest
0 голосов
/ 20 марта 2019

У меня есть набор кодов SMILES разных молекул, и я хотел бы знать, как определить сходство между ними. Я решил использовать пакет ChemmineR, основанный на этом учебнике . Проблема в том, что я не могу понять, как подключить мой фрейм данных и использовать его как объект ChemmineR для запуска анализа на SMILES.

DrugName<-c("alclofenac","alosetron")
DrugID_CID<-c("30951","2099")
DrugID<-c("CHEMBL94081","DB00969")
DrugBank<-c("DB13167","DB00969")
SMILES<-c("OC(=O)Cc1ccc(OCC=C)c(Cl)c1","Cc1[nH]cnc1CN1CCc2c(C1=O)c1ccccc1n2C")
Target<-c("PTGS1","HTR3A")

test<-data.frame(DrugName,DrugID_CID,DrugID,DrugBank,SMILES,Target)

Я использовал функцию read.SMIset, которая импортирует одну или несколько молекул из файла SMILES и сохраняет их в контейнере SMIset, но я не могу понять, как продолжить это.

library("ChemmineR")

test; smiset <- smisample
write.SMI(smiset, file="sub.smi") 
smiset <- read.SMIset("sub.smi")

data(smisample) # Loads the same SMIset provided by the library 
smiset <- smisample
smiset 

view(smiset) 

cid(smiset) 
smi <- as.character(smiset)

  as(smi, "SMIset") 

1 Ответ

1 голос
/ 20 марта 2019

Не совсем понятно, что вы хотите сравнить с чем.Тем не менее, вот один из способов продолжить использование SMILES в вашем примере фрейма данных.

Сначала необходимо преобразовать SMILES в набор SDF.Это первый шаг в большинстве операций ChemmineR.

test_sdf <- smiles2sdf(test$SMILES)

Для парного сравнения с использованием пар атомов необходимо снова преобразовать в набор AP:

test_ap <- sdf2ap(test_sdf)

Теперь вы можете сравниватьНапример, первое соединение в наборе AP со вторым:

cmp.similarity(test_ap[1], test_ap[2])

[1] 0.1313131

Я бы потратил некоторое время на чтение и работу с виньеткой Chemminer, связанной с вашим вопросом.Это много информации, но она хорошо представлена, очень понятна и охватывает большинство вещей, которые вы захотите сделать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...