【发布时间】:2020-10-19 21:18:20
【问题描述】:
所以对于我的第一篇文章,我想出了一个相当尴尬的问题。我有这个用 R 编写的代码,它基本上是对 X 个基因的 for 循环分析,以获得写在 4 个不同文件中的输出。 问题是,它的时间太长了。这里的想法是尝试利用我正在处理的集群的全部计算能力,并在不同的核心上展开循环。
主函数结构如下:
- 在不同的数据框中打开输入数据,塑造和创建变量,如样本和基因的数量(稍后在输出文件创建和主
for循环中使用) - 播种
- 创建将写入结果的所有输出文件
- 分析的主循环将迭代所有基因,每次都进行计算和写入结果。
因此,为了加快速度,我正在考虑将我的基因数据框拆分为 500 个基因,每个基因包含 20 个基因的较小子集,并为每个基因并行运行主循环。例如,根据我对foreach 和mcapply 的理解,问题在于它们更多地设计用于同一数据集上的多次迭代,而不是在不同数据集上使用相同的函数。我可能错了。
另一种解决方案是同时运行多个基因,但我不知道该怎么做。
很抱歉这篇文章很长,而且我无法提供代码......但如果有一些想法或建议的解决方案,我会很乐意准确一点。
感谢您的宝贵时间!
【问题讨论】:
-
请提供您的代码和一些数据的工作示例。
-
您好,我使用的数据是个人数据,所以我无法分享...实际上要在此处粘贴的管道很长。为了更容易阅读,这是代码来自的 github,这里使用的文件是 gtex_tiss_chrom_training.R 和 gtex_v7_nested_cv_elnet.R 。第一个是调用第二个中编写的函数。 github.com/hakyimlab/PredictDB_Pipeline_GTEx_v7/tree/master/…
标签: r loops dataframe parallel.foreach doparallel