kallisto:scRNAseq和bulk-RNAseq的快速定量軟件

前言

??今天來跟大家分享一款非常優(yōu)秀的桌面級(jí)的RNAseq定量軟件——kallisto。該軟可以同時(shí)用于bulk and single-cell RNA-Seq 以及一些常見的目標(biāo)捕獲的高通量測序數(shù)據(jù)的定量。與以往常用的STAR等依賴基因組序列的比對(duì)軟件不同,kallisto采用一種被稱作偽比對(duì)(pseudoalignment)的方式直接將測序片段直接比對(duì)到cDNA序列然后定量。之所以稱kallisto為桌面級(jí)軟件是因?yàn)閗allisto能夠使用個(gè)人筆記本在10分鐘內(nèi)完成一套含有30M reads 的雙端RNA-seq數(shù)據(jù)的定量分析,可謂是名副其實(shí)的桌面級(jí)分析軟件,而且速度也是相當(dāng)?shù)目?。這么好的軟件當(dāng)然要分享給大家一起使用了,下面我們就來看看如何使用該軟件做定量。

  • bulk-RNAseq的定量
    ??首先來看一下如何使用kallisto來做常規(guī)RNAseq的定量,只需兩步即可,第一步是構(gòu)建比對(duì)參考基因組(該步驟只需做一次,后面可以直接使用),第二步就是定量(該軟件無需單獨(dú)做一次比對(duì),而是直接將reads比對(duì)后定量出結(jié)果,在步驟上一氣呵成)。下面來看看具體的代碼示例:
  1. 構(gòu)建比對(duì)參考基因組index
    你可以自己準(zhǔn)備好參考轉(zhuǎn)錄組文件來構(gòu)建定量使用的index,或者你也可以省時(shí)省力去kallisto網(wǎng)站上下載已經(jīng)構(gòu)建好的index,目前準(zhǔn)備好的index有人、小鼠、大鼠等具體見網(wǎng)站kallisto-transcriptome-indices。
#構(gòu)建index
kallisto index -i gencode.vM24.transcripts gencode.vM24.transcripts.fa
# -i 指定生成的index文件的名字
  1. bulk-RNAseq定量
    構(gòu)建好index后就可以來定量了,使用方法也是相當(dāng)?shù)暮唵?,不過需要注意單雙端測序的數(shù)據(jù)使用的命令不同,單端模式需要特定指定fragment的平均長度和標(biāo)準(zhǔn)差,而雙端模式軟件本身會(huì)自動(dòng)評(píng)估這兩個(gè)指標(biāo)所以無需提供,具體代碼如下:
#單端測序的定量
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

比對(duì)完成后會(huì)得到三個(gè)文件,以h5結(jié)尾的文件是定量結(jié)果的HDF5格式文件,可以使用kallisto的子命令h5dump將其轉(zhuǎn)化為文本文件;以json為結(jié)尾的文件包含運(yùn)行結(jié)果的摘要信息;以tsv結(jié)尾的文件是重要的定量文件。目錄結(jié)構(gòu)如下:

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

如果你想保留中間的比對(duì)結(jié)果如bam文件,可以在上面的定量命令中添加兩個(gè)參數(shù):--genomebam --gtf ${gtf_file},這樣定量完成后會(huì)在結(jié)果目錄多生成一個(gè)bam文件。

  • scRNAseq的定量
    kallisto支持很多單細(xì)胞測序技術(shù)如10X genomic(V1-V3)、CELSEQ(V1-V3)、DROPSEQ、INDROPS、SCRUBSEQ、SURECELL。你可以用如下的命令查看該軟件支持的所有測序技術(shù):
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軟件來定量單細(xì)胞數(shù)據(jù)使用的是bus命令,會(huì)生成BUS(Barcode,UMI,Set format)格式比對(duì)結(jié)果文件,然后借助bustools軟件來生成定量文件。具體分為三個(gè)步驟,第一步是創(chuàng)建比對(duì)用的參考index,第二步是生成BUS文件,第三步定量。具體過程如下:

  1. 構(gòu)建index
    由于構(gòu)建index過程與bulk-RNAseq一致,這里就不再重復(fù)展示了,代碼同上方。

  2. 生成BUS文件
    對(duì)于單細(xì)胞的數(shù)據(jù)定量前需要先把數(shù)據(jù)比對(duì)生成一個(gè)bus文件,具體代碼如下:

#生成bus文件
kallisto bus -i gencode.vM24.transcripts -o SRR9169420_out -x 10xv2 SRR9169420_1.fastq.gz SRR9169420_2.fastq.gz

bus命令結(jié)束后會(huì)在結(jié)果目錄生成四個(gè)文件,matrix.ec:表達(dá)量的矩陣等價(jià)類文件;output.bus:原始的BUS(Barcode,UMI,Set format)格式比對(duì)結(jié)果文件;run_info.json:比對(duì)結(jié)果的概要信息;transcripts.txt:定量生成的轉(zhuǎn)錄本文件;
目錄結(jié)構(gòu)如下:

SRR9169420_out
├── matrix.ec
├── output.bus
├── run_info.json
└── transcripts.txt
  1. scRNAseq定量
    bustools在對(duì)bus文件做定量的時(shí)候?qū)嶋H上包含了三個(gè)小的步驟分別為correct、sort、count,首先是對(duì)barcode的矯正,然后是排序,最后才是定量。不過bustools可以接受標(biāo)準(zhǔn)輸入,所以可以將這三個(gè)小步驟可以用管道“|”連接起來,這樣就可以直接從bus文件到生成定量結(jié)果一氣呵成了,具體代碼如下:
#一步從bus到定量結(jié)果
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 -

需要提醒的是在這里需要提供兩個(gè)額外的文件:1、10xv2_whitelist.txt(10xv2試劑盒的barcode白名單文件,可以去10x官網(wǎng)下載,或者用bustools的whitelist命令從bus文件中生成一個(gè));2、transcripts_to_genes.txt(轉(zhuǎn)錄本到基因的對(duì)應(yīng)關(guān)系文件)。定量完成后會(huì)生成一系列的結(jié)果文件,最重要的表達(dá)量文件是cells_x_genes.barcodes.txt、cells_x_genes.genes.txt、cells_x_genes.mtx(類似cellranger的結(jié)果)。

快捷方式

其實(shí)使用kallisto軟件來做定量分析有一個(gè)更為快捷方便的方式可選,那就是使用軟件kb_python來完成分析,該軟件包裝了kallisto和bustools兩個(gè)軟件,使用起來更為方便。就拿上面的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來做的定量可以省去中間的步驟,并且可以只給出試劑盒型號(hào)(這里是10xv2)而不提供barcode白名單文件。是不是省事省心,對(duì)于這么貼心的軟件應(yīng)該會(huì)心動(dòng)了吧!

最后

??kallisto軟件本身的特點(diǎn)就是對(duì)設(shè)備要求不高且速度快,如果只是做RNAseq的定量不妨試一試。這里主要介紹了定量方面的命令,對(duì)于其他的命令,大家可以自己去測試一下。emm,今天就分享到這里吧。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容