Skip to content

fix(output): move pass-1 SJ tab into <prefix>_STARpass1/SJ.out.tab#44

Open
pinin4fjords wants to merge 2 commits into
scverse:mainfrom
pinin4fjords:fix/output-shape-gaps
Open

fix(output): move pass-1 SJ tab into <prefix>_STARpass1/SJ.out.tab#44
pinin4fjords wants to merge 2 commits into
scverse:mainfrom
pinin4fjords:fix/output-shape-gaps

Conversation

@pinin4fjords
Copy link
Copy Markdown

@pinin4fjords pinin4fjords commented May 12, 2026

Summary

STAR keeps two-pass intermediates inside <prefix>_STARpass1/ with the pass-1 splice tab named SJ.out.tab inside that directory. rustar was emitting it as <prefix>SJ.pass1.out.tab at the top level. This PR moves the file to the STAR-equivalent location.

The file content is unchanged — only the path moves. The <prefix>_STARpass1/ directory is create_dir_all'd before the write.

Test plan

  • Integration test asserts <prefix>_STARpass1/SJ.out.tab exists after a --twopassMode Basic run
  • Integration test asserts top-level <prefix>SJ.pass1.out.tab does NOT exist
  • cargo build
  • cargo clippy --lib -- -D warnings
  • cargo fmt --check
  • cargo test --lib (383 pass) + cargo test --test alignment_features test_two_pass_mode (pass)

Fixes #28

pinin4fjords and others added 2 commits May 12, 2026 18:37
STAR writes three log files alongside Log.final.out and keeps two-pass
intermediates in <prefix>_STARpass1/. rustar was only writing
Log.final.out and emitting the pass-1 SJ tab as
<prefix>SJ.pass1.out.tab at the top level.

Add minimal Log.out (parameters dump + per-phase timestamps) and
Log.progress.out (timestamp + mapping speed) writers next to the
existing Log.final.out writer. Move the pass-1 SJ tab into
<prefix>_STARpass1/SJ.out.tab and mkdir the parent first.

The Log.out content is intentionally a stub matching the file's
existence rather than STAR's full verbosity; that's a follow-up.

Fixes scverse#28

Co-Authored-By: Claude <noreply@anthropic.com>
The previous commit added writers that mimicked STAR's section-header
structure with placeholder content (a Debug-format params dump + three
timestamps for Log.out, a header + final-timestamp line for
Log.progress.out). That closes the file-existence gap but makes the
output look like STAR-equivalent verbose logging when it isn't —
downstream tools parsing for memory usage, per-chunk progress, or
warnings would silently get nothing.

Drop the stub writers. The SJ.pass1.out.tab → <prefix>_STARpass1/SJ.out.tab
placement fix stays — that's a real path-parity change with no fakery.

Real STAR-equivalent Log.out / Log.progress.out content (per-phase
progress, warnings, memory, periodic updates during long runs) is a
separate engineering effort, not a stub.

Co-Authored-By: Claude <noreply@anthropic.com>
@pinin4fjords pinin4fjords changed the title feat(output): emit Log.out, Log.progress.out, and <prefix>_STARpass1/SJ.out.tab fix(output): move pass-1 SJ tab into <prefix>_STARpass1/SJ.out.tab May 12, 2026
@pinin4fjords
Copy link
Copy Markdown
Author

Verified end-to-end on macOS/aarch64 against the rebuilt fix branch (commit e91433a — stubs reverted, placement-only).

PE yeast + --twopassMode Basic:

$ ls V28v2./
Aligned.out.bam
Log.final.out
SJ.out.tab
_STARpass1

$ ls V28v2./_STARpass1/
SJ.out.tab

$ [ -f V28v2./SJ.pass1.out.tab ] && echo PRESENT || echo absent
absent

<prefix>_STARpass1/SJ.out.tab lands as expected, top-level SJ.pass1.out.tab is gone. Log.out and Log.progress.out are correctly absent — those stub writers were pulled out of this PR's scope (the placeholder content would have misled consumers; real STAR-parity for those files is left as a follow-up tracked on issue #28).

LGTM on the scoped-down PR.

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.

Move pass-1 SJ tab from <prefix>SJ.pass1.out.tab to <prefix>_STARpass1/SJ.out.tab

1 participant