Skip to content

History

Revisions

  • 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.

    @genomewalker genomewalker committed Feb 18, 2026
    32a48b5
  • 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).

    @genomewalker genomewalker committed Feb 18, 2026
    66685d8
  • 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).

    @genomewalker genomewalker committed Feb 18, 2026
    23f255c
  • 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.

    @genomewalker genomewalker committed Feb 18, 2026
    2c8a298
  • 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

    @genomewalker genomewalker committed Feb 18, 2026
    abe52bc
  • 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

    @genomewalker genomewalker committed Feb 17, 2026
    c6c05cd
  • Add project instructions with 11 HQ configuration

    @genomewalker genomewalker committed Feb 17, 2026
    bb0010c
  • Initial commit: AMBER metagenomic binner with aDNA-aware encoder

    @genomewalker genomewalker committed Feb 17, 2026
    95b9d35