RNA-seq差异表达基因分析之TopHat篇

TopHat是基于Bowtie的将RNA-Seq数据mapping到参考基因组上,从而鉴定可变剪切(exon-exon splice junctions)。

安装

最简单的安装方法,注意版本

  • 下载Bowtie、TopHat、Cufflinks的二进制发布包,解压到相同的目录
  • 下载samtools,make,将生成的可执行samtools程序也cp到同一个目录
  • 增加该目录到PATH

参数与使用

Usage: tophat [options]* <index_base> <reads1_1[,…,readsN_1]> [reads1_2,…readsN_2]

  • -o  输出目录,默认值为 “./tophat_out”。
  • –solexa-quals/solexa1.3-quals 质量编码,关于质量编码格式请参考《Fastq格式详解
  • -p 线程数,默认值为单线程1.,可以使用多线程
  • -G/–GTFSupply TopHat with a set of gene model annotations and/or known transcripts, as a GTF 2.2 or GFF3 formatted file.指定已有转录本信息
  • –no-novel-juncs 不查找新的可变剪切
  • -r 比对时两成对引物间的距离中值。比如说,如果你的插入片段有300bp,而每个引物有50bp,那么r值就应该是200=(300+50*2)/2。没有默认值,如果是末端配对比对时这个值是必须的。
  • –mate-std-dev 末端配对时中间插入片段的长度的标准差,默认值为20bp

paired-end数据应该如何做

paired end reads是好还是坏,好又好在哪里?如何从结果中体现,如何同一批paired-end reads 使用paired-end 参数与不适用差别在哪里?

READS文件

paired end的reads必须放在不同的两个文件中,文件名必须按照*_1, *_2的规范成对出现,Mixing paired- and single- end reads together is not supported.不要将paired-end的数据与single end reads放到一起进行处理。

设置-R参数

大多数情况,使用默认值就可以了,TopHat允许一定量的偏差,TopHat在多个地方使用到这个值,比如当寻找剪切位点与fusion break point。同时在生成报告的最后阶段选择最佳的alignment时,用到这个信息。可以先用少量的数据进行比对,在比对结果的SAM结果中,对于paired reads,第九列是插入片段的大概长度,可以用这个数值减去两倍的read的长度,就可以得到实际的-r参数需要设置的大小,如果值太大应该小心,只有比对上同一个外显子的情况具有意义。

控制结果的参数

  • –no-discordant For paired reads, report only concordant mappings.对于成对的读取,只报告一致的映射。
  • –no-mixed For paired reads, only report read alignments if both reads in a pair can be mapped (by default, if TopHat cannot find a concordant 和谐 or discordant 不和谐 alignment for both reads in a pair, it will find and report alignments for each read separately分别; this option disables that behavior).

结果读取

paired-end reads,两个reads可以相互验证,这样可以有效的出去许多假阳性的拼接,增加结果的准确性。
 

常见的错误及其解决思路

[ERRNO 2]NO SUCH FILE OR DIRECTORY

[Thu Oct 18 17:20:15 2012] Beginning TopHat run (v1.3.2)
-----------------------------------------------
[Thu Oct 18 17:20:15 2012] Preparing output location ./tt/
[Thu Oct 18 17:20:15 2012] Checking for Bowtie index files
[Thu Oct 18 17:20:15 2012] Checking for reference FASTA file
[Thu Oct 18 17:20:15 2012] Checking for Bowtie
Bowtie version: 0.12.8.0
[Thu Oct 18 17:20:15 2012] Checking for Samtools
Samtools Version: 0.1.18
[Thu Oct 18 17:20:15 2012] Generating SAM header for ./hg19/genome
[Thu Oct 18 17:20:38 2012] Preparing reads
format: fastq
quality scale: solexa33 (reads generated with GA pipeline version < 1.3)
[Thu Oct 18 17:20:38 2012] Reading known junctions from GTF file
Left reads: min. length=35, count=53327887
[Thu Oct 18 18:05:11 2012] Mapping left_kept_reads against genome with Bowtie
[Thu Oct 18 23:04:52 2012] Processing bowtie hits
[Thu Oct 18 23:52:29 2012] Mapping left_kept_reads_seg1 against genome with Bowtie (1/4)
[Fri Oct 19 03:59:45 2012] Mapping left_kept_reads_seg2 against genome with Bowtie (2/4)
[Fri Oct 19 08:04:09 2012] Mapping left_kept_reads_seg3 against genome with Bowtie (3/4)
[Fri Oct 19 11:55:20 2012] Mapping left_kept_reads_seg4 against genome with Bowtie (4/4)
[Fri Oct 19 15:37:53 2012] Searching for junctions via segment mapping
[Fri Oct 19 16:24:47 2012] Retrieving sequences for splices
[Fri Oct 19 16:30:15 2012] Indexing splices
[Fri Oct 19 16:30:41 2012] Mapping left_kept_reads_seg1 against segment_juncs with Bowtie (1/4)
[Fri Oct 19 17:05:17 2012] Mapping left_kept_reads_seg2 against segment_juncs with Bowtie (2/4)
[Fri Oct 19 17:39:56 2012] Mapping left_kept_reads_seg3 against segment_juncs with Bowtie (3/4)
[Fri Oct 19 18:13:04 2012] Mapping left_kept_reads_seg4 against segment_juncs with Bowtie (4/4)
[Fri Oct 19 18:43:58 2012] Joining segment hits
[Fri Oct 19 19:37:28 2012] Reporting output tracks
[FAILED]
Error: [Errno 2] No such file or directory
[samopen] SAM header is present: 25 sequences.

