Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
215 changes: 211 additions & 4 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@ mimalloc = { version = "0.1", default-features = false }
libmimalloc-sys = { version = "0.1.49", features = ["extended"] } # mi_option_set (purge_delay); see main.rs
libdeflater = "1.25.2"
noodles-bgzf = { version = "0.49", features = ["libdeflate"] }
binseq = { version = "0.9.4", default-features = false, features = ["anyhow"] }

[dev-dependencies]
assert_cmd = "2"
Expand Down
21 changes: 21 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,26 @@ target/release/rustar-aligner \
--outFileNamePrefix /path/to/output_
```

### CBQ input

CBQ is detected from the file header, so the filename extension is irrelevant.
A paired-end CBQ stores both mates in one file.
CBQ is currently limited to ordinary alignment input; it cannot be combined
with `--readFilesCommand`, STARsolo/SmartSeq workflows, or qualityless
unmapped-FASTQ output.

`--readFilesNthreads` controls decoder concurrency only (`0` derives a bounded
default from `--runThreadN`); it does not affect how much input is held in
memory, which is fixed by the window budget.

```bash
target/release/rustar-aligner \
--genomeDir /path/to/genome_index \
--readFilesIn reads.cbq \
--readFilesNthreads 4 \
--outFileNamePrefix /path/to/output_
```

### BAM output

```bash
Expand Down Expand Up @@ -207,6 +227,7 @@ resident; the 16 GB sparse index is stable at ~54 s.</sub>
## Supported Features

- Single-end and paired-end alignment with mate rescue
- Native single-file CBQ input (single-end or interleaved paired-end), with parallel decoding controlled by `--readFilesNthreads`. Decoded reads are bounded by a fixed per-window record budget, so peak input memory is independent of both the thread count and the input file's block size
- Read-end alignment mode (`--alignEndsType Local` (default) / `EndToEnd` / `Extend5pOfRead1` / `Extend5pOfReads12` / `Extend3pOfRead1`)
- SAM, unsorted BAM, and coordinate-sorted BAM output (`--outSAMtype SAM`, `BAM Unsorted`, or `BAM SortedByCoordinate`)
- Multi-threaded parallel alignment (`--runThreadN`)
Expand Down
Loading