BiobaseXNA-0.9.1.0: Biobase/Secondary/Structure.hs
-- | 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)