生信

kallisto:scRNAseq和bulk-RNAseq的快速

2020-08-10  本文已影响0人  生信云笔记

前言

  今天来跟大家分享一款非常优秀的桌面级的RNAseq定量软件——kallisto。该软可以同时用于bulk and single-cell RNA-Seq 以及一些常见的目标捕获的高通量测序数据的定量。与以往常用的STAR等依赖基因组序列的比对软件不同,kallisto采用一种被称作伪比对(pseudoalignment)的方式直接将测序片段直接比对到cDNA序列然后定量。之所以称kallisto为桌面级软件是因为kallisto能够使用个人笔记本在10分钟内完成一套含有30M reads 的双端RNA-seq数据的定量分析,可谓是名副其实的桌面级分析软件,而且速度也是相当的快。这么好的软件当然要分享给大家一起使用了,下面我们就来看看如何使用该软件做定量。

  1. 构建比对参考基因组index
    你可以自己准备好参考转录组文件来构建定量使用的index,或者你也可以省时省力去kallisto网站上下载已经构建好的index,目前准备好的index有人、小鼠、大鼠等具体见网站kallisto-transcriptome-indices
#构建index
kallisto index -i gencode.vM24.transcripts gencode.vM24.transcripts.fa
# -i 指定生成的index文件的名字
  1. 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文件。

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文件,第三步定量。具体过程如下:

  1. 构建index
    由于构建index过程与bulk-RNAseq一致,这里就不再重复展示了,代码同上方。

  2. 生成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
  1. 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,今天就分享到这里吧。

上一篇下一篇

猜你喜欢

热点阅读