RNA-seq: Kallisto+Sleuth(1)

本文我们来简单介绍一下非常快捷好用的一个RNAseq工具——Kallisto。Kallisto被我推荐的原因是其速度非常快,在我的Mac Pro就可以运行使用,而且其结果也比较准,使用起来还十分简单。

RNA-seq分析通常有以下几种流程。
第一种是参考基因组,即先通过HISAR、STAR等软件把序列比对到参考基因组然后再进行转录本鉴定及定量。根据有无GFF注释可以分为两种,如果没有GFF注释鉴定完之后再依据同源比对结果进行功能注释。
第二种是今天要讲的——参考转录组方法,直接将序列比对到转录组,然后进行转录本鉴定及定量。显然,该方法的优势就是快捷,而缺点也很明显,因为只和参考转录组进行非剪接比对所以无法鉴定出新的转录本或者是新的非编码RNA包括lncRNA等。
第三种是无参考基因组,有时候我们做的物种比较小众,所以还没有参考基因组,所以只能先利用De Bruijin的方法对序列进行从头拼接,然后再进行比对、定量,确定表达量。

RNA-seq: Kallisto+Sleuth(1)_第1张图片
常见RNA-seq分析流程

因此,根据你的数据特点和你的需求可以选择合适的方法。实际上,很多实验室做RNA-seq可能暂时并不关注新的转录本,只想看一看不同条件下实验组和对照组有哪些基因的表达量发生了变化,因此这时我们就可以选择第二种方法,直接和转录组进行非剪接比对。今天我们就来讲第二类方法中很优秀的一个工具Kallisto。

Kallisto于2016年发表在Nature biotechnology,截至目前引用次数超过1300次。

RNA-seq: Kallisto+Sleuth(1)_第2张图片
Kallisto

Kallisto的安装

#如果你的电脑是mac可以用以下的方式进行安装
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew install kallisto
#如果你已经安装了conda,可以用conda安装:
conda install kallisto
#kallisto can also be installed on FreeBSD via the FreeBSD ports system using
pkg install kallisto
#**kallisto** binaries for Mac OS X, NetBSD, RHEL/CentOS and SmartOS can be installed on most POSIX platforms using pkgsrc:
pkgin install kallisto

安装完成后,输入kallisto:

RNA-seq: Kallisto+Sleuth(1)_第3张图片

Kallisto的使用

在正式开始之前我们需要准备以下数据
1、目标木中的参考转录组文件:cDNA文件
2、待分析的测序文件

本文我们以人的样本为例下载相关的文件
准备工作
cDNA文件的下载:hg19(GRCh37)/hg38(GRCh38)

RNA-seq: Kallisto+Sleuth(1)_第4张图片
GRCh38
RNA-seq: Kallisto+Sleuth(1)_第5张图片
GRCh37

根据你需要的版本进行下载cDNA文件:
GRCh38:
ftp://ftp.ensembl.org/pub/release-96/fasta/homo_sapiens/cdna/
GRCh37:
ftp://ftp.ensembl.org/pub/grch37/current/fasta/homo_sapiens/cdna/

cDNA sequences for Ensembl or ab initio predicted genes,所以我们下载cdna.all.fa.gz的文件

这里,我下载的是GRCh37的版本。

第一步建立索引
这里要注意一下参数-i并不是指输入文件,此处的i代表index,后面接的是你输出的index名字。以后如果还是该物种,你可以直接使用本次建立的index,不用重复该步骤。

kallisto index ./Homo_sapiens.GRCh37.75.cdna.all.fa.gz -i Homo_sapiens.GRCh37.75.cdna.all.index

第二步转录本的鉴定及定量

#双端测序
kallisto quant -i ./Homo_sapiens.GRCh37.75.cdna.all.index -o ./Result -t 4 -b 100 PATH/Sample_R1.fq.gz PATH/Sample_R2.fq.gz 
#查看kallisto quant帮助
kallisto quant -h
Usage: kallisto quant [arguments] FASTQ-files

Required arguments:
-i, --index=STRING            Filename for the kallisto index to be used for
                              quantification
-o, --output-dir=STRING       Directory to write output to

Optional arguments:
    --bias                    Perform sequence based bias correction
-b, --bootstrap-samples=INT   Number of bootstrap samples (default: 0)
    --seed=INT                Seed for the bootstrap sampling (default: 42)
    --plaintext               Output plaintext instead of HDF5
    --fusion                  Search for fusions for Pizzly
    --single                  Quantify single-end reads
    --fr-stranded             Strand specific reads, first read forward
    --rf-stranded             Strand specific reads, first read reverse
-l, --fragment-length=DOUBLE  Estimated average fragment length
-s, --sd=DOUBLE               Estimated standard deviation of fragment length
                              (default: -l, -s values are estimated from paired
                               end data, but are required when using --single)
-t, --threads=INT             Number of threads to use (default: 1)
    --pseudobam               Output pseudoalignments in SAM format to stdout

如果是单端测序还需要给-l参数,后面跟估计的平均片段长度,-s参数后面跟估计的片段长度标准差。这两个参数可以使用其他软件如Agilent Bioanalyzer等确定。

#单端测序
kallisto quant -i index -o output --single -l length -s SD file.fq.gz

Kallisto的结果

然后就会生成三个文件:abundances.h5,abudances.tsv,run_info.json
abundance.h5
HDF5二进制格式的文件,包含了运行日志信息、表达丰度估计值、bootstrap估计和转录本长度信息。该文件可以直接用sleuth读取处理,也可以使用kallisto h5dump命令将其转变为纯文本的tsv格式文件
abundance.tsv
包含有表头的纯本文tsv格式文件,表头是:target_id, length, eff_length, est_counts, tpm
run_info.json
一个json格式的日志文件

然后我们可以看各个转录本的TPM即其表达量。TPM具体的计算方式及其与RPKM、FPKM的差异可以看之前的日志RPM(CPM)/RPKM/FPKM/TPM

下一节我们将会讲解如何用R包Sleuth对转录本进行差异表达分析等。

你可能感兴趣的:(RNA-seq: Kallisto+Sleuth(1))