生科云网址:https://www. 本文由微科盟胡天龙根据实践经验而整理,希望对大家有帮助。 微科盟原创微文,欢迎转发转载,转载须注明来源《微生态》公众号。
运行步骤 我们经常使用corr.test () 函数计算OTU之间的相关性,但该函数在面对较多的OTU时速度较慢。
运行时间如下:(elapsed栏为程序运行的时间) 图1 原函数运行时间
使用我们自己构造的函数后,可利用10核进行计算,运行时间如下: 图2 自建函数十核运行时间 我们可以看到使用corr.test () 函数进行计算需要313秒,而使用R代码进行并行计算仅需0.99秒。我们再比较一下不同线程情况下所需的时间。单核运行代码如下:
图3 自建函数单核运行时间 即使使用单核进行计算速度,也要比corr.test () 函数快上很多,毕竟该函数里面有很多判断语句, 计算更加费时。当我们加大数据量时,单核和多核的区别就更加明显。下图是单核与10核运行的比较: 图4 自建函数单核与十核运行时间的比较 我们可以看到计算量越大,多核的性能就越优越。当我们有成千上万个OTU时可以节省很多时间。那么我们运行的结果与corr.test () 函数的结果是否一致呢?
将我们构建的函数network_construct () 与psych包中的corr.test () 的结果进行比较,结果如下: 图5 自建函数与原函数结果比较 |
|