【10X空间转录组Visium】(一)Space Ranger 1.0.0(更新于20191205)

今天是2019月12月3日,10X空间转录组的新流程发布了,比起安装旧版的ST Spatial系列好装了太多太多。。。
跟以前各个系列的Cell Ranger一样,可以生成FASTQ和计数矩阵,还能自动进行二级分析,操作和生成的目录文件结构跟以前都很相似,可以说比较容易上手。
旧号无故被封,小号再发一次

更多空间转录组文章:

1. 新版10X Visium
2. 旧版Sptial

主要参考官网:https://support.10xgenomics.com/spatial-gene-expression/software/pipelines/latest/what-is-space-ranger

总共要下载两个东西:Space Ranger - 1.0.0 (November 25, 2019) 和 Loupe Browser 4.0.0 (December 2, 2019)

Space Ranger

Space Ranger包括与空间基因表达实验有关的两条管道:

  • spacerangeranger mkfastq包装了Illumina的bcl2fastq,解复用,并转换barcode和read data为FASTQ
  • spaceranger countspaceranger mkfastq中获取明场切片图像和FASTQ文件,并执行对齐,组织检测,基准检测和条形码/ UMI计数。该管道使用Visium空间条形码生成特征点矩阵 feature-spot matrices,确定聚类并执行基因表达分析。

这些管道将Visium专用算法与广泛使用的RNA序列比对软件STAR相结合。输出以标准BAM,MEX,CSV,HDF5,TIFF,PNG,JPEG和HTML格式提供,并增加了空间信息。

Visium-specific 术语

image.png
  • 对齐文件alignment file - 使用手动对齐和手动组织检测时,使用 Loupe Browser生成的文件 。
  • 区域(或捕获区域)-可以将组织放置在Visium玻片上的四个活动区域之一。每个区域仅包含一个组织样本。玻片区域从上到下依次命名:A1,B1,C1,D1。
  • 明场brighfield图像:组织的光学显微镜图像。在Visium实验中,明场图像用作解剖参考。这些图像通常用苏木精和曙红染色以突出组织结构(请参见下面的H&E染色)。
    image.png
  • 捕获点 -这些是载玻片上的不可见点,其中包含用于捕获poly-adenylated mRNA的特殊寡核苷酸。
  • 基准点fiducial spots:围绕每个捕获区域的带有特殊图案的点的框架。这些斑点可帮助样本显微学家查看放置组织的位置,Space Ranger还可使用这些斑点来确定图像中捕获区域的位置。
  • 字形glyphs-捕获区域每个角上的基准点的子集,这些基准点具有易于识别的形状:沙漏,三角形,空心六边形,实心六边形。
  • H&E染色:-将苏木精和曙红施用于组织以突出组织结构的过程。苏木精使细胞核呈蓝色,曙红使细胞质和细胞外基质呈粉红色。
  • 样本 -应用于Visium玻片上单个区域或由此得出的数据的单个组织切片。
  • 玻片序列号slide serial number -每个Visium玻片标签上印刷的唯一标识符。序列号以“ V1”开头,并以短划线和三位数字结尾,例如123。
  • 双重索引dual indexing -一种通过使用两个寡核苷酸序列对同一流动池flowcell上的多个样品进行测序的策略,一个寡核苷酸序列连接到要测序的每个片段的任一末端,以便唯一地识别样品。Visium库构造仅使用此双索引策略支持多路复用样本。请参阅下面的样本索引。
  • 库(或测序库)-从单个载玻片区域制备的Visium空间条形码测序库。
  • 样本索引 -用于文库构建的寡核苷酸序列,用于区分在同一流通池上测序的多个样本。On the Illumina platform, these sequences are read out as separate "index reads" and reads are sorted into sample-specific files using mkfastq. The Visium library construction supports only "dual-indexing" (see above).Visium库的构造仅支持“双重索引”(请参见上文)。
  • sequencing run (or flowcell):一次测序仪器运行的输出数据,包括Illumina BCL文件。可以按泳道或样本索引对数据进行多路分解。有关解复用的更多信息,请参见 mkfastq

系统要求

Space Ranger管道在满足以下最低要求的Linux系统上运行:

  • 8核Intel或AMD处理器(建议使用32核)
  • 64GB RAM(建议128GB)
  • 1TB可用磁盘空间
  • 64位CentOS / RedHat 6.0或Ubuntu 12.04

为了在集群模式下运行,集群需要满足以下附加最低要求:

  • 每个节点 8核Intel或AMD处理器
  • 每个内核 6GB RAM
  • 共享文件系统(例如NFS)
  • SGE或LSF批处理计划系统

下载Space Ranger - 1.0.0

