技术贴】如何从数据库挖掘基因并筛选 TagSNP(医学篇)(1)-自主发布-资讯-生物在线

技术贴】如何从数据库挖掘基因并筛选 TagSNP(医学篇)(1)

作者:上海翼和应用生物技术有限公司 暂无发布时间 (访问量:12932)

在人医学遗传学研究中,SNP 与疾病相关性一直是广泛的研究课题。很多人在刚开始接触课题,在没有前期研究基础指示的目的基因时,都会选择从公共数据库中寻找与疾病相关的基因或者SNP进行研究。本文小编带你学习如何从数据库中挖掘基因,并聚焦疾病相关的重要通路。

技术路线

1.疾病/复杂性状相关数据库

百度搜索可以获得很多人疾病相关数据库的使用说明,在此不再赘述。我们常用的人类疾病数据库是 DisGeNET(https://www.disgenet.org/search ),常用 GWAS 数据库是 EMBL-EBI  GWAS catalog(https://www.ebi.ac.uk/gwas/ )。

2.疾病相关最全基因 list

通过数据库下载疾病相关基因列表;相关 SNP 也可以在 VEP 在线注释工具(http://asia.ensembl.org/Multi/Tools/VEP )注释其所在的基因。将两部分基因合并,获得基本相关较为全面的基因列表。

3.富集分析----聚焦疾病/复杂性状相关通路

富集分析使用 R 语言的 clusterProfiler 程序包。即使不会 R 语言,不懂编程,一样可以完成分析。

安装 R
百度搜索 R,找到合适的下载源;也可直接点击链接https://cran.dcc.uchile.cl/,选择合适的版本下载。

#设置工作目录
运行 R 后,在《文件》菜单下选择《改变工作目录》;
将基因名替换好以后,直接复制下列代码到 R,回车运行即可,除此之外可以不做任何改动。如果已经安装 clusterProfiler 程序包,请从基因编号转换开始。

#安装 clusterProfiler 程序包,此种安装方法适合 R3.5.2 及以下版本,R3.6.0 以上版本请参考文后补充说明。
source("https://bioconductor.org/biocLite.R")
biocLite("clusterProfiler")

#安装 KEGG.db
biocLite("kegg.db")

#安装人 org.db 数据库
biocLite(“org.Hs.eg.db”)

#基因编号转换

#将基因名称列表复制给(或者任何你喜欢的文件名),如需分析自己特定的基因集,可替换括号内容,每个基因名称,用””,隔开。
library(clusterProfiler)
yh <- c("GPX3",  "GLRX",   "LBP",   "CRYAB", "DEFB1", "HCLS1",   "SOD2",   "HSPA2",
       "ORM1",  "IGFBP1", "PTHLH", "GPC3",  "IGFBP3","TOB1",    "MITF",   "NDRG1",       "NR1H4", "FGFR3", "PVR", "IL6", "PTPRM", "ERBB2",   "NID2",   "LAMB1",       "COMP",  "PLS3",   "MCAM",  "SPP1",  "LAMC1", "COL4A2", "COL4A1", "MYOC",       "ANXA4", "TFPI2",  "CST6",  "SLPI",  "TIMP2", "CPM",     "GGT1",   "NNMT",       "MAL",   "EEF1A2", "HGD",   "TCN2",  "CDA",   "PCCA",    "CRYM",   "PDXK",       "STC1",  "WARS",  "HMOX1", "FXYD2", "RBP4",   "SLC6A12", "KDELR3", "ITM2B")

#利用 cluterProfiler 内置的 bitr 函数进行基因编号转换,并将转换后的信息存储在 gene 文件中
gene <- bitr(yh, fromType="SYMBOL", toType=c("ENTREZID"), OrgDb="org.Hs.eg.db")
head(gene)

##提取 gene 数据中的 ENTREZID 列,并赋值给 DE_list
DE_list <- gene$ENTREZID

#去除重复值
DE_list[duplicated(DE_list)]
integer(0)

#调用 org.Hs.eg.db,并查看文件的各列名称信息
library(org.Hs.eg.db)
columns(org.Hs.eg.db)

#GO_MF 富集,基于基因数目,如果使用的是个人电脑,配置不高,为防止程序卡死,建议 MF\CC\BP 单个来运行,生成的图片也逐个生成保存后再运行下一个。
MF <- enrichGO(gene          = DE_list, #差异基因 vector
                keyType       ="ENTREZID",
OrgDb         = org.Hs.eg.db, #对应的OrgDb
                ont           = "MF", #GO 分类名称,CC BP MF
                pAdjustMethod = "BH", #Pvalue 矫正方法
                pvalueCutoff  = 0.05, #Pvalue 阈值
                qvalueCutoff  = 0.05, #qvalue 阈值
                readable      = TRUE) #TRUE 则展示SYMBOL,FALSE 则展示原来的ID

#将 MF 对象转换为 dataframe,新版本可以用 as.data.frame(MF)
MF_results<-summary(MF)
#生成 barplot PDF 格式,x 轴为 GeneRatio,展示前 20 富集的 GO,数字可以调整
pdf(file = "MF_barplot.pdf")
barplot(MF, showCategory=20, x = "GeneRatio")
dev.off()

#生成 MF 气泡图
dotplot(MF)

#GO_CC 富集,基于基因数目
CC <- enrichGO(gene          = DE_list, #差异基因 vector
                keyType       ="ENTREZID",
OrgDb         = org.Hs.eg.db, #对应的OrgDb
                ont           = "CC", #GO 分类名称,CC BP MF
                pAdjustMethod = "BH", #Pvalue 矫正方法
                pvalueCutoff  = 0.05, #Pvalue 阈值
                qvalueCutoff  = 0.05, #qvalue 阈值
                readable      = TRUE) #TRUE 则展示SYMBOL,FALSE 则展示原来的ID

#将 CC 对象转换为 dataframe,新版本可以用 as.data.frame(CC)
CC_results<-summary(CC)

#生成 barplot PDF 格式,x 轴为 GeneRatio,展示前 20 富集的 GO,数字可调整
pdf(file = "CC_barplot.pdf")
barplot(CC, showCategory=20, x = "GeneRatio")
dev.off()

#生成 CC 气泡图
dotplot(CC)

#GO_BP 富集,基于基因数目
BP <- enrichGO(gene          = DE_list, #差异基因 vector
                keyType       ="ENTREZID",
OrgDb         = org.Hs.eg.db, #对应的OrgDb
                ont           = "BP", #GO 分类名称,CC BP MF
                pAdjustMethod = "BH", #Pvalue 矫正方法
                pvalueCutoff  = 0.05, #Pvalue 阈值
                qvalueCutoff  = 0.05, #qvalue 阈值
                readable      = TRUE) #TRUE 则展示SYMBOL,FALSE 则展示原来的ID

#将 BP 对象转换为 dataframe,新版本可以用 as.data.frame(BP)
BP_results<-summary(BP)

#生成 barplot PDF 格式,x 轴为 GeneRatio,展示前 20 富集的 GO,数字可调整
pdf(file = "BP_barplot.pdf")
barplot(BP, showCategory=20, x = "GeneRatio")
dev.off()

#生成 BP 气泡图
dotplot(BP)

#KEGG pathway 富集
ekp <- enrichKEGG(gene         = DE_list,
                 keyType = "kegg",
                 organism     = 'hsa',
                 pvalueCutoff = 0.05)
ekp_results <- summary(ekp)

#生成 KEGG 富集分析的 barplot 图,数字可调整
barplot(ekp, showCategory=20, x = "GeneRatio")

#生成气泡图
dotplot(ekp)

#基因和富集排名第 1 的pathway对应关系
cnetplot(ekp, showCategory = 1)

#输出 pathway 富集结果,可以用 excel 打开查看
write.table(ekp, file = "ekp.txt",
              sep = "\t", quote = F, row.names = T)

#查看通路
browseKEGG(ekp,'hsa04512')

过程文件展示

MF_barplot

MF_dotplot

KEGG_barplot

KEGG_dotplot

KEGG enrichment pathway browse


补充说明

#R3.6.0 以上版本安装方法不同于 R3.5.2 及以下版本,biocManager 安装方法如下:
If(!requireNamespace(「BiocManager」,quietly=TRUE))
Install.packages(「BiocManager」)
BiocManager::install(「clusterProfiler」,version = 「3.8」)

上海翼和应用生物技术有限公司 商家主页

地 址: 上海市松江区中星创意园2号502

联系人: 李丙卓

电 话: 15966112595

传 真: 021-33559492

Email:libz@biowing.com.cn

相关咨询

核型分析的前世今生 (暂无发布时间 浏览数:10142)

技术贴】如何从数据库挖掘基因并筛选 TagSNP(医学篇)(1) (暂无发布时间 浏览数:12932)

端粒长度、端粒酶活性与人类健康 (2024-07-28T00:00 浏览数:12216)

CHO细胞残留检测 || 生物制品安全性 (2024-07-28T00:00 浏览数:11086)

DNA甲基化 (暂无发布时间 浏览数:11481)

STR鉴定科普 (暂无发布时间 浏览数:10859)

支原体检测验证考虑要点 (2023-10-30T00:00 浏览数:25513)

高灵敏度支原体检测试剂盒说明书 (2023-10-25T00:00 浏览数:27106)

生命钟理论 (2023-10-19T00:00 浏览数:24953)

生命钟理论 (2023-10-19T00:00 浏览数:23902)

ADVERTISEMENT