我有一个串联的单细胞RNAseq andata与
obs:“年龄”,“ EPN子类型”,“区域”,“子类”,“分类组”,“组织”,“批次”,“现象”,“样本”,“子类型”,“治疗”, n_genes”,“ percent_mito”,“ n_counts”,“ leiden”
我想为不同的“样本”创建另一个“性别”
我知道我可以使用创建一个新的obs
adata.obs [“ sex”] =“女性”
但是对于特定的样本类别而不是整个样本,我将如何处理?
谢谢!
答案 0 :(得分:0)
因此,AnnData的adata.obs
(或adata.var
)属性是pandas.DataFrame。因此,您可以按原样使用它们。
例如,假设adata.obs
包含有关标记为AACT
,AACG
和AACC
的单元格的信息。还可以想象该数据帧包含“年龄”和“组织”的信息。数据框将包含3个对应于单元格标签的索引和2个对应于Age
和Tissue
的列。
adata.obs
Index Age Tissue
AACT 26 Lung
AACG 40 Lung
AACC 34 Lung
现在,就像您说的那样,如果您键入adata.obs['sex'] = 'female'
,它将为数据帧的每个索引创建一个名为sex
的新列,其字符串为“ female”。
adata.obs
Index Age Tissue sex
AACT 26 Lung female
AACG 40 Lung female
AACC 34 Lung female
想象一下,AACC
和AACG
单元格实际上来自“男性”患者,您可以这样写:
male_patients = ['AACC', 'AACG']
adata.obs.loc[male_patients, 'sex'] = 'male'
这将导致:
adata.obs
Index Age Tissue sex
AACT 26 Lung female
AACG 40 Lung male
AACC 34 Lung male
请注意,我已经使用.loc\[\]
属性通过使用索引名(['AACC', 'AACG']
)和列名('sex'
)访问数据框的特定元素。
我建议您遵循一些教程,以学习如何使用python pandas DataFrame(示例:({link))。