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 的值
代码解释:
-
scRNA[["percent.HB"]]
:- 这是从 Seurat 对象
scRNA
中提取percent.HB
列的数据。假设percent.HB
是这个 Seurat 对象中的一个元数据列。
- 这是从 Seurat 对象
-
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 的细胞以及它们对应的数据了。