-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Collection of types for bioinformatics -- -- Types used in a number of bioinformatics libraries. -- -- @package BiobaseTypes @version 0.1.1.1 -- | Strand information. A newtyped version, complete with serialization, -- pattern synonyms, being a PrimitiveArray index type, etc. -- -- TODO will be expanded to encode biological sense information more -- clearly: -- http://en.wikipedia.org/wiki/Sense_%28molecular_biology%29. module Biobase.Types.Strand newtype Strand Strand :: Int -> Strand [getStrand] :: Strand -> Int instance Data.Vector.Unboxed.Base.Unbox Biobase.Types.Strand.Strand instance Data.Vector.Generic.Mutable.Base.MVector Data.Vector.Unboxed.Base.MVector Biobase.Types.Strand.Strand instance Data.Vector.Generic.Base.Vector Data.Vector.Unboxed.Base.Vector Biobase.Types.Strand.Strand instance Data.PrimitiveArray.Index.Class.Index Biobase.Types.Strand.Strand instance Data.PrimitiveArray.Index.Class.IndexStream z => Data.PrimitiveArray.Index.Class.IndexStream (z Data.PrimitiveArray.Index.Class.:. Biobase.Types.Strand.Strand) instance Data.PrimitiveArray.Index.Class.IndexStream Biobase.Types.Strand.Strand instance Test.QuickCheck.Arbitrary.Arbitrary Biobase.Types.Strand.Strand instance GHC.Generics.Selector Biobase.Types.Strand.S1_0_0Strand instance GHC.Generics.Constructor Biobase.Types.Strand.C1_0Strand instance GHC.Generics.Datatype Biobase.Types.Strand.D1Strand instance GHC.Generics.Generic Biobase.Types.Strand.Strand instance GHC.Classes.Ord Biobase.Types.Strand.Strand instance GHC.Classes.Eq Biobase.Types.Strand.Strand instance GHC.Show.Show Biobase.Types.Strand.Strand instance GHC.Read.Read Biobase.Types.Strand.Strand instance GHC.Enum.Bounded Biobase.Types.Strand.Strand instance GHC.Enum.Enum Biobase.Types.Strand.Strand instance Control.DeepSeq.NFData Biobase.Types.Strand.Strand instance Data.Binary.Class.Binary Biobase.Types.Strand.Strand instance Data.Serialize.Serialize Biobase.Types.Strand.Strand instance Data.Aeson.Types.Class.ToJSON Biobase.Types.Strand.Strand instance Data.Aeson.Types.Class.FromJSON Biobase.Types.Strand.Strand instance Data.Hashable.Class.Hashable Biobase.Types.Strand.Strand -- | Discretized log-odds. module Biobase.Types.Odds -- | Discretized log-odds. -- -- The BLOSUM matrices, for example, store data in discretized log-odds -- form. -- -- TODO Might move up even higher into statistics modules. newtype DLO DLO :: Int -> DLO [getDLO] :: DLO -> Int instance Data.Vector.Unboxed.Base.Unbox Biobase.Types.Odds.DLO instance Data.Vector.Generic.Mutable.Base.MVector Data.Vector.Unboxed.Base.MVector Biobase.Types.Odds.DLO instance Data.Vector.Generic.Base.Vector Data.Vector.Unboxed.Base.Vector Biobase.Types.Odds.DLO instance Data.Binary.Class.Binary Biobase.Types.Odds.DLO instance Data.Serialize.Serialize Biobase.Types.Odds.DLO instance Data.Aeson.Types.Class.FromJSON Biobase.Types.Odds.DLO instance Data.Aeson.Types.Class.ToJSON Biobase.Types.Odds.DLO instance Control.DeepSeq.NFData Biobase.Types.Odds.DLO instance GHC.Generics.Selector Biobase.Types.Odds.S1_0_0DLO instance GHC.Generics.Constructor Biobase.Types.Odds.C1_0DLO instance GHC.Generics.Datatype Biobase.Types.Odds.D1DLO instance GHC.Read.Read Biobase.Types.Odds.DLO instance GHC.Show.Show Biobase.Types.Odds.DLO instance GHC.Classes.Ord Biobase.Types.Odds.DLO instance GHC.Classes.Eq Biobase.Types.Odds.DLO instance GHC.Generics.Generic Biobase.Types.Odds.DLO module Biobase.Types.Index.Type -- | A linear Int-based index type. newtype Index (t :: Nat) Index :: Int -> Index [getIndex] :: Index -> Int -- | Turn an Int into an Index safely. index :: KnownNat t => Int -> Index t -- | Produce Just and Index or Nothing. maybeIndex :: KnownNat t => Int -> Maybe (Index t) instance Data.Vector.Unboxed.Base.Unbox (Biobase.Types.Index.Type.Index t0) instance Data.Vector.Generic.Mutable.Base.MVector Data.Vector.Unboxed.Base.MVector (Biobase.Types.Index.Type.Index t0) instance Data.Vector.Generic.Base.Vector Data.Vector.Unboxed.Base.Vector (Biobase.Types.Index.Type.Index t0) instance GHC.TypeLits.KnownNat t => Data.PrimitiveArray.Index.Class.Index (Biobase.Types.Index.Type.Index t) instance Data.PrimitiveArray.Index.Class.IndexStream z => Data.PrimitiveArray.Index.Class.IndexStream (z Data.PrimitiveArray.Index.Class.:. Biobase.Types.Index.Type.Index t) instance Data.PrimitiveArray.Index.Class.IndexStream (Biobase.Types.Index.Type.Index t) instance Test.QuickCheck.Arbitrary.Arbitrary (Biobase.Types.Index.Type.Index t) instance GHC.Generics.Selector Biobase.Types.Index.Type.S1_0_0Index instance GHC.Generics.Constructor Biobase.Types.Index.Type.C1_0Index instance GHC.Generics.Datatype Biobase.Types.Index.Type.D1Index instance GHC.Arr.Ix (Biobase.Types.Index.Type.Index t) instance GHC.Generics.Generic (Biobase.Types.Index.Type.Index t) instance GHC.Classes.Ord (Biobase.Types.Index.Type.Index t) instance GHC.Classes.Eq (Biobase.Types.Index.Type.Index t) instance GHC.Read.Read (Biobase.Types.Index.Type.Index t) instance GHC.Show.Show (Biobase.Types.Index.Type.Index t) instance GHC.TypeLits.KnownNat t => GHC.Num.Num (Biobase.Types.Index.Type.Index t) instance Control.DeepSeq.NFData (Biobase.Types.Index.Type.Index t) instance Data.Binary.Class.Binary (Biobase.Types.Index.Type.Index t) instance Data.Serialize.Serialize (Biobase.Types.Index.Type.Index t) instance Data.Aeson.Types.Class.ToJSON (Biobase.Types.Index.Type.Index t) instance Data.Aeson.Types.Class.FromJSON (Biobase.Types.Index.Type.Index t) instance Data.Hashable.Class.Hashable (Biobase.Types.Index.Type.Index t) -- | Biological sequence data is oftentimes indexed either 0- or -- 1-based. The Index type developed provides static -- guarantees that there is no confusion what index is in use. -- -- This module does not export the ctor Index. If you want to -- (unsafely) use it, import Biobase.Types.Index.Type directly. -- Use fromInt0 to make clear that you count from 0 and -- transform to an Index t. I.e. fromInt0 0 :: Index 1 -- yields the lowest 1-base index. module Biobase.Types.Index -- | Uses index to guarantee that the Index is ok. checkIndex :: KnownNat t => Index t -> Index t -- | Re-Index an index of type Index n as Index m. This -- is always safe, as 0 :: Index 0 gives 1 :: Index 1 -- for example. I.e. valid indices become valid indices. reIndex :: (KnownNat n, KnownNat m) => Index n -> Index m -- | Helper function that allows addition of an Index and -- an Int, with the Int on the right. (+.) :: KnownNat t => Index t -> Int -> Index t -- | Unsafe plus. unsafePlus :: KnownNat t => Index t -> Int -> Index t -- | Helper function that allows subtraction of an Index -- and an Int, with the Int on the right. (-.) :: KnownNat t => Index t -> Int -> Index t -- | Unsafe minus. unsafeMinus :: KnownNat t => Index t -> Int -> Index t -- | Return the index as an Int-style index that is zero-based. toInt0 :: KnownNat t => Index t -> Int -- | As an index from an Int-style zero-based one. -- -- TODO We might want to check that the argument is [0..]. fromInt0 :: KnownNat t => Int -> Index t -- | Zero-based indices. type I0 = Index 0 -- | One-based indices. type I1 = Index 1 getIndex :: Index t -> Int -- | Turn an Int into an Index safely. index :: KnownNat t => Int -> Index t -- | Produce Just and Index or Nothing. maybeIndex :: KnownNat t => Int -> Maybe (Index t) -- | A linear Int-based index type. data Index (t :: Nat) -- | For some values, we want to have different kind of extreme values. -- Consider a Double representing an energy. We want near -- infinities that do not lead to numeric problems. -- -- TODO benchmark different extremes and their interplay with algebraic -- operations. -- -- TODO consider the ieee754 package module Biobase.Types.NumericalExtremes -- | Very large and small numbers with some numerical safety to -- 1/0 or maxBound (depending on if we are -- Integral or RealFloat. -- -- We have: -- --
--   maxFinite >= extremelyLarge >= veryLarge
--   
-- --
--   veryLarge >= verySmall
--   
-- -- verySmall >= extremelySmall >= minFinite. -- -- TODO the small stuff should actually be around zero, but positive and -- go into NumericalEpsilon. Here we should actually use other -- names. class NumericalExtremes x -- | Largest finite number maxFinite :: NumericalExtremes x => x -- | Smallest finite number minFinite :: NumericalExtremes x => x -- | Around 1/100 of the largest finite number veryLarge :: NumericalExtremes x => x -- | Around 1/100 of the smallest finite number verySmall :: NumericalExtremes x => x -- | Around 1/ 10 of the largest finite number extremelyLarge :: NumericalExtremes x => x -- | Around 1/ 10 of the smallest finite number extremelySmall :: NumericalExtremes x => x -- | Small numbers. class NumericalEpsilon x -- | Smallest positive number /= 0.0. epsilon :: NumericalEpsilon x => x instance Biobase.Types.NumericalExtremes.NumericalExtremes GHC.Types.Int instance Biobase.Types.NumericalExtremes.NumericalExtremes GHC.Types.Double instance Biobase.Types.NumericalExtremes.NumericalEpsilon GHC.Types.Double -- | Different types of energies and conversion between. -- -- TODO enthalpy TODO entropy module Biobase.Types.Energy -- | Gibbs free energy change. -- -- For RNA structure, the change in energy from the unfolded structure to -- the given structure. -- -- In units of kcal / mol. -- -- TODO shall we phantom-type the actual units? newtype DeltaGibbs DG :: Double -> DeltaGibbs [getDG] :: DeltaGibbs -> Double -- | round $ DeltaGibbs / 100. newtype DeltaDekaGibbs DekaG :: Int -> DeltaDekaGibbs [getDekaG] :: DeltaDekaGibbs -> Int instance Biobase.Types.NumericalExtremes.NumericalExtremes Biobase.Types.Energy.DeltaDekaGibbs instance Data.Vector.Unboxed.Base.Unbox Biobase.Types.Energy.DeltaDekaGibbs instance Data.Vector.Generic.Mutable.Base.MVector Data.Vector.Unboxed.Base.MVector Biobase.Types.Energy.DeltaDekaGibbs instance Data.Vector.Generic.Base.Vector Data.Vector.Unboxed.Base.Vector Biobase.Types.Energy.DeltaDekaGibbs instance Data.Hashable.Class.Hashable Biobase.Types.Energy.DeltaDekaGibbs instance Data.Binary.Class.Binary Biobase.Types.Energy.DeltaDekaGibbs instance Data.Serialize.Serialize Biobase.Types.Energy.DeltaDekaGibbs instance Data.Aeson.Types.Class.FromJSON Biobase.Types.Energy.DeltaDekaGibbs instance Data.Aeson.Types.Class.ToJSON Biobase.Types.Energy.DeltaDekaGibbs instance Data.Default.Class.Default Biobase.Types.Energy.DeltaDekaGibbs instance GHC.Generics.Selector Biobase.Types.Energy.S1_0_0DeltaDekaGibbs instance GHC.Generics.Constructor Biobase.Types.Energy.C1_0DeltaDekaGibbs instance GHC.Generics.Datatype Biobase.Types.Energy.D1DeltaDekaGibbs instance GHC.Generics.Generic Biobase.Types.Energy.DeltaDekaGibbs instance GHC.Show.Show Biobase.Types.Energy.DeltaDekaGibbs instance GHC.Read.Read Biobase.Types.Energy.DeltaDekaGibbs instance GHC.Num.Num Biobase.Types.Energy.DeltaDekaGibbs instance GHC.Classes.Ord Biobase.Types.Energy.DeltaDekaGibbs instance GHC.Classes.Eq Biobase.Types.Energy.DeltaDekaGibbs instance Biobase.Types.NumericalExtremes.NumericalExtremes Biobase.Types.Energy.DeltaGibbs instance Biobase.Types.NumericalExtremes.NumericalEpsilon Biobase.Types.Energy.DeltaGibbs instance Data.Vector.Unboxed.Base.Unbox Biobase.Types.Energy.DeltaGibbs instance Data.Vector.Generic.Mutable.Base.MVector Data.Vector.Unboxed.Base.MVector Biobase.Types.Energy.DeltaGibbs instance Data.Vector.Generic.Base.Vector Data.Vector.Unboxed.Base.Vector Biobase.Types.Energy.DeltaGibbs instance Data.Hashable.Class.Hashable Biobase.Types.Energy.DeltaGibbs instance Data.Binary.Class.Binary Biobase.Types.Energy.DeltaGibbs instance Data.Serialize.Serialize Biobase.Types.Energy.DeltaGibbs instance Data.Aeson.Types.Class.FromJSON Biobase.Types.Energy.DeltaGibbs instance Data.Aeson.Types.Class.ToJSON Biobase.Types.Energy.DeltaGibbs instance Data.Default.Class.Default Biobase.Types.Energy.DeltaGibbs instance GHC.Generics.Selector Biobase.Types.Energy.S1_0_0DeltaGibbs instance GHC.Generics.Constructor Biobase.Types.Energy.C1_0DeltaGibbs instance GHC.Generics.Datatype Biobase.Types.Energy.D1DeltaGibbs instance GHC.Generics.Generic Biobase.Types.Energy.DeltaGibbs instance GHC.Show.Show Biobase.Types.Energy.DeltaGibbs instance GHC.Read.Read Biobase.Types.Energy.DeltaGibbs instance GHC.Real.Fractional Biobase.Types.Energy.DeltaGibbs instance GHC.Num.Num Biobase.Types.Energy.DeltaGibbs instance GHC.Classes.Ord Biobase.Types.Energy.DeltaGibbs instance GHC.Classes.Eq Biobase.Types.Energy.DeltaGibbs module Biobase.Types.Accession -- | The accession number is a unique identifier in bioinformatics. -- -- Depending on the source, accession numbers follow different -- alphanumeric formats! While letters-than-numbers is quite common, -- swissprot uses a mix. Hence, we just use a text string as accession. -- -- A phantom type is provided to enable type safety annotations. Helper -- functions provide smart construction from the Accession -- tagged generic type. newtype Accession t Accession :: Text -> Accession t [_getAccession] :: Accession t -> Text accession :: Stringable s => s -> Accession t tagAccession :: Accession f -> Accession t -- | nucleotide sequence data Nucleotide -- | protein sequence data Protein -- | Tag as being a clan. data Clan -- | Tag as being a Pfam model. data Pfam -- | Tag as being an Rfam model. Used for Stockholm and CM files. data Rfam -- | Species have an accession number, too. data Species instance GHC.Generics.Selector Biobase.Types.Accession.S1_0_0Accession instance GHC.Generics.Constructor Biobase.Types.Accession.C1_0Accession instance GHC.Generics.Datatype Biobase.Types.Accession.D1Accession instance GHC.Generics.Generic (Biobase.Types.Accession.Accession t) instance GHC.Show.Show (Biobase.Types.Accession.Accession t) instance GHC.Read.Read (Biobase.Types.Accession.Accession t) instance GHC.Classes.Ord (Biobase.Types.Accession.Accession t) instance GHC.Classes.Eq (Biobase.Types.Accession.Accession t) instance Data.String.IsString (Biobase.Types.Accession.Accession t) instance Data.Binary.Class.Binary (Biobase.Types.Accession.Accession t) instance Data.Aeson.Types.Class.FromJSON (Biobase.Types.Accession.Accession t) instance Data.Hashable.Class.Hashable (Biobase.Types.Accession.Accession t) instance Data.Serialize.Serialize (Biobase.Types.Accession.Accession t) instance Data.Aeson.Types.Class.ToJSON (Biobase.Types.Accession.Accession t)