BiobaseXNA- Efficient RNA/DNA/Protein Primary/Secondary Structure

Safe HaskellNone



Fast hash functions for Primary sequences. This function maps primary sequences to a continuous set of Ints [0 ..] where the maximum is dependent on the input length. This allows us to map short sequences into contiguous memory locations. Useful for, say, energy lookup tables.



newtype HashedPrimary t Source #

The hash of a primary sequence.





Vector Vector (HashedPrimary k a0) Source # 
MVector MVector (HashedPrimary k a0) Source # 
Bounded (HashedPrimary k t) Source # 
Enum (HashedPrimary k t) Source # 
Eq (HashedPrimary k t) Source # 


(==) :: HashedPrimary k t -> HashedPrimary k t -> Bool #

(/=) :: HashedPrimary k t -> HashedPrimary k t -> Bool #

Ord (HashedPrimary k t) Source # 
Read (HashedPrimary k t) Source # 
Show (HashedPrimary k t) Source # 
Ix (HashedPrimary k t) Source # 
Unbox (HashedPrimary k a0) Source # 
data MVector s (HashedPrimary k a0) Source # 
data Vector (HashedPrimary k a0) Source # 

mkHashedPrimary :: forall t. (Unbox (Letter t), Bounded (Letter t), Enum (Letter t)) => Primary t -> HashedPrimary t Source #

Given a piece of primary sequence information, reduce it to an index. The empty input produces an index of 0.

hash2primary :: forall t. (Unbox (Letter t), Bounded (Letter t), Enum (Letter t)) => HashedPrimary t -> Primary t Source #

Turn a hash back into a sequence. Will fail if the resulting sequence has more than 100 elements.