恐怕这里没多少人知道 simca ,因为这本质上就是个做主成分分析与偏最小二乘分析的软件,界面对做代谢组学的人比较友好而已,价格倒不低。对 oplsda 的偏好的始作俑者也是代谢组学那几个领路的,甚至搞生物信息的都不一定知道这么个变种偏最小二乘分析是什么鬼。oplsda 其实是个理论上我觉得没啥用的变种,本质上就是让除了第一个成分之外的所有成分都跟响应变量或分组正交,不一定比原始算法更好或更坏,唯一的好处就是 s-plot 解释起来容易点,出图比 plsda 好懂些,这个糊涂账戴维斯那个傲娇大牛已经说过很久了,我基本同意,不进行 permutation 就宣称模型好的偏最小二乘判别分析都是刷流氓,而且过拟合问题也需要说明白了。
ropls 包图丑,所以 metaboanalyst 就直接重写了,换我也会重写,因为原理上不复杂,再说核心代码照抄就是了。不过也个重写也搞了个乌龙,因为这个重写的为了技术实现方便限定了只做两个变量,而 metaboanalyst 用户基数大,现在所有人都觉得 oplsda 只能做两个变量的数据了,其实几个都行,只要你一个相关主成分能分出来就可以。用 R 的优势在于高度自定义,只要原理没错画图上操作空间很大,但代价就是你得读懂代码。
至于你说的数据框是数值的,其实数据处理标准就是样本-特征的数值矩阵。你的分组应该存到 metadata 的数据框里等算法调用,不过说起来也是让 xcms 的 diffreport 带路带偏了,搞的代谢组学里数据格式都是分组数据杂糅到一张表里,基因组学那边早就学会把数据表、样本信息与特征标注这三张表分开存储了。有意思的是 simca 确实是能读这种混杂数据表的或者说比较熟悉仪器输出的数据格式,然后这口锅就真不知道往哪里扣了。
这种学科间通过用户习惯差异来造墙或者重复造轮子的事还是很普遍的,搞的不同学科用户层很难交流,各有各的标准与数据格式及术语体系,但如果去看源码根本就是一件事。我就见过同一个算法换个名字成了新算法发在别的学科期刊里的论文,美其名曰本土化… 论忽悠还是学术界遥遥领先,用户层能看懂原始算法就很不容易了,更不用说你换个说法加个马甲了搞本土化运动了。说多了都是泪,我让这类神坑折腾也不是一次两次了,还是算法源码是王道,看明白了不管应用层李逵李鬼都能识别出来,再不济撸袖子自己写(chao)一个,这就该换别人头疼了。