RNA-seq分析htseq-count的使用

HTSeq作为一款可以处理高通量数据的python包,由Simon Anders, Paul Theodor Pyl, Wolfgang Huber等人携手推出HTSeq — A Python framework to work with high-throughput sequencing data。自发布以来就备受广大分析人员青睐,其提供了许多功能给那些熟悉python的大佬们去自信修改使用,同时也兼顾着给小白们提供了两个可以拿来可用的可执行文件 htseq-count(计数) 和 htseq-qa(质量分析)。

这里需要注意的是HTSeq作为read counts的计数软件,承接的是上游比对软件对于clean data给出的比对结果即bam文件(由sam文件sort得到),和HTSeq能行使同样作用的还有类似于GFold,bedtools等软件,我会在最后做一个基本的结果比对。

附manual

附油管视频讲解


HTSeq的安装

 HTSeq安装

HTSeq使用注意事项

  1. HTSeq是对有参考基因组的转录组测序数据进行表达量分析的,其输入文件必须有SAM和GTF文件。
  2. 一般情况下HTSeq得到的Counts结果会用于下一步不同样品间的基因表达量差异分析,而不是一个样品内部基因的表达量比较。因此,HTSeq设置了-a参数的默认值10,来忽略掉比对到多个位置的reads信息,其结果有利于后续的差异分析。
  3. 输入的GTF文件中不能包含可变剪接信息,否则HTSeq会认为每个可变剪接都是单独的基因,导致能比对到多个可变剪接转录本上的reads的计算结果是ambiguous,从而不能计算到基因的count中。即使设置-i参数的值为transcript_id,其结果一样是不准确的,只是得到transcripts的表达量。

HTSeq的使用

#这里承接的是上游hisat2比对软件得到的bam文件,sort by pos, 所以需要重新sort

1

2

3

samtools sort -n yourfile.bam > yourfile_name.bam

htseq-count -f bam -r name -s no -a 10 -t exon -i gene_id -m intersection-nonempty yourfile_name.bam ~/reference/hisat2_reference/Homo_sapiens.GRCh38.86.chr_patch_hapl_scaff.gtf > counts.txt

  

1

2

3

4

5

6

7

8

9

10

11

# 命令参数

-f | --format default: sam 设置输入文件的格式,该参数的值可以是sam或bam。

-r | --order default: name 设置sam或bam文件的排序方式,该参数的值可以是name或pos。前者表示按read名进行排序,后者表示按比对的参考基因组位置进行排序。若测序数据是双末端测序,当输入sam/bam文件是按pos方式排序的时候,两端reads的比对结果在sam/bam文件中一般不是紧邻的两行,程序会将reads对的第一个比对结果放入内存,直到读取到另一端read的比对结果。因此,选择pos可能会导致程序使用较多的内存,它也适合于未排序的sam/bam文件。而pos排序则表示程序认为双末端测序的reads比对结果在紧邻的两行上,也适合于单端测序的比对结果。很多其它表达量分析软件要求输入的sam/bam文件是按pos排序的,但HTSeq推荐使用name排序,且一般比对软件的默认输出结果也是按name进行排序的。

-s | --stranded default: yes 设置是否是链特异性测序。该参数的值可以是yes,no或reverse。no表示非链特异性测序;若是单端测序,yes表示read比对到了基因的正义链上;若是双末端测序,yes表示read1比对到了基因正义链上,read2比对到基因负义链上;reverse表示双末端测序情况下与yes值相反的结果。根据说明文件的理解,一般情况下双末端链特异性测序,该参数的值应该选择reverse(本人暂时没有测试该参数)。

-a | --a default: 10 忽略比对质量低于此值的比对结果。在0.5.4版本以前该参数默认值是0。

-t | --type default: exon 程序会对该指定的feature(gtf/gff文件第三列)进行表达量计算,而gtf/gff文件中其它的feature都会被忽略。

-i | --idattr default: gene_id 设置feature ID是由gtf/gff文件第9列那个标签决定的;若gtf/gff文件多行具有相同的feature ID,则它们来自同一个feature,程序会计算这些features的表达量之和赋给相应的feature ID。

-m | --mode default: union 设置表达量计算模式。该参数的值可以有union, intersection-strict and intersection-nonempty。这三种模式的选择请见上面对这3种模式的示意图。从图中可知,对于原核生物,推荐使用intersection-strict模式;对于真核生物,推荐使用union模式。

-o | --samout 输出一个sam文件,该sam文件的比对结果中多了一个XF标签,表示该read比对到了某个feature上。

-q | --quiet 不输出程序运行的状态信息和警告信息。

-h | --help 输出帮助信息。

  

htseq-count 的三种比对模式

union, intersection-strict and intersection-nonempty 对照示意图可以选择自己需要的模式

