scRNA-seq数据处理—Kallisto
书籍翻译
好的书籍是人类进步的阶梯,但有些人却找不到优秀的阶梯,为此我们开设了书籍翻译这个栏目,作为你学习之路的指路明灯;分享国内外优秀书籍,弘扬分享精神,做一个知识的传播者。
希望大家能有所收获!
正
文
处理原始scRNA-seq数据
3.6
Kallisto和伪比对
STAR是reads比对器,而Kallisto是伪比对器(Bray等人,2016)。比对器和伪比对器之间的主要区别在于,比对器将reads映射到参考,而伪比对器将k-mers映射到参考。
3.6.1 什么是K-mer?
k-mers是从reads得到的长度为k的序列。例如,假设我们读取序列为ATCCCGGGTTAT,我们想从中制作7-mer。为此,我们将通过计算读数的前七个碱基找到第一个7-mer。移动一个碱基后,我们会找到第二个7-mer,然后计算接下来的七个碱基。图2显示了可以从我们的阅读中得到的所有7-mers:
3.6.2 为什么要比对k-mers而不是reads?
主要有两个原因:
伪比对器使用k-mers和计算技巧来比传统的比对器更快地进行伪比对。如果您对如何实现这一点感兴趣,请参阅(Bray et al。,2017)了解详情。
在某些情况下,伪比对器可能比传统的比对器更好地应对测序错误。例如,假设在上面的read的第一个碱基中存在测序错误,并且A实际上是T,将影响伪比对器比对第一个7-mers而不是剩下的7-mers。
3.6.3 Kallisto的伪模式
Kallisto有一个专门设计的模式,用于从单细胞RNA-seq实验中进行伪比对reads。与STAR不同,Kallisto与参考转录组而不是参考基因组比对。这意味着Kallisto将reads比对到剪接isoform而不是基因。由于以下原因,对单细胞RNA-seq,将read比对到isoform而不是基因是有挑战性的:
单细胞RNA-seq的覆盖率低于bulk RNA-seq,这意味着可以从读取中获得的信息总量减少。
许多单细胞RNA-seq方案具有3'覆盖偏向,这意味着如果两种isoform仅在它们的5'末端不同,则可能无法确定哪种isoform来自read。
一些单细胞RNA-seq protocol具有较短的reads长度,这也意味着不可能计算出来哪种isoform来自read。
Kallisto的伪模式采用略微不同的伪比对方法。Kallisto不是与isoform比对,而是与等价类(equivalence classes)比对。本质上,这意味着如果read比对到多个isoform,Kallisto将read记录为比对到一个包含所有此read比对到的isoform的等价类。不是在下游分析中使用基因或isoform表达估计,例如聚类,而是可以使用等价类计数。下图显示了一个有助于解释这一点的图表。
今天我们将只对一个细胞执行伪比对,但Kallisto还能够同时伪对齐多个细胞并使用来自UMI的信息。有关详细信息,请参阅https://pachterlab.github.io/kallisto/manual。
对于STAR,您需要在伪比对步骤之前为Kallisto生成索引。
任务6:使用以下命令生成Kallisto索引。使用Kallisto手册(https://pachterlab.github.io/kallisto/manual)找出此命令中的选项。
mkdir indices/Kallisto
kallisto index -i indices/Kallisto/transcripts.idx Share/2000_reference.transcripts.fa
任务7:使用Kallisto手册确定用于执行伪比对的命令。你认为你知道答案,检查它是否与下一节中的解决方案匹配并执行伪比对。
3.6.4 Kallisto伪比对的解决方案
使用以下命令执行伪比对
mkdir results/Kallisto
kallisto pseudo -i indices/Kallisto/transcripts.idx -o results/Kallisto -b batch.txt
有关创建batch.txt的说明,请参阅https://pachterlab.github.io/kallisto/manual,如果遇到问题,请咨询教师。
3.6.5 了解Kallisto伪比对的输出
上面的命令应该产生4个文件 - matrix.cells,matrix.ec,matrix.tsv和run_info.json。
matrix.cells包含一个细胞ID列表。由于我们只使用了一个细胞,因此该文件应该只包含“ERR522959”
matrix.ec包含有关所用等价类的信息。每行中的第一个数字是等价类ID。第二个数字对应于该等价类中的转录本ID。例如,“10 1,2,3”意味着等价类10包含转录本ID 1,2和3。ID号对应于转录本在reference.transcripts.fa中出现的顺序。这里零索引被使用,意味着转录本ID 1,2和3对应于2000_reference.transcripts.fa中的第二,第三和第四转录本。
matrix.tsv包含有关每个等价类的每个细胞比对中的reads数量的信息。第一个数字是等价类ID,如matrix.ec中所定义。第二个数字是细胞ID,其中细胞ID对应于细胞在matrix.cells文件中的顺序。第三个数字是属于该等价类的reads数量。例如,“5 1 3”表示3个reads从细胞1比对到等价类5。注意,这里用了零索引,因此单元格1对应于matrix.cells的第二行。
run_info.json包含有关Kallisto如何执行的信息,可以忽略。