使用Nextflow分析MinION数据时BLAST+退出码2故障求助
问题描述
使用Nextflow 22.04.5分析MinION测序数据时,blast_raw进程因BLAST+错误退出码2终止,核心问题包括:
- BLAST数据库
/home/blast/nt_db_20221011/nt无法找到索引/别名文件 - 命令参数拼写错误(如
numgnments应为num_alignments,blast_formatter参数输入错误) - 脚本中命令拼接语法错误,导致实际执行的命令参数混乱
- 需要补充生成Excel、FASTA格式的BLAST结果
原命令执行输出错误:
Warning: [blastn] Examining 5 or more matches is recommended
BLAST Database error: No alias or index file found for nucleotide database [/home/blast/nt_db_20221011/nt] in search path [/home/shaextflow_pipelines/nf_pipeline/20221025_insect/work/96/e885b7e53e1bcf30e33526265e9a3c::]
原执行的错误命令(Nextflow生成的.command.sh内容):
blastn -query insect.fasta -db /home/blast/nt_db_20221011/nt -outfmt 11 -out blastrawreads.asn -evalue 0.1 -numgnments 1 blast_formatter blastr-archive blastrawreads.asn awrea-outfmt 5 -out blastrawreads.xml blast_formatter -archive blastrawreads.asn -outfmt "6 qaccver saccver pident length evalue bitscore stitle" -out blastrawreads_rt.tsv sort -n -r -k 6 blastrawreads_unsort.tsv > blastrawreads.tsv
修复方案
1. 验证BLAST数据库完整性
首先确认数据库索引文件存在:
ls -l /home/blast/nt_db_20221011/nt.*
需确保存在nt.nhr、nt.nin、nt.nsq等索引文件。如果缺失,重新运行解压命令并检查:
update_blastdb.pl --decompress nt --passive --source gcp --dir /home/blast/nt_db_20221011
2. 修正BLAST命令参数错误
- 将
numgnments改为num_alignments(或使用更推荐的短参数-max_target_seqs 1) - 修正
blast_formatter的参数拼写:blastr-archive→-archive,awrea-outfmt→-outfmt - 补充生成Excel(制表符分隔TSV可直接导入Excel)、FASTA格式结果的命令
3. 修复Nextflow脚本语法错误
- 移除
blastn命令最后一行的多余反斜杠,避免命令拼接混乱 - 确保所有命令的换行反斜杠正确,避免参数错位
- 增加输出FASTA、Excel兼容TSV文件的通道配置
修改后的完整Nextflow脚本
#!/usr/bin/env nextflow // data_location params.outdir = './results' params.in = "$PWD/*.fastq" dataset = Channel.fromPath(params.in) params.db = "/home/blast/nt_db_20221011/nt" process concatenate { tag "$x" publishDir "${params.outdir}", mode:'copy' input: path (x) from dataset output: path ("output.fastq") into cat_ch script: """ cat $x > output.fastq """ } process fastqconvert { tag "$y" publishDir "${params.outdir}", mode:'copy' input: path (y) from cat_ch output: path ("insect.fasta") into convert1_ch script: """ seqtk seq -a $y > insect.fasta """ } process blast_raw { tag "$z" publishDir "${params.outdir}", mode:'copy' input: path (z) from convert1_ch output: path ('blastrawreads.asn') into blastrawreads_asn_ch path ('blastrawreads.xml') into blastrawreads_xml_ch path ('blastrawreads_fasta.fasta') into blastrawreads_fasta_ch path ('blastrawreads_excel.tsv') into blastrawreads_excel_ch script: """ # 运行blastn生成ASN格式存档 blastn \\ -query $z \\ -db ${params.db} \\ -outfmt 11 \\ -out blastrawreads.asn \\ -evalue 0.1 \\ -max_target_seqs 1 # 生成XML格式结果 blast_formatter \\ -archive blastrawreads.asn \\ -outfmt 5 \\ -out blastrawreads.xml # 生成FASTA格式比对结果 blast_formatter \\ -archive blastrawreads.asn \\ -outfmt "0" \\ -out blastrawreads_fasta.fasta # 生成Excel兼容的TSV格式(可直接导入Excel) blast_formatter \\ -archive blastrawreads.asn \\ -outfmt "6 qaccver saccver pident length evalue bitscore stitle" \\ -out blastrawreads_unsort.tsv # 按evalue排序TSV sort -n -r -k 6 blastrawreads_unsort.tsv > blastrawreads_excel.tsv """ }
验证步骤
- 运行修改后的脚本:
nextflow run your_script.nf - 检查工作目录中的
.command.sh,确认命令参数正确 - 查看
params.outdir下的结果文件,确认ASN、XML、FASTA、TSV(Excel兼容)文件生成正常
内容的提问来源于stack exchange,提问作者naqs
相关产品推荐
相关产品推荐

