首先下载gtf文件,这里我们引用的是Ensembl的文件enensembl gtf文件下载

这里面我们下载完文件后我们如何查看这个文件信息呢,首先我们用UEStudio 打开后我们看一下文件的数据结构

可以看到里面的我们想要的有gene_ID 和基因的名字 以及这个基因的biotype,我们明确想要提取的对象后导入我们的R中进行提取。

library(refGenome)
ens <- ensemblGenome()
read.gtf(ens, "Homo_sapiens.GRCh38.98.chr.gtf")###导入gtf文件 比较耗时
class(ens)
my_gene <- getGenePositions(ens)**这里面不要用genecode的GTF文件导入会使R崩溃**

read.gtf(ens, “Homo_sapiens.GRCh38.98.chr.gtf”)
[read.gtf.refGenome] Reading file ‘Homo_sapiens.GRCh38.98.chr.gtf’.
[GTF] 2894598 lines processed.
[read.gtf.refGenome] Extracting genes table.
[read.gtf.refGenome] Found 60,564 gene records.
[read.gtf.refGenome] Finished.

colnames(my_gene)[1] "id"                       "seqid"                    "source"                   "start"                    "end"                     [6] "score"                    "strand"                   "frame"                    "ccds_id"                  "protein_version"
[11] "protein_id"               "exon_version"             "transcript_support_level" "tag"                      "exon_number"
[16] "gene_id"                  "transcript_name"          "gene_version"             "gene_name"                "gene_source"
[21] "gene_biotype"             "transcript_id"            "transcript_source"        "exon_id"                  "transcript_version"
[26] "transcript_biotype"

我们看一下有多少列 以及里面包含了什么,然后根据自己想要的类别提取,这里我提取的是gene_id 和gene_name,以及gene_biotype

gene_id<- my_gene[,16]
gene_name <- my_gene[,19]
gene_biotype <- my_gene[,21]
a <- cbind(gene_id,gene_name,gene_biotype)

到这里想看一下跟TCGA来比较一下基因的数目
这个是TCGA的ID 为了跟ensembl的ID一致我们需要把TCGA的ID 后面的小数点后的删除
整成下面的样子


然后我们导入到R里面进行比较

b <- merge(rt, a, by = "gene_id")##合并通过gene ID
table(b)
'data.frame': 56549 obs. of  4 variables:$ gene_id                     : Factor w/ 60483 levels "ENSG00000000003",..: 1 2 3 4 5 6 7 8 9 10 ...$ TCGA-E9-A1RF-11A-32R-A157-07: int  4544 1881 1565 1356 294 1006 24121 3695 5097 2025 ...$ gene_name                   : Factor w/ 59368 levels "5_8S_rRNA","5S_rRNA",..: 56530 55760 27407 51645 23684 29301 25128 29753 30068 41316 ...$ gene_biotype                : Factor w/ 40 levels "IG_C_gene","IG_C_pseudogene",..: 16 16 16 16 16 16 16 16 16 16 ...

看了一下TCGA的ID有60483 ,ensembl的ID有60564 合并一下有只有56549个少了4000多个

write.table(b,file="xxxl.txt",sep="\t",quote=F,row.names = T) ###保存一下
write.table(a,file="xxxxl.txt",sep="\t",quote=F,row.names = T) ###保存一下

保存下来看一下差异在哪,我看一下跟市面上脚本合并的差的不是很多同时我也提供了一个perl的脚本来进行转换

