library(rcdk) library(ChemmineR) library(PerfMeas) library(NetPreProc) setwd("C:\\Users\\matt\\Desktop\\DispenseInfoDisFEB\\ESAME_BIOTECHK0616") # ci si posiziona in un folder sul desktop contenente materiale esercitazione # questo è uno dei momenti critici. Se provi a testare comandi puoi, per favore, # inviarmi la stringa del path che ustilizzi? Giusto per sicurezza dir() # Devono esserci i file "DDsimData.rda" e "RWR.R" (che ho allegato a questa email) load("DDsimData.rda") ls() # Devono esserci le variabili "DD.chem.data" "DrugBank.Cat" # Inizio esercitazione : riposizionamento di farmaci mediante random walk su reti farmacologiche # Creazione matrice di transizione Q <- Prob.norm(DD.chem.data) dim(Q) # Visualizzazione categorie terapeutiche farmaci: dimnames(DrugBank.Cat)[[2]] # Costruzione vettore etichette (categoria terapeutica: Penicilline) labels <- DrugBank.Cat[,41] sum(labels) which(labels==1) indpos <- which(labels==1) # Caricamento funzioni da file sorgente source("RWR.R") # ======== PENICILLINE ======================================================== # TEST 1: random walk su rete farmacologica (categoria terapeutica: penicilline) # (tipo random walk: random walk con restart 60% ) rw.penicilline <- RWR(W=Q, ind.positives=indpos, norm=FALSE) str(rw.penicilline) AUC.single(rw.penicilline$p, labels) # risultato: 1 # TEST 2: random walk su rete farmacologica (categoria terapeutica: penicilline) # (tipo random walk: random walk con restart 60% ) # numero folds per cross validazione: 5 rw.penicilline.cv5 <- RW.cv(W=Q, ind.pos=indpos, fun=RWR, k=5, norm=FALSE) str(rw.penicilline.cv5) AUC.single(rw.penicilline.cv5, labels) # risultato: 0.9999594 # ======== ANTI VIRAL AGENTS ================================================== # TEST 1b: random walk su rete farmacologica (categoria terapeutica: penicilline) # (tipo random walk: random walk con restart 60% ) labels <- DrugBank.Cat[,23] indpos <- which(labels==1) rw.ava <- RWR(W=Q, ind.positives=indpos, norm=FALSE) str(rw.ava) AUC.single(rw.ava$p, labels) # risultato: 1 # TEST 2b: random walk su rete farmacologica (categoria terapeutica: penicilline) # (tipo random walk: random walk con restart 60% ) # numero folds per cross validazione: 5 rw.ava.cv5 <- RW.cv(W=Q, ind.pos=indpos, fun=RWR, k=5, norm=FALSE) str(rw.ava.cv5) AUC.single(rw.ava.cv5, labels) # risultato: 0.860684