如何在seurat R中制备表达特定基因的细胞亚群

ogsagwnx  于 2023-04-27  发布在  其他
关注(0)|答案(2)|浏览(269)

我想创建一个只表达特定基因的细胞子集。
'未传递命名参数'
我不知道该怎么纠正。

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"))
mkh04yzy

mkh04yzy1#

您可以从计数矩阵中进行子集,下面我使用包中的pbmc_small数据集,并获得CD 14+和CD 14-的细胞:

library(Seurat)
CD14_expression = GetAssayData(object = pbmc_small, 
assay = "RNA", slot = "data")["CD14",]

该载体包含CD 14的计数以及细胞的名称:

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")
tez616oj

tez616oj2#

我使用这段代码实际上是直接在meta.data上添加信息。例如,这里的格克斯= pbmc_small。使用与@StupidWolf相同的逻辑,我获取基因表达式,然后制作一个有两列的 Dataframe ,这些信息直接添加到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)

相关问题