R语言读取gtf文件

Python015

R语言读取gtf文件,第1张

这样读取gtf文件回比直接使用read.table()好,因为生成的dataframe能够比较清楚地分开,并且有title。

其实这几个参数没咋完全看明白。

直接看例子吧

cat Homo_sapiens.GRCh38.94.chr_patch_hapl_scaff.sorted.gtf | cut -f 9 | tr '' '\n' | grep "gene_biotype" | sed 's/gene_biotype//' | sort | uniq -c

ref:  在R语言中读取GTF文件的最好方法 | 果子学生信

source("https://bioconductor.org/biocLite.R")

biocLite("rtracklayer")

biocLite("SummarizedExperiment")

gtf1 <- rtracklayer::import('Homo_sapiens.GRCh38.90.chr.gtf')

gtf_df <- as.data.frame(gtf1)

test <- gtf_df[1:5,] #取第一至五行

View(test)

geneid_df <- dplyr::select(gtf_df,c(seqnames,start,end,strand,type,gene_name,gene_id,gene_biotype))

write.table(geneid_df,"geneid_df.txt",sep="\t",quote = F,col.names = F,row.names = F)

平时读取一个表格文件通常使用 read.table 函数,但当遇到上百M或上G的文件时,就读的非常慢了。

有个函数 fread() ,来自 data.table 包,可以更快地读取表格文件,速度可以快 近十倍

比如现在有个基因组注释文件 Homo_sapiens.GRCh37.87.gtf ,大小为1.1G,分别使用 read.table() 和 fread() 读取所用的时间分别为:

时间分别为30s 和 4s !

而且对于很大的表格,fread()还会提供读取进度条,非常滴友好~