SBATCH提交R脚本失败:脚本读取异常排查求助
问题:Slurm提交R脚本失败(交互式运行正常)
开发的R脚本在交互式环境中分块运行测试完全正常,可输出所需的.txt文件和图表,但通过sbatch提交到HPC后作业失败,状态信息如下:
State: FAILED (exit code 1)
Nodes: 1
Cores per node: 4
CPU Utilized: 00:50:36
CPU Efficiency: 24.89% of 03:23:20 core-walltime
Job Wall-clock time: 00:50:50
Memory Utilized: 3.57 GB
Memory Efficiency: 11.35% of 31.41 GB
提交的Slurm脚本
#!/bin/bash #SBATCH --job-name=run_funct #SBATCH --output=/[path]/logs/run_funct.out #SBATCH --error=/[path]/logs/run_funct.err #SBATCH --ntasks=1 #SBATCH --time=24:00:00 #SBATCH --mem-per-cpu=8042 #SBATCH --cpus-per-task=4 #SBATCH --partition=compute Rscript /[path]/code/analyse.correlation.R
(注:[path]为集群读写完整路径,此处省略)
R脚本相关代码片段
# write table correlation results write.table(gene.database, file = file.path(data.dir, paste0(biomarker, "_", lineage, "_correlation_unified.txt")), sep = "\t");
错误日志内容
Error: unexpected ',' in: " gene.database, file = file.pte0(biomarker, "_", lineage, "_correlation_unified.txt"))," Execution halted
错误出现在完成相关性计算的耗时for循环后、执行write.table(输出下游mapply分析结果)时。
解决建议
- 修复拼写错误:错误日志里明确显示
file.pte0,这是file.path的拼写错误。检查集群上的analyse.correlation.R脚本,确认是否存在这个笔误——交互式运行的脚本和提交的脚本可能不是同一个版本,或者脚本上传到集群时出现了字符损坏。 - 验证脚本一致性:对比交互式环境中运行的R脚本和集群上的脚本内容,确保完全一致,尤其是
write.table这一行的语法和函数名。 - 检查文件路径:确认
data.dir在集群环境中是正确的、可读写的路径,交互式环境的路径可能和Slurm作业的环境变量不同。 - 换行符检查:如果脚本是从Windows上传到Linux集群,可能存在换行符差异(CRLF vs LF),可以用
dos2unix命令转换脚本格式:dos2unix /[path]/code/analyse.correlation.R。
内容的提问来源于stack exchange,提问作者moirasanti
相关产品推荐
相关产品推荐

