得到一个物种所有基因的TSS(转录起始位点)区域的bed文件。
时间:2022-05-03
本文章向大家介绍得到一个物种所有基因的TSS(转录起始位点)区域的bed文件。,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
首先在UCSC的table browser 里面下载下面这个文件:
可以看到我这里选择的mm10的refseq系统的所有基因,共有29037个不同的tss,36872个转录本,只有24540个基因,说明有部分基因有多个tss,这个其实挺麻烦的。
#bin name chrom strand txStart txEnd cdsStart cdsEnd exonCount exonStarts exonEnds score name2 cdsStartStat cdsEndStat exonFrames0 NM_001282945 chr1 - 134199214 134235457 134202950 134234355 3 134199214,134234014,134235227, 134203590,134234446,134235457, 0 Adora1 cmpl cmpl 2,0,-1,0 NM_001039510 chr1 - 134199214 134235457 134202950 134234355 3 134199214,134234014,134235227, 134203590,134234412,134235457, 0 Adora1 cmpl cmpl 2,0,-1,0 NM_001291930 chr1 - 134199214 134235457 134202950 134203505 2 134199214,134235227, 134203590,134235457, 0 Adora1 cmpl cmpl 0,-1,0 NM_001291928 chr1 - 134199214 134234856 134202950 134234733 2 134199214,134234662, 134203590,134234856, 0 Adora1 cmpl cmpl 2,0,0 NM_001008533 chr1 - 134199214 134235457 134202950 134234355 2 134199214,134234014, 134203590,134235457, 0 Adora1 cmpl cmpl 2,0,
其实里面可以设置直接下载所有基因的TSS区域的bed文件,可是我不会设置各种参数,也懒得去摸索,直接对上面的文件我可以写脚本处理得到需要的数据形式。 需要输出的是bed格式文件,如下: chrom / chromStart /chromEnd /name /score /strand 我这里定义的TSS(转录起始位点)区域上下游2.5kb,所以代码如下:
perl -alne '{next if /^#/;if($F[3] eq "+"){$start=$F[4]-2500;$end=$F[4]+2500}else{$start=$F[5]-2500;$end=$F[5]+2500}print join("t",$F[2],$start,$end,$F[12],0,$F[3])}' ucsc.refseq.txt |sort -u >ucsc.refseq.tss.bed
最后得到的文件如下:
tail ucsc.refseq.tss.bed chrY 816212 821212 Uba1y 0 +chrY 81798997 81803997 Gm20747 0 -chrY 82222714 82227714 Gm20736 0 +chrY 83925411 83930411 Gm20854 0 -chrY 85527019 85532019 Gm20854 0 -chrY 8832669 8837669 Gm20815 0 -chrY 895287 900287 Kdm5d 0 +chrY 90752550 90757550 G530011O06Rik 0 -chrY 90782941 90787941 Erdr1 0 +chrY 90836906 90841906 G530011O06Rik 0
这里面会有一个问题,对于部分基因在非正常染色体的,会出现如下诡异的结果,建议干脆删除掉。
chr4_GL456216_random 13380 18380 Dhrsx 0 +chr4_GL456350_random -1369 3631 Ccl21c 0 -chr4_GL456350_random -1369 3631 Gm10591 0 -chr4_GL456350_random -1369 3631 Gm13304 0 -
记住,这个时候,部分基因还有多个tss哦,反正取决于你的下游分析流程啦。
- 用一个命令使用 Docker Compose 安装Mesos
- C语言/C加加新手入门学习经验资料分享,基础知识大汇总!
- 云数据服务蜂拥而至...好难选呀
- ASP.NET MVC的Razor引擎:View编译原理
- ASP.NET Core中的依赖注入(4): 构造函数的选择与服务生命周期管理
- 通过Knockout.js + ASP.NET Web API构建一个简单的CRUD应用
- 自动驾驶车辆在2017年的七大光辉历史时刻
- 简单的实现Javascript的MVC
- 谷歌再出黑科技!人工智能模拟的人声和真人几乎难以分辨
- 【Scikit-Learn 中文文档】高斯混合模型 - 无监督学习 - 用户指南 | ApacheCN
- “E+单拼”组合域名eqi.com小六位结拍
- ASP.NET Core中的依赖注入(3): 服务的注册与提供
- 【Scikit-Learn 中文文档】使用 scikit-learn 介绍机器学习 | ApacheCN
- 哈萨比斯:2018年AI最大突破在生物或化学领域
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- linux下搭建go环境的安装配置讲解
- linux下搭建scala环境并写个简单的scala程序
- 在Linux系统下上传项目到码云的方法
- 使用seaborn绘制热图
- CentOS中环境变量与配置文件的深入讲解
- 详解linux下fsevents模块引起的npm ls报错解决办法
- 解决nginx/apache静态资源跨域访问问题详解
- 可怕的万圣节 Linux 命令
- linux环境不使用hadoop安装单机版spark的方法
- 在linux下玩转带有超时时间的connect函数
- Linux/CentOS服务器安全配置通用指南
- 详解centos7中配置keepalived日志为别的路径
- jointplot快速探究两组变量的分布及关系
- linux中alarm函数的实例讲解
- 如何给Linux虚拟机连上WiFi详解