pub struct SequenceSearchRepository { /* private fields */ }Implementations§
Source§impl SequenceSearchRepository
impl SequenceSearchRepository
pub fn new(pool: PgPool) -> Self
Sourcepub async fn reindex(
&self,
conn: &mut PgConnection,
object_id: Uuid,
elements: Option<&str>,
alphabet: Option<&str>,
) -> Result<usize, DomainError>
pub async fn reindex( &self, conn: &mut PgConnection, object_id: Uuid, elements: Option<&str>, alphabet: Option<&str>, ) -> Result<usize, DomainError>
Rebuild the k-mer index for one sequence. Idempotent: deletes all
existing rows then inserts the current set. Skips sequences whose
alphabet is not DNA/RNA, whose elements is empty, or whose length
is shorter than K.
Sourcepub async fn search(
&self,
pattern: &str,
options: SequenceSearchOptions,
) -> Result<Vec<SequenceMatch>, DomainError>
pub async fn search( &self, pattern: &str, options: SequenceSearchOptions, ) -> Result<Vec<SequenceMatch>, DomainError>
Exact substring search with reverse-complement awareness. Returns
every (sequence, start, strand) where the pattern (or its reverse
complement) appears in sbol_sequences.elements.
Sourcepub async fn search_many(
&self,
patterns: &[String],
options: SequenceSearchOptions,
) -> Result<Vec<BatchSequenceMatch>, DomainError>
pub async fn search_many( &self, patterns: &[String], options: SequenceSearchOptions, ) -> Result<Vec<BatchSequenceMatch>, DomainError>
Run search for each pattern. Patterns are independent;
the implementation is a simple loop. Use this to amortise HTTP / CLI
round-trips when scanning N motifs against the same corpus.
Sourcepub async fn align_candidates(
&self,
query: &str,
) -> Result<Vec<(String, String)>, DomainError>
pub async fn align_candidates( &self, query: &str, ) -> Result<Vec<(String, String)>, DomainError>
Candidate sequences for the banded aligner: every indexed DNA/RNA
sequence sharing at least one canonical k-mer with query. Unlike
candidates_seeded, which seeds only on the
query’s first k-mer, this aggregates over every canonical query k-mer so
a gapped hit whose head does not match is still admitted. A query shorter
than K has no seed and every nucleotide sequence is a candidate.
pub async fn all_nucleotide_sequences( &self, ) -> Result<Vec<(String, String)>, DomainError>
pub async fn sequences_by_iris( &self, iris: &[String], ) -> Result<Vec<(String, String)>, DomainError>
Trait Implementations§
Auto Trait Implementations§
impl !RefUnwindSafe for SequenceSearchRepository
impl !UnwindSafe for SequenceSearchRepository
impl Freeze for SequenceSearchRepository
impl Send for SequenceSearchRepository
impl Sync for SequenceSearchRepository
impl Unpin for SequenceSearchRepository
impl UnsafeUnpin for SequenceSearchRepository
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<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
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