试图在r中使用MOFA2包创建multiomic对象时出错



我正在使用基于这里概述的小插图的MOFA2包,并在所需列(即'样本','特征','值'和'视图')中将三层组学数据(代谢组,炎症因子和微生物组)合并为长格式数据框架。

> head(multiomic)
sample              feature      value       view
1 SM01_01 X2_Aminobutyric.acid 0.05117221 metabolome
2 SM01_02 X2_Aminobutyric.acid 0.03615312 metabolome
3 SM01_03 X2_Aminobutyric.acid 0.15299858 metabolome
4 SM02_01 X2_Aminobutyric.acid 0.13094635 metabolome
5 SM02_02 X2_Aminobutyric.acid 0.63106917 metabolome
6 SM02_03 X2_Aminobutyric.acid 0.70794188 metabolome
> str(multiomic)
'data.frame':   26208 obs. of  4 variables:
$ sample : chr  "SM01_01" "SM01_02" "SM01_03" "SM02_01" ...
$ feature: Factor w/ 222 levels "X2_Aminobutyric.acid",..: 1 1 1 1 1 1 1 1 1 1 ...
$ value  : num  0.0512 0.0362 0.153 0.1309 0.6311 ...
$ view   : chr  "metabolome" "metabolome" "metabolome" "metabolome" ...

当尝试运行命令创建MOFA对象时,我得到这个错误消息:

> create_mofa_from_df(multiomic)
Aggregation function missing: defaulting to length
Error in vapply(indices, fun, .default) : values must be type 'logical',
but FUN(X[[1]]) result is type 'integer'

我只尝试了代谢组和炎症合并数据,它起作用了。我相信微生物组数据有问题,但不确定问题出在哪里。我已经完全按照上面提到的小插图进行了格式化。查看微生物组数据(即"data")与代谢组学和炎症数据(即"mulit_long")的数据结构,得出以下结果:

> str(data)
'data.frame':   8424 obs. of  4 variables:
$ sample : chr  "SM01_01" "SM26_01" "SM30_03" "SM02_01" ...
$ feature: chr  "Bifidobacterium" "Blautia" "Bacteroides" "Blautia" ...
$ value  : num  7.97 7.85 7.77 7.77 7.73 ...
$ view   : chr  "microbiome" "microbiome" "microbiome" "microbiome" ...
> str(multi_long)
'data.frame':   17784 obs. of  4 variables:
$ sample : chr  "SM01_01" "SM01_02" "SM01_03" "SM02_01" ...
$ feature: Factor w/ 152 levels "X2_Aminobutyric.acid",..: 1 1 1 1 1 1 1 1 1 1 ...
$ value  : num  0.0512 0.0362 0.153 0.1309 0.6311 ...
$ view   : chr  "metabolome" "metabolome" "metabolome" "metabolome" ...

我猜这是一个结构性问题,我只是错过了明显的解决方案…感谢任何指导!

谢谢

在我意识到我的第一列(ID或组列)中有NAs之前,我也有同样的错误。因此,在我的案例中,数据结构与微生物组数据集并不完全相同。

最新更新