处理过程
barcode/UMI提取
根据read1的结构对barcode/UMI进行提取和处理,对read1和read2进行过滤,输出新的fastq文件。
结构设计和描述
barcode和UMI描述 以字母和数字描述Read1的基本结构,字母描述碱基含义,数字描述碱基长度。
B: barcode部分碱基
U: UMI部分碱基
X: 其他任意碱基,用于占位
免疫分析产品的Read1结构为B17U12:
数据流程
Barcode识别和矫正
根据结构设计,确定barcode所在序列位置,取出相应序列。当取出的barcode序列在白名单中时,我们认为它是有效barcode,计入有效barcode的reads数量;当barcode不在白名单中时,我们认为它是无效barcode。
测序过程中,有一定几率发生测序错误。在提供有白名单的情况下,SeekSoulTools可以尝试barcode矫正。在启用矫正时,当无效barcode一个碱基错配(一个hamming distance)的序列存在于白名单中:
只有唯一一个序列存在于白名单中:我们将这个无效barcode矫正为白名单中barcode;
有多个序列存在于白名单中:我们将这个无效barcode改为read支持数量最多的序列;
经过上述处理后,数据指标包括:
total: 总共的reads数目
valid: 不需要矫正和矫正成功的reads数目
Q30 Bases in Barcode: barcode序列的q30比例
Q30 Bases in UMI: UMI序列的q30比例
Q30 Bases in R2 Read: reads2中q30比例
VDJ基因比例统计
根据ref构建STAR索引,并进行reads的比对,根据bam文件统计TRA、TRB、TRD或者IGK、IGL、IGH数目以及对应的比例
序列组装
1、利用trust4的fastq-extractor模块提取出可能包含TCR/BCR序列的reads,然后对每个barcode进行downsample,超过80000条reads的细胞只取前80000条reads。
2、按照barcode,过滤掉支持reads小于n50的umi,然后用umitools对umi进行矫正。
3、基于上述reads用trust4进行组装。
trust4详细说明请参考trust4
VDJ注释
利用trust4的annotator进行VDJC基因及CDR3位置的注释。对于一个细胞内一条链有多种注释的情况,选取umi数值最高的contig作为primary_chain。umi数值是根据每个contig的reads信息统计得到的,在计数之前进行一步过滤:当同一个umi被用于多个contig组装时,对这些contig按照reads降序排列,reads数目第二高的contig/最高的contig比例小于0.15时,该umi只被最高contig计数,其他不进行该umi的计数。
clonotype计算
1、挑选符合chain要求的contig; 过滤掉1-umi/reads小于0.94的contig; 过滤掉contig支持的umi之和小于3的细胞。
2、如果有提供5’matrix信息,细胞barcode取交集。
3、利用dandelion基于CDR3 氨基酸序列相似性判定克隆,相似性阈值:BCR设定85%,TCR设定100%。详细条件可参考:sc-dandelion
4、对于只包含单链的克隆型,找到与之共享VJ基因以及CDR3氨基酸序列的其他所有contig,以这些contig umi的n50的1%作为阈值,如果该单链umi小于这个阈值,则丢弃。
5、对于保留下来的单链克隆型,找到与之共享VJ基因以及CDR3氨基酸序列的所有双链克隆型,按照细胞数进行排序,如果第二大size的双链克隆型与最大size的双链克隆型细胞数目之比小于0.15,将该单链克隆型合并进最大size的双链克隆型,否则不进行合并。
6、按照新的克隆型,根据细胞数排序,生成新的clone id,并给出exact id。