-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | A simple, mindless parser for fasta files.
--   
--   The fasta type specifically split by String, Text, Lazy Text,
--   ByteString, and Lazy ByteString for simplicity and ease of use,
--   although lacking many features of other parsers. Mainly for use with
--   bioinformatics applications which are very general and need no
--   conversion overhead.
@package fasta
@version 0.10.4.2


-- | Collects all application specific types. Used here for ByteString.Lazy
module Data.Fasta.ByteString.Lazy.Types
data FastaSequence
FastaSequence :: ByteString -> ByteString -> FastaSequence
[fastaHeader] :: FastaSequence -> ByteString
[fastaSeq] :: FastaSequence -> ByteString
type Codon = ByteString
type AA = Char
type Clone = FastaSequence
type Germline = FastaSequence

-- | A clone is a collection of sequences derived from a germline with a
--   specific identifier
type CloneMap = Map (Int, Germline) [Clone]
class ShowFasta a
showFasta :: ShowFasta a => a -> ByteString
instance GHC.Show.Show Data.Fasta.ByteString.Lazy.Types.FastaSequence
instance GHC.Classes.Ord Data.Fasta.ByteString.Lazy.Types.FastaSequence
instance GHC.Classes.Eq Data.Fasta.ByteString.Lazy.Types.FastaSequence
instance Data.Fasta.ByteString.Lazy.Types.ShowFasta Data.Fasta.ByteString.Lazy.Types.FastaSequence


-- | Collects all functions pertaining to the translation of nucleotides to
--   amino acids for Lazy ByteString.
module Data.Fasta.ByteString.Lazy.Translation

-- | Lazy ByteString version of chunksOf
chunksOf :: Int64 -> ByteString -> [ByteString]

-- | Converts a codon to an amino acid Remember, if there is an <a>N</a> in
--   that DNA sequence, then it is translated as an X, an unknown amino
--   acid.
codon2aa :: Codon -> Either ByteString AA

-- | Translate a codon using a custom table
customCodon2aa :: [(Codon, Char)] -> Codon -> Either ByteString AA

-- | Translates a bytestring of nucleotides given a reading frame (1, 2, or
--   3) -- drops the first 0, 1, or 2 nucleotides respectively. Returns a
--   bytestring with the error if the codon is invalid.
translate :: Int64 -> FastaSequence -> Either ByteString FastaSequence

-- | Translates a bytestring of nucleotides given a reading frame (1, 2, or
--   3) -- drops the first 0, 1, or 2 nucleotides respectively. Returns a
--   bytestring with the error if the codon is invalid. Also has customized
--   codon translations as well overriding the defaults.
customTranslate :: [(Codon, AA)] -> Int64 -> FastaSequence -> Either ByteString FastaSequence


-- | Collection of functions for the parsing of a fasta file. Uses the lazy
--   - ByteString type.
module Data.Fasta.ByteString.Lazy.Parse

-- | Parse a standard fasta file into
parsecFasta :: ByteString -> [FastaSequence]

-- | Parse a CLIP fasta file into
parsecCLIPFasta :: ByteString -> CloneMap

-- | Parse a standard fasta file
attoFasta :: ByteString -> [FastaSequence]

-- | Parse a CLIP fasta file into text sequences
attoCLIPFasta :: ByteString -> [(Germline, [FastaSequence])]

-- | Parse a standard fasta file into a pipe
pipesFasta :: (MonadIO m) => Producer ByteString m () -> Producer FastaSequence m ()

-- | Parse a CLIP fasta file into strict text sequences for pipes.
pipesCLIPFasta :: (MonadIO m) => Producer ByteString m () -> Producer (Germline, [FastaSequence]) m (Either (ParsingError, Producer ByteString m ()) ())

-- | Remove Ns from a collection of sequences
removeNs :: [FastaSequence] -> [FastaSequence]

-- | Remove Ns from a sequence
removeN :: FastaSequence -> FastaSequence

-- | Remove Ns from a collection of CLIP fasta sequences
removeCLIPNs :: CloneMap -> CloneMap


