欢迎关注”生信修炼手册”!

kallisto 是2016年发布的一款无须比对的转录本定量工具,采用了名为pseudo-alignment的算法。传统的定量算法是根据reads的比对位置来确认其属于哪个转录本或者基因,而pseudo-alignment 算法不关系reads具体的比对位置,而是通过reads的kmer特征来判断其属于哪一条转录本,示意图如下

kallisto:alignment-free转录本定量工具_h5

首先将每个转录本序列划分为kmer, 利用所有转录本的kmer序列构建de Bgujin Graph, 简称T-DBG,在这个图中,每个节点是一个kmer, 每条路径代表一个转录本, 由于转录本序列的冗余,实际上每个kmer对应多条路径,也就是对应多个转录本; 然后将测序的reads也划分为kmer, 并将其映射到T-DBG中。

最终定量时,将该reads的所有kmer对应的转录本取交集,就能够分析出reads可能属于哪些转录本序列。

软件的官网如下

​https://pachterlab.github.io/kallisto/download.html​

官网有编译好的可执行文件,下载解压即可。代码如下

wget https://github.com/pachterlab/kallisto/releases/download/v0.44.0/kallisto_linux-v0.44.0.tar.gz
tar xzvf kallisto_linux-v0.44.0.tar.gz

解压之后,在文件夹下可以看到名为​​kallisto​​的可执行文件。从算法也可以看到,软件的运行需要两步,第一步对转录本的序列划分kmer, 构建T-DBG, 也称之为建索引;第二步对reads 定量。

1. 对转录本序列建立索引

kallisto支持读取gzip压缩的转录本序列,用法如下

kallisto index -k 31 -i hg19.idx  hg19.refMrna.fa

只需要提供转录本的fasta格式的序列即可。​​-k​​​参数指定kmer的长度,​​-i​​参数指定输出的索引的名字,注意kallisto建立的索引为一个文件。

2. 定量

kallisto 支持单端和双端数据的定量,双端数据用法如下

kallisto quant \
-i hg19.idx \
-o out_dir \
-t 20 \
R1.fastq.gz R2.fastq.gz

​-i​​​参数指定转录本的索引文件,​​-o​​​参数指定输出结果的目录,​​-t​​​参数指定线程数,kallisto支持gzip压缩的序列文件。
单端数据用法如下

kallisto quant \
-i hg19.idx \
-o output \
--single \
-l 180 \
-s 20 \
-t 20 \
reads.fastq.gz

对于单端数据而言,必须指定fragment长度的均值和方差,分别对应​​-l​​​和​​-s​​​参数。
在输出目录,会生成以下3个文件

├── abundance.h5
├── abundance.tsv
└── run_info.json

run_info.json 文件为JSON格式,保存了运行的命令和参数。

前缀为​​abundance​​​ 的文件,保存了转录本的定量信息。其中​​h5​​​为HDF5格式的文件,当转录本数量较多时,相比纯文本,这种格式的文件大小会小很多;​​tsv​​为纯文本的文件,内容如下

target_id

length

eff_length

est_counts

tpm

NR_103451

865

664.449

9

0.493026

NM_001243523

577

376.636

31

2.99591

NR_038931

2432

2231.4

36.9964

0.603491

对于HDF5的文件,可以采用如下命令转换为tsv格式的文件

kallisto h5dump  -o out_dir  abundance.h5

​-o​​​参数指定输出结果的目录,最终生成的文件名称为​​abundance.tsv​​。

·end·

—如果喜欢,快分享给你的朋友们吧—


扫描关注微信号,更多精彩内容等着你!

kallisto:alignment-free转录本定量工具_h5_02