pub struct PrimaryAlignmentInfo {
pub tid1: i32,
pub pos1: i32,
pub neg1: bool,
pub tid2: i32,
pub pos2: i32,
pub neg2: bool,
}Expand description
Primary alignment info for secondary/supplementary reads.
Stores the template-coordinate sort key from the primary alignments, enabling secondary/supplementary reads to sort adjacent to their primaries.
§Binary Format
Stored as a B:i (int32 array) BAM tag with 6 elements:
[tid1, pos1, neg1, tid2, pos2, neg2]
where neg1/neg2 are 0 for forward, 1 for reverse strand.
This format is faster to parse than a string representation and ensures supplementary reads get the exact same sort key as their primary reads.
Fields§
§tid1: i32Reference ID of the earlier mate (lower position).
pos1: i32Unclipped 5’ position of the earlier mate.
neg1: boolTrue if earlier mate is on reverse strand.
tid2: i32Reference ID of the later mate.
pos2: i32Unclipped 5’ position of the later mate.
neg2: boolTrue if later mate is on reverse strand.
Implementations§
Source§impl PrimaryAlignmentInfo
impl PrimaryAlignmentInfo
Sourcepub const fn new(
tid1: i32,
pos1: i32,
neg1: bool,
tid2: i32,
pos2: i32,
neg2: bool,
) -> Self
pub const fn new( tid1: i32, pos1: i32, neg1: bool, tid2: i32, pos2: i32, neg2: bool, ) -> Self
Creates a new PrimaryAlignmentInfo.
Sourcepub fn to_tag_value(&self) -> Value
pub fn to_tag_value(&self) -> Value
Serializes to a BAM tag value (B:i array with 6 elements).
Sourcepub fn from_tag_value(value: &Value) -> Option<Self>
pub fn from_tag_value(value: &Value) -> Option<Self>
Deserializes from a BAM tag value (B:i array with 6 int32 elements).
Optimized with a fast path for Int32 arrays (the expected format) that avoids heap allocation by directly indexing the array.
Sourcepub fn from_record(record: &RecordBuf) -> Option<Self>
pub fn from_record(record: &RecordBuf) -> Option<Self>
Extracts from a BAM record’s PA tag.
Trait Implementations§
Source§impl Clone for PrimaryAlignmentInfo
impl Clone for PrimaryAlignmentInfo
Source§fn clone(&self) -> PrimaryAlignmentInfo
fn clone(&self) -> PrimaryAlignmentInfo
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for PrimaryAlignmentInfo
impl Debug for PrimaryAlignmentInfo
Source§impl PartialEq for PrimaryAlignmentInfo
impl PartialEq for PrimaryAlignmentInfo
impl Copy for PrimaryAlignmentInfo
impl Eq for PrimaryAlignmentInfo
impl StructuralPartialEq for PrimaryAlignmentInfo
Auto Trait Implementations§
impl Freeze for PrimaryAlignmentInfo
impl RefUnwindSafe for PrimaryAlignmentInfo
impl Send for PrimaryAlignmentInfo
impl Sync for PrimaryAlignmentInfo
impl Unpin for PrimaryAlignmentInfo
impl UnsafeUnpin for PrimaryAlignmentInfo
impl UnwindSafe for PrimaryAlignmentInfo
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more