如何基于另一个观察结果添加观察不足的观察类别?

时间:2020-08-05 19:22:41

标签: python metadata rna-seq scanpy

我有一个串联的单细胞RNAseq andata与

obs:“年龄”,“ EPN子类型”,“区域”,“子类”,“分类组”,“组织”,“批次”,“现象”,“样本”,“子类型”,“治疗”, n_genes”,“ percent_mito”,“ n_counts”,“ leiden”

我想为不同的“样本”创建另一个“性别”

我知道我可以使用创建一个新的obs

adata.obs [“ sex”] =“女性”

但是对于特定的样本类别而不是整个样本,我将如何处理?

谢谢!

1 个答案:

答案 0 :(得分:0)

因此,AnnData的adata.obs(或adata.var)属性是pandas.DataFrame。因此,您可以按原样使用它们。

例如,假设adata.obs包含有关标记为AACTAACGAACC的单元格的信息。还可以想象该数据帧包含“年龄”和“组织”的信息。数据框将包含3个对应于单元格标签的索引和2个对应于AgeTissue的列。

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

想象一下,AACCAACG单元格实际上来自“男性”患者,您可以这样写:

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))。