curl -o spaceranger-1.0.0.tar.gz "http://cf.10xgenomics.com/releases/spatial-exp/spaceranger-1.0.0.tar.gz?Expires=1575402715&Policy=eyJTdGF0ZW1lbnQiOlt7IlJlc291cmNlIjoiaHR0cDovL2NmLjEweGdlbm9taWNzLmNvbS9yZWxlYXNlcy9zcGF0aWFsLWV4cC9zcGFjZXJhbmdlci0xLjAuMC50YXIuZ3oiLCJDb25kaXRpb24iOnsiRGF0ZUxlc3NUaGFuIjp7IkFXUzpFcG9jaFRpbWUiOjE1NzU0MDI3MTV9fX1dfQ__&Signature=fACB1rzbHv1rwUicNqL8SheRe6FkFOKxow5cTXcZPfOPBOTBEplElFMnOi4Xv4A2X3kydX45B-JnIaRj7I6a2doGEMTyqv84BnM5LxHAVBtWrXJyQqXbKKtgl9Dxe4BDnM9rPKhs6o2UbmWWAHX8Xu4J3~vgP3yXbhovuyl6OqCxu5p82oxTeOfN0bONqZdZ33svlAXJhatUTdpse2YCSRJZzov69NSHF6gE5DXl6iu5RWU7AgnjFgCuEFkQMwyn-FoYi2~i0s2fOFK0RCVI07~YKNDsjz3eXgOoHjWGPtWw5DAbPpTB2~32xkGzYeIYeZjH6m5JEgNGuvfWEyj~Aw__&Key-Pair-Id=APKAI7S6A5RYOXBWRPDA"

下载参考序列:

  • GRCh38 Reference - 3.0.0 (November 19, 2018)
curl -O http://cf.10xgenomics.com/supp/spatial-exp/refdata-cellranger-GRCh38-3.0.0.tar.gz
  • mm10 Reference - 3.0.0 (November 19, 2018)
curl -O http://cf.10xgenomics.com/supp/spatial-exp/refdata-cellranger-mm10-3.0.0.tar.gz

其他下载:
Visium – CSV | JSON

安装Space Ranger

$ tar -xzvf spaceranger-1.0.0.tar.gz
vi ~/.bashrc  # 填入 export PATH=/opt/spaceranger-1.0.0:$PATH
source ~/.bashrc

验证安装:

$ spaceranger testrun --id=tiny

无论测试管道成功与否,您都会看到:

Saving diagnostics to tiny/tiny.mri.tgz

此tiny.mri.tgz文件包含10x诊断信息,可以肥肠方便地用一下命令发给10X,让他们帮你解决问题:

$ spaceranger upload your@email.edu tiny/tiny.mri.tgz

服务器没连网发邮箱support@10xgenomics.com

解压reference

tar -xzvf refdata-cellranger-GRCh38-3.0.0.tar.gz

运行Space Ranger

根据性能曲线图,CPU限制在32个核心,内存限制在128G
https://support.10xgenomics.com/spatial-gene-expression/software/overview/system-requirements
3种运行方式:

  1. 单服务器:这是最直接的方法,也是最简单的故障排除方法。
  2. 作业提交模式
  3. 群集模式:此方法可提供高性能,但由于群集设置因机构而异,因此很难进行故障排除。

单服务器运行方案:

默认, spaceranger使用所有可用的内核和90%的检测到的内存。在具有多个并发用户和任务的共享环境中,此行为可能是不希望的。强烈建议运行spaceranger 与 --localcores 和 --localmem指定资源使用上限。

一、运行spaceranger mkfastq

管道结构

输入文件建议:
1. Sequencing - Read 2 Length
- 由于“索引跳跃”,Space Ranger要求使用“双重索引”dual-indexing,,在该索引中,使用i7和i5样本索引生成了复用库。
- 在我们的实验中,使用91个碱基的R2长度可获得最佳的作图速率,从而获得灵敏度,而对于较短或较长的读取,最佳性能则较低。
- 如果您已使用91个以上的碱基进行测序,则Space Ranger可以根据需要调整数据,从而为您的样品找到最佳选择:查看--r2-length 选项 spaceranger count
- 如果您对较短的读长进行了测序,则分析仍然可以进行,但灵敏度可能会降低。

R2长度对样品组织类型的敏感性

2. 图像输入建议:
Visium使用的所有输入组织图像必须是24位彩色TIFF,16位灰度TIFF或JPEG。除了Loupe浏览器和Space Ranger的这些基本文件类型要求之外,Space Ranger中的自动图像处理管道还施加了以下概述的其他限制。如果不能满足这些限制,您仍然可以使用Loupe Browser中的手动对齐和组织选择过程来处理数据。

  • 正确的图像方向
    需要在Space Ranger中进行自动处理的图像,其方向必须使沙漏形状的点点位于图像的左上角。图像应大致与轴对齐,尽管轻微旋转(例如,小于15度)应该可以。


    正确定位的切片图像
  • 正确图像大小Correct Sizing
    将输入图像降采样为两个维度中的像素均不大于2000像素,下采样不会影响使用全分辨率输入图像的Loupe Browser中的可视化。建议裁剪图像以去除基准边界外的多余图像区域


    image.png
  • 适当的曝光度


    image.png

spaceranger mkfastq生成FASTQs

