You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用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
    """
}
验证步骤
  1. 运行修改后的脚本:nextflow run your_script.nf
  2. 检查工作目录中的.command.sh,确认命令参数正确
  3. 查看params.outdir下的结果文件,确认ASN、XML、FASTA、TSV(Excel兼容)文件生成正常

内容的提问来源于stack exchange,提问作者naqs

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 00:55:20