前言
今天来跟大家分享一款非常优秀的桌面级的RNAseq定量软件——kallisto。该软可以同时用于bulk and single-cell RNA-Seq 以及一些常见的目标捕获的高通量测序数据的定量。与以往常用的STAR等依赖基因组序列的比对软件不同,kallisto采用一种被称作伪比对(pseudoalignment)的方式直接将测序片段直接比对到cDNA序列然后定量。之所以称kallisto为桌面级软件是因为kallisto能够使用个人笔记本在10分钟内完成一套含有30M reads 的双端RNA-seq数据的定量分析,可谓是名副其实的桌面级分析软件,而且速度也是相当的快。这么好的软件当然要分享给大家一起使用了,下面我们就来看看如何使用该软件做定量。
-
bulk-RNAseq的定量
首先来看一下如何使用kallisto来做常规RNAseq的定量,只需两步即可,第一步是构建比对参考基因组(该步骤只需做一次,后面可以直接使用),第二步就是定量(该软件无需单独做一次比对,而是直接将reads比对后定量出结果,在步骤上一气呵成)。下面来看看具体的代码示例:
- 构建比对参考基因组index
你可以自己准备好参考转录组文件来构建定量使用的index,或者你也可以省时省力去kallisto网站上下载已经构建好的index,目前准备好的index有人、小鼠、大鼠等具体见网站kallisto-transcriptome-indices。
#构建index
kallisto index -i gencode.vM24.transcripts gencode.vM24.transcripts.fa
# -i 指定生成的index文件的名字
- bulk-RNAseq定量
构建好index后就可以来定量了,使用方法也是相当的简单,不过需要注意单双端测序的数据使用的命令不同,单端模式需要特定指定fragment的平均长度和标准差,而双端模式软件本身会自动评估这两个指标所以无需提供,具体代码如下:
#单端测序的定量
kallisto quant -i gencode.vM24.transcripts -t 5 --single -l 50 -s 1 -o . SRR9170683.fastq.gz
#双端测序的定量
kallisto quant gencode.vM24.transcripts -t 5 -o . SRR11600559_R1.fastq.gz SRR11600559_R2.fastq.gz
比对完成后会得到三个文件,以h5结尾的文件是定量结果的HDF5格式文件,可以使用kallisto的子命令h5dump将其转化为文本文件;以json为结尾的文件包含运行结果的摘要信息;以tsv结尾的文件是重要的定量文件。目录结构如下:
quant
├── abundance.h5
├── abundance.tsv
└── run_info.json
如果你想保留中间的比对结果如bam文件,可以在上面的定量命令中添加两个参数:--genomebam --gtf ${gtf_file},这样定量完成后会在结果目录多生成一个bam文件。
-
scRNAseq的定量
kallisto支持很多单细胞测序技术如10X genomic(V1-V3)、CELSEQ(V1-V3)、DROPSEQ、INDROPS、SCRUBSEQ、SURECELL。你可以用如下的命令查看该软件支持的所有测序技术:
kallisto bus -l
List of supported single-cell technologies
short name description
---------- -----------
10xv1 10x version 1 chemistry
10xv2 10x version 2 chemistry
10xv3 10x version 3 chemistry
CELSeq CEL-Seq
CELSeq2 CEL-Seq version 2
DropSeq DropSeq
inDropsv1 inDrops version 1 chemistry
inDropsv2 inDrops version 2 chemistry
inDropsv3 inDrops version 3 chemistry
SCRBSeq SCRB-Seq
SureCell SureCell for ddSEQ
用kallisto软件来定量单细胞数据使用的是bus
命令,会生成BUS(Barcode,UMI,Set format)格式比对结果文件,然后借助bustools软件来生成定量文件。具体分为三个步骤,第一步是创建比对用的参考index,第二步是生成BUS文件,第三步定量。具体过程如下:
-
构建index
由于构建index过程与bulk-RNAseq一致,这里就不再重复展示了,代码同上方。 -
生成BUS文件
对于单细胞的数据定量前需要先把数据比对生成一个bus文件,具体代码如下:
#生成bus文件
kallisto bus -i gencode.vM24.transcripts -o SRR9169420_out -x 10xv2 SRR9169420_1.fastq.gz SRR9169420_2.fastq.gz
bus命令结束后会在结果目录生成四个文件,matrix.ec:表达量的矩阵等价类文件;output.bus:原始的BUS(Barcode,UMI,Set format)格式比对结果文件;run_info.json:比对结果的概要信息;transcripts.txt:定量生成的转录本文件;
目录结构如下:
SRR9169420_out
├── matrix.ec
├── output.bus
├── run_info.json
└── transcripts.txt
- scRNAseq定量
bustools在对bus文件做定量的时候实际上包含了三个小的步骤分别为correct、sort、count,首先是对barcode的矫正,然后是排序,最后才是定量。不过bustools可以接受标准输入,所以可以将这三个小步骤可以用管道“|”连接起来,这样就可以直接从bus文件到生成定量结果一气呵成了,具体代码如下:
#一步从bus到定量结果
bustools correct -w 10xv2_whitelist.txt -p SRR9169420_out/output.bus | bustools sort -T bus_out/tmp/ -t 2 -p - | bustools count -o bus_out/genecount -g transcripts_to_genes.txt -e bus_out/matrix.ec -t bus_out/transcripts.txt --genecounts -
需要提醒的是在这里需要提供两个额外的文件:1、10xv2_whitelist.txt(10xv2试剂盒的barcode白名单文件,可以去10x官网下载,或者用bustools的whitelist命令从bus文件中生成一个);2、transcripts_to_genes.txt(转录本到基因的对应关系文件)。定量完成后会生成一系列的结果文件,最重要的表达量文件是cells_x_genes.barcodes.txt、cells_x_genes.genes.txt、cells_x_genes.mtx(类似cellranger的结果)。
快捷方式
其实使用kallisto软件来做定量分析有一个更为快捷方便的方式可选,那就是使用软件kb_python来完成分析,该软件包装了kallisto和bustools两个软件,使用起来更为方便。就拿上面的scRNAseq定量来说,我们看看使用kb_python来分析有多方便,具体代码如下:
#安装kb软件
pip3 install kb-python
#使用kb软件来定量
kb count -i gencode.vM24.transcripts -g transcripts_to_genes.txt -x 10xv2 -o SRR9169420_out --filter bustools -t 5 SRR9169420_1.fastq.gz SRR9169420_2.fastq.gz
从上面的命令可以看出使用kb来做的定量可以省去中间的步骤,并且可以只给出试剂盒型号(这里是10xv2)而不提供barcode白名单文件。是不是省事省心,对于这么贴心的软件应该会心动了吧!
最后
kallisto软件本身的特点就是对设备要求不高且速度快,如果只是做RNAseq的定量不妨试一试。这里主要介绍了定量方面的命令,对于其他的命令,大家可以自己去测试一下。emm,今天就分享到这里吧。
网友评论