refactor: rename rebuild subcommand to filter

Rename the `rebuild` CLI subcommand to `filter` to better reflect its primary purpose of row-level selection and k-mer filtering. Update all associated CLI arguments, logging, error messages, and module registrations accordingly. Introduce a dedicated `Rebuild` subcommand for index compaction, fully decoupling it from the filtering logic. Also refine related documentation to align with the new naming and semantics.
This commit is contained in:
Eric Coissac
2026-06-09 15:22:57 +02:00
parent e66adef23d
commit 970460be42
6 changed files with 25 additions and 28 deletions
@@ -6,10 +6,10 @@ use obikpartitionner::filter::{MaxTotalCount, MinTotalCount};
use obisys::Reporter;
use tracing::info;
use super::predicate::FilterArgs;
use super::predicate::FilterArgs as KmerFilterArgs;
#[derive(Args)]
pub struct RebuildArgs {
pub struct FilterArgs {
/// Source index directory
pub source: PathBuf,
@@ -18,7 +18,7 @@ pub struct RebuildArgs {
pub output: PathBuf,
#[command(flatten)]
pub filter: FilterArgs,
pub filter: KmerFilterArgs,
/// Minimum total count across all genomes (count index only)
#[arg(long)]
@@ -37,7 +37,7 @@ pub struct RebuildArgs {
pub force: bool,
}
pub fn run(args: RebuildArgs) {
pub fn run(args: FilterArgs) {
let src = KmerIndex::open(&args.source).unwrap_or_else(|e| {
eprintln!("error opening source index: {e}");
std::process::exit(1);
@@ -50,7 +50,7 @@ pub fn run(args: RebuildArgs) {
};
info!(
"rebuild: {} genome(s), mode={:?}, source={}",
"filter: {} genome(s), mode={:?}, source={}",
&src.meta().genomes.len(), mode, args.source.display()
);
@@ -66,10 +66,10 @@ pub fn run(args: RebuildArgs) {
let mut rep = Reporter::new();
KmerIndex::rebuild(&args.output, &src, &filters, mode, args.force, &mut rep)
.unwrap_or_else(|e| {
eprintln!("error rebuilding index: {e}");
eprintln!("error filtering index: {e}");
std::process::exit(1);
});
rep.print();
info!("rebuilt index → {}", args.output.display());
info!("filtered index → {}", args.output.display());
}
+1 -1
View File
@@ -1,4 +1,5 @@
pub mod annotate;
pub mod filter;
pub mod pack;
pub(crate) mod predicate;
pub mod select;
@@ -9,7 +10,6 @@ pub mod estimate;
pub mod index;
pub mod merge;
pub mod query;
pub mod rebuild;
pub mod reindex;
pub mod superkmer;
pub mod unitig;
+3 -6
View File
@@ -20,10 +20,8 @@ enum Commands {
Index(cmd::index::IndexArgs),
/// Merge multiple built indexes into one
Merge(cmd::merge::MergeArgs),
/// Filter and compact an existing index into a new single-layer index
Rebuild(cmd::rebuild::RebuildArgs),
/// Alias for rebuild
Filter(cmd::rebuild::RebuildArgs),
/// Apply row-level selection (σ) to an index: retain only k-mers matching the predicates
Filter(cmd::filter::FilterArgs),
/// Project and/or aggregate genome columns into a new or in-place index
Select(cmd::select::SelectArgs),
/// Query an index with sequences and annotate matches
@@ -69,8 +67,7 @@ fn main() {
Commands::Index(args) => cmd::index::run(args),
Commands::Merge(args) => cmd::merge::run(args),
Commands::Dump(args) => cmd::dump::run(args),
Commands::Rebuild(args) => cmd::rebuild::run(args),
Commands::Filter(args) => cmd::rebuild::run(args),
Commands::Filter(args) => cmd::filter::run(args),
Commands::Select(args) => cmd::select::run(args),
Commands::Query(args) => cmd::query::run(args),
Commands::Annotate(args) => cmd::annotate::run(args),