<h1 class="post-title entry-title">如何获取目标基因的转录因子</h1><div id="toc" style="display: block;"><i>Jump to...</i> <ol class="lorem ipsum"><li class="dolor sit amet"><a href="#%E5%A6%82%E4%BD%95%E8%8E%B7%E5%8F%96%E7%9B%AE%E6%A0%87%E5%9F%BA%E5%9B%A0%E7%9A%84%E8%BD%AC%E5%BD%95%E5%9B%A0%E5%AD%90%E4%B8%8Abiomart%E4%B8%8B%E8%BD%BD%E5%9F%BA%E5%9B%A0%E5%92%8Cmotif%E4%BD%8D%E7%BD%AE%E4%BF%A1%E6%81%AF">如何获取目标基因的转录因子(上)——biomart下载基因和motif位置信息</a><ol class="lorem ipsum"><li class="dolor sit amet"><a href="#1-%E6%96%87%E4%BB%B6%E5%87%86%E5%A4%87">1. 文件准备</a></li><li class="dolor sit amet"><a href="#2-%E4%BB%80%E4%B9%88%E6%98%AFbed%E6%96%87%E4%BB%B6">2. 什么是bed文件?</a></li><li class="dolor sit amet"><a href="#3-biomart%E6%95%B0%E6%8D%AE%E4%B8%8B%E8%BD%BD">3. BioMart数据下载</a></li></ol></li><li class="dolor sit amet"><a href="#%E5%A6%82%E4%BD%95%E8%8E%B7%E5%8F%96%E7%9B%AE%E6%A0%87%E5%9F%BA%E5%9B%A0%E7%9A%84%E8%BD%AC%E5%BD%95%E5%9B%A0%E5%AD%90%E4%B8%8Blinux%E5%91%BD%E4%BB%A4%E8%8E%B7%E5%8F%96%E7%9B%AE%E6%A0%87%E5%9F%BA%E5%9B%A0tf">如何获取目标基因的转录因子(下)——Linux命令获取目标基因TF</a><ol class="lorem ipsum"><li class="dolor sit amet"><a href="#1-%E5%9F%BA%E7%A1%80%E5%9B%9E%E9%A1%BE">1. 基础回顾</a></li><li class="dolor sit amet"><a href="#2-%E6%96%87%E4%BB%B6%E6%A0%BC%E5%BC%8F%E5%A4%84%E7%90%86">2. 文件格式处理</a></li><li class="dolor sit amet"><a href="#3-%E8%AE%A1%E7%AE%97%E5%9F%BA%E5%9B%A0%E7%9A%84%E5%90%AF%E5%8A%A8%E5%AD%90%E5%8C%BA">3. 计算基因的启动子区</a></li><li class="dolor sit amet"><a href="#4-%E5%8F%96%E4%B8%A4%E6%96%87%E4%BB%B6%E7%9A%84%E4%BA%A4%E9%9B%86">4. 取两文件的交集</a></li><li class="dolor sit amet"><a href="#5-%E6%8F%90%E5%8F%96%E6%88%91%E4%BB%AC%E5%85%B3%E6%B3%A8%E7%9A%84%E5%9F%BA%E5%9B%A0">5. 提取我们关注的基因</a></li><li class="dolor sit amet"><a href="#%E9%87%8D%E7%82%B9%E6%80%BB%E7%BB%93">重点总结</a></li><li class="dolor sit amet"><a href="#linux">Linux</a></li></ol></li></ol></div><h1 id="如何获取目标基因的转录因子上biomart下载基因和motif位置信息" class="clickable-header top-level-header">如何获取目标基因的转录因子(上)——biomart下载基因和motif位置信息</h1><i class="icon-arrow-up back-to-top"> </i>

