分享

多元化展示基因列表和其对应的具体基因的关系

 健明 2024-05-23 发布于广东

酒香也怕巷子深啊!好像大家不怎么知道我们生信技能树团队有一个生物信息学入门课,详见;生物信息学马拉松授课(买一得五) ,你值得拥有!(下一期是6月3号开课,在线直播互动授课一个月哦!)

看到了一个生物信息学数据挖掘,标题是:《Novel ferroptosis gene biomarkers and immune infiltration profiles in diabetic kidney disease via bioinformatics》,通过大量的数据分析拿到了11个FRDEGs基因列表,然后去对这11个基因进行“屎上雕花”,它们分别是:  (ALOX5, CCL5, FHL2, G0S2,IGKC,KRT19,LCN2,LTF,PRKCB,RRM2,TUBA1A) ,比如下面的go数据库的注释结果,就使用了4种展示策略 :

go数据库的注释结果

本质上就是这11个基因以及其对应的go数据库通路列表名字而已,让我们使用示例数据来说明这个有多么的浅薄。只需要安装对应的包,就可以复制粘贴下面的代码到你的rstudio编辑器里面看图:

library(clusterProfiler)
library(org.Hs.eg.db)
data(geneList, package='DOSE')
head(geneList)
de <- names(geneList)[1:100]
enrichKK <- enrichKEGG(de, pvalueCutoff=0.01)
head(enrichKK)
colnames(enrichKK@result)
barplot(enrichKK)+dotplot(enrichKK)

需要大家肉眼看懂并且理解这个colnames(enrichKK@result)里面的结果,Kegg(京都百科全书与基因组数据库)注释是一种常用的生物信息学分析,它用于将基因与生物学途径和功能进行关联。Kegg数据库提供了丰富的信息,包括代谢途径、疾病、药物作用以及基因功能等。在你提供的信息中,各个列代表的含义如下:

  1. category:这一列通常表示基因所属的主要功能类别,如代谢、细胞过程、遗传信息处理等。

  2. subcategory:在主要类别下的子分类,提供了更具体的功能描述。

  3. ID:Kegg数据库中分配给特定基因或化合物的唯一标识符。

  4. Description:对基因功能的详细描述,可能包括它在生物体中的作用、参与的生物化学途径等。

  5. GeneRatio:这通常指的是在特定条件下,如疾病状态与正常状态下,目标基因集中某个特定类别或途径中基因的表达比例。

  6. BgRatio:背景比率,可能表示在正常或对照条件下,基因集中某个特定类别或途径中基因的表达比例。

  7. pvalue:统计分析中的P值,用于评估观察到的现象是否可能由偶然因素引起。较小的P值通常表示结果具有统计学意义。

  8. p.adjust:校正后的P值,考虑到多重比较的问题,对原始P值进行校正,以减少I型错误(错误地拒绝了正确的零假设)的风险。

  9. qvalue:q值,是另一个用于多重比较校正的统计量,它提供了错误发现率(False Discovery Rate, FDR)的控制。

  10. geneID:特定基因的唯一标识符,可能与Kegg数据库中的ID列相对应。

  11. Count:可能表示在分析中检测到的基因数量,或者某个特定基因在样本中的表达计数。

Kegg注释的结果可以帮助研究人员理解基因在生物体中的作用,以及它们如何与疾病或其他生物学过程相关联。通过这些注释,研究人员可以识别关键的生物标志物、潜在的药物靶点,或者对生物学途径进行更深入的研究。

如下所示的kegg数据库注释结果就说明了目标基因(100个基因)及其对应的kegg数据库功能富集结果:

对应的kegg数据库功能富集结果

上面仅仅是可视化了最后的富集分析通路名字而忽略了里面的基因列表,其实是可以看清楚了每个具体的富集到的通路,比如上面的cell cycle通路有12个基因,但是背后到底是哪12个基因做贡献;

enrichKK=setReadable(enrichKK,'org.Hs.eg.db',keyType = 'ENTREZID')
tmp=head(enrichKK[,c(4,10,11)])

理论上看下面的图表信息是最好的,但是大家就会要求把这个表格也是展现出来:

 

这个时候有3种可视化方法:

cnetplot(enrichKK, categorySize="pvalue", foldChange=geneList,colorEdge = TRUE)
cnetplot(enrichKK, foldChange=geneList, circular = TRUE, colorEdge = TRUE)
heatplot(enrichKK)

大家可以复制粘贴代码去试试看,说一下自己喜欢哪个,我个人比较倾向于第二个 :

 

如果要做的文章里面的弦图,就需要使用其他包了,比如下面的两个:

library(RCircos)
library(circlize)

学徒作业

使用上面的数据,然后绘制一个类似的弦图,这个时候需要使用另外一个基因列表,如下所示200个基因 :

de <- c(
  head(names(geneList),100),
  tail(names(geneList),100)
)

因为这里面的geneList是一个差异分析结果,里面的基因按照变化倍数是排序好的。

文末友情宣传

强烈建议你推荐给身边的博士后以及年轻生物学PI,多一点数据认知,让他们的科研上一个台阶:

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多