可能的原因:

  • 安装问题,排除这个问题是,安装后进行测试, http://tophat.cbcb.umd.edu/tutorial.html,测试没有成功,就要就地排除问题,使用二进制包,解压一下,一般不会出现安装问题;
  • 参数路径问题,例如必须是绝对路径,实际确认相对路径也可以;
  • 这个具体示例中,是环境变量问题, All it’s doing is saying that it can find Samtools but can’t use it because it’s not in its PATH.,没有将samtool所在目录加入PATH
  • 索引问题,参考基因组索引有问题,或者索引的版本有问题,需要进行确认;
  • 缺少基因组fa文件
  • paired-end,只有left reads(我猜测,可能,但是猜测错误);
  • 版本问题(很少是这个原因)
  • 权限与磁盘空间问题,很少是这个原因引起的

[FAILED]ERROR RUNNING ‘PREP_READS’ TERMINATE CALLED AFTER THROWING AN INSTANCE OF ‘INT’

质量编码设置错误,如果不确认质量编码方式,可以使用自动判别脚本进行检查。

排除错误的思路,确认程序是执行到哪一步出的错误,可以中日志(run.log)文件中看到,通常的顺序是:

  1. gtf_juncs
  2. prep_reads 这里报告错误,读取reads有问题
  3. bowtie|fix_map_ordering
  4. long_spanning_reads
  5. segment_juncs
  6. juncs_db
  7. bowtie-build
  8. bowtie|fix_map_ordering
  9. segment_juncs
  10. juncs_db
  11. bowtie-build
  12. bowtie
  13. long_spanning_reads
  14. bam_merge
  15. bowtie
  16. long_spanning_reads
  17. bam_merge
  18. tophat_reports | samtools 调用samtools发生错误

参考