科研过程中我们经常会使用Ensembl(http://asia.ensembl.org/index.html) 网站来获取物种的参考基因组,其中BioMart工具可以获取物种的基因注释信息,以及跨数据库的ID匹配和注释等。

在参考基因组和基因注释文件一文中有详细介绍如何在Ensembel数据库中获取参考基因组和基因注释文件。(点击蓝字即可阅读)

生信分析中,想要找到感兴趣基因的转录因子结合位点,该怎么做呢?

1. 文件准备

首先需要准备以下3个文件,后面两个文件可以在ensembl网站中下载:

  1. 感兴趣基因的名称列表(1列基因名即可)
  2. 基因组中各基因位置信息列表(6列的bed文件)
  3. 基因组中各转录因子结合位点信息列表(5列的bed文件)

2. 什么是bed文件?

bed格式文件提供了一种灵活的方式来定义数据行,以此描述基因注释的信息。BED行有3个必须的列和9个可选的列。 每行的数据格式要求一致。

关于bed文件格式的介绍,在https://genome.ucsc.edu/FAQ/FAQformat.html#format1中有详细说明。

我们需要下载的基因位置信息列表是一个6列的bed文件,每列信息如下:

Chromosome/scaffold name Gene start (bp) Gene end (bp) Gene stable ID Gene name Strand
染色体的名称(例如chr3) Gene起始位点 Gene终止位点 Gene stable ID Gene name 定义基因所在链的方向,+或-

注:起始位置和终止位置以0为起点,前闭后开。

转录因子结合位点列表是一个5列的bed文件,每列信息如下:

Chromosome/scaffold name Start (bp) End (bp) Score Feature Type
染色体的名称(例如chr3) TF起始位点 TF终止位点 Score 转录因子的名字

具体内容见后面示例,更方便理解。

3. BioMart数据下载

  1. 进入Ensembl主页后点击BioMart

    <p><img src="http://www.ehbio.com/ehbio_resource/BioMart/1.png" alt="BioMart"></p>
    
  • 使用下拉框-CHOOSE DATASET- 选择数据库,我们选则Ensembl Genes 93;这时出现新的下拉框-CHOOSE DATASET- ,选择目的物种,以Human gene GRCh38.p12为例。如果自己实际操作,需要选择自己的数据常用的基因组版本。如果没有历史包袱,建议选择GRCh38最新版。

    <p><img src="http://www.ehbio.com/ehbio_resource/BioMart/2.png" alt="BioMart"></p>
    
  • 选择数据库后,点击Filters对数据进行筛选,如果是对全基因组进行分析可不用筛选, 略过不填

    <p><img src="http://www.ehbio.com/ehbio_resource/BioMart/3.png" alt="BioMart"></p>
    
  • 点击Attributes,在GENE处依次选择1-6列的内容,勾选顺序便是结果矩阵中每列的顺序。

    <p><img src="http://www.ehbio.com/ehbio_resource/BioMart/4.png" alt="BioMart"></p>
    
  • 如上图中所示,点击results后跳转下载页面,中间展示了部分所选的数据矩阵,确定格式无误后点击GO即可下载。

    <p><img src="http://www.ehbio.com/ehbio_resource/BioMart/5.png" alt="BioMart"></p>
    
  • 转录因子结合位点矩阵的下载类似上面,不过在下拉框-CHOOSE DATASET- 选择数据库时,我们选则Ensembl Regulation 93,再选择**Human Binding Motif (GRCh38.p12) **

    <p><img src="http://www.ehbio.com/ehbio_resource/BioMart/6.png" alt="BioMart"></p>
    
  • 在Attributes处选择需要的信息列,点击ResultsGO进行数据下载

    <p><img src="http://www.ehbio.com/ehbio_resource/BioMart/7.png" alt="BioMart"></p><p><img src="http://www.ehbio.com/ehbio_resource/BioMart/8.png" alt="BioMart"></p>
    
  • 将上述下载的两个文件分别命名为 GRCh38.gene.bedGRCh38.TFmotif_binding.bed ,在Shell中查看一下:

    基因组中每个基因所在的染色体、位置和链的信息,以及对应的ENSG编号和Gene symbol。

    Chromosome/scaffold name        Gene start (bp) Gene end (bp)   Gene stable ID  Gene
    3       124792319       124792562       ENSG00000276626 RF00100 -1
    1       92700819        92700934        ENSG00000201317 RNU4-59P        -1
    14      100951856       100951933       ENSG00000200823 SNORD114-2      1
    22      45200954        45201019        ENSG00000221598 MIR1249 -1
    1       161699506       161699607       ENSG00000199595 RF00019 1
    

    第五列为人中的转录因子,每一行表示每个转录因子在基因组范围的结合位点分布,即其可能在哪些区域有结合motif。这些区域是与TF的结合motif矩阵相似性比较高的区域,被视为潜在结合位点。有程序MEME-FIMOHomer-Findmotifs.pl可以完成对应的工作。

    Chromosome/scaffold name        Start (bp)      End (bp)        Score   Feature Type
    14      23034888        23034896        7.391   THAP1
    3       10026599        10026607        7.054   THAP1
    10      97879355        97879363        6.962   THAP1
    3       51385016        51385024        7.382   THAP1
    16      20900537        20900545        6.962   THAP1
    

    下期预告: 如何在Shell中用Linux命令处理以上两个矩阵,以此来找到目标基因的转录因子。

    更多相关推文见:

    • Seq logo 在线绘制工具——Weblogo
    • R包ggseqlogo 绘制seq logo图
    • 一文教会你查找基因的启动子、UTR、TSS等区域以及预测转录因子结合位点
    • 生信老司机以中心法则为主线讲解组学技术的应用和生信分析心得 - 限时免费
    • 2018 升级版Jaspar数据库
    • 本地安装UCSC基因组浏览器

    如何获取目标基因的转录因子(下)——Linux命令获取目标基因TF

    如何获取目标基因的转录因子(上)一文中我们以人类基因组为例,从ensemble网站下载了基因组中基因位置信息矩阵GRCh38.gene.bed和基因组中转录因子结合位点信息矩阵GRCh38.TFmotif_binding.bed)

    我们知道有很多数据库可以查找启动子、UTR、TSS等区域以及预测转录因子结合位点,但是怎么用Linux命令处理基因信息文件来得到关注基因的启动子和启动子区结合的TF呢?

    1. 基础回顾

    转录起始位点(TSS):转录时,mRNA链第一个核苷酸相对应DNA链上的碱基,通常为一个嘌呤;(不考虑转录启动复合体的预转录情况)

    启动子(promoter):与RNA聚合酶结合并能起始mRNA合成的序列。与传统的核心启动子概念不同,做生信分析时,一般选择转录起始位点上游1 kb,下游 200 nt,也有选上下游各1 kb或者 2 kb的(记住这两个数,之后计算要用到);总体上生信中选择的启动子更长,范围更广一些。

    文件准备:感兴趣的基因列表(命名为targetGene.list)、还有上一期下载的GRCh38.gene.bedGRCh38.TFmotif_binding.bed

    2. 文件格式处理

    删除文件GRCh38.gene.bed首行,第六列正负链表示形式改为-+,并在第一列染色体位置加上chr

    sed -i '1d' GRCh38.gene.bed
    # 如果用sed,注意下面2列的顺序,为什么不能颠倒过来?
    sed -i 's/-1$/-/' GRCh38.gene.bed
    sed -i 's/1$/+/' GRCh38.gene.bed
    sed -i 's/^/chr/' GRCh38.gene.bed
    

    删除文件GRCh38.TFmotif_binding.bed首行,并在第一列染色体位置加上chr

    sed -i '1d' GRCh38.TFmotif_binding.bed
    sed -i 's/^/chr/' GRCh38.TFmotif_binding.bed
    

    less -S filename查看一下两个矩阵内容,发现已转换完成

    chr3    124792319       124792562       ENSG00000276626 RF00100 -
    chr1    92700819        92700934        ENSG00000201317 RNU4-59P        -
    chr14   100951856       100951933       ENSG00000200823 SNORD114-2      +
    chr22   45200954        45201019        ENSG00000221598 MIR1249 -
    chr1    161699506       161699607       ENSG00000199595 RF00019 +
    

    chr14   23034888        23034896        7.391   THAP1
    chr3    10026599        10026607        7.054   THAP1
    chr10   97879355        97879363        6.962   THAP1
    chr3    51385016        51385024        7.382   THAP1
    chr16   20900537        20900545        6.962   THAP1
    

    3. 计算基因的启动子区

    上面已提过,根据经验一般启动子区域在转录起始位点(TSS)上游1 kb、下游 200 nt处,注意正负链的运算方式是不一样的,切忌出错。

    awk 'BEGIN{OFS=FS="\t"}{if($6=="+") {tss=$2; tss_up=tss-1000; tss_dw=tss+200;} else {tss=$3; tss_up=tss-200; tss_dw=tss+1000;} if(tss_up<0) tss_up=0;print $1, tss_up, tss_dw,$4,$5,$6;}' GRCh38.gene.bed > GRCh38.gene.promoter.U1000D200.bed
    

    关于awk命令的使用方法,可以参考Linux学习 - 常用和不太常用的实用awk命令一文。

    head GRCh38.gene.bed GRCh38.gene.promoter.U1000D200.bed检查一下计算是否有误。自己选取正链和负链的一个或多个基因做下计算,看看结果是否一致。做分析不是出来结果就完事了,一定谨防程序中因为不注意核查引起的bug。

    ==> GRCh38.gene.bed <==
    chr3    124792319   124792562   ENSG00000276626 RF00100 -
    chr1    92700819    92700934    ENSG00000201317 RNU4-59P    -
    chr14   100951856   100951933   ENSG00000200823 SNORD114-2  +
    chr22   45200954    45201019    ENSG00000221598 MIR1249 -
    chr1    161699506   161699607   ENSG00000199595 RF00019 +
    

    > GRCh38.gene.promoter.U1000D200.bed <
    chr3 124792362 124793562 ENSG00000276626 RF00100 -
    chr1 92700734 92701934 ENSG00000201317 RNU4-59P -
    chr14 100950856 100952056 ENSG00000200823 SNORD114-2 +
    chr22 45200819 45202019 ENSG00000221598 MIR1249 -
    chr1 161698506 161699706 ENSG00000199595 RF00019 +

    4. 取两文件的交集

    本条命令我们使用了bedtools程序中的子命令intersect

    intersect可用来求区域之间的交集,可以用来注释peak,计算reads比对到的基因组区域不同样品的peak之间的peak重叠情况;Bedtools使用简介一文中有关于bedtools的详细介绍;

    两文件取完交集后,cut -f取出交集文件的第5列和第11列,sort -u去处重复项,并将这两列内容小写全转变为大写,最终得到一个两列的文件。第一列是基因名,第二列是能与基因结合的TF名字。

    程序不细解释,具体看文后的Linux系列教程。Bedtools使用简介

    # cut时注意根据自己的文件选择对应的列
    # tr转换大小写。
    bedtools intersect -a GRCh38.gene.promoter.U1000D200.bed -b GRCh38.TFmotif_binding.bed -wa -wb | cut -f 5,11 | sort -u | tr 'a-z' 'A-Z' > GRCh38.gene.promoter.U1000D200.TF_binding.txt
    

    5. 提取我们关注的基因

    上一步中,我们将GRCh38.gene.promoter.U1000D200.TF_binding.txt文件中的基因名和TF名都转换成了大写。

    为了接下来提取目标基因转录因子时不会因大小写差别而漏掉某些基因,我们将targetGene.list中的基因名也全部转换成大写。

    # 基因名字转换为大写,方便比较。不同的数据库不同的写法,只有统一了才不会出现不必要的失误
    tr 'a-z' 'A-Z' targetGene.list > GeneUP.list
    

    目标基因列表和基因-TF对应表都好了,内容依次如下:

    ==> GeneUP.list <==
    ACAT2
    ACTA1
    ACTA2
    ADM
    AEBP1
    

    > GRCh38.gene.promoter.U1000D200.TF_binding.txt <
    A1BG RXRA
    A2M-AS1 GABP
    A2M SRF
    A4GALT GABP
    AAAS CTCF

    awk命令,根据第一个文件GeneUP.list建立索引,若第二个文件GRCh38.gene.promoter.U1000D200.TF_binding.txt第一列中检索到第一个文件中的基因,则把第二个文件中检索到目标基因的整行存储起来,最终得到了目标基因和基因对应TF的文件targetGene.TF_binding.txt。这也是常用的取子集操作。

    awk 'BEGIN{OFS=FS="\t"}ARGIND==1{save[$1]=1;}ARGIND==2{if(save[$1==1]) print $0}' GeneUP.list GRCh38.gene.promoter.U1000D200.TF_binding.txt > targetGene.TF_binding.txt
    

    获取目标基因的转录因子是生信分析中常见的分析,希望如何获取目标基因的转录因子(上)和本文能够帮助到各位小伙伴

    重点总结

    1. 什么是bed文件

    2. awk命令的使用

    3. bedtools使用 (Bedtools使用简介)

    Linux

    • Linux - 总目录
    • Linux - 文件和目录
    • Linux - 文件操作
    • Linux - 文件内容操作
    • Linux - 环境变量和可执行属性
    • Linux - 管道、标准输入输出
    • Linux - 命令运行监测和软件安装
    • Linux - 常见错误和快捷操作
    • Linux - 文件列太多,很难识别想要的信息在哪列;别焦急,看这里。
    • Linux - 文件排序和FASTA文件操作
    • Linux - 应用Docker安装软件
    • Linux - Conda软件安装方法
    • Linux - 服务器数据定期同步和备份方式
    • Linux - VIM的强大文本处理方法
    • Linux - 查看服务器配置信息
    • Linux - SED操作,awk的姊妹篇
    • Linux - 常用和不太常用的实用awk命令
    • Linux - 那些查找命令
    • Linux - 原来你是这样的软连接
    • Bash概论 - Linux系列教程补充篇

    • 高通量数据分析必备-基因组浏览器使用介绍 - 1
    • 高通量数据分析必备-基因组浏览器使用介绍 - 2
    • 高通量数据分析必备-基因组浏览器使用介绍 - 3
    • 测序文章数据上传找哪里
    • GO、GSEA富集分析一网打进
    • GSEA富集分析 - 界面操作
    • Bedtools使用简介
    • OrthoMCL鉴定物种同源基因 (安装+使用)
    • Rfam 12.0+本地使用 (最新版教程)
    • 轻松绘制各种Venn图
    • ETE构建、绘制进化树
    • psRobot:植物小RNA分析系统
    • 生信软件系列 - NCBI使用
    • 去东方,最好用的在线GO富集分析工具
    • 2018 升级版Motif数据库Jaspar
    • 一文教会你查找基因的启动子、UTR、TSS等区域以及预测转录因子结合位点
      <footer class="entry-meta"><span class="entry-tags"><a href="http://blog.genesino.com/tags#R" title="Pages tagged R" class="tag"><span class="term">R</span></a><a href="http://blog.genesino.com/tags#Bioinfo" title="Pages tagged Bioinfo" class="tag"><span class="term">Bioinfo</span></a></span><span class="author vcard"><span class="fn">CHENTONG</span></span><br><span class="fn">版权声明:本文为博主原创文章,转载请注明出处。</span><br><div><img src="http://blog.genesino.com/images/alipay.png" alt="alipay.png"><img src="http://blog.genesino.com/images/WeChatPay.png" alt="WeChatPay.png"></div></footer>
    </div>
    

