跟着小鱼头学单细胞测序-如何使用Cell Ranger V6 (一)

2022-03-29 08:22:27 浏览数 (2)

导语

GUIDE ╲

在单细胞的商业化测序平台中,来自10X genomics的测序数据占据了很大的份额。相信大家在平时的科研工作中对10X数据并不陌生, 而Cell Ranger软件作为由10X官方开发的配套分析软件,颇受欢迎。今天我们就给大家介绍一下这款软件主要分析流程和使用。

正文

Cell Ranger是10X公司专门为单细胞RNA测序数据量身打造的分析软件,能够通过直接读取原始下机测序数据,进行比对,定量,聚类, 可视化以及更多的基因表达相关的下游分析,并且结合配套的浏览平台Loupe Browser为用户提供交动式的可视化功能,为大家的分析工作提供了很大的便利。以下文中软件信息及代码均从Cell Ranger官网获取【1】。

Cell Ranger 针对的是基于3'端建库的单细胞RNA测序数据,最近升级到了version 6.0,在算法流程和分析模块上面有了一些更新,新版本中功能在之前四大模块的基础上又新增加了一个,主要包括:

  • cellranger mkfastq
  • cellranger count
  • cellranger aggr
  • cellranger reanalyze
  • cellranger multi (新增模块)

下图列出了新旧版本支持的不同的建库方案:

模块01

cellranger mkfastq

Cell Ranger的工作流程首先是通过mkfastq模块将Illumina 测序仪产生的 raw base call (BCL) 下机文件拆解成 FASTQ 文件,即将reads进行demultiplex再分配到各自的文库中,然后对每个文库再处理barcodes信息。这个功能其实是对llumina的bcl2fastq软件进行了封装,支持大多数bcl2fastq的参数设置。

mkfastq可以识别两种描述样本文件的格式,第一种是简单的CVS样本文件格式,在大多数测序实验中是比较推荐的。该文件包含三列信息:Lane (样本放置的通道id),Sample (样本名称)和Index (创建文库用的索引信息)。使用示例如下, 注意这里用的是--csv来设置文件。

代码语言:javascript复制
$ cellranger mkfastq --id=tiny-bcl  #输出文件夹的id,默认与—run的文件夹名相同
                     --run=/path/to/tiny_bcl  #存储BCL文件的路径名
                     --csv=cellranger-tiny-bcl-simple-1.2.0.csv #此文件为三列样本描述文件

另一种是bcl2fastq使用的Illumina所用的Illumina Experiment Manager(IEM)样本格式。注意这里用的是--samplesheet来设置。

代码语言:javascript复制
$ cellranger mkfastq --id=tiny-bcl  
                     --run=/path/to/tiny_bcl  
                     --samplesheet=cellranger-tiny-bcl-simple-1.2.0.csv 

顺利运行后,结果文件会存放于文件夹(MKFASTQ_ID)/outs/fastq_path中。拆分后的目录结构如下所示;我们可以看到每个样本会得到三个结果文件(I1,R1,R2),分别储存了样本index,细胞barcode和reads信息。

代码语言:javascript复制
MKFASTQ_ID
|-- outs
    |-- fastq_path
        |-- HFLC5BBXX
            |-- test_sample1 #结果文件夹
            |   |-- test_sample1_S1_L001_I1_001.fastq.gz #index 序列
            |   |-- test_sample1_S1_L001_R1_001.fastq.gz #barcode信息
            |   |-- test_sample1_S1_L001_R2_001.fastq.gz #reads信息
        |-- Reports
        |-- Stats
        |-- Undetermined_S0_L001_I1_001.fastq.gz
        ...

模块02

cellranger count

该模块是Cell Ranger中比较重要的功能,使用率最高。得到fastq文件之后,通过该模块对其进行序列比对,细胞过滤,对UMI计数,生成对应的feature-barcode定量矩阵;并通过表达矩阵进行下游的降维,聚类等下游分析。使用示例如下:

代码语言:javascript复制
--fastqs=/tiny-bcl/outs/fastq_path  #fastq文件所在路径
--sample= test_sample1  
--transcriptome=/mnt/refdata-cellranger-GRCh38-3.0.0 #用于比对的参考基因组

其中 --fastqs 用于设置fastq文件所存放的文件路径;如果需要对多个fastq进行合并比对的话,可以输入多个存放路径并用逗号隔开,相对应的在--sample中,也输入多个需要合并的sample名称并用逗号隔开,这样就不用我们额外手动合并了。例如

--fastqs=MKFASTQ_ID/outs/fastq_path1,MKFASTQ_ID/outs/fastq_path2 和--sample=test_sample1,test_sample2。另外Cell Ranger也提供了用于比对的参考基因组,包括hg19,GRCH38,mm10以及ercc92.

这一模块的输出文件很丰富,包括有:

