获取gtf文件gene symbol ENSID gene_biotype
首先下载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相关推荐
- 从UCSC下载基因组的GTF文件
欢迎关注"生信修炼手册"! 从UCSC下载基因组的GTF文件有两种方式,一种是利用table browser 浏览器,另外一种是通过FTP服务. 1. Table Browser ...
- R语者小case之——从GTF文件生成注释表格做基因ID转换
基因的注释表格是经常需要用到的,可以从GTF文件中获得.用R可以简单地实现这个功能. 简易的GTF文件实际上可以认为是用制表符分隔为9列的TSV. 第一列是seqid, 通常是染色体编号: 第二列是s ...
- uniport ID 转换为 gene symbol(ID转换)
网站 ID转换网址 input 选择 uniprot accession output 选择 Gene symbol 一般一次转换不能超过1万个基因ID,数据量太大就转换不出来,如果一次转换太多,需要 ...
- gff文件转入mysql_详解GFF转换为GTF文件
欢迎关注"生信修炼手册"! 存储基因和转录本的结构信息,gtf和gff3两种格式都可以.在实际分析时,会需要转换两种格式.比如,NCBI 只提供了GFF格式的下载文件,我们需要转换 ...
- gene ID / Gene Symbol / Ensembl ID
1. 各种ID名称介绍 Gene ID 也称Entrez ID/EntrezGene ID ,是 NCBI 使用的能够对众多数据库进行联合搜索的搜索引擎, 其对不同的 Gene 进行了编号, 每个 g ...
- gtf文件服务器,GTF 文件扩展名: 它是什么以及如何打开它?
了解 GTF 问题 典型的 GTF 开放挑战 Integrated Genome Browser 不在 双击 GTF 文件时,您可能会在操作系统中看到一个对话框,指出 "无法打开此文件类型& ...
- 详解GFF转换为GTF文件
欢迎关注"生信修炼手册"! 存储基因和转录本的结构信息,gtf和gff3两种格式都可以.在实际分析时,会需要转换两种格式.比如,NCBI 只提供了GFF格式的下载文件,我们需要转换 ...
- C++ 下使用curl 获取ftp文件
从http://curl.haxx.se/下载的win32版本的curl都不能使,#include <curl.h>后总是报错:external symbol ,意思就是没有链接到curl ...
- 从GTF文件中提取TSS上下游1kb的区间,要多少行代码?
欢迎关注"生信修炼手册"! 在ATAC_seq数据分析中,需要绘制reads在TSS位点附近的分布图, 如下所示 左侧为NFR reads在TSS位点两侧的分布图,右侧为单个核小体 ...
最新文章
- 计算机科学界至今未解决的四大难题
- 基于linux的ARM设备升级,烧写Nand flash总结
- 区间调度之区间交集问题
- .NET Remoting开发系列:(三) Remoting服务发布方式
- 从浪漫走向坚韧:开源数据库的演变
- Java 笔记——在 IDEA 中使用 Maven 配置和使用 MyBatis
- [有限元]利用虚位移和虚力的定义、对称性推导弹性力学公式
- 【设计师工具】3个好用的在线配色工具
- bzoj2599 [IOI2011]Race
- 树链剖分+线段树 CF 593D Happy Tree Party(快乐树聚会)
- python in visual studio
- 查询手机号码归属地区等信息API接口
- 收入时间序列——之预测总结篇
- 最新美女COS写真网站整站源码下载+实测可用/带数据
- 第3.1章:StarRocks数据导入--Insert into
- python ——随机选取n个元素
- 贝壳 OLAP 平台架构及演进
- 易语言编写的WIfi热点共享工具 源码+成品
- 下采样matlab代码,SIFT中的降采样和升采样及其MATLAB实现
- CSDN招聘:一同体验未来IT科技的魅力
热门文章
- CIE 2017 color fidelity index(CFI) 色保真度指数 计算软件
- 西工大计算机博士好难毕业,老牌985西北工业大学的毕业生最后怎样了?1/3留陕西,月薪7000+...
- 计算机图形学最基本知识,计算机图形学基础知识重点整理.doc
- 一个黑客的自白:教主20岁赚2000万
- vue父子组件通信详解
- SLAM知识点——P3P知识点
- 判断计算机硬件和网络故障,计算机网络硬件的不同检测方法与维护
- 啰嗦版SM2263XT固态开卡成功,附SM2263XT固件
- 微信小程序:获取本机号码的正确方式
- android fm 耳机,为什么现在安卓手机都没有FM功能了?其实都冤枉厂商了