如何获取目标基因的转录因子相关推荐

  1. 如何在Ubuntu上使用Ensemble数据库Biomart预测目标基因可能结合的转录因子

    写在前面,不推荐!不推荐!真有这个需求,用Homer更方便,Biomart还是用来注释就行了. 理由:①.Biomart里面Ensemble Regulation数据着实太少!人类转录因子结合位点数据 ...

  2. 使用Nmap获取目标服务器开放的服务以及操作系统信息

    http://nmap.org/download.html 1.下载安装 rpm -vhU http://nmap.org/dist/nmap-5.61TEST5-1.i386.rpm rpm -vh ...

  3. Spring中的AOP在Advice方法中获取目标方法的参

    参考:http://my.oschina.net/itblog/blog/211693 http://christang.iteye.com/blog/2037919 http://blog.csdn ...

  4. java获取方法上的注解_Spring:使用Spring AOP时,如何获取目标方法上的注解

    当使用spring AOP时,判断目标方法上的注解进行相关操作,如缓存,认证权限等 自定义注解 packagecom.agent.annotation;importjava.lang.annotati ...

  5. Intel Realsense D435 通过识别目标的像素坐标和深度值(使用内参intrinsics)获取目标点的真实坐标

    Intel Realsense D435 通过识别目标的像素坐标和深度值(使用内参intrinsics)获取目标点的真实坐标 图原理 基本获取内参`intrinsics`代码 实操代码1(在`tens ...

  6. Spring中的AOP——在Advice方法中获取目标方法的参数(转)

    获取目标方法的信息 访问目标方法最简单的做法是定义增强处理方法时,将第一个参数定义为JoinPoint类型,当该增强处理方法被调用时,该JoinPoint参数就代表了织入增强处理的连接点.JoinPo ...

  7. 访问ntfs文件系统获取目标文件簇流

    NTFS文件系统总体布局 MBR(Master Boot Record,主引导记录)又叫主引导扇区,是计算机开机后访问硬盘时必须要读取的首个扇区,它在硬盘上的三维地址为0柱面,0磁头,1扇区(整个硬盘 ...

  8. python获取目标时间距离现在多长时间(‘2020-5-30 23:40:00‘)

    获取目标时间距离现在多长时间 import time,datetime# 输入目标的时间 time_new = '2020-5-30 23:40:00' timeArray_new = time.st ...

  9. 使用Meterperter会话获取目标屏幕与键盘记录

    使用MS08-067漏洞开启Meterpreter会话 Windows XP SP2(MS08-067漏洞复现及利用) 截图目标主机 使用screenshot命令获取目标截图,这里是被默认保存至/ro ...

最新文章

  1. DNS服务,A记录,URL转发,MX记录,NS记录,CNAME记录,解释与设置教
  2. 13分页和shell命令行模式
  3. Freemarker问答:
  4. 使用curl从HTTP POST仅获取响应标头
  5. 非常棒的jQuery排版用插件
  6. CodeSmith输错license后的解决办法
  7. CRMEB SSL certificate problem, verify that the CA cert is OK
  8. 超详细讲解,带你零基础入门 kafka!
  9. java1234 webservice 第4 课 拦截器
  10. 行存储索引改换成列存储索引_索引策略–第2部分–内存优化表和列存储索引
  11. 拆解拼多多、趣头条、小红书背后的上海互联网基因
  12. Jdk(1.6和1.8)中英文Api文档
  13. linux yum换源(国内阿里源)
  14. 中南计算机专业数学复试分数线,2019年中南大学考研复试分数线已公布
  15. FFmpeg 音视频截取
  16. DVD碟片w ndows7,Windows7-USB-DVD-Tool下载地址及使用方法解决
  17. net has only one pin的解决方法
  18. 自己总结的Unity3d RPG网络游戏 UI逻辑 框架(基于NGUI)
  19. 记录M1Mac基础的Command快捷键
  20. linux中权限管理命令chmod

热门文章

  1. 如何在安装了Windows操作系统的电脑上安装Linux操作系统
  2. Python 强化学习实用指南:1~5
  3. java和vue视频点播弹幕系统
  4. Educational Codeforces Round 88 (Rated for Div. 2) C. Mixing Water (思维,数学)
  5. OpenStack云平台搭建(5) | 部署Nova
  6. 徐州市大数据管理中心市级政务云灾备服务
  7. TorontoCity:众生观天下
  8. 垃圾邮件的判定标准与识别方法
  9. 计算机组成原理——8086 CPU寄存器
  10. 二十岁的女孩应该有的思想