seurat对象内部结构

news/2024/10/31 15:04:56/

10x Genomics格式:

barcodes.tsv 、features/genes.tsv和matrix.mtx文件 是10X Genomics单细胞转录组测序数据的标准文件格式。这些文件通常存储在一个目录中,可以使用Read10X函数从R语言中读取。
barcodes.tsv:包含了每个单细胞的条形码信息

AAACCCAAGAGATGCC-1
AAACCCAAGCCTCTCT-1
AAACCCAAGCGCTTCG-1
AAACCCACACGCAAAG-1
AAACCCAGTCACTCGG-1
AAACCCAGTGGCTAGA-1
AAACCCAGTTCCATTT-1

features/genes.tsv:包含了全部的基因信息,每一行是一个基因,每一列代表基因对应的属性

ENSG00000243485	MIR1302-2HG	Gene Expression
ENSG00000237613	FAM138A	Gene Expression
ENSG00000186092	OR4F5	Gene Expression
ENSG00000238009	AL627309.1	Gene Expression
ENSG00000239945	AL627309.3	Gene Expression
ENSG00000239906	AL627309.2	Gene Expression

matrix.mtx:稀疏矩阵文件,包含了每个单细胞的基因表达信息

%%MatrixMarket matrix coordinate integer general
%metadata_json: {"format_version": 2, "software_version": "3.0.0"}
32864 6580 15047117
32864 1 7
32862 1 5
32861 1 12
32859 1 21

h5格式:

用于存储大规模数据的二进制文件格式,它可以包含多种数据类型,如矩阵、表格、图像等。

