scRNA-seq数据预处理

scRNA-seq的上游处理与bulk RNA-seq有相似的地方,也有不同的地方。相似的地方如:对原始数据的质控检测、去除低质量的reads、adpter、比对。不同的地方如scRNA-seq数据有的需要考虑Demultiplexing。而且scRNA-seq根据采用的不同的protocols,产生的数据和处理方法也有不同。

这里提供的练习数据是SMART-seq2建库,SMRT-seq2建库的测序数据上游分析与bulk RNA-seq相似,如这节课内容中的分析方法:

  • FastQC 对原始数据进行质控检测
  • Trim Galore 质控
  • STAR或Kallisto比对

练习数据

mouse ESC的单细胞数据(Kolodziejczyk et al. 2015),数据下载位置:https://www.ebi.ac.uk/arrayexpress/experiments/E-MTAB-2600/samples/

直接点击下载按钮即可下载fastq的数据。

  • ERR522959_1.fastq
  • ERR522959_2.fastq

质控

  • FastQC
1
2
mkdir fastqc_results
fastqc -o fastqc_results Share/ERR522959_1.fastq Share/ERR522959_2.fastq
  • Trim galore 是一个自动识别adpter的质控软件
1
2
mkdir fastqc_trimmed_results
trim_galore --nextera -o fastqc_trimmed_results Share/ERR522959_1.fastq Share/ERR522959_2.fastq

Demultiplexing

不同的protocol和pipeline决定了demultiplexing的方法也不同,最灵活的方法是zUMI,可以用于大多的demultiplexing和基于UMI的protocols。SMARTseq2直接提供的是已经demultiplexing的数据。

如何理解demultiplexing?

demultiplexing的过程即识别并移除cell barcode序列。

scRNA-seq质控中需要考虑的另一个因素是不包含细胞或包含两个细胞的droplets

STAR比对

STAR比对的优点有考虑到了剪切体,输出文件内容丰富,(可以进行下游融合基因的分析,bulk seq可以)缺点是耗费计算资源。

比对的步骤首先需要构建参考基因组或转录组的index文件,由于考虑到练习运行时间,这里提供的代码是比对到参考转录本

  • Make index
1
2
3
mkdir indices
mkdir indices/STAR
STAR --runThreadN 4 --runMode genomeGenerate --genomeDir indices/STAR --genomeFastaFiles Share/2000_reference.transcripts.fa
  • alingment

    1
    2
    3
    4
    mkdir results
    mkdir results/STAR

    STAR --runThreadN 4 --genomeDir indices/STAR --readFilesIn Share/ERR522959_1.fastq Share/ERR522959_2.fastq --outFileNamePrefix results/STAR/

Kallisto 比对(Pseudo-Alignment)

Kallisto比对也称为pseudo-alignment(假比对),即它的比对方法和STAR不同,不是将完整reads比对到参考转录本上,而是将kmer(特定长度的序列)比对到参考转录本上。

k-mers和reads相比的特点是

  • 处理测序error的能力强于传统的比对工具
  • 与STAR不同的另一点Kallisto是比对到转录本的

Kallisto’s pseudo mode

专门为scRNA-seq设计的,

index

1
2
mkdir indices/Kallisto
kallisto index -i indices/Kallisto/transcripts.idx Share/2000_reference.transcripts.fa

Kallisto Pseudo-Alignment

1
2
mkdir results/Kallisto
kallisto pseudo -i indices/Kallisto/transcripts.idx -o results/Kallisto -b batch.txt