【问题标题】:GNU parallel read from several filesGNU 并行读取多个文件
【发布时间】:2020-07-22 10:57:56
【问题描述】:

我正在尝试使用 GNU 并行通过一个名为 vcf2maf 的生物信息学工具来转换单个文件。

我的命令看起来像这样:

${parallel} --link "perl ${vcf2maf} --input-vcf ${1} \
                                    --output-maf ${maf_dir}/${2}.maf \
                                    --tumor-id ${3} \
                                    --tmp-dir ${vcf_dir} \
                                    --vep-path ${vep_script} \
                                    --vep-data ${vep_data} \
                                    --ref-fasta ${fasta} \
                                    --filter-vcf ${filter_vcf}" :::: ${VCF_files} ${results} ${tumor_ids}

VCF_filesresultstumor_ids 每行包含一个条目并相互对应。

当我尝试运行命令时,每个文件都会出现以下错误:

ERROR: Both input-vcf and output-maf must be defined!

这让我很困惑,因为如果我手动运行命令,程序会按预期运行,所以我不认为输入/输出路径是错误的。为了确认这一点,我也跑了

${parallel} --link "cat ${1}" :::: ${VCF_files} ${results} ${tumor_ids}, 正确打印 VCF 文件的内容,其路径列在 VCF_files 中。

我真的很困惑我做错了什么,如果有人能帮助我,我将非常感谢!

谢谢!

【问题讨论】:

    标签: bash gnu-parallel vcf-variant-call-format


    【解决方案1】:

    对于这么长的命令,我通常会定义一个函数:

    doit() {
      ...
    }
    export -f doit
    

    然后在单个输入上进行测试。

    当它起作用时:

    parallel --link doit :::: ${VCF_files} ${results} ${tumor_ids}
    

    但如果你想使用单个命令,它看起来像:

    ${parallel} --link "perl ${vcf2maf} --input-vcf {1} \
                                    --output-maf ${maf_dir}/{2}.maf \
                                    --tumor-id {3} \
                                    --tmp-dir ${vcf_dir} \
                                    --vep-path ${vep_script} \
                                    --vep-data ${vep_data} \
                                    --ref-fasta ${fasta} \
                                    --filter-vcf ${filter_vcf}" :::: ${VCF_files} ${results} ${tumor_ids}
    

    GNU Parallel 的替换字符串是 {1}、{2} 和 {3} - 而不是 ${1}、${2} 和 ${3}。

    --dryrun 是你的朋友,当 GNU Parallel 没有做你期望它做的事情时。

    【讨论】:

      猜你喜欢
      • 2019-02-10
      • 2018-07-12
      • 1970-01-01
      • 2021-10-05
      • 1970-01-01
      • 2012-02-16
      • 2017-04-25
      • 2017-12-23
      • 1970-01-01
      相关资源
      最近更新 更多