Transformation of predictions and known structures into keys. Keys are used for linearization.
NOTE READ THE BIG FAT KEYS WARNING
TODO Generalize and move into its own library
- data Keys
- = HairpinLength Int
- | HairpinClose (ExtPair, Nuc, Nuc)
- | Stem (ExtPair, ExtPair)
- | StemTriplet (ExtPair, ExtPair)
- | InteriorLength Int
- | InteriorAsym Int
- | InteriorClose (ExtPair, Nuc, Nuc)
- | BulgeLength Int
- | BulgeTriplet (ExtPair, ExtPair)
- | BulgeClose ExtPair
- | MbClose (ExtPair, Nuc, Nuc)
- | MultiBranched
- | MultiHelix
- | MultiUnpaired
- | PairDistance Int
- | InterMolInit
- featureVector :: String -> [ExtPairIdx] -> [Int]
- lookupFeatureIndex :: Keys -> Int
- treeToFeatures :: (MkPrimary a, Show a) => a -> SSTree ExtPairIdx t -> [Keys]
- ssTree :: Int -> [ExtPairIdx] -> SSTree ExtPairIdx ()
A list of named parameters.
Uniquely tag each key
NOTE BIG FAT WARNING: BE ABSOLUTELY SURE THAT ALL IMPORTS AND EXPORTS FOLLOW THIS ORDERING EXACTLY, OTHERWISE KEYS WILL BE MAPPED TO WRONG POSITIONS DURING LOOKUP AND VALUES END UP SOMEWHERE ELSE.
Map param keys to thei Int-indices.
And back from Int-indices to the keys.
Takes a primary structure and secondary structure tree and produces a list of keys.
TODO Data.Traversable ?!
TODO better handling of unknown features: we can have genuine errors (pseudoknots) and uncoded features (e.g. hairpins of size > 30)