我这里使用intersection_nonempty

mode


HTSeq的输出

HTSeq将Count结果输出到标准输出,其结果示例如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

head counts.txt

ENSG00000000003 0

ENSG00000000005 0

ENSG00000000419 1171

ENSG00000000457 563

ENSG00000000460 703

ENSG00000000938 0

ENSG00000000971 1

ENSG00000001036 925

ENSG00000001084 1468

ENSG00000001167 2997

tail count.txt

ENSG00000283696 18

ENSG00000283697 0

ENSG00000283698 1

ENSG00000283699 0

ENSG00000283700 0

__no_feature    3469791

__ambiguous 630717

__too_low_aQual 1346501

__not_aligned   520623

__alignment_not_unique  2849422

  


GFold:另一个count matrix的提取工具

GFold是一款2012年同济大学的研究组发表在Bioinformatics 上的软件,旨在通过对于相对基因变化找出RNA-seq中表达差异的基因,同时也可以用作read count的计数。

安装

gfold.V1.1.4.tar.gzdownload解压后即可使用

使用

1

2

gfold count -ann hg19Ref.gtf -tag sample1.sam -o sample1.read_cnt

gfold count -ann hg19Ref.gtf -tag sample2.sam -o sample2.read_cnt

  

输出

output文件包含五列:

#说明很详细,这里不再翻译

1

2

3

4

5

6

7

8

9

10

11

12

13

14

GeneSymbol:

For BED file, this is the 4'th column. For GPF file, this is the first column. For GTF format, this corresponds to 'gene_id' if it exists, 'NA' otherwise.

GeneName:

For BED file, this is always 'NA'. For GPF file, this is the 12'th column. For GTF format, this corresponds to 'gene_name' if it exists, 'NA' otherwise.

Read Count:

The number of reads mapped to this gene.

Gene exon length:

The length sum of all the exons of this gene.

