生物信息學/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")