Skip to content

Commit e515042

Browse files
committed
Release v0.0.25
1 parent 01dc461 commit e515042

9 files changed

Lines changed: 44 additions & 31 deletions

File tree

CHANGELOG.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ All notable changes to this project will be documented in this file. The format
44
is roughly based on [Keep a Changelog], and this project tries to adheres to
55
[Semantic Versioning].
66

7-
## [0.0.25] - TBD
7+
## [0.0.25] - 2026-02-04
88

99
### Added
1010

@@ -18,7 +18,6 @@ is roughly based on [Keep a Changelog], and this project tries to adheres to
1818

1919
- Fixes Zoe to use the latest sync'd portable SIMD in Rust nightly 1.95. For earlier versions, try Rust nightly 1.94.
2020

21-
2221
## [0.0.24] - 2026-01-26
2322

2423
### Added

Cargo.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[package]
22
edition = "2024"
33
name = "zoe"
4-
version = "0.0.25-dev"
4+
version = "0.0.25"
55
rust-version = "1.95"
66
description = "A nightly library for viral genomics"
77
license = "Apache-2.0"

src/alignment/profile.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -189,8 +189,8 @@ impl<'a, const S: usize> ScalarProfile<'a, S> {
189189
/// - `T` - The numeric type used for scores. `i8`, `i16`, `i32`, and `i64` use
190190
/// the signed algorithm, which is the most common. `u8`, `u16`, `u32`, and
191191
/// `u64` use the unsigned algorithm.
192-
/// - `N` - The number of SIMD lanes (usually 16, 32 or 64)
193-
/// - `S` - The size of the alphabet (usually 5 for DNA including `N`)
192+
/// - `N` - The number of SIMD lanes (usually 16, 32 or 64).
193+
/// - `S` - The size of the alphabet (usually 5 for DNA including `N`).
194194
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
195195
pub struct StripedProfile<'a, T, const N: usize, const S: usize>
196196
where
@@ -268,7 +268,7 @@ where
268268
where
269269
T: From<U>,
270270
U: AnyInt, {
271-
// SupportedLaneCount cannot presently be zero.
271+
// A SIMD vector cannot presently be of length 0
272272
let number_vectors = seq.len().div_ceil(N);
273273
let total_lanes = N * number_vectors;
274274

src/alignment/profile_set.rs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,10 @@ use std::{cell::OnceCell, sync::OnceLock};
1212
///
1313
/// ## Type Parameters
1414
///
15-
/// - `M` - The number of SIMD lanes for i8 profiles
16-
/// - `N` - The number of SIMD lanes for i16 profiles
17-
/// - `O` - The number of SIMD lanes for i32 profiles
18-
/// - `S` - The size of the alphabet (usually 5 for DNA including *N*)
15+
/// - `M` - The number of SIMD lanes for `i8` profiles.
16+
/// - `N` - The number of SIMD lanes for `i16` profiles.
17+
/// - `O` - The number of SIMD lanes for `i32` profiles.
18+
/// - `S` - The size of the alphabet (usually 5 for DNA including `N`).
1919
pub trait ProfileSets<'a, const M: usize, const N: usize, const O: usize, const S: usize>: Sized {
2020
/// Gets or initializes [`StripedProfile`] with elements of `i8` and `M`
2121
/// SIMD lanes and returns a reference to the field.
@@ -370,10 +370,10 @@ pub trait ProfileSets<'a, const M: usize, const N: usize, const O: usize, const
370370
///
371371
/// ## Type Parameters
372372
///
373-
/// - `M` - The number of SIMD lanes for `i8` profiles
374-
/// - `N` - The number of SIMD lanes for `i16` profiles
375-
/// - `O` - The number of SIMD lanes for `i32` profiles
376-
/// - `S` - The size of the alphabet (usually 5 for DNA including *N*)
373+
/// - `M` - The number of SIMD lanes for `i8` profiles.
374+
/// - `N` - The number of SIMD lanes for `i16` profiles.
375+
/// - `O` - The number of SIMD lanes for `i32` profiles.
376+
/// - `S` - The size of the alphabet (usually 5 for DNA including `N`).
377377
#[derive(Debug, Clone)]
378378
pub struct LocalProfiles<'a, const M: usize, const N: usize, const O: usize, const S: usize> {
379379
pub(crate) seq: &'a [u8],

src/data/types/amino_acids/mod.rs

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,9 @@ impl AminoAcids {
9494
}
9595

9696
/// Cuts the N-terminus of the [`AminoAcids`] just prior to the new starting
97-
/// index (0-based). Be aware that this clones the internal buffer!
97+
/// index (0-based).
98+
///
99+
/// This method clones the internal buffer.
98100
#[inline]
99101
pub fn cut_to_start(&mut self, new_start: usize) {
100102
*self = Self(self.0.drain(new_start..).collect());
@@ -107,7 +109,8 @@ impl AminoAcids {
107109
}
108110

109111
/// Prepends the amino acid sequence with the given slice.
110-
/// This method always allocates.
112+
///
113+
/// This method allocates.
111114
#[inline]
112115
pub fn prepend_from_slice(&mut self, slice: impl AsRef<[u8]>) {
113116
let slice = slice.as_ref();
@@ -120,14 +123,17 @@ impl AminoAcids {
120123
*self = AminoAcids(new);
121124
}
122125

123-
/// Pads the C-terminus (end) of the [`AminoAcids`] by `aa` for `count` times.
126+
/// Pads the C-terminus (end) of the [`AminoAcids`] by `aa` for `count`
127+
/// times.
124128
#[inline]
125129
pub fn pad_end(&mut self, aa: u8, count: usize) {
126130
self.0.extend(std::iter::repeat_n(aa, count));
127131
}
128132

129133
/// Pads the N-terminus (start) of the [`AminoAcids`] by `aa` for `count`
130-
/// times. This method always allocates.
134+
/// times.
135+
///
136+
/// This method allocates.
131137
#[inline]
132138
pub fn pad_start(&mut self, aa: u8, count: usize) {
133139
if count == 0 {
@@ -140,8 +146,9 @@ impl AminoAcids {
140146
}
141147

142148
/// Pads the [`AminoAcids`] on both flanking sides by `aa` for
143-
/// `amount_before` and `amount_after` respectively. This method always
144-
/// allocates.
149+
/// `amount_before` and `amount_after` respectively.
150+
///
151+
/// This method allocates.
145152
#[inline]
146153
pub fn pad_both_sides(&mut self, aa: u8, amount_before: usize, amount_after: usize) {
147154
if amount_before == 0 && amount_after == 0 {

src/data/types/nucleotides/mod.rs

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,9 @@ impl Nucleotides {
126126
}
127127

128128
/// Cuts the 5' end of the [`Nucleotides`] just prior to the new starting
129-
/// index (0-based). Be aware that this clones the internal buffer!
129+
/// index (0-based).
130+
///
131+
/// This method clones the internal buffer.
130132
#[inline]
131133
pub fn cut_to_start(&mut self, new_start: usize) {
132134
*self = Nucleotides(self.0.drain(new_start..).collect());
@@ -139,7 +141,8 @@ impl Nucleotides {
139141
}
140142

141143
/// Prepends the nucleotide sequence with the given slice.
142-
/// This method always allocates.
144+
///
145+
/// This method allocates.
143146
#[inline]
144147
pub fn prepend_from_slice(&mut self, slice: impl AsRef<[u8]>) {
145148
let slice = slice.as_ref();
@@ -152,14 +155,17 @@ impl Nucleotides {
152155
*self = Nucleotides(new);
153156
}
154157

155-
/// Pads the end or 3' end of the [`Nucleotides`] by `base` for `count` times.
158+
/// Pads the end or 3' end of the [`Nucleotides`] by `base` for `count`
159+
/// times.
156160
#[inline]
157161
pub fn pad_end(&mut self, base: u8, count: usize) {
158162
self.0.extend(std::iter::repeat_n(base, count));
159163
}
160164

161165
/// Pads the start or 5' end of the [`Nucleotides`] by `base` for `count`
162-
/// times. This method always allocates.
166+
/// times.
167+
///
168+
/// This method allocates.
163169
#[inline]
164170
pub fn pad_start(&mut self, base: u8, count: usize) {
165171
if count == 0 {
@@ -172,8 +178,9 @@ impl Nucleotides {
172178
}
173179

174180
/// Pads the [`Nucleotides`] on both flanking sides by `base` for
175-
/// `amount_before` and `amount_after` respectively. This method always
176-
/// allocates.
181+
/// `amount_before` and `amount_after` respectively.
182+
///
183+
/// This method allocates.
177184
#[inline]
178185
pub fn pad_both_sides(&mut self, base: u8, amount_before: usize, amount_after: usize) {
179186
if amount_before == 0 && amount_after == 0 {

src/search/bytes/search.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -164,8 +164,8 @@ pub fn position_by_byte3<const N: usize>(haystack: &[u8], b1: u8, b2: u8, b3: u8
164164
///
165165
/// The following parameters can be used to adjust performance characteristics:
166166
///
167-
/// - `N` - The number of SIMD lanes
168-
/// - `UF` - The unroll factor
167+
/// - `N` - The number of SIMD lanes to use.
168+
/// - `UF` - The unroll factor.
169169
#[inline]
170170
#[must_use]
171171
#[allow(clippy::needless_range_loop)]

src/search/inexact.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,8 @@ const fn create_masks<const N: usize>() -> [Simd<u8, N>; 256] {
7171
///
7272
/// ## Parameters
7373
///
74-
/// - `N` - The number of SIMD lanes to use
75-
/// - `K` - The number of differences allowed
74+
/// - `N` - The number of SIMD lanes to use.
75+
/// - `K` - The number of differences allowed.
7676
///
7777
/// ## Limitations
7878
///

0 commit comments

Comments
 (0)