(一)ID 转换
方法一
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)