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