Skip to content

BUG: HMMER Version Conflict Causes Crash with '--cut_tc' (Strict Error Handling) #44

@ystone1101

Description

@ystone1101

Summary
The main.py bin subcommand crashes during the seed generation phase because the hmmsearch command uses the problematic --cut_tc flag. This error is triggered by the strict error handling introduced in newer HMMER versions (v3.3.x and later).

Setting Value
OS/Architecture Linux/ARM64
System Type NVIDIA DGX Spark
HMMER Version v3.3.x or later (Strict behavior)
Working Environment HMMER 3.1b2 (Legacy/amd64) works without issue

The process fails when executing the hmmsearch command with the following error reported in the .err file:

Warning

Error: TC bit thresholds unavailable on model BA00001

Technical Root Cause: The marker file (bacar_marker.hmm) is missing the required TC (Trusted Cutoff) scores.
We confirmed that the uploaded .hmm file does not contain these thresholds.
The legacy HMMER version ignored this absence, while the modern version aborts the process as a fatal error.

Proposed Fix: The necessary flag must be removed and replaced with a standard E-value cutoff.

The fix is required because the database lacks the necessary metadata.
File: COMEBin/utils.py
Modification: Find the hmmCmd variable inside the gen_seed function (around line 166) and replace the command structure.

# [Fix: Remove --cut_tc and add -E 1e-5 (Standard Filter)]
hmmCmd = hmmExeURL + " --domtblout " + hmmResultURL + " -E 1e-5 --cpu " + str(
    threads) + " " + markerURL + " " + fragResultURL + " 1>" + hmmResultURL + ".out 2>" + hmmResultURL + ".err"

Notes on Other Compatibility Issues (Crucial for ARM64)
Scikit-learn Version: The KMeans initialization in cluster.py must be updated (remove n_jobs=-1 and change algorithm="full" $\rightarrow$ algorithm="lloyd").
Perl Regex: The contig name parsing regex in the auxiliary Perl script required adding an OR condition (||) due to varying FragGeneScan output formats on ARM64.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions