生物信息学/kallisto
使用Kallisto进行alignment-free的定量
[编辑]这款软件是2016年发表在NBT上的一款RNA-seq的计数软件,文章标题为《Near-optimal probabilistic RNA-seq quantification》(http://dx.doi.org/10.1038/nbt.3519)
这款软件对比TopHat+cufflinks,Hisat+HTseq等流程组合,就时间上要快很多。
而该软件的核心思想是省略了将原始数据fastq文件比对到擦靠基因组上,然后再计数这一过程,取而代之的是直接将fq文件的reads比对参考转录组上并且直接计数。
Kallisto相关链接
[编辑]Kallisto的安装
[编辑]Mac系统
[编辑]ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew install kallisto
bioconda安装
[编辑]conda install kallisto
Mac OS X, NetBSD, RHEL/CentOS 和 SmartOS
[编辑]pkgin install kallisto
Kallisto的使用
[编辑]kallisto的9个子命令
[编辑]用法: kallisto <CMD> [arguments] ..
Where <CMD> can be one of:
index 构建kallisto的索引
quant 运行定量程序
bus 生成用于单细胞数据的BUS文件 files for single-cell data
pseudo 运行伪比对步骤
merge 合并多次运行的结果
h5dump 将HDF5格式的结果转换为普通文本文件
inspect 检查并给出索引的信息
version 打印版本信息
cite 打印参考文献信息
kallisto index:从目标序列的 FASTA 格式文件构建索引
[编辑]构建kallisto索引
用法: kallisto index [参数] FASTA文件
必须参数:
-i, --index=STRING 创建的kallisto索引的文件名
Optional argument:
-k, --kmer-size=INT k-mer (odd) 长度 (默认: 31, 最大值: 31)
--make-unique 去重重复的名称
提供的 Fasta 文件可以是纯文本格式或 gzip 格式。 从 Ensembl 参考转录组构建的预构建索引可以从 kallisto 转录组索引站点下载。
kallisto quant:进行定量
[编辑]计算reads和定量丰度
用法: kallisto quant [参数] FASTQ文件
必须参数:
-i, --index=STRING 用于定量的的kallisto索引的文件名
-o, --output-dir=STRING 输出结果的文件夹名
可选参数:
--bias 执行序列偏好性校正
-b, --bootstrap-samples=INT bootstrap抽样的次数 (default: 0)
--seed=INT bootstrap抽样的种子数 (default: 42)
--plaintext 输出文本文件,不输出HDF5格式
--fusion 搜索Pizzly融合
--single 对single-end reads定量
--single-overhang 包括预测未观察到的片段的其余部分位于转录本之外的read
--fr-stranded 链特异性reads, first read forward
--rf-stranded 链特异性reads, first read reverse
-l, --fragment-length=DOUBLE 估算fragment的平均长度
-s, --sd=DOUBLE 估算fragment长度的标准差
(default: -l, -s 该值通过paired-end数据计算,使用--single时,需要该值)
-t, --threads=INT 使用的线程数 (default: 1)
--pseudobam 保存转录组的伪比对结果到BAM文件
--genomebam 保存伪比对结果为排序后的BAM文件
-g, --gtf GTF文件格式的转录组信息 (需要--genomebam)
-c, --chromosomes 制表符分隔的染色体名称和长度 (推荐和--genomebam一起使用)
kallisto 可以处理单端或双端读取。 默认的运行模式是双端的,需要偶数个 FASTQ 文件以成对的形式表示,例如
kallisto quant -i index -o output pairA_1.fastq pairA_2.fastq pairB_1.fastq pairB_2.fastq
对于单端模式,提供标志以及选项,并列出任意数量的 FASTQ 文件,例如--single-l-s
kallisto quant -i index -o output --single -l 200 -s 20 file1.fastq.gz file2.fastq.gz file3.fastq.gz
FASTQ 文件可以是纯文本格式或 gzip 格式。
重要提示:一次只向 kallisto 提供一个样品。多个 FASTQ(对)选项适用于拥有跨越多个 FASTQ 文件的样本的用户。
在单端读取的情况下,必须使用 -l 选项来指定平均片段长度。典型的 Illumina 文库产生的片段长度范围为 180–200 bp,但最好通过使用安捷伦生物分析仪等仪器进行文库定量来确定。对于双端读取,平均片段长度可以直接从读取中估计,如果不使用 -l,程序将这样做(这是首选的运行模式)。对于由 3' 端测序产生的读数,该选项不会丢弃预期片段大小超出转录本起始位置的读数。--single-overhang
使用 -b 指定引导程序样本的数量。请注意,由于引导程序样本数量较多时可能会产生大量数据,因此 kallisto 以 HDF5 格式输出引导程序结果。之后可以使用该命令将此输出转换为纯文本,但最方便的是使用 sleuth.h5dump 分析引导程序结果。
kallisto quant 默认生成三个输出文件:
- abundances.h5 是一个 HDF5 二进制文件,包含运行信息、丰度估计、引导程序估计和转录本长度信息长度。这个文件可以被sleuth读入
- abundances.tsv 是丰度估计的纯文本文件。它不包含引导估计。请使用模式输出明文丰度估计。或者,可用于将 HDF5 文件输出为纯文本。第一行包含每列的标题,包括估计计数、TPM、有效长度。--plaintextkallisto h5dump
- run_info.json 是一个包含运行信息的 json 文件
可选参数
- --bias 学习序列特定偏差模型的参数并相应地纠正丰度。
- -t, --threads 指定用于伪对齐和运行引导程序的线程数。默认值为 1 个线程,指定多于引导程序的数量或机器上的内核数量没有额外影响。
- --fr-stranded 以链特定模式运行 kallisto,仅处理对中的第一个读取与转录本的正向链进行伪对齐的片段。如果一个片段与多个转录本伪对齐,则只保留与第一次读取一致的转录本。
- --rf-stranded 与第一次读取映射到转录本的反向链相同。--fr-stranded
- --fusion 进行正常的量化,但另外寻找不伪对齐的读取,因为它们可能来自融合基因。所有输出都写入输出文件夹中的文件.fusion.txt
Pseudobam
--pseudobam 将所有伪对齐输出到输出目录中的文件中。此 BAM 文件包含 BAM 格式的伪对齐,按读取排序,以便读取的每个伪对齐在 BAM 文件中相邻。pseudoalignments.bam
SAM 输出的详细说明在此处。
GenomeBam
--genomebam 构建与转录组的假比对,但将转录本比对投射到基因组坐标上,从而导致拆分读取比对。当在 GTF 文件中提供选项时,必须随选项一起提供。 GTF 文件可以是纯文本或 gzipped,将转录本转换为基因组坐标。我们建议从同一数据源下载 cdna FASTA 文件和 GTF 文件。该选项可以提供基因组染色体的长度,该选项不是必需的,但会提供更一致的 BAM 标头,某些程序可能需要此用于下游分析。 kallisto 不需要基因组序列进行假比对,但下游工具如基因组浏览器可能需要它。--genomebam--gtf--chromosomes
kallisto bus:适用于单细胞 RNA-Seq 数据集的原始 FASTQ 文件
[编辑]
对于每次读取,单元条码和 UMI 信息以及由伪对齐产生的等价类都存储在输出目录目录中的 BUS 文件中,并存储有关等价类和转录名称的信息,用于下游处理。 output.busmatrix.ectranscripts.txt
生成单细胞测序的BUS文件
用法: kallisto bus [参数] FASTQ文件
必须参数:
-i, --index=STRING 用于pseudoalignment的kallisto索引文件
-o, --output-dir=STRING 输出文件夹名
-x, --technology=STRING 使用的单细胞测序方法
可选参数:
-l, --list 列出支持的单细胞计数
-t, --threads=INT 使用的线程数 (default: 1)
要进一步处理文件,请使用 bustools; 下游处理的示例可以在 bustools repository.output.bus 提供的数据集特定笔记本中看到 运行给出了当前支持的单细胞技术列表kallisto bus -l
支持的单细胞测序技术
简称 描述
---------- -----------
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
inDrops inDrops
SCRBSeq SCRB-Seq
SureCell SureCell for ddSEQ
指定输入时,短名称可用于指示技术。
此外,将接受一个字符串,指定一种新技术,格式为 where 每个 , 并且是由逗号分隔的整数三元组,表示文件索引、所用序列的开始和停止。 例如,指定我们将使用的技术。 第一部分表示它在第 0 个文件中(也称为第一个文件),条码从第 0 个 bp 开始到第 16 个 bp 结束(即 16bp 条码) , UMI 类似地在同一个文件中,紧跟在位置 16-26(10bp UMI)的条形码之后,最后序列在一个单独的文件中,从 0 开始到 0 结束(在这种情况下,停在 0 意味着那里 没有限制,我们使用整个序列)。kallisto busbc:umi:seqbcumiseq10xV20,0,16:0,16,26:1,0,0bc0,0,16
kallisto pseudo:仅运行伪比对步骤,用于单细胞 RNA-seq
[编辑]计算读数的等价类并量化丰度
用法: kallisto pseudo [参数] FASTQ文件
必须参数:
-i, --index=STRING 用于pseudoalignment的kallisto索引文件名
-o, --output-dir=STRING 输出文件夹
可选参数:
-u --umi 第一个pair中的UMI文件
-b --batch=FILE 需要处理的文件
--single single-end reads的定量
-l, --fragment-length=DOUBLE 估算的fragment的平均长度
-s, --sd=DOUBLE 估算的fragment长度的方差(default: -l, -s 使用双末端数据计算,使用--single需要提供该值)
-t, --threads=INT 用于计算的线程数 (default: 1)
命令的形式和参数的含义与 quant 命令相同。 但是,pseudo 不运行 EM 算法来量化丰度。 此外,伪命令有一个选项可以在批处理文件中指定许多单元格,例如
kallisto pseudo -i index -o output -b batch.txt
它将读取有关文件中每个细胞的信息并同时处理所有细胞 batch.txt 批处理文件的格式是
#id file1 file 2
cell1 cell1_1.fastq.gz cell1_1.fastq.gz
cell2 cell2_1.fastq.gz cell2_1.fastq.gz
cell3 cell3_1.fastq.gz cell3_1.fastq.gz
...
其中第一列是单元格的 id,接下来的两个字段是包含配对末端读数的相应文件。 任何以开头的行都将被忽略。 在单端读取的情况下,用 指定,每个单元只能指定一个文件。#--single
当指定选项时,批处理文件的格式为--umi
#id umi-file file-1
cell1 cell_1.umi cell_1.fastq.gz
cell2 cell_2.umi cell_2.fastq.gz
cell3 cell_3.umi cell_3.fastq.gz
...
其中 umi-file 是表单的文本文件
TTACACTGAC
CCACTCTATG
CAGGAAATCG
...
列出每个读取的唯一分子标识符 (UMI)。 在 fastq 文件中 UMI 和读取的顺序必须匹配。 即使 UMI 数据是单端的,我们也不需要或使用片段长度。
当在 UMI 模式下运行时,kallisto 将使用序列读取来伪对齐并找到一个等价类,但不是计算每个等价类的读取数量,kallisto 计算与每个等价类伪对齐的不同 UMI 的数量。
kallisto h5dump:将 HDF5 格式的结果转换为纯文本
[编辑]用法: kallisto h5dump [参数] abundance.h5
必须参数:
-o, --output-dir=STRING 输出文件夹
kallisto merge:可以合并由执行的多个批次的结果,输出为一个样本
[编辑]计算读数的等价类并量化丰度
用法: kallisto merge [参数] ouput-directories
需要参数:
-i, --index=STRING 用于pseudoalignment的kallisto索引文件
-o, --output-dir=STRING 输出文件夹
kallisto inspect
[编辑]kallisto inspect 可以通过两种方式输出索引中的 Target de Bruijn Graph,作为文件格式,或者它可以以可以使用 IGV 可视化的格式映射图和等价类的重叠群。
Usage: kallisto inspect INDEX索引文件
可选参数:
-G, --gfa=STRING T-DBG的GFA的输出文件
-g, --gtf=STRING GTF文件名
-b, --bed=STRING BED输出文件名 (default: index + ".bed")