gmt文件定义
gmt(Gene Matrix Transposed,基因矩阵转置)是多列注释文件,列与列之间都是Tab制表符分割。
- 第1列: 是基因所属基因集的名字,可以是通路名字,也可以是自己定义的任何名字。
- 第2列 :一般是描述信息,说明这套基因列表从哪里收集的,也可以为空或者用NA表示。官方提供的格式是URL,也可以是任意字符串。
- 第3列-第n列: 是基因集内所有基因的名字,有几个写几列。
每一行的列数可以不一样,主要是基因集内的基因数量不一样。
library(clusterProfiler)
data(gcSample) #加载gcSample数据集
#第一列用X1-X8,第二列无内容用‘NA’代替,第三列-第N列为基因的entrenz id
#文件以制表符分隔开
get_gmt <- function(gcSample,filename){
output <- file(filename, open="wt")
lapply(names(gcSample),function(name){
outlines = paste0(c(name, "NA", gcSample[[name]]),collapse='\t')
writeLines(outlines, con=output)
})
close(output)
}
#第一个参数传入gcSample数据集,第二个参数为输出的文件名
get_gmt(gcSample,"gcSample.gmt")
下面是for循环版本,不过R语言中,尽量用apply族函数替代for循环,提高运行效率
get_gmt <- function(gcSample,filename){
output <- file(filename, open="wt")
for (name in names(gcSample)) {
outlines = paste0(c(name, "NA", gcSample[[name]]),collapse='\t')
writeLines(outlines, con=output)
}
close(output)
}
参考
https://www.dxy.cn/bbs/newweb/pc/post/41921535