工作流程:

  • 将10x样本索引名称翻译为i7 / i5双索引中的相应寡核苷酸。例如,样品表中的A1孔可以指定为SI-TT-A1,并且spaceranger mkfastq会将i7和i5索引分别识别为GTAACATGCG和AGTGTTACCT。
  • 支持简化的CSV样本表格式,以处理10个用例。
  • 生成测序和特定于10X的质量控制指标,包括条形码质量,准确性和多样性。
  • 支持大多数bcl2fastq参数,例如--use-bases-mask

工作流程示例

在此示例中,有两个10x库(每个库均通过单独的捕获区域处理)在单个流通池上多路复用。注意spaceranger mkfastq运行,我们在每个文库上运行管道的单独实例。

image.png

在此示例中,一个10x库在两个流通池上测序。注意spaceranger mkfastq运行,我们在生成的所有FASTQ文件上运行管道的单个实例。

image.png

运行示例数据

spaceranger mkfastq可以识别两种用于描述样本的文件格式:一种简单的三列CSV格式,以及所使用的Illumina实验管理器(IEM)样本表格式bcl2fastq

要继续,请执行以下操作:

  1. 下载tiny-bcl tar文件
  2. 将tiny-bcl tar文件解压缩到方便的位置。这将创建一个新的tiny-bcl子目录。
  3. 下载简单的CSV布局文件:spaceranger-tiny-bcl-simple-1.0.0.csv
  4. 下载Illumina实验管理器样本表:spaceranger-tiny-bcl-samplesheet-1.0.0.csv
  • 简单的CSV示例表运行mkfastq
    对于大多数测序实验,建议使用简单的csv样本表。简单的csv格式只有三列(通道,样本,索引),因此不太容易出现格式错误。您可以在中看到一个示例spaceranger-tiny-bcl-simple-1.0.0.csv:
Lane,Sample,Index
1,test_sample,SI-TT-D9

使用简单布局mkfastq在tiny-bcl测序运行中运行的方法:

如果未按样本索引测序,则需要使用此格式。spaceranger-tiny-bcl-samplesheet-1.0.0.csv在运行管道之前简要查看一下。

$ spaceranger mkfastq --id=tiny-bcl \
                     --run=/path/to/tiny_bcl \
                     --csv=spaceranger-tiny-bcl-simple-1.0.0.csv

其中:
- run (必需) Illumina BCL运行文件夹的路径。
- id (可选;默认为所引用的流通池的名称--run) mkfastq创建的文件夹的名称。
--csv (可选)具有泳道,样本和索引列的简单CSV路径,描述了对流通池进行解复用的方式。索引列应包含10X样本双索引名称(例如,SI-TT-A12)。这是Illumina IEM样本表的替代方法,如果--samplesheet指定则将被忽略。

  • 使用Illumina Experiment Manager示例表运行mkfastq

数据样式:

[Data]
Lane,Sample_ID,Sample_Name,Sample_Plate,Sample_Well,I7_Index_ID,index,I5_Index_ID,index2,Sample_Project,Description
1,s1,test_sample,,,SI-TT-D9,SI-TT-D9,SI-TT-D9,SI-TT-D9,p1,

SI-TT-D9指的是10X样本双索引。
在此示例中,将仅使用从通道1读取。要在所有泳道上多路分解给定的样本索引,请完全省略泳道列。

$  spaceranger mkfastq --id = tiny-bcl \ 
                     --run = / path / to / tiny_bcl \ 
                     --samplesheet = spaceranger-tiny-bcl-samplesheet-1.0.0.csv 

检查FASTQ输出

结果文件夹名字由--id决定

$ ls -l
drwxr-xr-x 4 jdoe  jdoe     4096 Nov 14 12:05 tiny-bcl

关键输出文件可在中找到outs/fastq_path,并以与常规bcl2fastq运行相同的方式进行组织:

$ ls -l tiny-bcl/outs/fastq_path/

读取质量控制指标

--qc指定该标志后,spaceranger mkfastq管道会将测序和10x特定的质量控制指标写入JSON文件。指标位于outs/qc_summary.json文件中。

通过查看此输出,您可以在运行spaceranger管道之前诊断低条形码映射率和reads质量

指定10x管道的输入FASTQ文件

spaceranger count管道需要FASTQ文件作为输入,通常来自运行spaceranger mkfastq,但是,可以使用其他来源的FASTQ文件,例如Illumina的 bcl2fastq,已发布的数据集或我们的 bamtofastq

二、运行spaceranger count

spaceranger count管道的参数:

参数 描述
fastqs (必需)包含要分析的FASTQ文件的文件夹。通常,这是spaceranger mkfastq 产生的fastq_path文件夹。如果文件位于多个文件夹中(例如,由于一个库在多个流通池中测序),请提供以逗号分隔的路径列表。
sample (可选)要分析的样品名称。这是提供给mkfastq 或 bcl2fastq的sample sheet。多个名称可以用逗号分隔的列表提供,在这种情况下,它们被视为一个样本。
lanes (可选)与此样本关联的通道。默认为所有通道。
indices (已弃用/可选。仅用于从 spaceranger demux。)与该样本关联的样本索引。

Fastq文件输出目录

https://support.10xgenomics.com/spatial-gene-expression/software/pipelines/latest/using/fastq-input