-- | Collects all application specific types. Used here for Text.
module Data.Fasta.ByteString.Types
data FastaSequence
FastaSequence :: ByteString -> ByteString -> FastaSequence
[fastaHeader] :: FastaSequence -> ByteString
[fastaSeq] :: FastaSequence -> ByteString
type Codon = ByteString
type AA = Char
type Clone = FastaSequence
type Germline = FastaSequence

-- | A clone is a collection of sequences derived from a germline with a
--   specific identifier
type CloneMap = Map (Int, Germline) [Clone]
class ShowFasta a
showFasta :: ShowFasta a => a -> ByteString
instance GHC.Show.Show Data.Fasta.ByteString.Types.FastaSequence
instance GHC.Classes.Ord Data.Fasta.ByteString.Types.FastaSequence
instance GHC.Classes.Eq Data.Fasta.ByteString.Types.FastaSequence
instance Data.Fasta.ByteString.Types.ShowFasta Data.Fasta.ByteString.Types.FastaSequence


-- | Collects all functions pertaining to the translation of nucleotides to
--   amino acids for ByteStrings
module Data.Fasta.ByteString.Translation

-- | ByteString version of chunksOf
chunksOf :: Int -> ByteString -> [ByteString]

-- | Converts a codon to an amino acid Remember, if there is an <a>N</a> in
--   that DNA sequence, then it is translated as an X, an unknown amino
--   acid.
codon2aa :: Codon -> Either ByteString AA

-- | Translate a codon using a custom table
customCodon2aa :: [(Codon, Char)] -> Codon -> Either ByteString AA

-- | Translates a bytestring of nucleotides given a reading frame (1, 2, or
--   3) -- drops the first 0, 1, or 2 nucleotides respectively. Returns a
--   bytestring with the error if the codon is invalid.
translate :: Int -> FastaSequence -> Either ByteString FastaSequence

-- | Translates a bytestring of nucleotides given a reading frame (1, 2, or
--   3) -- drops the first 0, 1, or 2 nucleotides respectively. Returns a
--   bytestring with the error if the codon is invalid. Also has customized
--   codon translations as well overriding the defaults.
customTranslate :: [(Codon, AA)] -> Int -> FastaSequence -> Either ByteString FastaSequence


-- | Collection of functions for the parsing of a fasta file. Uses the -
--   ByteString type.
module Data.Fasta.ByteString.Parse

-- | Parse a standard fasta file into text sequences
parsecFasta :: ByteString -> [FastaSequence]

-- | Parse a CLIP fasta file into text sequences
parsecCLIPFasta :: ByteString -> CloneMap

-- | Parse a standard fasta file
attoFasta :: ByteString -> [FastaSequence]

-- | Parse a CLIP fasta file into text sequences
attoCLIPFasta :: ByteString -> [(Germline, [FastaSequence])]

-- | Parse a standard fasta file into strict text sequences for pipes. This
--   is the highly recommeded way of parsing, as it is computationally fast
--   and uses memory based on line length
pipesFasta :: (MonadIO m) => Producer ByteString m () -> Producer FastaSequence m ()

-- | Parse a CLIP fasta file into strict text sequences for pipes.
pipesCLIPFasta :: (MonadIO m) => Producer ByteString m () -> Producer (Germline, [FastaSequence]) m (Either (ParsingError, Producer ByteString m ()) ())

-- | Remove Ns from a collection of sequences
removeNs :: [FastaSequence] -> [FastaSequence]

-- | Remove Ns from a sequence
removeN :: FastaSequence -> FastaSequence

-- | Remove Ns from a collection of CLIP fasta sequences
removeCLIPNs :: CloneMap -> CloneMap


-- | Collects all functions pertaining to the categorization of nucleotides
--   - or amino acids
module Data.Fasta.Category
data Hydrophobicity
Hydrophobic :: Hydrophobicity
Neutral :: Hydrophobicity
Hydrophilic :: Hydrophobicity

-- | Returns the hydrophobicity of an amino acid
aaToHydrophobicity :: Char -> Either String Hydrophobicity
instance GHC.Show.Show Data.Fasta.Category.Hydrophobicity
instance GHC.Read.Read Data.Fasta.Category.Hydrophobicity
instance GHC.Classes.Ord Data.Fasta.Category.Hydrophobicity
instance GHC.Classes.Eq Data.Fasta.Category.Hydrophobicity


