我正在尝试使用GNU Parallel和一些基本的生物信息工具,例如lastz。假设我有10个序列,我想对它们全部使用lastz,那么我可以使用以下命令:
parallel --dryrun lastz 'pathToFile/seq{}.fa query.fasta --format=text > LASTZ_results_seq{}' ::: {1..10}
这很好用,可以返回:
lastz pathToFile/seq1.fa query.fasta --format=text > LASTZ_results_seq1
lastz pathToFile/seq2.fa query.fasta --format=text > LASTZ_results_seq2
lastz pathToFile/seq3.fa query.fasta --format=text > LASTZ_results_seq3
...
lastz pathToFile/seq10.fa query.fasta --format=text > LASTZ_results_seq10
但理想情况下,我希望这一步骤是bash脚本的一部分,该脚本接受三个命令行参数,因此序列的数量(例如1到10)在命令行中给出($2 = startValue,$3 = endValue)。我认为将其更改为以下内容将起作用:
parallel --dryrun lastz 'pathToFile/seq{}.fa query.fasta --format=text > LASTZ_results_seq{}' ::: {"$2".."$3"}
但是相反,它返回的是
lastz pathToFile//seq\{\1..\10\} query.fasta --format=text > LASTZ_results_seq\{\1..\10\}
请问有人能告诉我这里出了什么问题吗?看起来它把$2解释为1,$3解释为10,但是却不能将其视为一系列数字...