Repository navigation
feat(cli): parameter files, --sysShell, and a shell-run readFilesCommand - #239
Open
BenjaminDEMAILLE wants to merge 4 commits into
Open
BenjaminDEMAILLE wants to merge 4 commits into
BenjaminDEMAILLE wants to merge 4 commits into
Conversation
…acceptance Closes six of the twenty-five STAR 2.7.11b names still listed in NOT_YET_ACCEPTED, chosen as the ones no open theme PR already owns. - --parametersFiles: STAR-format parameter files (name value..., # and // comments). Files are expanded before clap sees the arguments, and a flag the user also passes on the command line is dropped from the file side, so the command line wins even for multi-value parameters where clap would append. An unknown name, an empty value, an unreadable file, or a nested parametersFiles is fatal and names the file and line, as in STAR. - --versionGenome: genomeParameters.txt is checked before the index is read. Versions compare by component, so 2.7.10a sorts after 2.7.4a rather than before it as a string comparison would have it. - --sysShell, and --readFilesCommand now runs through a shell. Spawning the whole command string as one program name meant "gunzip -c", the example in STAR's own documentation, failed as a missing program. Where no POSIX shell is guaranteed the command is split into words instead. - --outFilterMismatchNoverReadLmax: mismatch-to-read-length ratio, SE and PE. - --alignTranscriptsPerReadNmax: caps alignments per read before the filters. - --alignSoftClipAtReferenceEnds: No prohibits clipping past a chromosome end. Machine-checked STAR parameter coverage: 184/203, with the floor asserted by a new test that measures the figure from clap rather than restating it. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The aligner-core PR implements outFilterMismatchNoverReadLmax, alignTranscriptsPerReadNmax and alignSoftClipAtReferenceEnds as part of its own theme, and it is the older and larger change, so this PR yields them rather than racing it. What remains here is the parameter-file loader, the genome version check, and the shell-run readFilesCommand fix. Machine-checked coverage for this branch alone: 181/203.
BenjaminDEMAILLE
force-pushed
the
feat/cli-surface-parameters
branch
from
August 26, 2026 22:01
9d7773e to
60e92e0
Compare
19 of 23 tasks
Conflict in tests/parameter_surface.rs only: main now accepts seedSplitMin, so it leaves the not-yet-accepted list. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
11 tasks
Drop --versionGenome: A3 (#328) ports STAR's strict genome version check, which supersedes this PR's lenient one. ReadCommand now goes through the several-files-per-mate readers from D (#333), so --readFilesCommand and --sysShell apply to every file of a comma-separated list. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this closes
Two of the STAR 2.7.11b names in
NOT_YET_ACCEPTED, plus a--readFilesCommandbug. Each is implemented, not merely accepted:--parametersFilesname value...,#and//comments). Expanded before clap sees the arguments; a flag the user also passes on the command line is dropped from the file side, so the command line wins even for multi-value parameters, where clap would otherwise append. Unknown name, empty value, unreadable file, or a nestedparametersFilesis fatal and names the file and line.--sysShell--readFilesCommand.-is/bin/shon Unix.--readFilesCommand(fix)sysShell -c "<command> <file>"). Onmainit still spawns the whole string as one program name, sogunzip -c(the example in STAR's own documentation) fails as a missing program. Where no POSIX shell is guaranteed, the command is split into words instead. Paths are quoted. It applies to every file of a comma-separated--readFilesInlist.Changes since the first version
--versionGenomedropped. A3 (A3: SJ.out.tab filter, BySJout and the transcriptome BAM as STAR (#316, #315, #293, rest of #322) #328) ports STAR's strict genome version check, which supersedes the lenient one this PR had.versionGenomegoes back toNOT_YET_ACCEPTED.--outFilterMismatchNoverReadLmax,--alignTranscriptsPerReadNmax,--alignSoftClipAtReferenceEnds) were removed earlier, to leave them to the aligner-core work.mainafter A0 to E1:ReadCommandnow goes through D's (D: several read files per mate as STAR, and compression detected by content (#318, #272) #333) several-files-per-mate readers, in the bulk and solo paths.Testing
Tests for the parameter-file loader, the shell-run read command (multi-word command, chosen shell, path with spaces, no-shell word splitting, platform default) and a new one that checks the command follows the reader onto the second file of a list.
star_parameter_coverage_meets_the_floormeasures the accepted STAR names from clap.cargo fmt --check,cargo clippy --all-targets -- -D warningsandcargo test --all-targets(728 lib tests and all integration tests) pass.🤖 Generated with Claude Code