RNA-seq差异表达基因分析之TopHat篇的更多相关文章

  1. 差异基因分析:fold change(差异倍数), P-value(差异的显著性)

    在做基因表达分析时必然会要做差异分析(DE) DE的方法主要有两种: Fold change t-test fold change的意思是样本质检表达量的差异倍数,log2 fold change的意 ...

  2. 使用GEO数据库来筛选差异表达基因,KOBAS进行KEGG注释分析

    前言 本文主要演示GEO数据库的一些工具,使用的数据是2015年在Nature Communications上发表的文章Regulation of autophagy and the ubiquiti ...

  3. RNA -seq

    RNA -seq RNA-seq目的.用处::可以帮助我们了解,各种比较条件下,所有基因的表达情况的差异. 比如:正常组织和肿瘤组织的之间的差异:检测药物治疗前后,基因表达的差异:检测发育过程中,不同 ...

  4. 鸿蒙内核源码分析(进程回收篇) | 老父亲如何向老祖宗临终托孤 ? | 百篇博客分析OpenHarmony源码 | v47.01

    百篇博客系列篇.本篇为: v47.xx 鸿蒙内核源码分析(进程回收篇) | 临终前如何向老祖宗托孤 | 51.c.h .o 进程管理相关篇为: v02.xx 鸿蒙内核源码分析(进程管理篇) | 谁在管 ...

  5. 鸿蒙内核源码分析(特殊进程篇) | 龙生龙,凤生凤,老鼠生儿会打洞 | 百篇博客分析OpenHarmony源码 | v46.02

    百篇博客系列篇.本篇为: v46.xx 鸿蒙内核源码分析(特殊进程篇) | 龙生龙凤生凤老鼠生儿会打洞 | 51.c.h .o 进程管理相关篇为: v02.xx 鸿蒙内核源码分析(进程管理篇) | 谁 ...

  6. 鸿蒙内核源码分析(进程概念篇) | 进程在管理哪些资源 | 百篇博客分析OpenHarmony源码 | v24.01

    百篇博客系列篇.本篇为: v24.xx 鸿蒙内核源码分析(进程概念篇) | 进程在管理哪些资源 | 51.c.h .o 进程管理相关篇为: v02.xx 鸿蒙内核源码分析(进程管理篇) | 谁在管理内 ...

  7. cuffdiff 和 edgeR 对差异表达基因的描述

    ASE又走到了关键的一步  要生成能决定是否有差异表达的table. 准备借鉴一下cuffdiff和edgeR 的结果 cuffdiff对差异表达基因的描述: 一共十四列: 第一列, test_id ...

  8. RNA seq 两种计算基因表达量方法

    两种RNA seq的基因表达量计算方法: 1. RPKM:http://www.plob.org/2011/10/24/294.html 2. RSEM:这个是TCGAdata中使用的.RSEM据说比 ...

  9. 【转】一文掌握 Linux 性能分析之网络篇(续)

    [转]一文掌握 Linux 性能分析之网络篇(续) 在上篇网络篇中,我们已经介绍了几个 Linux 网络方向的性能分析工具,本文再补充几个.总结下来,余下的工具包括但不限于以下几个: sar:统计信息 ...

随机推荐

  1. Linux umask命令详解

    Linux umask命令 Linux umask命令指定在建立文件时预设的权限掩码.一般来说,umask命令是在/etc /profile文件中设置的 umask可用来设定[权限掩码].[权限掩码] ...

  2. linux tomcat jvm调优

    修改TOMCAT_HOME/bin/catalina.sh文件: # OS specific support.  $var _must_ be set to either true or false. ...

  3. Excel技巧--巧用差异化插入空行

    假设有上面这一列,要求在不同城市之间插入一空行相隔开.数据少的时候可以手动操作,但数据量大时,就需要以下技巧: 1.复制该列(除去标题),并粘贴到右侧一列,但上方要隔开一个单元格B2: 2.将这两列选 ...

  4. JNDI在Spring和tomcat下的使用

    1. 是什么 JNDI是 Java 命名与目录接口(Java Naming and Directory Interface),在J2EE规范中是重要的规范之一.JNDI 在 J2EE 中的角色就是&q ...

  5. 初识TypeScript

    环境配置 1,全局安装node和npm 2,安装TypeScript包 npm install typescript -g tsc --version 编写第一个ts程序 1,初始化项目 新建文件夹d ...

  6. 20165312 2017-2018-2 《JAVA程序设计》第6周学习总结

    20165312 2017-2018-2 <JAVA程序设计>第6周学习总结 一.在本周学习过程中遇到的问题以及对上周测试的查漏补缺 编写110页代码时出现问题,主类Test中创建CPU对 ...

  7. HTML5 使用小结

    1.html5新增的常用元素 (a) <article.../>代表独立完整的一遍文章 (b)<section.../>对页面内容进行分块 (c)<nav.../> ...

  8. 导出Excel(Ext 前台部分)

    开发思路: - 序列化当前GridPanel 数据, 表头结构(用于对应关系), 通过控制器Aspose写到Excel中, 然后返回临时文件地址, 弹出窗口下载. function btnExport ...

  9. vue+窗格切换+田字+dicom显示_01

    环境:vue+webpack+cornerstone ide:vs code 需求:窗格设置+拼图设置 1.点击左边第一个窗格或者默认显示. 2.点击第二个也同理显示,以此类推 3.选择左边的窗格之后 ...

  10. 如何让大小一定的span能够包含“容不下”的内容

    overflow: hidden; text-overflow: ellipsis; width: 70px;(长度随意) 给span加上面的代码