如何在seurat R中制作表达特定基因的细胞子集
how to make a subset of cells expressing certain gene in seurat R
我想创建一个仅表达特定基因的细胞子集。这是我的编码,但它总是显示
'No named arguments passed'
我不知道如何更正。
Dbh.pos <- Idents(my.data, WhichCells(my.data, expression = Dbh > 0, slot = "data"))
Dbh.neg <- Idents(my.data, WhichCells(my.data, expression = Dbh = 0, slot = "data"))
您可以从计数矩阵中提取子集,下面我使用包中的 pbmc_small 数据集,我得到的细胞是 CD14+ 和 CD14-:
library(Seurat)
CD14_expression = GetAssayData(object = pbmc_small,
assay = "RNA", slot = "data")["CD14",]
此向量包含 CD14 计数以及细胞名称:
head(CD14_expression,30)
ATGCCAGAACGACT CATGGCCTGTGCAT GAACCTGATGAACC TGACTGGATTCTCA AGTCAGACTGCACA
0.000000 0.000000 0.000000 0.000000 0.000000
TCTGATACACGTGT TGGTATCTAAACAG GCAGCTCTGTTTCT GATATAACACGCAT AATGTTGACAGTCA
0.000000 0.000000 0.000000 0.000000 0.000000
AGGTCATGAGTGTC AGAGATGATCTCGC GGGTAACTCTAGTG CATGAGACACGGGA TACGCCACTCCGAA
0.000000 0.000000 0.000000 0.000000 0.000000
CTAAACCTGTGCAT GTAAGCACTCATTC TTGGTACTGAATCC CATCATACGGAGCA TACATCACGCTAAC
0.000000 0.000000 0.000000 0.000000 0.000000
TTACCATGAATCGC ATAGGAGAAACAGA GCGCACGACTTTAC ACTCGCACGAAAGT ATTACCTGCCTTAT
3.542611 3.917231 4.552789 5.159975 3.117873
CCCAACTGCAATCG AAATTCGAATCACG CCATCCGATTCGCC TCCACTCTGAGCTT CATCAGGATGCACA
0.000000 3.452557 3.820847 4.432036 0.000000
获取 ID 可以使用 which
:
pos_ids = names(which(CD14_expression>0))
neg_ids = names(which(CD14_expression==0))
数据子集可以通过以下方式完成:
pos_cells = subset(pbmc_small,cells=pos_ids)
neg_cells = subset(pbmc_small,cells=neg_ids)
有点笨,但我想这是检查它是否有效的一种方法:
FeaturePlot(pos_cells,"CD14")
FeaturePlot(neg_cells,"CD14")
我正在使用此代码实际直接在 meta.data 上添加信息。
这里以GEX = pbmc_small为例。
使用与@StupidWolf 相同的逻辑,我正在获取基因表达,然后制作一个包含两列的数据框,并将此信息直接添加到 Seurat 对象上。
GENE="Cd8a"
EXPR = GetAssayData(object=GEX,assay="RNA",slot="data")[GENE,]
EXPR_df=data.frame( positive= EXPR > 0, negative = EXPR == 0)
names(GEX)<-paste0( c("positive_","negative_"),GENE)
GEX <- AddMetaData(GEX,metadata=EXPR_df)
这种方法允许很好地子集化,更灵活。
GEX_subset <- subset(GEX, annot == "T cell" & negative_Cd8a)
我想创建一个仅表达特定基因的细胞子集。这是我的编码,但它总是显示
'No named arguments passed'
我不知道如何更正。
Dbh.pos <- Idents(my.data, WhichCells(my.data, expression = Dbh > 0, slot = "data"))
Dbh.neg <- Idents(my.data, WhichCells(my.data, expression = Dbh = 0, slot = "data"))
您可以从计数矩阵中提取子集,下面我使用包中的 pbmc_small 数据集,我得到的细胞是 CD14+ 和 CD14-:
library(Seurat)
CD14_expression = GetAssayData(object = pbmc_small,
assay = "RNA", slot = "data")["CD14",]
此向量包含 CD14 计数以及细胞名称:
head(CD14_expression,30)
ATGCCAGAACGACT CATGGCCTGTGCAT GAACCTGATGAACC TGACTGGATTCTCA AGTCAGACTGCACA
0.000000 0.000000 0.000000 0.000000 0.000000
TCTGATACACGTGT TGGTATCTAAACAG GCAGCTCTGTTTCT GATATAACACGCAT AATGTTGACAGTCA
0.000000 0.000000 0.000000 0.000000 0.000000
AGGTCATGAGTGTC AGAGATGATCTCGC GGGTAACTCTAGTG CATGAGACACGGGA TACGCCACTCCGAA
0.000000 0.000000 0.000000 0.000000 0.000000
CTAAACCTGTGCAT GTAAGCACTCATTC TTGGTACTGAATCC CATCATACGGAGCA TACATCACGCTAAC
0.000000 0.000000 0.000000 0.000000 0.000000
TTACCATGAATCGC ATAGGAGAAACAGA GCGCACGACTTTAC ACTCGCACGAAAGT ATTACCTGCCTTAT
3.542611 3.917231 4.552789 5.159975 3.117873
CCCAACTGCAATCG AAATTCGAATCACG CCATCCGATTCGCC TCCACTCTGAGCTT CATCAGGATGCACA
0.000000 3.452557 3.820847 4.432036 0.000000
获取 ID 可以使用 which
:
pos_ids = names(which(CD14_expression>0))
neg_ids = names(which(CD14_expression==0))
数据子集可以通过以下方式完成:
pos_cells = subset(pbmc_small,cells=pos_ids)
neg_cells = subset(pbmc_small,cells=neg_ids)
有点笨,但我想这是检查它是否有效的一种方法:
FeaturePlot(pos_cells,"CD14")
FeaturePlot(neg_cells,"CD14")
我正在使用此代码实际直接在 meta.data 上添加信息。 这里以GEX = pbmc_small为例。 使用与@StupidWolf 相同的逻辑,我正在获取基因表达,然后制作一个包含两列的数据框,并将此信息直接添加到 Seurat 对象上。
GENE="Cd8a"
EXPR = GetAssayData(object=GEX,assay="RNA",slot="data")[GENE,]
EXPR_df=data.frame( positive= EXPR > 0, negative = EXPR == 0)
names(GEX)<-paste0( c("positive_","negative_"),GENE)
GEX <- AddMetaData(GEX,metadata=EXPR_df)
这种方法允许很好地子集化,更灵活。
GEX_subset <- subset(GEX, annot == "T cell" & negative_Cd8a)