Introduce

This vignette illustrates how to easily use the DrugSim2DR package. Here, we present a network-based computational approach, DrugSim2DR, to perform drug repurposing in specific disease states by integrating drug information, rna-seq data of disease, and GO function data. There are also some functions used to visualize the results


Example 1 : Calculate the DEscore.

The function CalDEscore is used to calculate the DEscore. This function requires users to input the gene expression matrix and the sample label(“1” represents the disease sample. “0” represents the normal sample.). These sample data are stored in this package.

The commands are as follows:

library(DrugSim2DR)
library(igraph)
#> 
#> Attaching package: 'igraph'
#> The following objects are masked from 'package:stats':
#> 
#>     decompose, spectrum
#> The following object is masked from 'package:base':
#> 
#>     union
# Obtain the example data
GEP<-Gettest("GEP")
label<-Gettest("label")
# Calculate the zscore
DEscore<-CalDEscore(GEP,label)
head(DEscore[1:5,])
#>   A4GALT  AADACL1  AADACL4     AASS     ABAT 
#> 3.603273 3.558117 3.794578 8.200240 5.083250

Example 2 : Calculate drug-drug functional similarity.

The function DrugSimscore is used to calculate drug similarity. According to our method, in this function, the user needs to input DEscore, which is the result of the CalDEscore function. nperm is the number of perturbations The commands are as follows:

# Calculate the centrality score of drugs
drug_similarity<-DrugSimscore(DEscore,nperm = 0)
###view first ten drugs result
drug_similarity[1:5,]
ABCDEFGHIJ0123456789
 
 
drug1
<fct>
drug2
<fct>
drug1_name
<chr>
drug2_name
<chr>
similarity
<dbl>
5296DB02721DB012134-IodopyrazoleFomepizole17.262882
5384DB02757DB02721Pyrazole4-Iodopyrazole5.749231
5413DB02757DB01213PyrazoleFomepizole5.130445
7181DB04820DB00780NialamidePhenelzine3.298942
7288DB04832DB00780ZimelidinePhenelzine3.298942

Example 3 : Identify candidate drugs by random-walk algorithm.

The function DrugReposition is used to repurpose drugs. According to our method, in this function, the user needs to enter the DEscore which is the result of the CalDEscore function. The nperm is the number of perturbations, and the r is the restart probability of random walk. The commands are as follows:

# Calculate the centrality score of drugs
drug_centrality<-DrugReposition(DEscore,nperm = 1000,r = 0.9)
###view first ten drugs result
drug_centrality[1:5,]
ABCDEFGHIJ0123456789
 
 
DBID
<chr>
Drug.name
<chr>
Centrality
<dbl>
P.value
<dbl>
FDR
<dbl>
676DB02757Pyrazole0.008340.0050.794
257DB00603Medroxyprogesterone acetate0.003350.0090.794
1139DB11619Gestrinone0.005680.0110.794
482DB01185Fluoxymesterone0.007310.0120.794
1043DB09078Lenvatinib0.002000.0220.794

Visualize 1: Plot the chemical structure of a compound.

The function plotDrugstructure used to plot the chemical structure of a compound. The user needs to input the drug id. The commands are as follows:

# load depend package
require(ChemmineR)
require(rvest)

# plot the chemical structure 
plotDrugstructure("DB00780")


Visualize 2: Plot the heatmap of drug targets expression.

The function plotTargetheatmap can plot the heatmap of drug targets expression. The user needs to input drug id, gene expression profile, and sample label. The commands are as follows:

# load depend package
library('pheatmap')
# plot the heatmap 
plotTargetheatmap("DB00780",GEP,label,cluster.rows=FALSE,cluster.cols=FALSE,bk=c(-2.4,2.3),
                          show.rownames=TRUE,show.colnames=FALSE,ann_colors=c("#FFAA2C","#2CBADA"),
                          col=c("#2A95FF","#FF1C1C"))


Visualize 3: Plot a drug/GO bipartite network.

The function plotDruglink can plot a bipartite network of drugs and shared molecular functions. The user needs to input the drugbank ids of drug1 and drug2. The commands are as follows:

# load depend package
library(igraph)
# plot the heatmap 
plotDruglink("DB02721","DB01213",i=5)