Nextflow模块编译错误:process脚本中意外字符异常排查
Nextflow脚本编译错误排查求助
我在编写snp-pileup的Nextflow脚本(snp_pileup.nf)时遇到模块编译错误,脚本代码如下:
process snp_pileup { conda '/data1/software/miniconda3/envs/datum' maxForks 3 debug true errorStrategy 'retry' maxRetries 4 label 'low_mem' publishDir path: "${params.outdir}/${sample_name}/snppileup/", mode: 'copy' input: tuple val(sample_id_tumor),path(bqsrbam_tumor, stageAs: 'tumor_snppileup/*') tuple val(sample_id_normal),path(bqsrbam_normal, stageAs: 'normal_snppileup/*') output: tuple val(sample_name), path("${sample_name}_snppileupout.gz"), emit: snppileup_out script: sample_name=sample_id_normal.split('_N')[0] """ snp-pileup --min-base-quality 20 --min-map-quality 15 --min-read-counts 25\,0 --pseudo-snps 100 --gzip /data1/daphni2/azenta_files/dbsnp_146.hg38.vcf.gz "${sample_name}_snppileupout.gz" ${bqsrbam_normal} ${bqsrbam_tumor} """ }
运行时触发如下错误:
ERROR ~ Module compilation error - file : /data1/users/nextflow_pipeline/scripts_pipeline/crusher_scripts/upgraded_split_csv/./snp_pileup.nf - cause: Unexpected character: '"' @ line 23, column 3. """ ^ 1 error -- Check script 'main.nf' at line: 35 or see '.nextflow.log' file for more details
错误原因分析
这个编译错误是因为脚本中出现了HTML转义字符",而非Nextflow可识别的纯英文双引号"。大概率是复制粘贴脚本时文本被自动转义,或是编辑器保存时错误转换了引号字符导致的。
解决步骤
- 打开
snppileup.nf文件,定位到错误提示的第23行(即脚本块开头的三重引号行) - 删除当前的
""",手动输入纯英文的三重双引号""" - 同步检查脚本块结尾的三重引号,确保同样是纯英文的
""",未被转义 - 保存脚本后重新运行
额外提示:脚本中--min-read-counts 25\,0的反斜杠可能多余,如果该参数需要的是浮点数25.0,建议直接改为25.0,避免后续出现参数解析问题。
内容的提问来源于stack exchange,提问作者Death Metal
相关产品推荐
相关产品推荐

