欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

生信的基础:ID 转换、参考基因组注释 (R)

最编程 2024-03-18 08:33:05
...

(一)ID 转换

  • 参考:https://blog.****.net/weixin_40739969/article/details/89354167

方法一

library(org.Hs.eg.db) #人类基因组注释包

# 导入差异表达结果,筛选
diff<-read.table(file = file.choose(), sep="\t", quote="", header= T, row.names = 1)
head(diff)
genelist<-diff[(which(diff$FDR < 0.05)),]
head(genelist);dim(genelist)

# id转换
library("clusterProfiler") #bitr属于此包
genelist_id<-bitr(unique(row.names(genelist)),
                  fromType="ENSEMBL",toType="ENTREZID",
                  OrgDb="org.Hs.eg.db",drop = TRUE)#转换ID

write.table(paste(genelist_id[,1], 
                  genelist_id[,2],'12', sep = '\t'),
                 "6-ALL_difflncRNA_0.05.txt",
                  append=T,row.names=F,col.names = F,quote = F)
write.table(genelist, "6-3h_difflncRNA_0.05.txt", sep = '\t', quote = F)

#NEW
gene.df <- bitr(gene, fromType = "ENTREZID", #fromType是指你的数据ID类型是属于哪一类的
                toType = c("ENSEMBL", "SYMBOL"), #toType是指你要转换成哪种ID类型,可以写多种,也可以只写一种
                OrgDb = org.Hs.eg.db)#Orgdb是指对应的注释包是哪个
head(gene.df)

方法二

#https://www.jianshu.com/p/90f233a3fc34?utm_campaign=haruki
#http://blog.sina.com.cn/s/blog_e44846710102x805.html
#BiocManager::install("biomaRt")
library("biomaRt")
value <- x
attr <- c("ensembl_gene_id","hgnc_symbol")
ensembl <- useMart("ensembl", dataset = "hsapiens_gene_ensembl") 
ids <- getBM(attributes = attr,
             filters = "ensembl_gene_id",
             values = value,
             mart = ensembl,
             useCache = F)

方法三

geneIDselect <-select(org.Hs.eg.db, #.db是这个芯片数据对应的注释包
                      keys=gene,
                      columns=c("SYMBOL","ENSEMBL","GENENAME"), #clolumns参数是你要转换的ID类型是什么,这里选择三个。
                      keytype="ENTREZID" )#函数里面的keytype与keys参数是对应的,keys是你输入的那些数据,keytype是指这些数据是属于什么类型的数据。 
head(geneIDselect)

方法四

gene <-mapIds(org.Hs.eg.db, #.db是这个芯片数据对应的注释包
                      keys=gene,
                      column="SYMBOL", #clolumns参数是你要转换的ID类型是什么,只能选择一个。
                      keytype="ENTREZID" )#函数里面的keytype与keys参数是对应的,keys是你输入的那些数据,keytype是指这些数据是属于什么类型的数据。 
head(geneIDselect)

(二)基因组注释

#BiocManager::install("rtracklayer")
library(rtracklayer)
#下载参考基因组
hg38.gencode.gtf<-import.gff(con = 'gencode.v27.annotation.gtf')
length(hg38.gencode.gtf) 
head(hg38.gencode.gtf)#前三列是标准GRanges格式

library(AnnotationHub)
ah<-AnnotationHub()
table(ah$rdataclass) #其中ChainFile是需要用到的

#下载hg38转hg19坐标数据
chain<-query(ah,c("hg19","hg38","chainfile")) # 查看相关坐标文件
chain
#AH14108 | hg38ToHg19.over.chain.gz
#AH14150 | hg19ToHg38.over.chain.gz
hg38.to.hg19<-chain[["AH14108"]] 

#将hg38的坐标映射到hg19上
test.hg38<-head(hg38.gencode.gtf)
test.hg38 
test.hg19<-liftOver(test.hg38,hg38.to.hg19) # 转换过程,先放原始数据,再放转换坐标文件
test.hg19 #得到的是一个GRangesList
new.test.hg19<-unlist(test.hg19)