RPKM:(#这里需要注意但是双端测序技术还未普及,这里未使用FPKM,况且RPKM和FPKM也不是能很好的代表基因表达水平 )

The expression level of this gene in RPKM.

  

output文件示例:

1

2

3

4

5

6

7

8

9

10

11

head example.read_cnt

ENSG00000000003 TSPAN6  0   4535    0

ENSG00000000005 TNMD    0   1610    0

ENSG00000000419 DPM1    1588    1207    27.4411

ENSG00000000457 SCYL3   1344    6883    4.07267

ENSG00000000460 C1orf112    1334    5967    4.66292

ENSG00000000938 FGR 0   3474    0

ENSG00000000971 CFH 2   8145    0.0051215

ENSG00000001036 FUCA2   1427    2793    10.6564

ENSG00000001084 GCLC    2462    8463    6.06767

ENSG00000001167 NFYA    5123    3811    28.0378

  

此处使用示例bam文件or sam文件和HTSeq的输入文件一致,但是结果出入还是较大的,此处仅作说明,不加以推荐。


Bedtools :再一个count matrix的提取工具

bedtools是一个极其老牌的数据处理软件了,由犹他大学一个实验室开发,我也是看了生信菜鸟团Jimmy的一篇文章才知道也可以用来计数的。

安装

1

2

wget https://github.com/arq5x/bedtools2/releases/download/v2.26.0/bedtools-2.26.0.tar.gz

tar zxvf bedtools-2.26.0.tar.gz

  

使用

1

bedtools multicov -bams 1.bam 2.bam 3.bam 4.bam-bed file.bed > read.count.txt

  

1

2

3

4

5

# 注意,此处的bed文件需要自己处理得到的,需要四列,第一列为chrN,第二列第三列为基因位置,第四列为基因名。类似于:

chr1 0   10000   ivl1

chr1 10000   20000   ivl2

chr1 20000   30000   ivl3

chr1 30000   40000   ivl4

  

输出

标签: linux, RNA-seq

好文要顶 已关注 收藏该文  

RNA-seq分析htseq-count的使用相关推荐

  1. 重磅综述:三万字长文读懂单细胞RNA测序分析的最佳实践教程 (原理、代码和评述)

    原文链接: https://www.embopress.org/doi/10.15252/msb.20188746 主编评语 这篇文章最好的地方不只在于推荐了工具,提供了一套分析流程,更在于详细介绍了 ...

  2. 一文掌握RNA seq,RNA seq课程大汇总

    RNA测序(RNA-seq)在过往十年里逐渐成为全转录组水平分析差异基因表达和研究mRNA差异剪接必不可少的工具.RNA-seq帮助大家对RNA生物学的理解会越来越全面:从转录本在何时何地转录到RNA ...

  3. 超详细解读带你读懂单细胞RNA测序分析的最佳实践教程 (原理、代码和评述)

    Abstract 单细胞RNA-seq使研究者能够以前所未有的分辨率研究基因表达图谱.这一潜力吸引着更多科研工作者应用单细胞分析技术解决研究问题.随着可用的分析工具越来越多,如何组合成一个最新最好的数 ...

  4. 北林oj-算法设计与分析-Simple Count(C++,思路+代码)

    描述 Count how many numbers do not contain 4 or 7 in the N numbers from 1 to N. 输入 Each test case star ...

  5. SQL难点对比分析:COUNT(IF) 和 SUM(IF)的区别

    COUNT(IF) 和 SUM(IF) 的区别和联系: COUNT(IF xxx, 1, 0):无视条件求和,即统计0或者1的数量(因为不论0还是1,都是不为NULL的值) SUM(xxx, 1, 0 ...

  6. 一个R包完成单细胞基因集富集分析 (全代码)

    singleseqgset | 单细胞RNA-Seq基因集富集分析 NGS系列文章包括NGS基础.转录组分析 (Nature重磅综述|关于RNA-seq你想知道的全在这).ChIP-seq分析 (Ch ...

  7. 关于RNA-seq 的那点事Count 数的标准化 (一) RPKM 和FPKM,TPM及C(R)PM

    图片来自网络 我们都知道,在RNA seq 测序的过程中,我们测完序的最终目的是想根据测序的结果,最终分析得到差异基因以及潜在可能的功能分析,那么在进行差异分析以及对表达量进行分析的时候,对基因原始的 ...

  8. 转录组分析丨一套完整的操作流程简单案例

    " 今天分享的学习笔记是一套转录组分析简单流程,适用于初学者入门阅读,从原始测序数据开始,经过质控.序列比对.定量表达.差异表达.功能富集等一系列分析步骤,最终获得基因表达信息,制作出火山图 ...

  9. WGCNA分析,简单全面的最新教程(在线做,但也需要懂原理)

    生信学习的正确姿势(第三版) NGS系列文章包括NGS基础.转录组分析 (Nature重磅综述|关于RNA-seq你想知道的全在这).ChIP-seq分析 (ChIP-seq基本分析流程).单细胞测序 ...

  10. WGCNA分析,简单全面的最新教程(可以在线做了)

    生信学习的正确姿势(第三版) NGS系列文章包括NGS基础.转录组分析 (Nature重磅综述|关于RNA-seq你想知道的全在这).ChIP-seq分析 (ChIP-seq基本分析流程).单细胞测序 ...

最新文章

  1. 0x22.搜索 - 深度优先搜索
  2. 学机器学习有必要懂数学吗?深入浅出机器学习与数学的关系附教程
  3. ORM之SQLAlchemy
  4. 一个功能函数所具备的要素
  5. 成功解决Python3版UnicodeDecodeError: ‘ascii‘ codec can‘t decode byte 0x90 in position 614: ordinal not in
  6. “阿里云 Cloud AIoT Native” 等你一“名”惊人
  7. leetcode 141. Linked List Cycle
  8. 使用Maven Failsafe和TestNG分别运行单元测试和集成测试
  9. python打开软件输入消息_用Python编写一个私人助理程序,为我们起草电子邮件!...
  10. 前端开发常用代码片段(下篇)
  11. 路西法第一季为什么会被打伤_《数码宝贝》第一季,为何只有亚古兽与加布兽会究极进化?...
  12. wordpress 首页调用指定分类文章_怎样给wordpress网站分类目录页面,添加文章列表和分页效果?...
  13. 马云盖茨入选最伟大25名抗疫领袖;周鸿祎卸任360金服;Node.js 14发布 | 极客头条...
  14. LCP 01. 猜数字
  15. MSP430学习小结3-MSP430基本时钟模块
  16. list 集合 分页 三种实现方式,include jdk8 --stream
  17. CodeBlocks(17.12) 代码调试基础方法快捷方式
  18. 微信朋友圈功能测试用例
  19. 设置只允许在微信里打开,做一个服务赞赏评价系统,提升服务质量,让员工更积极参与工作
  20. matlab实现QPSK调制解调

热门文章

  1. 我把自己的java库发布到了maven中央仓库,从此可以像Jackson、Spring的jar一样使用它了
  2. Apache Log4j Server 反序列化漏洞(CVE-2017-5645)
  3. 羲云社区团购微信小程序 活动详细页 (界面及功能设计)
  4. 2021-06-09
  5. 【路由篇】03. 远程设置并访问内网中二层路由的小米路由器
  6. 2017 云+未来峰会——上海站开发者专场即将开讲(30元电话充值卡等你拿)
  7. 4款好用的密码管理器,你值得拥有
  8. U盘格式化后如何恢复数据?
  9. 一缕黑暗中的火光-----------构件图--------------优雅的建模语言
  10. Unity 两张Texture叠加时用到的颜色混合