-- | Collects all application specific types. Used here for strings.
module Data.Fasta.String.Types
data FastaSequence
FastaSequence :: String -> String -> FastaSequence
[fastaHeader] :: FastaSequence -> String
[fastaSeq] :: FastaSequence -> String
type Codon = String
type AA = Char
type Clone = FastaSequence
type Germline = FastaSequence

-- | A clone is a collection of sequences derived from a germline with a
--   specific identifier
type CloneMap = Map (Int, Germline) [Clone]
class ShowFasta a
showFasta :: ShowFasta a => a -> String
instance GHC.Show.Show Data.Fasta.String.Types.FastaSequence
instance GHC.Classes.Ord Data.Fasta.String.Types.FastaSequence
instance GHC.Classes.Eq Data.Fasta.String.Types.FastaSequence
instance Data.Fasta.String.Types.ShowFasta Data.Fasta.String.Types.FastaSequence


-- | Collects all functions pertaining to the translation of nucleotides to
--   amino acids for strings.
module Data.Fasta.String.Translation

-- | Converts a codon to an amino acid Remember, if there is an <a>N</a> in
--   that DNA sequence, then it is translated as an X, an unknown amino
--   acid.
codon2aa :: Codon -> Either String AA

-- | Translate a codon using a custom table
customCodon2aa :: [(Codon, Char)] -> Codon -> Either String AA

-- | Translates a string of nucleotides given a reading frame (1, 2, or 3)
--   -- drops the first 0, 1, or 2 nucleotides respectively. Returns a
--   string with the error if the codon is invalid.
translate :: Int -> FastaSequence -> Either String FastaSequence

-- | Translates a string of nucleotides given a reading frame (1, 2, or 3)
--   -- drops the first 0, 1, or 2 nucleotides respectively. Returns a
--   string with the error if the codon is invalid. Also has customized
--   codon translations as well overriding the defaults.
customTranslate :: [(Codon, AA)] -> Int -> FastaSequence -> Either String FastaSequence


-- | Collection of functions for the parsing of a fasta file. Uses the
--   string type.
module Data.Fasta.String.Parse

-- | Parse a standard fasta file into string sequences
parseFasta :: String -> [FastaSequence]

-- | Parse a CLIP fasta file into string sequences
parseCLIPFasta :: String -> CloneMap

-- | Parse a standard fasta file into string sequences for pipes. This is
--   the highly recommeded way of parsing, as it is computationally fast
--   and uses constant file memory
pipesFasta :: (MonadIO m) => Handle -> Pipe String FastaSequence m ()

-- | Remove Ns from a collection of sequences
removeNs :: [FastaSequence] -> [FastaSequence]

-- | Remove Ns from a sequence
removeN :: FastaSequence -> FastaSequence

-- | Remove Ns from a collection of CLIP fasta sequences
removeCLIPNs :: CloneMap -> CloneMap


-- | Collects all application specific types. Used here for Text.Lazy
module Data.Fasta.Text.Lazy.Types
data FastaSequence
FastaSequence :: Text -> Text -> FastaSequence
[fastaHeader] :: FastaSequence -> Text
[fastaSeq] :: FastaSequence -> Text
type Codon = Text
type AA = Char
type Clone = FastaSequence
type Germline = FastaSequence

-- | A clone is a collection of sequences derived from a germline with a
--   specific identifier
type CloneMap = Map (Int, Germline) [Clone]
class ShowFasta a
showFasta :: ShowFasta a => a -> Text
instance GHC.Show.Show Data.Fasta.Text.Lazy.Types.FastaSequence
instance GHC.Classes.Ord Data.Fasta.Text.Lazy.Types.FastaSequence
instance GHC.Classes.Eq Data.Fasta.Text.Lazy.Types.FastaSequence
instance Data.Fasta.Text.Lazy.Types.ShowFasta Data.Fasta.Text.Lazy.Types.FastaSequence


-- | Collects all functions pertaining to the translation of nucleotides to
--   amino acids for Lazy Text.
module Data.Fasta.Text.Lazy.Translation

