玩转网络药理学2

文摘   2024-10-23 11:03   中国澳门  

hello各位朋友们,前几天我们能得到了这个图。还记得么?

接下来就让我们往后面开始继续进行,得到了这个图之后呢,我们下载一下他的excel格式,类似于这样

这里面的common name就是基因名字了。但是光是从这个得到的还是不够的,因为网络的数据库实在是太多了,我们要找全这些内容。

下面我们上CTD网站,继续进行寻找。搜索一下CTD的网站,然后点search,chemical,跟下面的图一样↓↓

还记得我们上一次筛选的成分吗?柚皮素,是陈皮里的有效成分。那让我们就搜索一下↓↓↓

搜索完之后,我们可以得到这个化学的成分,然后点进去,就可以得到下面这个图↓

然后下拉到底部,保存为excel格式,就可以下载了,这里可以弹出来一个对话框,选第三个,非商业用途就好了。就可以得到一个excel,里面的gene symbol就是这个基因了。

这次我们得到了两个不同数据库的基因,但是即使是不同数据库也可能会有重复的,于是我们可以进行一系列去重操作。就可以得到这个有效成分的靶点了,看个人诉求,我这个只选了一个成分,所以我就使用了wps高亮重复项,然后去除就好了,要是多的重复项可以选择一下R语言读取代码进行去除。这样我们就可以得到一个excel/csv文件,命名为drug,然后和我们之前在单细胞数据分析的数据取个交集,就可以得到既是药物靶点的基因,又是单细胞数据的差异基因。可以画个韦恩图看看。

### 加载必要的包
library(dplyr)
library(VennDiagram)
library(clusterProfiler)
library(org.Hs.eg.db)
library(enrichplot)
library(ggplot2)
library(DOSE)
library(stringr)
library(AnnotationDbi)
library(ggvenn)
library(scRNAtoolVis)
library(Seurat)
library(org.Mm.eg.db)
library(circlize)
library(data.table)
library(Rgraphviz)
library(KEGGgraph)
library(pathview)
library(readxl)
library(biomaRt)
library(openxlsx)
library(pheatmap)
library(scRNAtoolVis)
library(ggplot2)
library(Seurat)
library(clusterProfiler)
library(org.Hs.eg.db)
library(org.Mm.eg.db)
#devtools::install_github('junjunlab/scRNAtoolVis') ##这个用来安装
#############4、组间差异基因火山图################
## 导入我们感兴趣的细胞簇的数据集
load("Macrophages.Rdata")
pbmc <- Macrophages #“Macrophages”改成我们的数据集名称
Idents(pbmc) <- "group"
###差异分析
###去我们metadata里面找“group”这一列,看看我们的分组是什么
####然后把下面的 ident.1 和 ident.2换掉
####(注意前面的是实验组!!!) (注意前面的是实验组!!!) (注意前面的是实验组!!!) 
####重要的事情说三遍~

MYDEG <- FindMarkers(pbmc,ident.1 = 'Tumor',ident.2 = 'Normal', verbose = FALSE, test.use = 'wilcox',min.pct = 0.1)

###处理我们差异分析的结果
avg_log2FC <- 1 ###这个是logFC值,设置为1的话比较适中
type1 = (MYDEG$p_val < 0.05)&(MYDEG$avg_log2FC < -avg_log2FC) ### 根据p值和logFC值筛选组间上调基因
type2 = (MYDEG$p_val < 0.05)&(MYDEG$avg_log2FC > avg_log2FC)  ### 根据p值和logFC值筛选组间下调基因
MYDEG$change = ifelse(type1,"DOWN",ifelse(type2,"UP","NOT"))
table(MYDEG$change)
write.csv(MYDEG, file='MYDEG_pbmc.csv',row.names = T)

