如何解决获取巨大的单个单元格数据帧的每个样本中的总计数
我有一个巨大的元数据文件,其中包含79列和78687行。这些元数据来自我们的癌症实验结果。 我正在使用dplyr查询该元数据中每个样本的单元格计数。
我有16个样本:
我需要找到每个样本中每种情况(肿瘤或正常或MSS_Status)的细胞计数。 我正在单独进行操作,如下所示
dim(meta %>% filter(Condition == "Tumor" & MSI_Status=="MSS" & Location =="Left" & orig.ident == "B_cac10"));
# 689 24
我敢肯定有一种聪明的方法可以做到这一点,我如何才能一遍又一遍地得到答案?
P.S:我是一名生物学家,我在循环或编码方面的知识非常有限
编辑:1
可复制的示例
df <- data.frame(Condition = c("Normal","Normal","Tumor","Tumor"),MSI_Status = c("High","High","Low","Low"),Location = c("Lungs","Lungs","Kidney","Liver"),Clusters = c(1,2,4,6),orig.ident = c("B-cac10","B-cac11","T-cac15","B-cac15","B-cac19","T-cac22"))
我的代码:
df %>% filter(Condition == "Tumor" & MSI_Status=="Low" & Location
=="Kidney" & orig.ident == "B-cac15")
预期结果:
每个原始身份的计数应在条件“肿瘤”,MSI_Status ==“低”和位置=“肾脏”下给出
非常感谢您的帮助,请保持安全。 戴夫
解决方法
您可以使用dplyr
函数filter
根据您的条件对数据进行子集化。然后,您可以使用dplyr
count
函数对orig.ident
中的唯一值进行计数。如注释中所提到的,您可以选择在此功能内设置name = Freq
。由于您是rename
的新手,所以我选择使用R
函数来尽可能地明确。
数据
df <- data.frame(Condition =
c("Normal","Normal","Tumor","Tumor"),MSI_Status =
c("High","High","Low","Low"),Location = c("Lungs","Lungs","Kidney","Liver"),Clusters =
c(1,2,4,6),orig.ident=c("B-cac10","B-cac11","T-cac15","B-
cac15","B-cac19","T-cac22"))
代码
library(dplyr)
df %>%
filter(Condition == "Tumor" &
MSI_Status == "Low" &
Location == "Kidney") %>%
count(orig.ident) %>%
rename(Freq = n)
#> orig.ident Freq
#> 1 B-cac15 1
#> 2 B-cac19 1
由reprex package(v0.3.0)于2020-09-05创建
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。