-- 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.3.0 -- | Wrappers for structural data. Encoded as bytestrings. This differs -- from BiobaseXNA, where specialized encodings are used. These -- structures are supposedly "short", they need to fit into a strict -- bytestring. -- -- TODO Consider where to move each type. There are merge possibilities -- between BiobaseXNA and BiobaseTypes. module Biobase.Types.Structure -- | Secondary structure using () for paired elements, and -- . for unpaired ones. It is assumed that the () match -- up. These structures from a Monoid. newtype RNAss RNAss :: ByteString -> RNAss [_rnass] :: RNAss -> ByteString rnass :: Iso' RNAss ByteString -- | Ensemble structure encoding. *Very* different type ctor name chosen! -- The structure of this string makes verification much more complicated. -- -- TODO describe encoding used by RNAfold for the ensemble string. newtype RNAensembleStructure RNAes :: ByteString -> RNAensembleStructure [_rnaes] :: RNAensembleStructure -> ByteString rnaes :: Iso' RNAensembleStructure ByteString -- | Cofolded structure. data RNAds RNAds :: !ByteString -> !ByteString -> RNAds [_rnadsL] :: RNAds -> !ByteString [_rnadsR] :: RNAds -> !ByteString rnadsR :: Lens' RNAds ByteString rnadsL :: Lens' RNAds ByteString -- | A Prism that turns ByteStrings with a single & into -- RNAds. rnads :: Prism' ByteString RNAds -- | Isomorphism from RNAds to (RNAss,RNAss). The -- RNAss are only legal if taken both: rnassFromDimer . -- both. rnads2rnassPair :: Iso' RNAds (RNAss, RNAss) -- | Try to create a dimeric structure. mkRNAds :: (Monad m, MonadError RNAStructureError m) => ByteString -> m RNAds -- | Capture what might be wrong with the RNAss. data RNAStructureError RNAStructureError :: String -> ByteString -> RNAStructureError [_rnaStructureError] :: RNAStructureError -> String [_rnaOffender] :: RNAStructureError -> ByteString -- | Verifies that the given RNAss is properly formatted. Otherwise, error -- out. -- -- TODO Implement! Check with BiobaseXNA and the stack effort in there. -- This might influence if the verification goes into BiobaseXNA and -- happens via an Iso'. verifyRNAss :: (Monad m, MonadError RNAStructureError m) => RNAss -> m RNAss newtype RNApset RNApset :: Set (Int, Int) -> RNApset [_rnapset] :: RNApset -> Set (Int, Int) rnapset :: Iso' RNApset (Set (Int, Int)) -- | Transform an RNAss into a set of base pairs (i,j). The -- pairs are 0-based. rnassPairSet :: (MonadError String m) => RNAss -> m RNApset -- | RNA pair set, but a transformation error calls error. rnassPairSet' :: RNAss -> RNApset -- | Calculates the number of different base pairs betwwen two structures. pairDist :: RNApset -> RNApset -> Int instance Control.DeepSeq.NFData Biobase.Types.Structure.RNApset instance GHC.Generics.Generic Biobase.Types.Structure.RNApset instance GHC.Classes.Ord Biobase.Types.Structure.RNApset instance GHC.Classes.Eq Biobase.Types.Structure.RNApset instance GHC.Show.Show Biobase.Types.Structure.RNApset instance GHC.Read.Read Biobase.Types.Structure.RNApset instance GHC.Generics.Generic Biobase.Types.Structure.RNAStructureError instance GHC.Show.Show Biobase.Types.Structure.RNAStructureError instance Control.DeepSeq.NFData Biobase.Types.Structure.RNAds instance Control.DeepSeq.NFData Biobase.Types.Structure.RNAStructureError instance GHC.Generics.Generic Biobase.Types.Structure.RNAds instance Data.Data.Data Biobase.Types.Structure.RNAds instance GHC.Read.Read Biobase.Types.Structure.RNAds instance GHC.Show.Show Biobase.Types.Structure.RNAds instance GHC.Classes.Ord Biobase.Types.Structure.RNAds instance GHC.Classes.Eq Biobase.Types.Structure.RNAds instance Control.DeepSeq.NFData Biobase.Types.Structure.RNAensembleStructure instance GHC.Generics.Generic Biobase.Types.Structure.RNAensembleStructure instance Data.Data.Data Biobase.Types.Structure.RNAensembleStructure instance GHC.Read.Read Biobase.Types.Structure.RNAensembleStructure instance GHC.Show.Show Biobase.Types.Structure.RNAensembleStructure instance GHC.Classes.Ord Biobase.Types.Structure.RNAensembleStructure instance GHC.Classes.Eq Biobase.Types.Structure.RNAensembleStructure instance Control.DeepSeq.NFData Biobase.Types.Structure.RNAss instance GHC.Base.Monoid Biobase.Types.Structure.RNAss instance GHC.Generics.Generic Biobase.Types.Structure.RNAss instance Data.Data.Data Biobase.Types.Structure.RNAss instance GHC.Read.Read Biobase.Types.Structure.RNAss instance GHC.Show.Show Biobase.Types.Structure.RNAss instance GHC.Classes.Ord Biobase.Types.Structure.RNAss instance GHC.Classes.Eq Biobase.Types.Structure.RNAss -- | 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.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 Data.Binary.Class.Binary Biobase.Types.Strand.Strand instance Data.Serialize.Serialize Biobase.Types.Strand.Strand instance Data.Aeson.Types.ToJSON.ToJSON Biobase.Types.Strand.Strand instance Data.Aeson.Types.FromJSON.FromJSON Biobase.Types.Strand.Strand instance Data.Hashable.Class.Hashable Biobase.Types.Strand.Strand instance Control.DeepSeq.NFData Biobase.Types.Strand.Strand -- | Wrappers around biosequences. module Biobase.Types.Sequence -- | A sequence identifier. Just a newtype wrapped text field. Because we -- can never know what people are up to, this is utf8-encoded. -- -- TODO Provide Iso' for Text, too? newtype SequenceID SequenceID :: ByteString -> SequenceID [_sequenceID] :: SequenceID -> ByteString sequenceID :: Iso' SequenceID ByteString -- | Convert to a string in a unicode-aware manner. sequenceIDstring :: Iso' SequenceID String -- | A short RNA sequence. -- -- It is an instance of Ixed to allow RNAseq (BS.pack "cag") -- ^? ix 2 == Just g. newtype RNAseq RNAseq :: ByteString -> RNAseq [_rnaseq] :: RNAseq -> ByteString rnaseq :: Iso' RNAseq ByteString mkRNAseq :: ByteString -> RNAseq -- | A short DNA sequence. -- -- Note everything really long should be handled by specialized libraries -- with streaming capabilities. newtype DNAseq DNAseq :: ByteString -> DNAseq [_dnaseq] :: DNAseq -> ByteString dnaseq :: Iso' DNAseq ByteString mkDNAseq :: ByteString -> DNAseq -- | Simple case translation from U to T. with upper and -- lower-case awareness. rna2dna :: Char -> Char -- | Single character RNA complement. rnaComplement :: Char -> Char -- | Simple case translation from T to U with upper- and -- lower-case awareness. dna2rna :: Char -> Char -- | Single character DNA complement. dnaComplement :: Char -> Char -- | Transcribes a DNA sequence into an RNA sequence. Note that -- transcribe is actually very generic. We just define its -- semantics to be that of biomolecular transcription. -- -- transcribe makes the assumption that, given DNA -> -- RNA, we transcribe the coding strand. -- http://hyperphysics.phy-astr.gsu.edu/hbase/Organic/transcription.html -- -- @ DNAseq ACGT ^. transcribe == RNAseq ACGU RNAseq -- ACGU ^. transcribe == DNAseq ACGT RNAseq ACGU ^. -- from transcribe :: DNAseq == DNAseq ACGT @ class Transcribe f where type TranscribeTo f :: * where { type family TranscribeTo f :: *; } transcribe :: Transcribe f => Iso' f (TranscribeTo f) -- | Transcribe a DNA sequence into an RNA sequence. This does not -- reverse the sequence! -- | Transcribe a RNA sequence into an DNA sequence. This does not -- reverse the sequence! -- | The complement of a biosequence. class Complement f complement :: Complement f => Iso' f f instance Control.Lens.Internal.Iso.Reversing Biobase.Types.Sequence.DNAseq instance Control.DeepSeq.NFData Biobase.Types.Sequence.DNAseq instance Control.Lens.At.Ixed Biobase.Types.Sequence.DNAseq instance Data.String.IsString Biobase.Types.Sequence.DNAseq instance Biobase.Types.Sequence.Transcribe Biobase.Types.Sequence.DNAseq instance Biobase.Types.Sequence.Transcribe Biobase.Types.Sequence.RNAseq instance Biobase.Types.Sequence.Complement Biobase.Types.Sequence.DNAseq instance Biobase.Types.Sequence.Complement Biobase.Types.Sequence.RNAseq instance GHC.Show.Show Biobase.Types.Sequence.DNAseq instance GHC.Read.Read Biobase.Types.Sequence.DNAseq instance GHC.Classes.Ord Biobase.Types.Sequence.DNAseq instance GHC.Classes.Eq Biobase.Types.Sequence.DNAseq instance GHC.Generics.Generic Biobase.Types.Sequence.DNAseq instance Data.Data.Data Biobase.Types.Sequence.DNAseq instance Control.Lens.Internal.Iso.Reversing Biobase.Types.Sequence.RNAseq instance Control.DeepSeq.NFData Biobase.Types.Sequence.RNAseq instance Control.Lens.At.Ixed Biobase.Types.Sequence.RNAseq instance Data.String.IsString Biobase.Types.Sequence.RNAseq instance GHC.Show.Show Biobase.Types.Sequence.RNAseq instance GHC.Read.Read Biobase.Types.Sequence.RNAseq instance GHC.Classes.Ord Biobase.Types.Sequence.RNAseq instance GHC.Classes.Eq Biobase.Types.Sequence.RNAseq instance GHC.Generics.Generic Biobase.Types.Sequence.RNAseq instance Data.Data.Data Biobase.Types.Sequence.RNAseq instance Control.DeepSeq.NFData Biobase.Types.Sequence.SequenceID instance Data.String.IsString Biobase.Types.Sequence.SequenceID instance GHC.Show.Show Biobase.Types.Sequence.SequenceID instance GHC.Read.Read Biobase.Types.Sequence.SequenceID instance GHC.Classes.Ord Biobase.Types.Sequence.SequenceID instance GHC.Classes.Eq Biobase.Types.Sequence.SequenceID instance GHC.Generics.Generic Biobase.Types.Sequence.SequenceID instance Data.Data.Data Biobase.Types.Sequence.SequenceID -- | 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.FromJSON.FromJSON Biobase.Types.Odds.DLO instance Data.Aeson.Types.ToJSON.ToJSON Biobase.Types.Odds.DLO instance Data.Hashable.Class.Hashable Biobase.Types.Odds.DLO instance Control.DeepSeq.NFData Biobase.Types.Odds.DLO 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 -- | 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 >= maxExtreme >= maxLarge
--   
-- --
--   maxLarge >= minLarge
--   
-- -- minLarge >= minExtreme >= minFinite. class NumericalExtremes x maxFinite :: NumericalExtremes x => x minFinite :: NumericalExtremes x => x maxExtreme :: NumericalExtremes x => x minExtreme :: NumericalExtremes x => x maxLarge :: NumericalExtremes x => x minLarge :: NumericalExtremes x => x -- | Small numbers. class NumericalEpsilon x 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 module Biobase.Types.Names.Internal speciesNameBimap :: IORef (Bimap (HashMap Text Int) (Vector Text)) -- | Add Text and return Int key. Will return key for -- existing string and thereby serves for lookup in left-to-right -- direction. speciesNameBimapAdd :: Text -> Int -- | Lookup the InternedMultiChar based on an Int key. -- Unsafe totality assumption. speciesNameBimapLookupInt :: Int -> Text -- | Names for biological things. -- -- Species names are internalized and represented as an Int. -- This allows using them in structures like an IntMap. -- -- For other names, we newtype-wrap normal text internalization. module Biobase.Types.Names -- | A species name. Represented with an Int, but behaves like a -- Text. newtype SpeciesName SpeciesName :: Int -> SpeciesName [getSpeciesNameRep] :: SpeciesName -> Int -- | Smart constructor that performs the correct internalization. speciesName :: Text -> SpeciesName -- | The taxonomic rank. This encodes the name for a given rank. newtype TaxonomicRank TaxonomicRank :: InternedText -> TaxonomicRank [getTaxonomicRank] :: TaxonomicRank -> InternedText instance GHC.Generics.Generic Biobase.Types.Names.TaxonomicRank instance GHC.Show.Show Biobase.Types.Names.TaxonomicRank instance GHC.Classes.Ord Biobase.Types.Names.TaxonomicRank instance GHC.Classes.Eq Biobase.Types.Names.TaxonomicRank instance Data.String.IsString Biobase.Types.Names.TaxonomicRank instance Data.Vector.Unboxed.Base.Unbox Biobase.Types.Names.SpeciesName instance Data.Vector.Generic.Mutable.Base.MVector Data.Vector.Unboxed.Base.MVector Biobase.Types.Names.SpeciesName instance Data.Vector.Generic.Base.Vector Data.Vector.Unboxed.Base.Vector Biobase.Types.Names.SpeciesName instance GHC.Classes.Ord Biobase.Types.Names.SpeciesName instance Data.String.IsString Biobase.Types.Names.SpeciesName instance GHC.Show.Show Biobase.Types.Names.SpeciesName instance GHC.Read.Read Biobase.Types.Names.SpeciesName instance Data.Hashable.Class.Hashable Biobase.Types.Names.SpeciesName instance Data.String.Conversions.ConvertibleStrings Data.Text.Internal.Text Biobase.Types.Names.SpeciesName instance Data.String.Conversions.ConvertibleStrings Biobase.Types.Names.SpeciesName Data.Text.Internal.Text instance Control.DeepSeq.NFData Biobase.Types.Names.SpeciesName instance Data.Binary.Class.Binary Biobase.Types.Names.SpeciesName instance Data.Serialize.Serialize Biobase.Types.Names.SpeciesName instance Data.Aeson.Types.FromJSON.FromJSON Biobase.Types.Names.SpeciesName instance Data.Aeson.Types.ToJSON.ToJSON Biobase.Types.Names.SpeciesName instance Control.DeepSeq.NFData Biobase.Types.Names.TaxonomicRank instance Data.String.Conversions.ConvertibleStrings Data.Text.Internal.Text Biobase.Types.Names.TaxonomicRank instance Data.String.Conversions.ConvertibleStrings Biobase.Types.Names.TaxonomicRank Data.Text.Internal.Text instance Data.Hashable.Class.Hashable Biobase.Types.Names.TaxonomicRank instance GHC.Read.Read Biobase.Types.Names.TaxonomicRank instance Data.Binary.Class.Binary Biobase.Types.Names.TaxonomicRank instance Data.Serialize.Serialize Biobase.Types.Names.TaxonomicRank instance Data.Aeson.Types.FromJSON.FromJSON Biobase.Types.Names.TaxonomicRank instance Data.Aeson.Types.ToJSON.ToJSON Biobase.Types.Names.TaxonomicRank instance GHC.Generics.Generic Biobase.Types.Names.SpeciesName instance GHC.Classes.Eq Biobase.Types.Names.SpeciesName 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 :: forall t. KnownNat t => Int -> Index t -- | Produce Just and Index or Nothing. maybeIndex :: forall t. 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.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.ToJSON.ToJSON (Biobase.Types.Index.Type.Index t) instance Data.Aeson.Types.FromJSON.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 :: forall t. 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 :: forall n m. (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. (+.) :: forall t. KnownNat t => Index t -> Int -> Index t -- | Unsafe plus. unsafePlus :: forall t. KnownNat t => Index t -> Int -> Index t -- | Helper function that allows subtraction of an Index -- and an Int, with the Int on the right. (-.) :: forall t. KnownNat t => Index t -> Int -> Index t -- | Delta between two Index points. delta :: forall t. KnownNat t => Index t -> Index t -> Int -- | Unsafe minus. unsafeMinus :: forall t. KnownNat t => Index t -> Int -> Index t -- | Return the index as an Int-style index that is zero-based. toInt0 :: forall t. 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 :: forall t. 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 :: forall t. KnownNat t => Int -> Index t -- | Produce Just and Index or Nothing. maybeIndex :: forall t. KnownNat t => Int -> Maybe (Index t) -- | A linear Int-based index type. data Index (t :: Nat) -- | Encode the number of hits to expect. This is typically dependent on -- some "database size". Evalues are bounded by [0,infinity). -- -- TODO Evalues close to zero are more interesting. We should strongly -- consider log-conversion here. module Biobase.Types.Evalue -- | Type-safe wrapper for e-values. newtype Evalue Evalue :: Double -> Evalue [getEvalue] :: Evalue -> Double -- | By default, we expect no hits. instance Data.Vector.Unboxed.Base.Unbox Biobase.Types.Evalue.Evalue instance Data.Vector.Generic.Mutable.Base.MVector Data.Vector.Unboxed.Base.MVector Biobase.Types.Evalue.Evalue instance Data.Vector.Generic.Base.Vector Data.Vector.Unboxed.Base.Vector Biobase.Types.Evalue.Evalue instance Data.Default.Class.Default Biobase.Types.Evalue.Evalue instance Biobase.Types.NumericalExtremes.NumericalExtremes Biobase.Types.Evalue.Evalue instance GHC.Generics.Generic Biobase.Types.Evalue.Evalue instance GHC.Num.Num Biobase.Types.Evalue.Evalue instance GHC.Show.Show Biobase.Types.Evalue.Evalue instance GHC.Read.Read Biobase.Types.Evalue.Evalue instance GHC.Classes.Ord Biobase.Types.Evalue.Evalue instance GHC.Classes.Eq Biobase.Types.Evalue.Evalue instance Data.Binary.Class.Binary Biobase.Types.Evalue.Evalue instance Data.Aeson.Types.FromJSON.FromJSON Biobase.Types.Evalue.Evalue instance Data.Hashable.Class.Hashable Biobase.Types.Evalue.Evalue instance Data.Serialize.Serialize Biobase.Types.Evalue.Evalue instance Data.Aeson.Types.ToJSON.ToJSON Biobase.Types.Evalue.Evalue instance Control.DeepSeq.NFData Biobase.Types.Evalue.Evalue -- | 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 DG DG :: Double -> DG [dG] :: DG -> Double -- | round $ DG / 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.FromJSON.FromJSON Biobase.Types.Energy.DeltaDekaGibbs instance Data.Aeson.Types.ToJSON.ToJSON Biobase.Types.Energy.DeltaDekaGibbs instance Control.DeepSeq.NFData Biobase.Types.Energy.DeltaDekaGibbs instance Data.Default.Class.Default Biobase.Types.Energy.DeltaDekaGibbs 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.DG instance Biobase.Types.NumericalExtremes.NumericalEpsilon Biobase.Types.Energy.DG instance Data.Vector.Unboxed.Base.Unbox Biobase.Types.Energy.DG instance Data.Vector.Generic.Mutable.Base.MVector Data.Vector.Unboxed.Base.MVector Biobase.Types.Energy.DG instance Data.Vector.Generic.Base.Vector Data.Vector.Unboxed.Base.Vector Biobase.Types.Energy.DG instance Data.Hashable.Class.Hashable Biobase.Types.Energy.DG instance Data.Binary.Class.Binary Biobase.Types.Energy.DG instance Data.Serialize.Serialize Biobase.Types.Energy.DG instance Data.Aeson.Types.FromJSON.FromJSON Biobase.Types.Energy.DG instance Data.Aeson.Types.ToJSON.ToJSON Biobase.Types.Energy.DG instance Control.DeepSeq.NFData Biobase.Types.Energy.DG instance Data.Default.Class.Default Biobase.Types.Energy.DG instance Data.Data.Data Biobase.Types.Energy.DG instance GHC.Generics.Generic Biobase.Types.Energy.DG instance GHC.Show.Show Biobase.Types.Energy.DG instance GHC.Read.Read Biobase.Types.Energy.DG instance GHC.Real.Fractional Biobase.Types.Energy.DG instance GHC.Num.Num Biobase.Types.Energy.DG instance GHC.Classes.Ord Biobase.Types.Energy.DG instance GHC.Classes.Eq Biobase.Types.Energy.DG -- | Bit scores as used by different algorithms in bioinformatics, -- linguistics, and probably elsewhere. -- -- Basically, the base-2 logarithm of the probability of the input given -- the model vs the probability of the input given the null model. -- --
--   S = log_2 (P(seq|model) / P(seq|null))
--   
module Biobase.Types.Bitscore -- | Bit score; behaves like a double (deriving Num). In particular, the -- algebraic operations behave as expected Bitscore a + Bitscore b == -- Bitscore (a+b). -- -- Currently geared towards use as in Infernal and -- HMMER. -- -- Infernal users guide, p.42: log-odds score in log_2 (aka bits). newtype Bitscore Bitscore :: Double -> Bitscore [getBitscore] :: Bitscore -> Double -- | A default bitscore of "-infinity", but with 10-1 wiggle room. -- -- TODO Check out the different "defaults" Infernal uses -- | Given a null model and a probability, calculate the corresponding -- BitScore. -- -- TODO x<=epsilon ? prob2Score :: Double -> Double -> Bitscore -- | Given a null model and a BitScore return the corresponding -- probability. score2Prob :: Double -> Bitscore -> Double instance Data.Vector.Unboxed.Base.Unbox Biobase.Types.Bitscore.Bitscore instance Data.Vector.Generic.Mutable.Base.MVector Data.Vector.Unboxed.Base.MVector Biobase.Types.Bitscore.Bitscore instance Data.Vector.Generic.Base.Vector Data.Vector.Unboxed.Base.Vector Biobase.Types.Bitscore.Bitscore instance Data.Default.Class.Default Biobase.Types.Bitscore.Bitscore instance GHC.Generics.Generic Biobase.Types.Bitscore.Bitscore instance GHC.Real.Fractional Biobase.Types.Bitscore.Bitscore instance GHC.Num.Num Biobase.Types.Bitscore.Bitscore instance GHC.Show.Show Biobase.Types.Bitscore.Bitscore instance GHC.Read.Read Biobase.Types.Bitscore.Bitscore instance GHC.Classes.Ord Biobase.Types.Bitscore.Bitscore instance GHC.Classes.Eq Biobase.Types.Bitscore.Bitscore instance Biobase.Types.NumericalExtremes.NumericalExtremes Biobase.Types.Bitscore.Bitscore instance Data.Binary.Class.Binary Biobase.Types.Bitscore.Bitscore instance Data.Aeson.Types.FromJSON.FromJSON Biobase.Types.Bitscore.Bitscore instance Data.Hashable.Class.Hashable Biobase.Types.Bitscore.Bitscore instance Data.Serialize.Serialize Biobase.Types.Bitscore.Bitscore instance Data.Aeson.Types.ToJSON.ToJSON Biobase.Types.Bitscore.Bitscore instance Control.DeepSeq.NFData Biobase.Types.Bitscore.Bitscore -- | Accession numbers. These numbers are not really numbers because -- they they are made up of alphanumeric characters. 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 -- | Generate an accession with an explicit phantom type: accession' -- Nucleotide Bla has type :: Accession Nucleotide. accession' :: ConvertibleStrings s Text => t -> s -> Accession t -- | Generate an accession when the type Accession t is clear from -- the context. accession :: ConvertibleStrings s Text => s -> Accession t -- | Retag an accession retagAccession :: Accession f -> Accession t -- | nucleotide sequence data Nucleotide Nucleotide :: Nucleotide -- | protein sequence data Protein Protein :: Protein -- | Tag as being a clan. data Clan Clan :: Clan -- | Tag as being a Pfam model. data Pfam Pfam :: Pfam -- | Tag as being an Rfam model. Used for Stockholm and CM files. data Rfam Rfam :: Rfam -- | Species have an accession number, too. data Species Species :: Species -- | Guess the type of accession number. Returns Nothing if -- unknown structure. guessAccessionType :: Accession t -> Maybe Text 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.FromJSON.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.ToJSON.ToJSON (Biobase.Types.Accession.Accession t) instance Control.DeepSeq.NFData (Biobase.Types.Accession.Accession t) -- | Biological classification of species. module Biobase.Types.Taxonomy -- | Taxonomic classification. Enum together with a final -- Unknown is somewhat fishy. data Classification Kingdom :: Classification Phylum :: Classification Class :: Classification Order :: Classification SubOrder :: Classification Family :: Classification Genus :: Classification Species :: Classification Unknown :: Classification -- | A somewhat generic representation of a species within a taxonomic -- context. data Taxon Taxon :: !SpeciesName -> !(Accession Species) -> !(Vector (TaxonomicRank, Classification)) -> Taxon -- | the full, formal name of a species [species] :: Taxon -> !SpeciesName -- | the accession for the species (or "" if unknown) [accession] :: Taxon -> !(Accession Species) -- | vector with classification information [classification] :: Taxon -> !(Vector (TaxonomicRank, Classification)) instance GHC.Generics.Generic Biobase.Types.Taxonomy.Taxon instance GHC.Show.Show Biobase.Types.Taxonomy.Taxon instance GHC.Read.Read Biobase.Types.Taxonomy.Taxon instance GHC.Classes.Eq Biobase.Types.Taxonomy.Taxon instance Data.Vector.Unboxed.Base.Unbox Biobase.Types.Taxonomy.Classification instance Data.Vector.Generic.Mutable.Base.MVector Data.Vector.Unboxed.Base.MVector Biobase.Types.Taxonomy.Classification instance Data.Vector.Generic.Base.Vector Data.Vector.Unboxed.Base.Vector Biobase.Types.Taxonomy.Classification instance Data.Binary.Class.Binary Biobase.Types.Taxonomy.Taxon instance Data.Aeson.Types.FromJSON.FromJSON Biobase.Types.Taxonomy.Taxon instance Data.Serialize.Serialize Biobase.Types.Taxonomy.Taxon instance Data.Aeson.Types.ToJSON.ToJSON Biobase.Types.Taxonomy.Taxon instance Control.DeepSeq.NFData Biobase.Types.Taxonomy.Taxon instance Data.Hashable.Class.Hashable Biobase.Types.Taxonomy.Taxon instance GHC.Generics.Generic Biobase.Types.Taxonomy.Classification instance GHC.Enum.Enum Biobase.Types.Taxonomy.Classification instance GHC.Show.Show Biobase.Types.Taxonomy.Classification instance GHC.Read.Read Biobase.Types.Taxonomy.Classification instance GHC.Classes.Ord Biobase.Types.Taxonomy.Classification instance GHC.Classes.Eq Biobase.Types.Taxonomy.Classification instance Data.Binary.Class.Binary Biobase.Types.Taxonomy.Classification instance Data.Aeson.Types.FromJSON.FromJSON Biobase.Types.Taxonomy.Classification instance Data.Hashable.Class.Hashable Biobase.Types.Taxonomy.Classification instance Data.Serialize.Serialize Biobase.Types.Taxonomy.Classification instance Data.Aeson.Types.ToJSON.ToJSON Biobase.Types.Taxonomy.Classification instance Control.DeepSeq.NFData Biobase.Types.Taxonomy.Classification