Hallmark数据的处理及list与data.frame之间的转换

Hallmark数据的处理及list与data.frame之间的转换我们通常会遇到这样的 list 如何将他转化成 data frame 呢 我们可以利用 ldply 函数 这里是将 GSEA 的 Hallmark 转化成矩阵 方便我后续的处理 df lt ldply Hs h all v7 1 entrez data frame 结果如图所示 后续处理 因为 Hallmark 并未给出这些 pathway 的

大家好,我是讯享网,很高兴认识大家。

我们通常会遇到这样的list

在这里插入图片描述
讯享网
如何将他转化成data.frame呢?
我们可以利用 ldply() 函数

#这里是将GSEA的Hallmark 转化成矩阵,方便我后续的处理。 df <- ldply(Hs.h.all.v7.1.entrez,data.frame) 

讯享网

在这里插入图片描述
结果如图所示

后续处理

因为Hallmark并未给出这些pathway的 Process category,我准备自己加上去。参考 MSigBD文章 进行标注。

讯享网library(dbplyr) library(plyr) library(clusterProfiler) library(org.Hs.eg.db) library(tidyverse) Hs.h.all.v7.1.entrez #这里其实是测试这个函数是否可行 df <- ldply(Hs.h.all.v7.1.entrez,data.frame) unique(df$.id)#查看数据是否出错 # gene_symbol <- bitr(df$X..i..,  # fromType="ENTREZID", # toType="SYMBOL",  # OrgDb="org.Hs.eg.db") #写一个id转换的function,放到lapply()函数里使用。 transid <- function(i,data = Hs.h.all.v7.1.entrez){ 
    gene_symbol <- bitr(Hs.h.all.v7.1.entrez[[i]], fromType="ENTREZID", toType="SYMBOL", OrgDb="org.Hs.eg.db") } #将entrezID转换成genesymbol a <- lapply(names(Hs.h.all.v7.1.entrez),transid) #names(a)[1] <- names(Hs.h.all.v7.1.entrez[1]) #将名称对应 for (i in 1:length(names(Hs.h.all.v7.1.entrez))) { 
    names(a)[i] <- names(Hs.h.all.v7.1.entrez[i]) } #a[[1]]$ENTREZID <- NULL #删除ENTREZID列,因为我不需要这列 for (i in 1:length(names(a)) ) { 
    a[[i]]$ENTREZID <- NULL } #将list转化成data.frame b <- ldply(a,data.frame) #复制新的一列,处理后用于merge b$class <- b$.id #通过正则表达式将数据处理成需要的格式 b$class <- str_extract(b$class,"(?<=\\_)[^\\_].+") #使用merge()将每个pathway和Process category 对应起来 c <- merge(b,Hallmark_category, by.x = "class", by.y = "Hallmark name", ) 
小讯
上一篇 2025-03-25 22:38
下一篇 2025-01-16 12:42

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/130232.html