{- |
   This is a meta-module importing and re-exporting sequence-related stuff.

   It encompasses the "Bio.Sequence.SeqData", "Bio.Sequence.Fasta", and "Bio.Sequence.TwoBit" modules.
-}

module Bio.Sequence 
    (
    -- * Data structures etc ("Bio.Sequence.SeqData")
      Sequence(..), Offset, SeqData, Qual, QualData
    -- ** Accessor functions
    , seqlength, seqlabel, seqheader, seqdata, seqqual, (!)

    -- ** Converting to and from String.
    , fromStr, toStr
    -- ** Nucleotide functionality.
    , compl, revcompl
    -- ** Protein sequence functionality
    , Amino(..), translate, fromIUPAC, toIUPAC

    -- * File formats
    -- ** The Fasta file format ("Bio.Sequence.Fasta")
    , readFasta, hReadFasta 
    , writeFasta, hWriteFasta
    -- ** Quality data 
    -- | Not part of the Fasta format, and treated separately.
    , readQual, writeQual, hWriteQual
    , readFastaQual
    , writeFastaQual, hWriteFastaQual

    -- ** The phd file format ("Bio.Sequence.Phd")
    -- | These contain base (nucleotide) calling information,
    --   and are generated by @phred@.
    , readPhd, hReadPhd

    -- ** TwoBit file format support ("Bio.Seqeunce.TwoBit")
    -- | Used by @BLAT@ and related tools.
    , decode2Bit, read2Bit, hRead2Bit 
    -- ,encode2Bit, write2Bit, hWrite2Bit

    -- * Hashing functionality ("Bio.Sequence.HashWord")
    -- | Packing words from sequences into integral data types 
    , HashF (..)
    , contigous, rcontig, rcpacked

    -- * Entropy calculations
    , KWords(..), entropy
    ) where

-- basic sequence data structures
import Bio.Sequence.SeqData

-- file formats
import Bio.Sequence.Fasta
import Bio.Sequence.Phd
import Bio.Sequence.TwoBit

-- sequence-oriented stuff
import Bio.Sequence.Entropy
import Bio.Sequence.HashWord