不同格式单细胞数据下载及读取分析流程(https://mp.weixin.qq.com/s?__biz=MzkxOTI0Mjc3Mw==&mid=2247485751&idx=1&sn=b7ad6fdd5f1d423c4340156b04946771&scene=21#wechat_redirect)

Seurat对象内部结构简介

Seurat 对象是S4结构,会记录所执行的计算及其信息,在Seurat后面加个@ 可以查看Seurat对象的内容
在这里插入图片描述

Assay Object

一个Seurat对象可以包括多个assay对象,但是在某个时刻,只有一个assay对象是默认激活的。
可以通过函数 active.assay 查询当前默认激活的是哪个assay对象。也可以用 DefaultAssay 来设置默认的 assay。目前默认都是“RNA”

assay又包含了很多的数据内容

在这里插入图片描述
1.counts: 保存的是未经处理的原始数据,适合存放稀疏矩阵图片

 Seu_obj@assays[["RNA"]]@counts
20498 x 28048 sparse Matrix of class "dgCMatrix"[[ suppressing 35 column names ‘1-S_1_graft_CELL1_N1’, ‘1-S_1_graft_CELL2_N1’, ‘1-S_1_graft_CELL3_N1’ ... ]][[ suppressing 35 column names ‘1-S_1_graft_CELL1_N1’, ‘1-S_1_graft_CELL2_N1’, ‘1-S_1_graft_CELL3_N1’ ... ]]PSMB1    . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . . . . . 1 2 ......
FAM120B  . . . . . . . . . . . . . . . . . . . . . . 2 . . . . . . . . . . . 1 ......
PHF10    . . . . . . . . . . . . . . . . . . . . . . 1 . . . . . . . . . . . . ......
DLL1     . . . . . . . . . . . . . . . . 1 . . . . 1 . . . . . . . . . . . . . ......
DYNLT2   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ......
ERMARD   . . . . . . 1 . . . . . . . . 2 . . . . . . . . . . . . . . . . . 1 . ......
WDR27    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ......
C6orf120 . . . . . . . . . . . . . . . . . 1 . . . . . . 2 . . . . . . . . . . ......

2.data: 原始数据经过标准化后,会存放在@data中,和counts 一样也是一个特殊的 Matrix 对象

Seu_obj@assays[["RNA"]]@data
20498 x 28048 sparse Matrix of class "dgCMatrix"[[ suppressing 35 column names ‘1-S_1_graft_CELL1_N1’, ‘1-S_1_graft_CELL2_N1’, ‘1-S_1_graft_CELL3_N1’ ... ]][[ suppressing 35 column names ‘1-S_1_graft_CELL1_N1’, ‘1-S_1_graft_CELL2_N1’, ‘1-S_1_graft_CELL3_N1’ ... ]]PSMB1    . . . . . .        .        . . .        . . . . 2.5456 .        .        .      
FAM120B  . . . . . .        .        . . .        . . . . .      .        .        .      
PHF10    . . . . . .        .        . . .        . . . . .      .        .        .      
DLL1     . . . . . .        .        . . .        . . . . .      .        2.195094 .      
DYNLT2   . . . . . .        .        . . .        . . . . .      .        .        .      
ERMARD   . . . . . .        2.449453 . . .        . . . . .      2.553215 .        .      
WDR27    . . . . . .        .        . . .        . . . . .      .        .        .      
C6orf120 . . . . . .        .        . . .        . . . . .      .        .        2.40154
THBS2    . . . . . .        .        . . .        . . . . .      .        .        .      
SMOC2    . . . . . .        .        . . .        . . . . .      .        .        .      
DACT2    . . . . . .        .        . . .        . . . . .      .        .        .      
FRMD1    . . . . . .        .        . . .        . . . . .      .        .        .      
AFDN     . . . . . 2.714984 .        . . 2.779176 . . . . .      1.935018 .        .      
CEP43    . . . . . .        .        . . .        . . . . .      .        .        .    

3.scale.data: 当数据进行scale后,存放在名为scale.data中,标准化了,很明显有正负

Seu_obj@assays[["integrated"]]@scale.data[c(1:4),c(1:4)]1-S_1_graft_CELL1_N1 1-S_1_graft_CELL2_N1 1-S_1_graft_CELL3_N1 1-S_1_graft_CELL4_N1
CCL8              -0.1751573         -0.000398953           -0.1618975           -0.3175274
SLC26A7           -0.3482464         -0.575905454            3.7351998           -0.2587794
CLU               -0.6237091          0.055878939            1.0573738           -0.3988269
ACTA2             -0.3282271         -0.472798219            1.8587141           -0.2847098

4.var.features: 是一个普通的向量,里面存放的是高表达变异的基因名。可以用函数VaribleFeatures来获得这个向量。

 Seu_obj@assays[["integrated"]]@var.features[1] "CCL8"         "SLC26A7"      "CLU"          "ACTA2"        "ANKRD1"       "S100A2"      [7] "UMOD"         "WFDC2"        "CXCL8"        "MMP7"         "CCL4"         "MGP"         [13] "KNG1"         "FN1"          "PLAU"         "SLC26A4"      "COL3A1"       "SLC31A2"     [19] "CCL21"        "ATP6V0D2"     "CLDN4"        "ATP6V1G3"     "CLDN5"        "ATP6V1C2"    [25] "TAGLN"        "AADAT"        "DCN"          "ESM1"         "CST3"         "TMEM213"     

5.key: 每个active对象都有一个key值,可以用fetch函数来获取
6.meta.features: 对每个 features 做的注释。 如果要对 features 的功能进行注释、打分、筛选都需要用到meta.features。对于不同的assay来说,每个features的含义是不同的。

meta.data

Seurat对象中的meta.data 是一个用来对所有细胞做注释的数据框。

每一行代表一个细胞,每一列代表细胞的属性。当需要根据细胞的属性和类型对细胞进行筛选的时候,经常会用到meta.data。当然也可以把新分析得到的结果,添加到meta.data中。
在这里插入图片描述

active.ident

细胞的类型,在Seurat对象中,细胞可能有好几种不同方法注释的类型,但是在某一时刻,只有一种细胞类型是默认激活的。

可以用active.ident来查询当前默认的细胞类型是什么。
在这里插入图片描述

reduction

和assay一样,reduction返回的也是一个列表。里面包含的是一个或多个 DimReduc object 对象。

每个DimReduc object 对象对应的是 assay 对象进行某种降维分析后得到的结果。降维也就是PCA 、tsne 、umap 三种

在这里插入图片描述

Version和commands

Seu_obj@version
[1] ‘5.0.1’

Version:创建这个对象时,所使用的Seurat版本
Commands:一个列表,里面保存的是workflow中每个步骤所使用的命令和参数,还有命令执行的日期和时间
在这里插入图片描述

你想从 scRNA 对象中提取 percent.HB 值不为 0 的数据。你当前的代码有一些问题,应该进行修改以正确筛选和提取数据。下面是如何完成这个任务的正确方法:

示例代码:

# 提取 scRNA 对象中 "percent.HB" 列的数据
percent_HB_values <- scRNA[["percent.HB"]]# 找到 percent.HB 值不为 0 的索引
kk_percent_HB_nonzero <- percent_HB_values[percent_HB_values != 0]# 现在 kk_percent_HB_nonzero 包含 percent.HB 非 0 的值

代码解释:

  1. scRNA[["percent.HB"]]:

    • 这是从 Seurat 对象 scRNA 中提取 percent.HB 列的数据。假设 percent.HB 是这个 Seurat 对象中的一个元数据列。
  2. percent_HB_values[percent_HB_values != 0]:

    • 这一步通过条件筛选,提取 percent.HB 值不为 0 的数据。
    • percent_HB_values != 0 返回一个逻辑向量,其中 TRUE 表示该位置的 percent.HB 值不为 0。然后利用该逻辑向量索引,筛选出非 0 的 percent.HB 值。

示例结果:

kk_percent_HB_nonzero 变量现在包含 percent.HB 不为 0 的所有数据。

如果你还需要提取对应的细胞信息(即有非 0 percent.HB 的细胞),可以这么做:

# 找到 percent.HB 值不为 0 的细胞(行索引)
nonzero_cells <- which(percent_HB_values != 0)# 提取这些细胞对应的数据
scRNA_nonzero_percent_HB <- scRNA[nonzero_cells, ]

这样,你就可以提取 percent.HB 非 0 的细胞以及它们对应的数据了。


http://www.ppmy.cn/news/1543366.html

相关文章

【AAOS】【源码分析】CarSystemUI

目录 目录 概述 CarSystemUI组件 源代码 源码位置 主要模块 编译选项 CarSystemUI与SystemUI 编译方式 Car Emulator默认服务 CarSystemUI 启动流程 缩略词 概述 AAOS中的SystemUI虽然相较手机要简单不少,但却是车载开发中的一个重要组件,它负责管理和控制车机…

基于SpringBoot的流浪动物管理系统设计与实现

摘要 随着流浪动物数量的增加&#xff0c;如何有效管理这些动物成为社会关注的重要问题。基于Spring Boot框架的流浪动物管理系统&#xff0c;旨在通过信息化手段提高流浪动物的管理效率&#xff0c;帮助管理人员记录、追踪、安置和处理流浪动物的信息。该系统集成了用户管理、…

【无标题】idea 一次性切换多个项目的分支

适合一个目录下面有多个子项目&#xff0c;维护着共同的分支 勾选Settings-Version Control->Git->Executor branch operations on all roots 勾选前&#xff08;是不能一次切换多个项目的分支为同一个分支的&#xff09; 勾选此选项 勾选后&#xff08;可以一次切换多个…

网络编程 TCP编程 Linux环境 C语言实现

所有基于数据传输通信的程序&#xff0c;都会被分成两种角色&#xff1a; 1. 服务端&#xff1a;又称为服务器 server 提供一种通信服务的进程 基本工作过程是&#xff1a;1> 接收请求数据 2> 处理请求数据 3> 发送处理结果 2. 客户端&#xff1a;client 使用一种通…

《JVM第6课》本地方法栈

文章目录 1 什么是本地方法1.1 本地方法的好处1.2 声明本地方法1.3 实现本地方法1. 生成头文件2. 编写C语言实现3. 编译C代码4. 运行Java程序 1.4 使用JNA1.5 总结 2 本地方法栈2.1 特点2.2 本地方法栈与Java虚拟机栈的区别2.3 本地方法栈的工作流程2.4 总结 无痛快速学习入门J…

T527 Android13开发环境

一、环境系统选择&#xff1a; 开发环境建议选用ubuntu&#xff0c;下面ubuntu18.04 为例 二、环境依赖安装&#xff1a; 1、安装依赖库 sudo apt-get install -y git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib gmultilib libc6-dev-…

Linux:编辑器Vim和Makefile

✨✨所属专栏&#xff1a;Linux✨✨ ✨✨作者主页&#xff1a;嶔某✨✨ vim的三种常用模式 分别是命令模式&#xff08;command mode&#xff09;、插入模式&#xff08;Insert mode&#xff09;和底行模式&#xff08;last line mode&#xff09; 各模式的功能区分如下&…

【PythonWeb开发】Flask-RESTful字段格式化

字段格式化的意思就是对api接口返回的响应做出规范。 具体的思想是&#xff0c;先定义一个格式化输出样板fields&#xff0c;然后在类视图中的视图方法上加marshal_with装饰器使得格式化生效。这样做的有什么特别的用处吗&#xff1f;特性&#xff1a; 显示出我们设计的数据结构…