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)