用spacerange count进行单库分析

  1. 运行spaceranger mkfastq 在Illumina BCL输出文件夹中,以生成FASTQ文件。
  2. 运行spaceranger count,通过spaceranger mkfastq在每个的捕获区域上进行demultiplexed
    对于以下示例,假定Illumina BCL输出在名为的文件夹中/sequencing/140101_D00123_0111_AHAWT7ADXX
  • Run spaceranger mkfastq
    生成FASTQ文件。例如,如果流通池序列号为 HAWT7ADXX,则spaceranger mkfastq将在HAWT7ADXX/outs/fastq_path中输出FASTQ文件。
  • Run spaceranger count
    自动对齐:
    要使用自动基准对齐和组织检测为单个库生成空间特征计数 spatial feature counts
$ cd /home/jdoe/runs
$ spaceranger count --id=sample345 \
                   --transcriptome=/opt/refdata/GRCh38-3.0.0 \
                   --fastqs=/home/jdoe/runs/HAWT7ADXX/outs/fastq_path \
                   --sample=mysample \
                   --image=/home/jdoe/runs/images/sample345.tif \
                   --slide=V19J01-123 \
                   --area=A1

手动对齐:
使用在Loupe Browse中生成的基准对齐和组织分配 json文件为单个库生成空间特征计数

$ cd /home/jdoe/runs
$ spaceranger count --id=sample345 \
                   --transcriptome=/opt/refdata/GRCh38-3.0.0 \
                   --fastqs=/home/jdoe/runs/HAWT7ADXX/outs/fastq_path \
                   --sample=mysample \
                   --image=/home/jdoe/runs/images/sample345.tif \
                   --slide=V19J01-123 \
                   --area=A1 \
                   --loupe-alignment=sample345.json

spaceranger将默认使用系统上可用的所有核心数来执行管道。您可以为--localcores选项指定不同数量的核新数。--localmem限制使用的内存量(以GB为单位)
管道将创建一个新文件夹,其名称为输出指定的sample ID(例如/home/jdoe/runs/sample345)。如果此文件夹已经存在,spaceranger 将假定它是已存在的管道,并尝试恢复运行。
Slide序列号和捕获区域参数:

  • spaceranger count管道接受slide serial和 capture area参数,以便用最精确的基准和坐标点一个实验。将此信息传递给的最简单方法spaceranger count是通过--slide和--area参数。
  • --slide指定,该管道将下载与所提供的序列号相关联的布局文件。
  • 如果spaceranger在无法访问外部Internet的环境中运行,请按照以下说明进行操作,以便在本地下载slide文件。
  • 不知道与实验相关的序列号或捕获区域:运行:spaceranger--unknown-slide选项。指定后,spaceranger 将对点坐标和基准坐标使用默认布局文件。默认布局和特定载玻片之间相应点的差异在10微米以下。
    下载slide文件以进行本地操作(没有网的情况下):
    管道将需要通过--slidefile参数使用Visium slide的布局文件 。您可以在下面下载Visium slide的布局文件。输入slide的序列号(例如 V19S01-123),然后按“下载”。
    https://support.10xgenomics.com/spatial-gene-expression/software/pipelines/latest/using/count
下载slide文件

输出文件

成功运行后的输出:

Outputs:
- Run summary HTML:                         /opt/sample345/outs/web_summary.html
- Outputs of spatial pipeline:              /opt/sample345/outs/spatial
- Run summary CSV:                          /opt/sample345/outs/metrics_summary.csv
- BAM:                                      /opt/sample345/outs/possorted_genome_bam.bam
- BAM index:                                /opt/sample345/outs/possorted_genome_bam.bam.bai
- Filtered feature-barcode matrices MEX:    /opt/sample345/outs/filtered_feature_bc_matrix
- Filtered feature-barcode matrices HDF5:   /opt/sample345/outs/filtered_feature_bc_matrix.h5
- Unfiltered feature-barcode matrices MEX:  /opt/sample345/outs/raw_feature_bc_matrix
- Unfiltered feature-barcode matrices HDF5: /opt/sample345/outs/raw_feature_bc_matrix.h5
- Secondary analysis output CSV:            /opt/sample345/outs/analysis
- Per-molecule read information:            /opt/sample345/outs/molecule_info.h5
- Loupe Browser file:                       /opt/sample345/outs/cloupe.cloupe
 
Pipestance completed successfully!

管道的输出包含在以您指定的sample ID命名的文件夹中(例如sample345)。名为outs的子文件夹包含主要管道输出文件:

文档名称 描述
web_summary.html 以HTML格式运行摘要指标和图表
spatial 该目录包含jpg格式的对齐基准点和检测到的组织的QC图像,scalefactors_json.json,png格式的输入图像的高分辨率和低分辨率版本以及tissue_positions_list.txt
spatial/aligned_fiducials.jpg 对齐的基准QC图像
spatial/detected_tissue_image.jpg 检测到的组织QC图像
spatial/detected_tissue_image.png 全分辨率图像在最长尺寸上降采样为2k像素
spatial/detected_tissue_image.png 全分辨率图像在最长尺寸上降采样为600像素
spatial/tissue_positions_list.csv 包含斑点条形码的CSV,如果该斑点是在组织的(1)之下或在组织(0)外调用的,则全分辨率图像的阵列位置,图像像素位置x和图像像素位置y
spatial/scalefactors_json.json 包含用于全分辨率原始图像的以像素为单位的点直径估计,组织_hires_scalef(用于高分辨率图像的以像素为单位的点位置乘数),用于全分辨率原始图像的以基准像素的基准点直径估计(以像素为单位),低分辨率图像的像素
metrics_summary.csv 以CSV格式运行摘要指标
possorted_genome_bam.bam reads与基因组和转录组比对,并带有条形码信息
possorted_genome_bam.bam.bai 索引 possorted_genome_bam.bam
filtered_feature_bc_matrix 过滤后的特征条形码矩阵,仅包含MEX格式的spot barcode
filtered_feature_bc_matrix_h5.h5 过滤后的特征条形码矩阵,仅包含HDF5格式的spot barcode
raw_feature_bc_matrices 包含所有MEX格式条形码的未经过滤的特征条形码矩阵
raw_feature_bc_matrix_h5.h5 包含所有HDF5格式条形码的未经过滤的特征条形码矩阵
analysis 二级分析数据,包括降维,斑点聚类和差异表达
molecule_info.h5 分子使用的分子水平信息 spaceranger aggr 将样本聚合为更大的数据集。
cloupe.cloupe Loupe Browser 可视化和分析文件

一旦 spaceranger count成功完成后,您可以 在任何受支持的Web浏览器中浏览生成的 summary HTML file,在 Loupe Browser,中打开.cloupe文件 ,或参考了解输出部分以手动浏览数据。

命令行参数参考

https://support.10xgenomics.com/spatial-gene-expression/software/pipelines/latest/using/count
常用参数:

--id:   A unique run ID string: e.g. sample345
--fastqs: fastq文件所在文件夹
--sample: 提供给样品表中指定的样品名称
--transcriptome: 与Space Ranger兼容的转录组参考的路径,例如 /opt/GRCh38-3.0.0
--image: .jpg或.tiff格式的明场组织H&E图像。
--slide: Visium slide 序列号
--area: Visium捕获区域标识符
--slidefile: slide布局文件指示捕获点和基准点位置
--loupe-alignment   由手动 Loupe对齐步骤生成的对齐文件。在这种情况下,必须提供--image。
--unknown-slide: 使用默认的spot位置
--lanes:    (可选)与此样本关联的泳道
--localcores: 限制核心数
-localmem:限制内存

故障排查

输出文件

https://support.10xgenomics.com/spatial-gene-expression/software/pipelines/latest/output/overview
1. Web Summary:
运行概要:
web_summary.html:包含:摘要指标和自动二级分析结果

  • 摘要视图:可以通过单击左上角的“summary”来查看运行摘要。摘要指标描述了测序质量和检测到的斑点的各种特性。


    摘要视图
  • 分析视图
    可以通过单击左上角的“分析”来查看自动的二级分析结果。二级分析提供以下内容:
    • 将点投影到二维空间(t-SNE)的降维分析
    • 显示检测到的UMI覆盖在组织切片上的图
    • 自动聚类分析,将具有相似表达谱的斑点分组在一起
    • 显示了覆盖在组织切片上的clusters衍生出的基因表达的图
    • 在所选的cluster之间差异表达的基因列表
    • 显示了降低测序深度对观察到的文库复杂性的影响的图
    • 显示了测序深度降低对每个点检测到的基因的中位数的影响的图
image.png

2. Run Analysis:
count管道输出几个包含自动二级分析结果的CSV文件。这些结果的一部分用于在运行摘要中呈现“分析”视图。

  • PCA降维
    在聚类之前,对标准化的过滤后的特征条形码矩阵运行主成分分析(PCA),以减少特征(基因)维的数量。第一个是每个点在前N个主成分上的投影。默认情况下,N=10(启用化学批次校正时,N=100)
$ cd /home/jdoe/runs/sample345/outs
$ head -2 analysis/pca/10_components/projection.csv
Barcode,PC-1,PC-2,PC-3,PC-4,PC-5,PC-6,PC-7,PC-8,PC-9,PC-10
AAACATACAACGAA-1,-0.2765,-5.7056,6.5324,-12.2736,-1.4390,-1.1656,-0.1754,-2.9748,3.3785,1.6539

第二个文件是组件矩阵components matrix,该矩阵指示每个功能对每个主成分的贡献度(负载)。未包含在PCA分析中的特征的所有加载值均设置为零。

$ head -2 analysis/pca/10_components/components.csv
PC,ENSG00000228327,ENSG00000237491,ENSG00000177757,ENSG00000225880,...,ENSG00000160310
1,-0.0044,0.0039,-0.0024,-0.0016,...,-0.0104

第三个文件记录了每个主成分解释的总方差的比例。在选择重要的主成分的数目时,查看作为PC等级函数的方差图很有用——当数字开始趋于平缓时,后续的PC不太可能代表数据中有意义的变化。

