From b8ba281a5e1fb88ac854dfba0c221dbc7b2651f0 Mon Sep 17 00:00:00 2001 From: Jonathan Manning Date: Tue, 12 May 2026 17:59:51 +0100 Subject: [PATCH 1/3] feat(params): accept --limitGenomeGenerateRAM for STAR CLI compatibility MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit STAR exposes --limitGenomeGenerateRAM as a memory cap for genomeGenerate. Pipelines that wrap STAR commonly derive a value from their task resources and pass it through. Currently rustar rejects the flag at the CLI parser, breaking those pipelines. Accept the flag with STAR's default of 31 GiB. The value is parsed but not enforced — rustar's memory management is independent. Fixes #25 --- src/params.rs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/params.rs b/src/params.rs index 9c124b8..d1f7434 100644 --- a/src/params.rs +++ b/src/params.rs @@ -363,6 +363,12 @@ pub struct Parameters { #[arg(long = "limitBAMsortRAM", default_value_t = 0)] pub limit_bam_sort_ram: u64, + /// Maximum available RAM (bytes) for genome generation. + /// + /// Accepted for STAR CLI compatibility. Not currently enforced — rustar uses its own memory management. + #[arg(long = "limitGenomeGenerateRAM", default_value_t = 31_000_000_000_u64)] + pub limit_genome_generate_ram: u64, + /// Route primary alignment output to stdout instead of a file. /// Values: None (default), SAM, BAM_Unsorted, BAM_SortedByCoordinate. #[arg(long = "outStd", default_value = "None")] From 9a7be3ef43d7c13d919df0507188f3bc417ae4bd Mon Sep 17 00:00:00 2001 From: Jonathan Manning Date: Tue, 12 May 2026 18:12:34 +0100 Subject: [PATCH 2/3] chore(params): trim verbose doc comment --- src/params.rs | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/params.rs b/src/params.rs index d1f7434..61644a2 100644 --- a/src/params.rs +++ b/src/params.rs @@ -363,9 +363,7 @@ pub struct Parameters { #[arg(long = "limitBAMsortRAM", default_value_t = 0)] pub limit_bam_sort_ram: u64, - /// Maximum available RAM (bytes) for genome generation. - /// - /// Accepted for STAR CLI compatibility. Not currently enforced — rustar uses its own memory management. + /// Maximum RAM (bytes) for genome generation. #[arg(long = "limitGenomeGenerateRAM", default_value_t = 31_000_000_000_u64)] pub limit_genome_generate_ram: u64, From cc3e48afb1afcdede953856fe0a82bb5cefc1f63 Mon Sep 17 00:00:00 2001 From: Jonathan Manning Date: Tue, 12 May 2026 18:47:05 +0100 Subject: [PATCH 3/3] chore(params): warn at runtime when --limitGenomeGenerateRAM is set Accepting the flag silently could mislead a user who passes a non-default cap into thinking rustar enforces it. Emit a warning whenever the value differs from STAR's default so the user knows the cap isn't applied. Co-Authored-By: Claude --- src/lib.rs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/lib.rs b/src/lib.rs index d229763..0d59ab9 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -50,6 +50,13 @@ fn genome_generate(params: &Parameters) -> anyhow::Result<()> { .collect::>() ); + if params.limit_genome_generate_ram != 31_000_000_000 { + log::warn!( + "--limitGenomeGenerateRAM {} accepted but not enforced; rustar manages genome-generation memory independently", + params.limit_genome_generate_ram + ); + } + info!("Building genome index..."); let index = GenomeIndex::build(params)?;