We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Revert seed selection to single-marker COMEBin approach Multi-marker selection (one best contig per marker) causes genome fragmentation: multiple SCG-containing contigs from the same genome each become fixed seeds, so Leiden cannot merge them. Result: 81 seeds → 4 HQ (regression from 8 HQ). Reverted to: pick one marker with count == median_count (smallest qlen tiebreaker), take ALL its contigs as seeds. Single-copy gene guarantees N hits = N genomes = N seeds. Still uses checkm_markers_only.hmm (206 profiles) for better marker detection.
QualityLeiden Phase 1: penalize edges between contigs sharing SCG markers Before passing edges to libleidenalg, scale down weights between contigs that share the same single-copy gene: w' = w * exp(-3 * n_shared_markers). A single shared marker reduces the edge to ~5% of original, making libleidenalg unlikely to merge contigs from different genomes into the same cluster. Phase 2 subgraph extraction still uses original edge weights (adj_ built from unmodified edges).
QualityLeiden Phase 2: replace broken local-move with contamination splitting Old Phase 2 used custom delta_modularity_fast() for local moves, but libleidenalg's ~400-cluster output is not a local optimum under our backend → all moves positive → pathological merging to 25 clusters. New Phase 2: for each cluster with dup_excess > 0 (duplicate markers = contamination), extract its subgraph and re-run libleidenalg at 3x resolution. Accept splits that reduce total dup_excess. Uses libleidenalg throughout (no objective mismatch).
Improve seed selection: all qualifying markers → one best contig each Old COMEBin approach: pick ONE marker at median count, take ALL its contigs. New approach: all markers with count ≤ median → best contig per marker (highest alignment coverage) → deduplicated union. With checkm_markers_only.hmm (206 profiles), this gives ~50-100 diverse seeds anchoring different genome families instead of ~23 from a single marker.
Add CheckM marker sets + fix QualityLeiden Phase 2 over-merging - Add auxiliary/checkm_markers_only.hmm (206 profiles) and scripts/checkm_ms/{bacteria,archaea}.ms - Change default HMM from bacar_marker.hmm to checkm_markers_only.hmm for seeds + quality - MarkerIndex now uses CheckMMarkerSets colocation weights (build()) when ms files available, falls back to uniform (build_from_hits()) otherwise - Disable QualityLeiden Phase 2: unconstrained local moves from libleidenalg's partition are not RBER local maxima in our backend, causing pathological 400→25 cluster merging (lambda=100 max, 100% commit rate) - Add SeedGenerator::search_additional_hmm() for future separate-HMM marker searches - Wire --checkm-hmm, --bacteria-ms, --archaea-ms CLI flags
Add test infrastructure with CheckM2 validation - run_tests.sh: SLURM array job for parallel testing - .scripts/validate_bins_checkm2.sh: CheckM2 validation script - Results tracked by git branch/commit in folder structure - params.txt and summary.txt saved per run
Add project instructions with 11 HQ configuration
Initial commit: AMBER metagenomic binner with aDNA-aware encoder