专栏名称: 生信菜鸟团
生信菜鸟团荣誉归来,让所有想分析生物信息学数据的小伙伴找到归属,你值得拥有!
目录
相关文章推荐
生物学霸  ·  一个 80 后高校教师的苦闷 ·  3 天前  
51好读  ›  专栏  ›  生信菜鸟团

R tips:使用ggplot2绘制空间坐标图

生信菜鸟团  · 公众号  · 生物  · 2024-12-07 21:00

正文

Xenium、Visium、VisiumHD、CellDive、Akoya等空间组学数据是包含细胞的坐标信息的,这些信息可以用于绘制空间原位图。

空间数据提供的位置信息一般分为两种:细胞的质心和细胞的边界,以Xenium数据为例,这两种细胞坐标信息它都有包含。

10X官方提供的xenium数据在https://www.10xgenomics.com/products/xenium-in-situ/preview-dataset-human-breast

Xenium Output Bundle下载链接见https://cf.10xgenomics.com/samples/xenium/1.0.1/XeniumFFPEHumanBreastCancerRep1/XeniumFFPEHumanBreastCancerRep1_outs.zip

解压后的文件列表如下,其中:

cells.csv或者cells.parquet里面包含细胞质心坐标,而cellboundaries.csv.gz或者cellboundaries.parquet里面包含细胞的边界坐标。

  1. analysis

  2. analysis.zarr.zip

  3. analysis_summary.html

  4. aux_outputs

  5. cell_boundaries.csv.gz

  6. cell_boundaries.parquet

  7. cell_feature_matrix

  8. cell_feature_matrix.h5

  9. cell_feature_matrix.zarr.zip

  10. cells.csv

  11. cells.parquet

  12. cells.zarr.zip

  13. experiment.xenium

  14. gene_panel.json

  15. metrics_summary.csv

  16. morphology .ome.tif

  17. morphology_focus

  18. nucleus_boundaries.csv.gz

  19. nucleus_boundaries.parquet

  20. transcripts.csv.gz

  21. transcripts.parquet

  22. transcripts.zarr.zip

细胞边界空间图

  1. library(tidyverse)

  2. library(patchwork)

  3. coords_xenium arrow::read_parquet('cell_boundaries.parquet')

  4. range(coords_xenium$vertex_x)

  5. range(coords_xenium$vertex_y)

  6. # subset cells

  7. coords_xenium_sub

  8. coords_xenium %>%

  9. dplyr::filter(

  10. vertex_x > 3000,

  11. vertex_x < 4000,

  12. vertex_y > 2000,

  13. vertex_y < 4000

  14. )

  15. # used to fixed coords

  16. image_wh_ratio diff(range(coords_xenium$vertex_x))/diff(range(coords_xenium$vertex_y))

  17. p_xenium_boundary

  18. coords_xenium_sub %>%

  19. ggplot(aes(x = vertex_x, y = vertex_y)) +

  20. geom_polygon(aes(group = cell_id, fill = cell_id), show.legend = FALSE) +

  21. coord_fixed(ratio = 1/image_wh_ratio) +

  22. theme_void()

  23. # black background

  24. p_xenium_boundary2

  25. p_xenium_boundary +

  26. theme(panel.background = element_rect(fill = "black"))

  27. p_xenium_boundary | p_xenium_boundary2

使用geom_polygon绘制细胞边界空间图,指定group为cell_id即可,fill可以指定为细胞类型或者基因表达量。下图呈现了深浅两种背景的空间示意图。

上述图示不是特别清楚,放大后如下,可以看到细胞边界坐标可以绘制出完整的单细胞划分后的真实细胞边界:

细胞质心空间图

质心空间图可以有两种图层用于展示:

  1. coords_xenium2 arrow::read_parquet('cells.parquet')

  2. range(coords_xenium2$x_centroid)

  3. range(coords_xenium2$y_centroid)

  4. coords_xenium_sub2

  5. coords_xenium2 %>%

  6. dplyr::filter(

  7. x_centroid > 3000,

  8. x_centroid < 4000,

  9. y_centroid > 2000,

  10. y_centroid < 4000

  11. )

  12. image_wh_ratio2 diff(range(coords_xenium2$x_centroid))/diff(range(coords_xenium2$y_centroid))







请到「今天看啥」查看全文