Seurat 对象添加任意低维嵌入数据

简介: 本文分享了一种将任意来源的低维嵌入数据添加到 Seurat reductions数据槽中的实现方法

Seurat自带的RunPCA (pca)和RunTSNE (tsne)等数据降维方法产生的低维嵌入信息会格式化为DimReduc类,存储在DefaultAssay(scRNA)的reductions数据槽。当使用这些自带的方法时,会自动创建DimReduc类并填充到数据槽。当然我们也可以将由其它方法产生的维度信息存储到reductions数据槽中。
reductions 数据槽

代码示例

创建一份自定义二维数据表

#random a cell position dataframe
mini.sc <- readRDS("seurat.rds")
cell_position <- data.frame(x=runif(n = ncol(mini.sc),min = 1,max = 2),y=runif(n = ncol(mini.sc),min = 1,max = 2))
rownames(cell_position ) <- colnames(mini.sc)
colnames(cell_position ) <- c('locus_1','locus_2')#注意维度名必须要以键名+数字的格式(key)
> cell_position
        locus_1  locus_2
cell.1 1.435976 1.189780
cell.2 1.497868 1.001837
cell.3 1.691928 1.877578
cell.4 1.760313 1.134111
cell.5 1.155401 1.022741
cell.6 1.849457 1.939137
cell.7 1.946818 1.292949
cell.8 1.588419 1.164327
cell.9 1.502251 1.399103

将cell_position插入到seurat对象的reduction数据槽中

mini.sc[["cell.locus"]] <- CreateDimReducObject(embeddings = as.matrix(cell_position),key = "locus_", assay = "RNA")
#通过seurat函数DimPlot绘图
DimPlot(mini.sc,reduction = "cell.locus",group.by = "class",raster=FALSE,pt.size = 8,shape.by = "class")+
    NoLegend()+
    scale_x_continuous(limits = c(1,2))+scale_y_continuous(limits = c(1,2))

目录
相关文章
|
4月前
|
人工智能 UED
DynamiCrafter:可实现任意类型静态图像转化为逼真动态视频
【2月更文挑战第17天】DynamiCrafter:可实现任意类型静态图像转化为逼真动态视频
321 1
DynamiCrafter:可实现任意类型静态图像转化为逼真动态视频
|
4月前
|
SQL 定位技术 API
GEE python:按照矢量中的几何位置、属性名称和字符串去筛选矢量集合
GEE python:按照矢量中的几何位置、属性名称和字符串去筛选矢量集合
61 0
|
搜索推荐 Linux Python
VET:一个基于R语言的VCF数据提取工具,支持按基因ID、物理位置、样品名称提取指定变异信息
VET:一个基于R语言的VCF数据提取工具,支持按基因ID、物理位置、样品名称提取指定变异信息
|
移动开发 文字识别 算法
论文推荐|[PR 2019]SegLink++:基于实例感知与组件组合的任意形状密集场景文本检测方法
本文简要介绍Pattern Recognition 2019论文“SegLink++: Detecting Dense and Arbitrary-shaped Scene Text by Instance-aware Component Grouping”的主要工作。该论文提出一种对文字实例敏感的自下而上的文字检测方法,解决了自然场景中密集文本和不规则文本的检测问题。
1932 0
论文推荐|[PR 2019]SegLink++:基于实例感知与组件组合的任意形状密集场景文本检测方法
|
3月前
|
编解码 计算机视觉 异构计算
【CV大模型SAM(Segment-Anything)】如何一键分割图片中所有对象?并对不同分割对象进行保存?
【CV大模型SAM(Segment-Anything)】如何一键分割图片中所有对象?并对不同分割对象进行保存?
|
3月前
|
存储 数据可视化 算法
原始边列表转换为邻接矩阵
【6月更文挑战第23天】在图论和网络分析中,图由节点和边构成,可以用邻接矩阵表示。Python代码展示了如何从边列表`(0, 1), (0, 2), (1, 2), (2, 3)`转换成邻接矩阵,涉及有向/无向图、权重处理及稀疏矩阵优化。此外,还包括了使用NetworkX库进行图可视化以及将邻接矩阵逆向转换为边列表。这些方法在处理大规模图数据时尤其重要,如社交网络分析和交通规划。
28 1
|
2月前
|
JavaScript
交叉类型的主要用途是表示对象的合成
交叉类型的主要用途是表示对象的合成
19 0
|
4月前
|
存储 定位技术 Python
Python读取多个栅格文件并提取像元的各波段时间序列数据与变化值
Python读取多个栅格文件并提取像元的各波段时间序列数据与变化值
115 1
|
传感器 编解码 计算机视觉
使用星凸随机超曲面模型对扩展对象和分组目标进行形状跟踪(Matlab代码实现)
使用星凸随机超曲面模型对扩展对象和分组目标进行形状跟踪(Matlab代码实现)
121 0
使用星凸随机超曲面模型对扩展对象和分组目标进行形状跟踪(Matlab代码实现)
|
存储 编解码 对象存储
将图像标记器多边形转换为标记的块图像以进行语义分割
将存储在对象中的多边形标签转换为适用于语义分割工作流的标记阻止图像。 可以使用计算机视觉工具箱中的图像标记器应用来标记太大而无法放入内存和多分辨率图像的图像。有关详细信息,请参阅在图像标记器(计算机视觉工具箱)中标记大图像。图像标记器应用不支持对被阻止的图像进行像素标记。您只能使用 ROI 形状(如多边形、矩形和线条)创建标签。此示例演示如何使用函数将多边形 ROI 转换为像素标记的块图像,以进行语义分割工作流。
64 0
将图像标记器多边形转换为标记的块图像以进行语义分割