$ head -5 analysis/pca/10_components/variance.csv
PC,Proportion.Variance.Explained
1,0.0056404970744118104
2,0.0038897311237809061
3,0.0028803714818085419
4,0.0020830581822081206

最后一个文件列出了每个特征的归一化的离散度,然后将特征按其在整个数据集中的平均表达量进行分箱binning 。这为每个特征的差异提供了有用度量。

$ head -5 analysis/pca/10_components/dispersion.csv
Feature,Normalized.Dispersion
ENSG00000228327,2.0138970131886671
ENSG00000237491,1.3773662040549017
ENSG00000177757,-0.28102027567224191
ENSG00000225880,1.9887312950109921
  • t-SNE:
    运行PCA之后,运行t分布随机临近嵌入(t-SNE)以可视化二维空间中的斑点。
$ head -5 analysis/tsne/2_components/projection.csv
Barcode,TSNE-1,TSNE-2
AAACATACAACGAA-1,-13.5494,1.4674
AAACATACTACGCA-1,-2.7325,-10.6347
AAACCGTGTCTCGC-1,12.9590,-1.6369
AAACGCACAACCAC-1,-9.3585,-6.7300
  • 聚类
    然后根据它们在PCA空间中的投影,进行聚类以将具有相似表达谱的斑点分组在一起。
    基于图的聚类Graph-based clustering (under graphclust)运行一次,因为它不需要预先指定的聚类数量。K-means (under kmeans) 对K=2,...,N运行,其中K对应于聚类编号,默认情况下N=10。每个K的对应结果都被分到其自己的目录中。
$ ls analysis/clustering
graphclust         kmeans_10_clusters  kmeans_2_clusters  kmeans_3_clusters
kmeans_4_clusters  kmeans_5_clusters   kmeans_6_clusters  kmeans_7_clusters
kmeans_8_clusters  kmeans_9_clusters

对于每个聚类, spaceranger为每个位置生成聚类分配cluster assignments

$ head -5 analysis/clustering/kmeans_3_clusters/clusters.csv
Barcode,Cluster
AAACATACAACGAA-1,2
AAACATACTACGCA-1,2
AAACCGTGTCTCGC-1,1
AAACGCACAACCAC-1,3
  • 差异表达分析
    spaceranger还会生成一个表,该表展示相对于所有其他聚类,每个群集的差异表达的特征。对于每个功能,我们每个聚类计算三个值:
  • 聚类i中此特征的每个点的平均UMI计数
  • 聚类i中此特征的表达量相对于所有其他聚类的log2倍变化
  • 表示该特征在聚类i中相对于其他聚类的表达量的显著性的p值,对其进行了调整以考虑要测试的假设数量(即特征数量)。
    该目录与聚类结果位于不同的目录中,但是遵循相同的结构,每个聚类都分为自己的目录。
$ head -5 analysis/diffexp/kmeans_3_clusters/differential_expression.csv
Feature ID,Feature Name,Cluster 1 Mean UMI Counts,Cluster 1 Log2 fold change,Cluster 1 Adjusted p value,Cluster 2 Mean UMI Counts,Cluster 2 Log2 fold change,Cluster 2 Adjusted p value,Cluster 3 Mean UMI Counts,Cluster 3 Log2 fold change,Cluster 3 Adjusted p value
ENSG00000228327,RP11-206L10.2,0.0056858989363338264,2.6207666981569986,0.00052155805898912184,0.0,-0.75299726644507814,0.64066099091888962,0.00071455453829430329,-2.3725403666493312,0.0043023680184636837
ENSG00000237491,RP11-206L10.9,0.00012635330969630726,-0.31783275717885928,0.40959138980118809,0.0,3.8319652342760779,0.11986963938734894,0.0,0.56605908868652577,0.39910771338768203
ENSG00000177757,FAM87B,0.0,-2.9027952579000154,0.0,0.0,3.2470027335549219,0.19129034227967889,0.00071455453829430329,3.1510215894076818,0.0
ENSG00000225880,LINC00115,0.0003790599290889218,-5.71015017995762,8.4751637615375386e-28,0.20790015775229512,7.965820981010868,1.3374521290889345e-46,0.0017863863457357582,-2.2065304152104019,0.00059189960914085744
  • ** R下游分析**
    Visium生成的数据结构可以在R中进行分析和可视化。有关说明,请参见R中的二级分析

3. 矩阵:Feature-Barcode Matrices

  • 矩阵的每个元素是与特征(行)和条形码(列)关联的UMI的数量。
  • 两种类型的特征条形码矩阵:Unfiltered feature-barcode matrix 和 Filtered feature-barcode matrix
    每个矩阵都以 Market Exchange Format (MEX)对疏矩阵进行存储。它还包含gzip压缩的TSV文件,其特征和条形码序列分别与行和列索引相对应。例如,矩阵输出可能类似于:
$ cd /home/jdoe/runs/sample345/outs
$ tree filtered_feature_bc_matrix
filtered_feature_bc_matrix
├── barcodes.tsv.gz
├── features.tsv.gz
└── matrix.mtx.gz
0 directories, 3 files
  • 特征对应于行索引。对于每个功能,其功能ID和名称分别存储在(未压缩)的features.tsv.gz文件的第一和第二列中。第三列标识特征的类型,即Gene Expression。以下是一个最小的示例features.tsv.gz 该文件显示收集了3个基因的数据。
