-- | A secondary structure, with sequence, Vienna compatible canonical -- secondary structure, extended structure, and additional information. -- -- This is the structure that will be returned by prediction algorithms in -- the future. -- -- TODO we will need ex- and import functions to a number of standard -- formats. There is an open feature request to export to something that -- resembles FASTA with additional information. module Biobase.Secondary.Structure where import Data.Map.Strict (Map) import Data.Text (Text) import qualified Data.Text as T import Biobase.Secondary.Diagrams -- | A sequence, complete with secondary structure. While this structure is -- rather RNA-centric, there is nothing that prohibits us from using this -- for DNA. -- -- TODO Generics, Cereal, Binary, Aeson instances data SecondaryStructure = SS { _ssSeq :: !Text -- ^ sequence; we use 'Text' whenever possible , _ssVienna :: !D1Secondary -- ^ canonical Vienna secondary structure , _ssExt :: !D2Secondary -- ^ extended secondary structure , _ssViennaE :: Maybe () -- ^ TODO will be the energy, measured or predicted , _ssAux :: Map Text Text -- ^ any auxiliary info in key/value format } deriving (Eq,Show,Read)