代码语言:javascript复制
Outputs:
网页版报告(重点):                        /outs/web_summary.html
数据指标汇总CVS格式:                    /outs/metrics_summary.csv
用于与参考基因比对的reads:          /outs/possorted_genome_bam.bam
用于与参考基因比对的索引:       /outs/possorted_genome_bam.bam.bai
过滤后的表达矩阵(重点):         /outs/filtered_feature_bc_matrix
过滤后的表达矩阵HDF5格式:      /outs/filtered_feature_bc_matrix.h5
原始表达矩阵:                         /outs/raw_feature_bc_matrix
表达矩阵HDF5格式:                  /outs/raw_feature_bc_matrix.h5
二级分析结果:                                      /outs/analysis
分子层面信息 (用于cellranger aggr合并样本): /outs/molecule_info.h5
用于loupe浏览器的输入文件:                     /outs/cloupe.cloupe

结果中需要重点查看的有网页版报告(web_summary.html),该报告列出了详细的数据QC的信息,可用于判断该数据测序质量;而过滤后的表达矩阵(filtered_feature_bc_matrix)则可作为下游分析的输入文件,用于别的软件分析,例如Seurat。

模块03

cellranger aggr

该模块是用于两个或者多个样本的数据整合,即基于cellranger count的输出结果,将同一组中不同样本的表达矩阵整合到一起,并进行标准化。例如当处理多个生物学重复样本时,首先分别对每个样本单独的进行cellranger count定量, 然后通过aggr整合。

下面的示例中,假如我们有三个replicates样本,分别进行了定量分析:

代码语言:javascript复制
$ cellranger count --id=LV123 ...
... wait for pipeline to finish ...
$ cellranger count --id=LB456 ...
... wait for pipeline to finish ...
$ cellranger count --id=LP789 ...
... wait for pipeline to finish ...

基于count的输出结果,构建aggr CSV文件(如下所示),该文件包含样本名称和molecule_info.h5所在的路径名这两列信息。

代码语言:javascript复制
sample_id,molecule_h5
LV123,/opt/runs/LV123/outs/molecule_info.h5
LB456,/opt/runs/LB456/outs/molecule_info.h5
LP789,/opt/runs/LP789/outs/molecule_info.h5
代码语言:javascript复制
$ cellranger aggr --id=MySamples 
                  --csv=aggr.csv  
                  --normalize=mapped #标准化去除不同测序深度的影响;可选择设置为none,不进行标准化

该模块的输出结果与count模块的结果类似:

代码语言:javascript复制
合并后的网页版报告(重点):                /outs/web_summary.html
合并报告JSON格式:                           /outs/summary.json
二级分析结果:                                   /outs/analysis
过滤后的整合表达矩阵(重点):    /outs/filtered_feature_bc_matrix
过滤后的表达矩阵HDF5格式:    /outs/filtered_feature_bc_matrix.h5
原始表达矩阵:                      /outs/raw_feature_bc_matrix
原始表达矩阵HDF5格式:            /outs/raw_feature_bc_matrix.h5
构建的aggr CSV文件:                      /outs/aggregation.csv
用于构建Loupe浏览器的输入文件:                /outs/cloupe.cloupe

模块04

cellranger reanalyze

在模块count和aggr的输出结果中都有一个二级分析结果的文件夹,该文件夹中包含了降维,聚类,差异表达分析等结果。而该模块的作用就是允许用户设定分析参数,来对feature-barcode表达矩阵重新进行二级分析,得到新的结果。

与agrr模块类似,我们可以将想调整的参数保存在CSV文件中,然后设--params来运行, 该部分可调整的参数选项很多,会在下篇文章中重点介绍。

代码语言:javascript复制
$ cellranger reanalyze --id= 】MySamples_reanalysis 
                       --matrix=MySamples/outs/filtered_feature_bc_matrix.h5 
                       --params=MySamples_reanalysis.csv #存放调整的参数

模块05

cellranger multi

该模块是Cell Ranger最新的V6版本中新添加的,作用跟count模块是类似的,而multi模块主要用于3‘端建库的multiplexing数据,即多个库混合测序的情况。除此之外,仍然建议使用count模块。该模块的运行方法与count类似,也需要设置一个CVS文件列出input library信息。我们将在下篇文章中详细介绍如何设置该文件。

代码语言:javascript复制
$ cellranger multi --id= MySamples --csv=/home/MySamples.csv

小编总结

随着10X单细胞RNA测序数据的增多,Cell Ranger的使用也越来越普遍,在今天介绍的这几个模块中,最常用的应该是count模块,这也是小编在日常分析中常常用到的,而其他的几个模块利用率会稍低。因为一般情况下,我们拿到的10X测序数据都是fastq文件格式,通常是不需要我们从下机文件开始处理,得到表达矩阵后,会使用其他分析工具如Seurat,scanpy等来进行分析,所以在日常分析中通常将Cell Ranger的分析结果作为一个初步质检报告。

Reference:

【1】https://support.10xgenomics.com/single-cell-gene-expression/software/overview/welcome

END

0 人点赞