$ gzip -cd filtered_feature_bc_matrix/features.tsv.gz
ENSG00000141510       TP53         Gene Expression
ENSG00000012048       BRCA1        Gene Expression
ENSG00000139687       RB1          Gene Expression

对于Gene Expression 数据,该ID对应在参考GTF的注释字段 gene_id中。同样,名称对应于在参考GTF的注释字段gene_name中。如果没有gene_name 字段存在于参考GTF中,基因名称等同于基因ID。

对于多物种实验,基因ID和名称以基因组名称开头,以避免不同物种的基因之间发生名称冲突,例如GAPDH变为hg19_GAPDH,而Gm15816变为mm10_Gm15816。

条形码序列对应于列索引:

$  gzip的-cd filtered_feature_bc_matrices / hg19 / barcodes.tsv 
AAACATACAAAACG-1 
AAACATACAAAAGC-1 
AAACATACAAACAG-1 
AAACATACAAACGA-1 
AAACATACAAAGCA-1 
AAACATACAAAGTG-1 
AAACATACAACAGA-1 
AAACATACAACCAC-1 
AAACATACAACCGT-1 
AAACATACAACCTG-1

条形码BAM部分提供了有关条形码序列格式的更多详细信息

R和Python支持MEX格式,稀疏矩阵可用于更有效的处理。

将矩阵加载到R中:

library(Matrix)
matrix_dir = "/opt/sample345/outs/filtered_feature_bc_matrix/"
barcode.path <- paste0(matrix_dir, "barcodes.tsv.gz")
features.path <- paste0(matrix_dir, "features.tsv.gz")
matrix.path <- paste0(matrix_dir, "matrix.mtx.gz")
mat <- readMM(file = matrix.path)
feature.names = read.delim(features.path, 
                           header = FALSE,
                           stringsAsFactors = FALSE)
barcode.names = read.delim(barcode.path, 
                           header = FALSE,
                           stringsAsFactors = FALSE)
colnames(mat) = barcode.names$V1
rownames(mat) = feature.names$V1

将矩阵加载到Python

import csv
import gzip
import os
import scipy.io
 
matrix_dir = "/opt/sample345/outs/filtered_feature_bc_matrix"
mat = scipy.io.mmread(os.path.join(matrix_dir, "matrix.mtx.gz"))


features_path = os.path.join(matrix_dir, "features.tsv.gz")
feature_ids = [row[0] for row in csv.reader(gzip.open(features_path), delimiter="\t")]
gene_names = [row[1] for row in csv.reader(gzip.open(features_path), delimiter="\t")]
feature_types = [row[2] for row in csv.reader(gzip.open(features_path), delimiter="\t")]
barcodes_path = os.path.join(matrix_dir, "barcodes.tsv.gz")
barcodes = [row[0] for row in csv.reader(gzip.open(barcodes_path), delimiter="\t")]

转换为CSV格式

  • 存储一般为稀疏性矩阵
  • 但某些程序(例如Excel)仅支持密集矩阵格式。您可以spaceranger mat2csv命令使用来将特征条形码矩阵转换为密集CSV格式。
  • 此命令有两个参数:
    • 由Space Ranger生成的输入矩阵(H5文件或MEX目录)
    • 密集CSV的输出路径。

例如,对在当前目录中名为sample123的pipestance:

# convert from MEX
$ spaceranger mat2csv sample123/outs/filtered_feature_bc_matrix sample123.csv
# or, convert from H5
$ spaceranger mat2csv sample123/outs/filtered_feature_bc_matrix.h5 sample123.csv

然后可以加载 sample123.csv 到Excel。
警告:密集文件可能非常大,如果您的计算机没有足够的内存, 可能导致Excel崩溃甚至mat2csv失败
4. 图片:影像输出
管道输出包含一个名为spatial的子目录,用于存储与影像相关的文件。这些文件包括以下内容:

  • tissue_hires_image.png(最大2000个像素)和tissue_lowres_image.png(最大600个像素):原始全分辨率明场图像的缩采样版本
  • aligned_fiducials.jpg(尺寸与 tissue_hires_image.png相同):用于验证基准对齐是否成功


    image.png
  • scalefactors_json.json:此文件包含以下字段:
    • issue_hires_scalef:将原始全分辨率图像中的像素位置转换为tissue_hires_image.png中的像素位置的比例因子。
    • tissue_lowres_scalef:将原始全分辨率图像中的像素位置转换为tissue_lowres_image.png中的像素位置的比例因子。
    • fiducial_diameter_fullres:跨越原始全分辨率图像中基准点直径的像素数。
    • spot_diameter_fullres:跨越原始全分辨率图像中组织点直径的像素数。
$ cd /home/jdoe/runs/sample345/spatial/outs
$ cat scalefactors_json.json
{"spot_diameter_fullres": 89.45248682925602, "tissue_hires_scalef": 0.17699115, "fiducial_diameter_fullres":   144.5001710318751, "tissue_lowres_scalef": 0.053097345}
  • detected_tissue_image.jpg: 此图片具有tissue_hires_image.png的尺寸,并显示以下内容
    image.png
  • tissue_positions_list.txt:此文本文件包含一个表,其中包含与点相对应的行。它有4,992行,这是空间阵列中的点数。在文件中未指定名称的列对应于以下字段:
    • barcode:与该点相关的条形码的顺序。
    • in_tissue:二进制,指示该斑点位于组织的内部(1)还是外部(0)。
    • array_row:点在阵列中的行坐标从0到77。该阵列有78行。
    • array_col:阵列中点的列坐标。为了表示 the orange crate arrangement of the spots,此列索引对偶数行使用0到126的偶数,对奇数行使用1到127的奇数。注意,每行(偶数或奇数)有64个斑点。
    • pxl_col_in_fullres:全分辨率图像中斑点中心的列像素坐标。
    • pxl_row_in_fullres:全分辨率图像中斑点中心的行像素坐标。
$ cd /home/jdoe/runs/sample345/outs/spatial/
$ head -2 tissue_positions_list.txt
ACGCCTGACACGCGCT-1,0,0,0,910,1261
TACCGATCCAACACTT-1,0,1,1,1030,1329

5. BAM:Barcoded BAM
spaceranger管道输出一个 indexed BAM文件,其中包含与基因组和转录组按位置进行排序比对的reads。与基因组中外显子连接处的转录组比对的reads在其 CIGAR string 中存在较大的缺口,即35M225N64M。

此BAM文件中的每个读取都附有Visium细胞和分子条形码信息。Space Ranger修改MAPQ值;请参见下面的 MM tag。以下假设基本熟悉BAM格式。在线可获取有关the SAM/BAM standard的更多详细信息。

  • BAM Barcode Tags
    每条read的Visium点和分子条形码信息存储为TAGfields
    image.png

spot barcodeCB标签包含带短划线分隔符的后缀,后跟数字:

AGAATGGTCTGCAT-1

在当前的Space Ranger输出中,该数字将始终为(1)。

  • BAM Alignment Tags
    以下标签也将出现在定位到(mapped to)基因组并与外显子重叠至少一个碱基对(overlapped an exon by at least one base pair)的reads上。一条read可以与多个转录物和基因比对,但是只有它被mapped到单个基因,才被可信地认为map到转录组上。


    image.png

6.Molecule Info (H5)
分子信息: spaceranger管道会输出一个HDF5文件,该文件包含每个分子的分子信息,其中包含有效条形码和有效UMI并以高可信度比对到基因的信息。该HDF5文件包含与观察到的分子相对应的数据,以及有关用于分析的libraries,特征集和条形码列表的数据。

  • Per-Molecule Columns


    image.png
  • Reference Columns
    • Experiment Reference:在HDF5文件层次结构的顶层,barcodeslibrary_info数据集提供有关此分析中包含的实验的信息:
      image.png
  • Observed Spot-Barcodes
    image.png
  • HDF5文件层次结构
(root)
|
├─ barcode_idx
├─ barcode_info [HDF5 group]
│   ├─ genomes  
│   └─ pass_filter
├─ barcodes
├─ count
├─ feature_idx
├─ features [HDF5 group]
│   ├─ _all_tag_keys
│   ├─ feature_type
│   ├─ genome
│   ├─ id
│   ├─ name
├─ gem_group
├─ library_idx
├─ library_info
├─ metrics [HDF5 group; see below]
└─ umi
  • 2-bit Encoding
    UMI序列采用2位编码,如下所示:
    - 每对位编码一个核苷酸(0 =“ A”,1 =“ C”,2 =“ G”,3 =“ T”)。
    - 最低有效字节(LSB)包含3'-most nucleotides.

请注意,spot-barcode sequences没有这种编码。它们以纯字符串形式存储在library_infoHDF5 Group 中。

  • Metrics HDF5 Group
    metrics组旨在供Space Ranger管道内部使用;用户应该使用Space Ranger 指标输出查看指标。
    metrics组的属性包含存储为序列化Python对象(使用cPickle)的管道指标。

7. GEX/Image Metrics:

  • Image Analysis Metrics

Suspect Alignment: 当基准对齐算法失败时,Metric为True。如果对齐过程报告了看起来有比较大的缩放,旋转或平移,则管道将发出警告,要求用户密切检查基准对齐的结果(请参见下图)。


image.png

PS:没有这样的警告并不能保证成功,因此用户还是得检查一下

  • Gene Expression Metrics
    Space Ranger管道以文本格式输出关键指标。
    “ spaceranger count”指标定义:spaceranger count管道输出metrics_summary.csv,其中包含有关条形码和测序过程的许多关键指标。
    image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,386评论 6 479
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,939评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,851评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,953评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,971评论 5 369
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,784评论 1 283
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,126评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,765评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,148评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,744评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,858评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,479评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,080评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,053评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,278评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,245评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,590评论 2 343

推荐阅读更多精彩内容