Skip to content

Conversation

@ekg
Copy link
Contributor

@ekg ekg commented Oct 20, 2025

Summary

Hides advanced sorting configuration options from --help output to simplify the CLI interface while keeping them functional for power users.

Changes

Added hide = true to 8 sorting-related flags:

  • --skip-sgd, --skip-groom, --skip-topo - Skip individual pipeline stages
  • --sgd-iter-max, --sgd-eta-max - SGD iteration parameters
  • --sgd-theta, --sgd-eps, --sgd-cooling-start - SGD tuning parameters

The main user-facing control --no-sort remains visible.

Rationale

Most users don't need to tune SGD parameters or selectively skip pipeline stages. Hiding these options:

  • Simplifies the help text
  • Reduces cognitive load for new users
  • Keeps advanced functionality available for those who need it

Hidden flags remain fully functional if specified on the command line.

Testing

  • ✅ Build succeeds
  • ✅ All tests pass (cargo test)
  • --help shows simplified output
  • ✅ Hidden flags still work (verified --skip-sgd)

ekg added 3 commits October 20, 2025 18:04
Simplifies the user interface by hiding detailed sorting config options.
Users only see --no-sort as the main control, but advanced options
remain functional if you know about them.

Hidden from help (but still work):
- --skip-sgd, --skip-groom, --skip-topo
- --sgd-iter-max, --sgd-eta-max
- --sgd-theta, --sgd-eps, --sgd-cooling-start

Visible:
- --no-sort (simple on/off for all sorting)

This keeps the interface clean for most users while preserving
advanced configuration for developers and power users.
- Updated sparsification format from 'tree:K,K2,F,SIZE' to 'tree:neighbor,stranger,random,k-mer'
  for clearer parameter names (neighbor=k-nearest, stranger=k-farthest)

- Removed legacy sparsification parsing code that was causing confusing error messages
  when using tree sampling

- Removed unused sparsity_threshold field from SeqRush struct - sparsification now
  handled entirely at the aligner level through SparsificationStrategy enum

- Updated all test code to match new SeqRush::new() signature

This eliminates the "Invalid sparsification value" warning that appeared when
using tree sampling, making the output cleaner.
Allow shorter forms of tree sampling for convenience:
- tree:3            → TreeSampling(3, 0, 0.0, 16)
- tree:3,2          → TreeSampling(3, 2, 0.0, 16)
- tree:3,2,0.1      → TreeSampling(3, 2, 0.1, 16)
- tree:3,2,0.1,21   → TreeSampling(3, 2, 0.1, 21)

Defaults:
- stranger count: 0
- random fraction: 0.0
- k-mer size: 16

This makes the most common case (just specifying k-nearest neighbors)
much simpler to type.
@ekg ekg merged commit bf68c7b into main Oct 21, 2025
2 checks passed
@ekg ekg deleted the hide-sorting-config branch October 21, 2025 01:06
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.

2 participants