######画一个火山图先
pdf(file = "火山图.pdf",width = 8,height = 6)
ggplot(data = MYDEG, 
       aes(x = avg_log2FC, 
           y = -log10(p_val))) +
  geom_point(alpha=1, size=1.5,   #### 调整点的大小
             aes(color=change)) +
  xlim(-7, 7) +  #### 设置x轴的范围,例如从-2到2
  ylab("-log10(P.Value)") +
  scale_color_manual(values=c("#8fef9f""grey","#f47d7a")) +
  geom_vline(xintercept=c(-1,1) ,lty=5,col="black",lwd=0.8) +  ###xintercept=c(-1,1)里面的1是我们上面差异分析设置的log2FC值
  geom_hline(yintercept = -log10(0.05),lty=4,col="black",lwd=0.8)  ###0.05是我们刚刚上面差异分析设值的p值
dev.off()
########2、药物靶点与疾病靶点的交集基因Venny图#####
### 读取单细胞得到的差异基因文件
data1 <- read.csv("MYDEG_pbmc.csv")

#### 筛选出 avg_log2FC 的绝对值大于1 且 p_val 小于0.05 的行
filtered_data <- data1 %>%
  filter(abs(avg_log2FC) > 1, p_val < 0.05)
#### 保存筛选后的数据
write.csv(filtered_data, "filtered_MYDEG_pbmc.csv", row.names = FALSE)
###绘制韦恩图
pdf("韦恩图.pdf",width = 7,height = 7) 
venn1 <- read.xlsx("drug.xlsx",check.names=FALSE)
venn2 <- read.csv("filtered_MYDEG_pbmc.csv",check.names=FALSE)
## 重命名第X列的列名
colnames(venn1)[1] <- "总"
colnames(venn2)[2] <- "X"

x<-list('drug'=venn1$总,
        'disease'=venn2$X)
ggvenn(x,fill_color = c("blue""red"),)
#查看结果
D_D6 <- as.data.frame(intersect(x$drug, x$disease))
# 将数据框的列名改为 "gene"
colnames(D_D6) <- "gene"
write.csv(D_D6,"韦恩图结果.csv",row.names = F)
dev.off()

这样我们就可以到得到一个韦恩图,用于展示我们的数据。类似于这样↓↓↓

这段代码有很多是自己的笨笨的方法,所以还是要结合自己的基础进行分析一下。前面我们基本上已经可以得到这些内容了,下面我们要用一个软件cytoscope软件画一下”疾病-基因-靶点“的图,虽然没啥用,但是还是可以吹一波的。cytoscope需要的是两个文件:1.network:包括所有的有效成分+靶点基因,药物(陈皮)+有效成分,疾病+差异基因(韦恩图取出来的)这里需要注意一下,有效成分需要结合前面的两个标准的,比如OB和DL值。2.type:包括的有效成分+类型(比如你的柚皮素,跟我们保存的是mol类型,还记得吗?那个图片下载的),疾病+类型(disease),差异基因+类型(gene)这里需要注意那个基因是我们最后交集后的基因,就是韦恩图上展示的红色圈圈里的基因,说明两者共同表达的前面的工作都处理好了,后面我们就可以开始画图了,打开cytoscope软件,导入这两个文件。

这里需要注意这个软件好神经病,那个file里面并不可以导入文件,需要在第一个小框框的里面导入进去。这里导入的是network这个文件

导入文件之后就是这个效果,是不是啥也看不到,别急。再通过下面的框导入type文件,然后点一下第二个框框。就可以看到内容了。

然后我们可以点击一下菜单栏的layout,group,type,跟下面的图一样↓↓↓就可以得到这个大病图,接下来我们开始处理一下这个图。处理完之后就是这样的一个图了。

注意一下几个框框代表的不同的意思,比如调粗细之类的,然后左边是疾病,右边是有效成分和药物,中间是target基因。

做到这,估计很多人研究要瞎了吧,我也差不多了,那我们可以点file,print,主要要保存为pdf矢量图,让我们歇一会儿,明天接着弄。

做好的图就是这个样子的啦。哈哈哈哈哈。小休息一下,让我们继续弄~牛马要去上课了~


生信夜班侠
一个不想搞医疗,想改行搞科研的儿科Dr