-- | Converts a codon to an amino acid Remember, if there is an <a>N</a> in
--   that DNA sequence, then it is translated as an X, an unknown amino
--   acid.
codon2aa :: Codon -> Either Text Char

-- | Translate a codon using a custom table
customCodon2aa :: [(Codon, Char)] -> Codon -> Either Text AA

-- | Translates a text of nucleotides given a reading frame (1, 2, or 3) --
--   drops the first 0, 1, or 2 nucleotides respectively. Returns a text
--   with the error if the codon is invalid.
translate :: Int64 -> FastaSequence -> Either Text FastaSequence

-- | Translates a text of nucleotides given a reading frame (1, 2, or 3) --
--   drops the first 0, 1, or 2 nucleotides respectively. Returns a text
--   with the error if the codon is invalid. Also has customized codon
--   translations as well overriding the defaults.
customTranslate :: [(Codon, AA)] -> Int64 -> FastaSequence -> Either Text FastaSequence


-- | Collection of functions for the parsing of a fasta file. Uses the lazy
--   Text type.
module Data.Fasta.Text.Lazy.Parse

-- | Parse a standard fasta file
parsecFasta :: Text -> [FastaSequence]

-- | Parse a CLIP fasta file
parsecCLIPFasta :: Text -> CloneMap

-- | Parse a standard fasta file
attoFasta :: Text -> [FastaSequence]

-- | Parse a CLIP fasta file
attoCLIPFasta :: Text -> [(Germline, [FastaSequence])]

-- | Parse a standard fasta file into a pipe
pipesFasta :: (MonadIO m) => Producer Text m () -> Producer FastaSequence m ()

-- | Parse a CLIP fasta file into a pipe
pipesCLIPFasta :: (MonadIO m) => Producer Text m () -> Producer (Germline, [FastaSequence]) m (Either (ParsingError, Producer Text m ()) ())

-- | Remove Ns from a collection of sequences
removeNs :: [FastaSequence] -> [FastaSequence]

-- | Remove Ns from a sequence
removeN :: FastaSequence -> FastaSequence

-- | Remove Ns from a collection of CLIP fasta sequences
removeCLIPNs :: CloneMap -> CloneMap


-- | Collects all application specific types. Used here for Text.
module Data.Fasta.Text.Types
data FastaSequence
FastaSequence :: Text -> Text -> FastaSequence
[fastaHeader] :: FastaSequence -> Text
[fastaSeq] :: FastaSequence -> Text
type Codon = Text
type AA = Char
type Clone = FastaSequence
type Germline = FastaSequence

-- | A clone is a collection of sequences derived from a germline with a
--   specific identifier
type CloneMap = Map (Int, Germline) [Clone]
class ShowFasta a
showFasta :: ShowFasta a => a -> Text
instance GHC.Show.Show Data.Fasta.Text.Types.FastaSequence
instance GHC.Classes.Ord Data.Fasta.Text.Types.FastaSequence
instance GHC.Classes.Eq Data.Fasta.Text.Types.FastaSequence
instance Data.Fasta.Text.Types.ShowFasta Data.Fasta.Text.Types.FastaSequence


-- | Collects all functions pertaining to the translation of nucleotides to
--   amino acids for Text.
module Data.Fasta.Text.Translation

-- | Converts a codon to an amino acid Remember, if there is an <a>N</a> in
--   that DNA sequence, then it is translated as an X, an unknown amino
--   acid.
codon2aa :: Codon -> Either Text AA

-- | Translate a codon using a custom table
customCodon2aa :: [(Codon, Char)] -> Codon -> Either Text AA

-- | Translates a text of nucleotides given a reading frame (1, 2, or 3) --
--   drops the first 0, 1, or 2 nucleotides respectively. Returns a text
--   with the error if the codon is invalid.
translate :: Int -> FastaSequence -> Either Text FastaSequence

-- | Translates a text of nucleotides given a reading frame (1, 2, or 3) --
--   drops the first 0, 1, or 2 nucleotides respectively. Returns a text
--   with the error if the codon is invalid. Also has customized codon
--   translations as well overriding the defaults.
customTranslate :: [(Codon, AA)] -> Int -> FastaSequence -> Either Text FastaSequence


