PASA运行过程报错:
Running CMD: /share/work/biosoft/PASApipeline/PASApipeline-v2.5.2/scripts/update_alignment_status.dbi -M 'pasa.sqlite' < alignment.validations.output > pasa_run.log.dir/alignment.validation_loading.output
sh: alignment.validations.output: No such file or directory
Error, cmd: /share/work/biosoft/PASApipeline/PASApipeline-v2.5.2/scripts/update_alignment_status.dbi -M 'pasa.sqlite' < alignment.validations.output > pasa_run.log.dir/alignment.validation_loading.output died with ret 256 No such file or directory at /share/work/biosoft/PASApipeline/PASApipeline-v2.5.2/PerlLib/Pipeliner.pm line 187.
Pipeliner::run(Pipeliner=HASH(0x2634208)) called at /share/work/biosoft/PASApipeline/latest/Launch_PASA_pipeline.pl line 1047
根本原因是上一步的结果 alignment.validations.output没跑出来,那么如何看自己上一步的运行命令,然后续跑呢?
# 1) 跑到哪一步了(最后成功的 chkpt)
ls -lt __pasa_pasa.sqlite_*_chkpts/*.ok | head -20
# 2) 上一条实际执行的完整命令(直接抄这段手动复现)
grep validate_alignments __pasa_pasa.sqlite_*_chkpts.cmds_log
然后发现我的问题在于alignAssembly.config配置文件的时候写了行尾 # 注释,所以运行的时候命令是这样:
/share/work/biosoft/PASApipeline/PASApipeline-v2.5.2/scripts/validate_alignments_in_db.dbi -M 'pasa.sqlite' -g genome.fa -t all_transcripts.fasta.clean --MAX_INTRON_LENGTH 1000000 --CPU 20 --MIN_PERCENT_ALIGNED 75 #设置转录本比对到基因组上的最小比对百分比阈值为 75% --MIN_AVG_PER_ID 95 #指定比对区域的最小平均序列同一性为 95% --NUM_BP_PERFECT_SPLICE_BOUNDARY 0 #设置完美剪接边界所需的连续匹配碱基数量为 0 > alignment.validations.output
因此先修改config文件,把行尾注释删除,然后删除这个文件:
__pasa_pasa.sqlite_SQLite_chkpts/validate_alignments.ok
重新运行PASA的主程序:
Launch_PASA_pipeline.pl -f FL_accs.txt -c alignAssembly.config -R -g genome.fa -T -t all_transcripts.fasta.clean -u all_transcripts.fasta --CPU 20 --ALIGNERS blat,minimap2 --TRANSDECODER --TDN tdn.accs --MAX_INTRON_LENGTH 1000000
续跑注意点:不要加-C -r参数
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!