use strict;my $gtfFile="Homo_sapiens.GRCh38.98.chr.gtf";
my $expFile="mRNAmatrix.txt";
my $outFile="symbol.txt";my %hash=();
open(RF,"$gtfFile") or die $!;
while(my $line=<RF>)
{chomp($line);if($line=~/gene_id \"(.+?)\"\;.+gene_name "(.+?)"\;.+gene_biotype \"(.+?)\"\;/){$hash{$1}=$2;}
}
close(RF);open(RF,"$expFile") or die $!;
open(WF,">$outFile") or die $!;
while(my $line=<RF>)
{if($.==1){print WF $line;next;}chomp($line);my @arr=split(/\t/,$line);$arr[0]=~s/(.+)\..+/$1/g;if(exists $hash{$arr[0]}){$arr[0]=$hash{$arr[0]};print WF join("\t",@arr) . "\n";}
}
close(WF);
close(RF);

这个脚本转化的是有56639的基因,差了将近100个基因不知道为啥,没有进行细微的探究,有知道给给我的答案。

汇总前面的R代码

library(refGenome)
ens <- ensemblGenome()
read.gtf(ens, "Homo_sapiens.GRCh38.98.chr.gtf")###导入gtf文件 比较耗时
class(ens)
my_gene <- getGenePositions(ens)
colnames(my_gene)
gene_id<- my_gene[,16]
gene_name <- my_gene[,19]
gene_biotype <- my_gene[,21]
a <- cbind(gene_id,gene_name,gene_biotype)
rt=read.table("id.txt",sep="\t",header=T,check.names=F)
b <- merge(rt, a, by = "gene_id")##合并通过gene ID
write.table(b,file="xxxl.txt",sep="\t",quote=F,row.names = T) ###保存一下
write.table(a,file="xxxxl.txt",sep="\t",quote=F,row.names = T) ###保存一下

获取gtf文件gene symbol ENSID gene_biotype相关推荐

  1. 从UCSC下载基因组的GTF文件

    欢迎关注"生信修炼手册"! 从UCSC下载基因组的GTF文件有两种方式,一种是利用table browser 浏览器,另外一种是通过FTP服务. 1. Table Browser ...

  2. R语者小case之——从GTF文件生成注释表格做基因ID转换

    基因的注释表格是经常需要用到的,可以从GTF文件中获得.用R可以简单地实现这个功能. 简易的GTF文件实际上可以认为是用制表符分隔为9列的TSV. 第一列是seqid, 通常是染色体编号: 第二列是s ...

  3. uniport ID 转换为 gene symbol(ID转换)

    网站 ID转换网址 input 选择 uniprot accession output 选择 Gene symbol 一般一次转换不能超过1万个基因ID,数据量太大就转换不出来,如果一次转换太多,需要 ...

  4. gff文件转入mysql_详解GFF转换为GTF文件

    欢迎关注"生信修炼手册"! 存储基因和转录本的结构信息,gtf和gff3两种格式都可以.在实际分析时,会需要转换两种格式.比如,NCBI 只提供了GFF格式的下载文件,我们需要转换 ...

  5. gene ID / Gene Symbol / Ensembl ID

    1. 各种ID名称介绍 Gene ID 也称Entrez ID/EntrezGene ID ,是 NCBI 使用的能够对众多数据库进行联合搜索的搜索引擎, 其对不同的 Gene 进行了编号, 每个 g ...

  6. gtf文件服务器,GTF 文件扩展名: 它是什么以及如何打开它?

    了解 GTF 问题 典型的 GTF 开放挑战 Integrated Genome Browser 不在 双击 GTF 文件时,您可能会在操作系统中看到一个对话框,指出 "无法打开此文件类型& ...

  7. 详解GFF转换为GTF文件

    欢迎关注"生信修炼手册"! 存储基因和转录本的结构信息,gtf和gff3两种格式都可以.在实际分析时,会需要转换两种格式.比如,NCBI 只提供了GFF格式的下载文件,我们需要转换 ...

  8. C++ 下使用curl 获取ftp文件

    从http://curl.haxx.se/下载的win32版本的curl都不能使,#include <curl.h>后总是报错:external symbol ,意思就是没有链接到curl ...

  9. 从GTF文件中提取TSS上下游1kb的区间,要多少行代码?

    欢迎关注"生信修炼手册"! 在ATAC_seq数据分析中,需要绘制reads在TSS位点附近的分布图, 如下所示 左侧为NFR reads在TSS位点两侧的分布图,右侧为单个核小体 ...

最新文章

  1. 计算机科学界至今未解决的四大难题
  2. 基于linux的ARM设备升级,烧写Nand flash总结
  3. 区间调度之区间交集问题
  4. .NET Remoting开发系列:(三) Remoting服务发布方式
  5. 从浪漫走向坚韧:开源数据库的演变
  6. Java 笔记——在 IDEA 中使用 Maven 配置和使用 MyBatis
  7. [有限元]利用虚位移和虚力的定义、对称性推导弹性力学公式
  8. 【设计师工具】3个好用的在线配色工具
  9. bzoj2599 [IOI2011]Race
  10. 树链剖分+线段树 CF 593D Happy Tree Party(快乐树聚会)
  11. python in visual studio
  12. 查询手机号码归属地区等信息API接口
  13. 收入时间序列——之预测总结篇
  14. 最新美女COS写真网站整站源码下载+实测可用/带数据
  15. 第3.1章:StarRocks数据导入--Insert into
  16. python ——随机选取n个元素
  17. 贝壳 OLAP 平台架构及演进
  18. 易语言编写的WIfi热点共享工具 源码+成品
  19. 下采样matlab代码,SIFT中的降采样和升采样及其MATLAB实现
  20. CSDN招聘:一同体验未来IT科技的魅力

热门文章

  1. CIE 2017 color fidelity index(CFI) 色保真度指数 计算软件
  2. 西工大计算机博士好难毕业,老牌985西北工业大学的毕业生最后怎样了?1/3留陕西,月薪7000+...
  3. 计算机图形学最基本知识,计算机图形学基础知识重点整理.doc
  4. 一个黑客的自白:教主20岁赚2000万
  5. vue父子组件通信详解
  6. SLAM知识点——P3P知识点
  7. 判断计算机硬件和网络故障,计算机网络硬件的不同检测方法与维护
  8. 啰嗦版SM2263XT固态开卡成功,附SM2263XT固件
  9. 微信小程序:获取本机号码的正确方式
  10. android fm 耳机,为什么现在安卓手机都没有FM功能了?其实都冤枉厂商了