针对不同基因名,包括gene_id(ENSMUSG**/ENSG***)、gene_name(DDX**/Ddx**)、transcript_id(ENST**/ENSMUST***)之间相互转化。

1.获取物种基因注释文件,GTF文件

这里博主提供小鼠的GTF获取地址--Index of /pub/release-106/gtf/mus_musculus (ensembl.org),其他物种可参考获取--Index of /pub (ensembl.org)

2.通过R读取对应的GTF文件

这里我们需要两个包处理GTF文件,分别是R "rtracklayer"--和R “dplyr”

BiocManager::install("rtracklayer")

install.packages("dplyr")

rm(list = ls())#清理环境
library(rtracklayer)
library(dplyr)
setwd('E:/ww2024.01.08')#选择要处理的GTF文件所在位置

gtf <- rtracklayer::import('Mus_musculus.GRCm39.106.gtf')#读取GTF文件其他物种也是相同的读取方式,把文件换成自己的就行

读取GTF文件是这样的,不能看出详细内容,需转化一下

gtf<-as.data.frame(gtf)#转化为正常可读取模式

转化后的GTF文件,这个时候就能看出文件中详细信息,可用于继续分析,得到我们需要的内容

3.获取rotein_coding类型

trans_coding.gtf <- gtf %>% 
  dplyr::select(c("transcript_id","gene_name","gene_biotype","gene_biotype")) %>% 
  arrange(transcript_id) %>% 
  distinct(gene_name,.keep_all = T) %>% 
  filter(gene_biotype == "protein_coding")#这里我们得到的是protein_coding类型的基因

这里博主的是transcript_id类型,所以需要在文件提取transcript_id和基因名,基因类型,根据自己的需要添加进去,如果是gene_id那把transcript_id改一下或者添加进去就行,思考一下,博主希望你是个有想法的~~~

当然,其它类型,如lncRNA...miRNA都很重要,这里博主也提供了代码,其他类型的如"processed_pseudogene",可根据自己需求获取

4.获取lncRNA类型

lncRNA.gtf<-gtf %>% 
  dplyr::select(c("transcript_id","gene_name","gene_biotype","gene_biotype")) %>% 
  arrange(transcript_id) %>% 
  distinct(gene_name,.keep_all = T) %>% 
  filter(gene_biotype == "lncRNA")

5.获取miRNA类型

miRNA.gtf<-gtf %>% 
  dplyr::select(c("transcript_id","gene_name","gene_biotype","gene_biotype")) %>% 
  arrange(transcript_id) %>% 
  distinct(gene_name,.keep_all = T) %>% 
  filter(gene_biotype == "miRNA")

6.结果输出

输出的类型有两种或很多种,这里博主提供两种代码,一种是txt,一种是GTF,根据需要输出结果。

write.table(lncRNA.gtf,file = "lncRNA.txt",sep = "\t",col.names = T,quote=F)
write.table(miRNA.gtf,file = "miRNA.txt",sep = "\t",col.names = T,quote=F)
 

write.table(lncRNA.gtf,file = "lncRNA.gtf",sep = "\t",col.names = T)
write.table(miRNA.gtf,file = "miRNA.gtf",sep = "\t",col.names = T)
 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值