-- | Collection of functions for the parsing of a fasta file. Uses the Text
--   type.
module Data.Fasta.Text.Parse

-- | Parse a standard fasta file
parsecFasta :: Text -> [FastaSequence]

-- | Parse a CLIP fasta file
parsecCLIPFasta :: Text -> CloneMap

-- | Parse a standard fasta file
attoFasta :: Text -> [FastaSequence]

-- | Parse a CLIP fasta file
attoCLIPFasta :: Text -> [(Germline, [FastaSequence])]

-- | Parse a standard fasta file into a pipe
pipesFasta :: (MonadIO m) => Producer Text m () -> Producer FastaSequence m ()

-- | Parse a CLIP fasta file into a pipe
pipesCLIPFasta :: (MonadIO m) => Producer Text m () -> Producer (Germline, [FastaSequence]) m (Either (ParsingError, Producer Text m ()) ())

-- | Remove Ns from a collection of sequences
removeNs :: [FastaSequence] -> [FastaSequence]

-- | Remove Ns from a sequence
removeN :: FastaSequence -> FastaSequence

-- | Remove Ns from a collection of CLIP fasta sequences
removeCLIPNs :: CloneMap -> CloneMap


-- | Collects all helpful random functions.
module Data.Fasta.Utility

-- | Defines the rules for complement. Unknown characters are left
--   untouched.
complRules :: Char -> Char


-- | Collects all helpful random functions.
module Data.Fasta.Text.Utility

-- | Gets a 1 indexed field from the header of a fasta sequence using a
--   certain delimiter.
getField :: Int -> Char -> FastaSequence -> Text

-- | Gets the complement of the sequence.
compl :: FastaSequence -> FastaSequence

-- | Gets the reverse complement of the sequence.
revCompl :: FastaSequence -> FastaSequence


-- | Collects all application specific functions and types. Used here for
--   Text.
module Data.Fasta.Text


-- | Collects all helpful random functions.
module Data.Fasta.Text.Lazy.Utility

-- | Gets a 1 indexed field from the header of a fasta sequence using a
--   certain delimiter.
getField :: Int -> Char -> FastaSequence -> Text

-- | Gets the complement of the sequence.
compl :: FastaSequence -> FastaSequence

-- | Gets the reverse complement of the sequence.
revCompl :: FastaSequence -> FastaSequence


-- | Collects all application specific functions and types. Used here for
--   Text.Lazy
module Data.Fasta.Text.Lazy


-- | Collects all helpful random functions.
module Data.Fasta.String.Utility

-- | Gets a 1 indexed field from the header of a fasta sequence using a
--   certain delimiter.
getField :: Int -> Char -> FastaSequence -> String

-- | Gets the complement of the sequence.
compl :: FastaSequence -> FastaSequence

-- | Gets the reverse complement of the sequence.
revCompl :: FastaSequence -> FastaSequence


-- | Collects all application functions and types. Used here for strings.
module Data.Fasta.String


-- | Collects all helpful random functions.
module Data.Fasta.ByteString.Utility

-- | Gets a 1 indexed field from the header of a fasta sequence using a
--   certain delimiter.
getField :: Int -> Char -> FastaSequence -> ByteString

-- | Gets the complement of the sequence.
compl :: FastaSequence -> FastaSequence

-- | Gets the reverse complement of the sequence.
revCompl :: FastaSequence -> FastaSequence


-- | Collects all application specific functions and types. Used here for
--   Text.
module Data.Fasta.ByteString


-- | Collects all helpful random functions.
module Data.Fasta.ByteString.Lazy.Utility

-- | Gets a 1 indexed field from the header of a fasta sequence using a
--   certain delimiter.
getField :: Int -> Char -> FastaSequence -> ByteString

-- | Gets the complement of the sequence.
compl :: FastaSequence -> FastaSequence

-- | Gets the reverse complement of the sequence.
revCompl :: FastaSequence -> FastaSequence


-- | Collects all application specific functions and types. Used here for
--   Text.Lazy
module Data.Fasta.ByteString.Lazy
