最近在做一个SCENIC 下游的分析,看到了一个叫CSI(Connection specificity index)的东西,大概的原理就是利用AUC的分数通过pearson相关系数,计算出regulon之间的关联程度。这个方法最早于2013年发表在nature methods 上面
原始文献:[Nat Methods. 2013 Dec; 10(12): 1169–1176.]
计算公式如下图所示,公式:
有人很热心的做了一个R包,https://github.com/FloWuenne/scFunctions,一开始觉得真是个好心人,用了之后我却想骂人,原因是为什么呢?原因就是,该R包的作者根本就没把公式正确的翻译到包里。却十分迷惑性的也给计算结果取了同样的名字CSI。
为什么会发现这个问题呢?原因是我同时使用了这个R包和另外一段Python 代码,用相同的数据进行了计算,结果发现很不一样。对此我十分迷惑不解,于是就花了一些时间来研究到底是为什么。
本来是不需要明白这个是怎么算的的,但是为了研究这个问题,花时间读了R包代码和python 的代码,免费的果然是最贵的。结果发现这个R包是个坑货。问题如下:
问题一,正式的公式分子选取的是大于和等于,如上图,上述R包在计算时只选取了大于,忽略了等于部分,也许问题不大。
问题二,正式公式有个0.05 的常数,用以做调整,R包忽略了这个常数。
问题三,R包中计算计分子部分的节点数目的方法就是错的
问题四,正式公式最后是用1 减去得到的分数的,R包同样忽略了。
所以问题来了,用它计算的出来的东西还能叫CSI 吗?我觉得是不可以的,但是作者就这么叫了,不光这么叫了,以下文章的作者还引用了这个包,发了文章了。
以下是用这个R包发的文章
1: [https://doi.org/10.14348/molcells.2021.0211]
2: [Clin Transl Med . 2021 Aug;11(8):e500. doi: 10.1002/ctm2.500.]
3: [J Exp Med (2022) 219 (5): e20212414.]
还有另外几个就不说了。
你说说,这是叫做什么玩意,R包的作者能不能有点责任感?如果你不明白,别瞎写害人好不好?如果知道是自己瞎写的,能不能说明一下?
调包侠们能不能用点心???在该包的github 上都有人问了这个问题了,你的公式用对了没有,作者没回答,掉包侠们也看不见?你们是管干什么的?
此外也看出这个所谓的同行评审到底是个什么玩意了吧?什么专家,都是Bullshit,没人会仔细看到底你做了什么,你只要你号称你干了什么就可以了,他们根本没本事发现你到底做没做,做对了没有,究其根本原因就是这些个专家都不是专家,沽名钓誉之辈而已。倘若你没真的修过车,你觉得你读完修车手册你就能修车了吗?
文章作假为什么这么普遍,因为你只要自己能过心里那一关,就可以了,除了你自己,没真正明白你到底做了什么。