Skip to content

Feature/16s standalone#14

Open
KWchip wants to merge 6 commits intothh32:masterfrom
KWchip:feature/16s-standalone
Open

Feature/16s standalone#14
KWchip wants to merge 6 commits intothh32:masterfrom
KWchip:feature/16s-standalone

Conversation

@KWchip
Copy link
Copy Markdown

@KWchip KWchip commented Apr 8, 2026

Description

This PR introduces a 16s standalone mode and significantly improves the execution time of the IMNGS ecological analysis through multithreading.

As a researcher utilizing Protologger for environmental ecosystem profiling, I found the IMNGS module incredibly powerful, but frequently needed to contextualize 16S isolates without running the full WGS pipeline.

Key Changes

  • Added 16s execution mode: Bypasses WGS requirements (CheckM, GTDB-Tk, PROKKA, etc.) to strictly execute taxonomic placement, tree building, and IMNGS prevalence analysis.
  • Multithreaded IMNGS BLAST: Implemented concurrent.futures.ThreadPoolExecutor for the IMNGS amplicon BLAST loop. Controlled via a new -t / --threads argument (default: 1). In local testing on 70 threads, this reduced the ecological analysis step time by ~91%.
  • Tool Compatibility Updates: * Updated muscle command flags to be compatible with Muscle v5 (-align and -output).
    • Added a safety catch for fastANI to prevent crashes when GTDB-Tk does not return reference genomes (e.g., when using modern GTDB releases like r226 that lack the fastani database folder).
    • Bypassed the UCHIME chimera check, as usearch is proprietary and frequently unavailable in standard bioinformatics environments.

Testing

  • Tested 16s mode: Successfully completes taxonomic and ecological analysis, exiting cleanly before genome steps.
  • Tested full mode: Successfully runs end-to-end, inheriting the new multithreaded IMNGS logic. Ecological prevalence outputs have been verified 1:1 against the original sequential pipeline.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant