美文网首页
混乱的10X空转基础读取

混乱的10X空转基础读取

作者: 可能性之兽 | 来源:发表于2024-06-10 11:22 被阅读0次

由于spaceranger2.0对将tissue_positions_list.csv更改为tissue_positions.csv,所以导致seurat和scanpy之间一系列的读取不兼容。

首先,spaceranger2.0的格式竟然不被seurat4版本和scanpy直接支持,需要将其中的一个文件tissue_positions.csv改为tissue_positions_list.csv,才能被两者勉强读取。

但是seurat4直接读取会有一个问题,那就是barcode不支持改名,也就是不能直接加上一些前缀防止样本barcode重叠。而seurat5可以。

但是如果你用scanpy直接读取spaceranger2.0的输出(修改为list后),它会在sc.pl.spatial画图的时候疯狂报错,因为scanpy函数的作者对于sc.pl.spatial不打算重写改轮子了,把相关的绘图函数兼容更新反而放在他们课题组的专门针对空转的包squidpy里面了。(老实说有点感觉是在强推他们新开发软件的样子)

所以scanpy是不直接兼容spaceranger2.0,直接兼容只有squidpy以及seurat5。除非你有更早版本的spaceranger的结果,才能被scanpy和seurat4兼容。

但是经过一系列实验,发现scanpy正确读取绘图不报错的话,需要下面操作

  • 更改组织位置文件的名称: 在空间文件夹中,将文件名从 tissue_positions.csv 更改为 tissue_positions_list.csv。
  • 还要更改空间位置格式: 将空间位置的格式从字符串更改为整数(关键):
adata.obsm['spatial'] = adata.obsm['spatial'].astype(np.int)

这样生成的图片和squidpy没有区别

  • 但是注意squidpy以及seurat5读取的时候需要的是原汁原味的spaceranger2.0格式文件,如果已经把tissue_positions.csv改为tissue_positions_list.csv,那么一样能读取,但是后面画图会报大错。因此此时的tissue_positions.csv不能改为tissue_positions_list.csv,如果改过要改回来,这样才能被squidpy以及seurat5读取。

那么tissue_positions.csv这个文件到底有什么特殊?其内容如下

tissue_positions.csv:这个文本文件包含一个表格,其中每一行对应一个点。从 Space Ranger v2.0 开始,这个文件(之前名为 tissue_positions_list.csv)更名并包含了一个表头列。除去表头列,对于具有 6.5 mm 捕获区域的 Visium 载玻片,该文件有 4,992 行;对于具有 11 mm 捕获区域的 Visium 载玻片,该文件有 14,336 行,这正是空间阵列中点的数量。各列对应以下字段:

  • barcode: 该点关联的条形码序列。
  • in_tissue: 二进制值,指示该点是否落在组织内(1)或组织外(0)。
  • array_row:
    • 对于具有 6.5 mm 捕获区域的 Visium 载玻片,该点在阵列中的行坐标,范围从 0 到 77,阵列共有 78 行。
    • 对于具有 11 mm 捕获区域的 Visium 载玻片,该点在阵列中的行坐标,范围从 0 到 127,阵列共有 128 行。
  • 这个字段表示条形码在数组(或网格)中的行索引。数组是用于组织切片的一个网格布局,便于定位。
  • array_col:
    • 该点在阵列中的列坐标。为了表示点的“橙箱”排列,对于具有 6.5 mm 捕获区域的 Visium 载玻片,该列索引在偶数行使用从 0 到 126 的偶数,在奇数行使用从 1 到 127 的奇数,每行(偶数或奇数)包含 64 个点。
    • 对于具有 11 mm 捕获区域的 Visium 载玻片,该列索引在偶数行使用从 0 到 222 的偶数,在奇数行使用从 1 到 223 的奇数,每行(偶数或奇数)包含 112 个点。
  • 这个字段表示条形码在数组(或网格)中的列索引,与array_row一起确定条形码在数组中的位置。
  • pxl_row_in_fullres: 该点在全分辨率图像中的中心行像素坐标。
  • pxl_col_in_fullres: 该点在全分辨率图像中的中心列像素坐标。

这些信息帮助研究人员将基因表达数据与组织切片中的具体位置对应起来,从而进行空间转录组学分析。

barcode,in_tissue,array_row,array_col,pxl_row_in_fullres,pxl_col_in_fullres
ACGCCTGACACGCGCT-1,0,0,0,25787,2222
TACCGATCCAACACTT-1,0,1,1,25604,2540
ATTAAAGCGGACGAGC-1,0,0,2,25421,2222

比如

  • 第一行: ACGCCTGACACGCGCT-1,0,0,0,25787,2222

    • barcode: ACGCCTGACACGCGCT-1
    • in_tissue: 0(不在组织中)
    • array_row: 0
    • array_col: 0
    • pxl_row_in_fullres: 25787
    • pxl_col_in_fullres: 2222
  • 第二行: TACCGATCCAACACTT-1,0,1,1,25604,2540

    • barcode: TACCGATCCAACACTT-1
    • in_tissue: 0(不在组织中)
    • array_row: 1
    • array_col: 1
    • pxl_row_in_fullres: 25604
    • pxl_col_in_fullres: 2540

来自 10x 的新空间转录组学数据 - 帮助/squidpy - scverse --- Data fomr new spatial transcriptomics from 10x - Help / squidpy - scverse

Space Ranger Spatial Outputs - Official 10x Genomics Support

相关文章

  • Seurat官方文档实测笔记(上)

    从读取数据开始。 Read10X ()函数 读取 cellranger pipeline输出的10X单细胞数据,...

  • python和R写出表达矩阵为稀疏矩阵matrix.mtx.gz

    python部分 加载读取稀疏矩阵的mmread和构建数据框的pandas 读取10X单细胞矩阵文件: matri...

  • 非10X单细胞测序数据创建Seurat对象CreateSeura

    Seurat可以直接读取10X数据,网上也有很多紧跟潮流的相关教程,但是非10X的数据怎么读入呢?很简单~ 首先读...

  • 《轻松学会独立思考》读书笔记

    不要让你的大脑空转 很多时候我们看似在努力思考,抓耳捞腮,其实你的大脑在空转,你想的越多就越混乱。要避免大脑空转就...

  • Seurat V3 学习(一)

    读取数据(10X) 结果就是S4类,是一个dgCMatrix 初始化raw data数据,变为Seurat对象,仍...

  • 空转

    大漠硝烟起, 林家顿变灰。 解放全中国, 从东打到西! 人做天在看, 黄砂九撮灰!?

  • 空转

    附图,孙中山公园 #空转# 看到年轻人在办公室里空转,很心痛。空转有两种形态,一种是不做事,一种是不做有挑战的事。 ​

  • 空转

    我是新泰市石莱镇东班庄村人,因为土地确权发证的事,从村主任开始一直找到市委韦记,时间从2015年至今整整四年了,但...

  • 10x-程序员之-JRebel

    What's 10X? A 10x programmer is, in the mythology of prog...

  • fs文件系统操作

    基础写入文件 简单写入文件 流式文件写入 简单文件读取 流式文件读取 流式文件拷贝(读取 + 写入) 复制文件 f...

网友评论

      本文标题:混乱的10X空转基础读取

      本文链接:https://www.haomeiwen.com/subject/kwuiqjtx.html