华大时空组学空转图像处理

华大时空组学空转图像处理

r 复制代码
library(png)
library(tiff)
st <- readRDS('01.Stereo-seq/output_all/Demo_Mouse_Kidney/outs/feature_expression/seurat_out.rds')
dim(st@assays$Spatial@counts)
st@assays$Spatial@counts[1:4,1:4]
coord.df <- data.frame(imagerow = st$x, imagecol=st$y,nCount_Spatial = st$nCount_Spatial,row.names = st$X_index)
min(coord.df$imagerow);max(coord.df$imagerow);min(coord.df$imagecol);max(coord.df$imagecol)
#image <- readPNG(source = '/public/user/huguang/st-seq/down_string_pipline/bin1_img_tissue_cut.png')
image <- readTIFF("/biodata2/08.user/zhengyzh/01.Stereo-seq/output_all/Demo_Mouse_Kidney/outs/image/bin1_img_tissue_cut.tif")

用于seurat

r 复制代码
st@images$slice1  = new(
  Class = 'SlideSeq',
  assay = "Spatial",
  key = "image_",
  #image = image,
  coordinates = coord.df
)

图像分bin转化

r 复制代码
bin_matrix_fast <- function(mat, bin_size=200) {
  n <- nrow(mat)
  m <- ncol(mat)
  
  # 修剪矩阵以适应bin大小
  trimmed_n <- floor(n / bin_size) * bin_size
  trimmed_m <- floor(m / bin_size) * bin_size
  mat <- mat[1:trimmed_n, 1:trimmed_m]
  
  # 重新塑造矩阵
  dim(mat) <- c(bin_size, trimmed_n/bin_size, bin_size, trimmed_m/bin_size)
  
  # 计算每个bin的均值
  result <- apply(mat, c(2, 4), mean, na.rm = TRUE)
  
  return(result)
}

img <- bin_matrix_fast(image, 50)
img <- img[dim(img)[1]:1,] # 实现图像的上下翻转
r 复制代码
# SpatialDimPlot(st)
# SpatialFeaturePlot(st, features = "nCount_Spatial")
# SpatialFeaturePlot(st, features = "ENSMUSG00000000028",cols = ifelse(st@assays$Spatial@counts['ENSMUSG00000000028',]>0,'red','gray'))
# st@reductions$spatial@cell.embeddings

ggplot2手搓实现切片图像背景图效果

r 复制代码
ggplot() +
  #背景图片
  annotation_raster(img, 0, dim(img)[1], 0, dim(img)[2]) + # 此处也可转化为0,1的标准化数值,需下面point同步修改
  geom_point(data = coord.df, aes(x=imagerow/50,y=imagecol/50,color=nCount_Spatial)) + 
  scale_color_gradientn(colours = RColorBrewer::brewer.pal(9,'YlOrRd')) +
  xlim(0,dim(img)[1]) + ylim(0,dim(img)[2]) +
  theme_void()
r 复制代码
# 标准灰度转换公式:0.299*R + 0.587*G + 0.114*B
gray_img <- 0.299 * img[,,1] + 0.587 * img[,,2] + 0.114 * img[,,3] # 注意这里是 R G B 图像矩阵*权重的加和,3变1

# 显示灰度图
grid.raster(gray_img, interpola = TRUE)

# 或者保存为单通道数组
gray_array <- array(gray_img, dim = c(dim(img)[1], dim(img)[2], 1))
相关推荐
Biomamba生信基地4 天前
纯生信挖掘+6个样WB,发表IF=10文章
机器学习·单细胞·空间转录组·微阵列·bulk rna-seq
莘薪5 天前
TCGA数据下载问题解决
数据挖掘·生物信息学·单细胞·转录组·tcga
追风少年ii7 天前
2026从单细胞多样本整合的分析细节开始
数据挖掘·数据分析·空间·单细胞
追风少年ii7 天前
2025最后一天--解析依赖于空间位置的互作细胞亚群及下游功能效应
python·数据分析·空间·单细胞·培训
Bioinfo Guy10 天前
开源scRNA Tools 2.|利用 BayesPrism 剔除微环境背景并识别肿瘤亚克隆特征
大语言模型·单细胞·多组学·队列研究
diegoXie13 天前
Seurat V5 结构树和基础整合pipeline
r语言·单细胞·seuratv5
Biomamba生信基地15 天前
用R语言画生信基地圣诞树~
开发语言·r语言·单细胞·空间转录组·biomamba生信基地
kangk1222 天前
空间转录组上游(Space Ranger)
单细胞
kangk121 个月前
单细胞转录组分析流程十一(细胞通讯,cellchat,单样本)
数据挖掘·单细胞
kangk121 个月前
单细胞转录组分析流程十一(细胞通讯,cellchat,双(多)样本)
数据挖掘·单细胞