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


-- | BLOSUM generator
--   
--   Generates BLOSUMs for use with finding the degree of amino acid
--   conservation.
@package blosum
@version 0.1.1.4

module Types
newtype AA
AA :: Char -> AA
[unAA] :: AA -> Char
newtype Nuc
Nuc :: Char -> Nuc
newtype Field
Field :: Int -> Field
newtype Frequency
Frequency :: Double -> Frequency
newtype Position
Position :: Int -> Position
newtype Identity
Identity :: Double -> Identity
newtype BlosumVal
BlosumVal :: Int -> BlosumVal
[unBlosumVal] :: BlosumVal -> Int
newtype ClusterMap
ClusterMap :: Map Int (Seq FastaSequence) -> ClusterMap
[unClusterMap] :: ClusterMap -> Map Int (Seq FastaSequence)
newtype ClusterFrequencyMap
ClusterFrequencyMap :: (Map Position (Seq (AA, Frequency))) -> ClusterFrequencyMap
[unClusterFrequencyMap] :: ClusterFrequencyMap -> (Map Position (Seq (AA, Frequency)))
newtype AAMap
AAMap :: Map AA (Map AA Frequency) -> AAMap
[unAAMap] :: AAMap -> Map AA (Map AA Frequency)
newtype BlockMap
BlockMap :: AAMap -> BlockMap
[unBlockMap] :: BlockMap -> AAMap
newtype FrequencyMap
FrequencyMap :: AAMap -> FrequencyMap
[unFrequencyMap] :: FrequencyMap -> AAMap
newtype Blosum
Blosum :: (Map AA (Map AA BlosumVal)) -> Blosum
[unBlosum] :: Blosum -> (Map AA (Map AA BlosumVal))
instance GHC.Show.Show Types.Blosum
instance GHC.Classes.Ord Types.Blosum
instance GHC.Classes.Eq Types.Blosum
instance GHC.Show.Show Types.FrequencyMap
instance GHC.Classes.Ord Types.FrequencyMap
instance GHC.Classes.Eq Types.FrequencyMap
instance GHC.Show.Show Types.BlockMap
instance GHC.Classes.Ord Types.BlockMap
instance GHC.Classes.Eq Types.BlockMap
instance GHC.Show.Show Types.AAMap
instance GHC.Classes.Ord Types.AAMap
instance GHC.Classes.Eq Types.AAMap
instance GHC.Show.Show Types.ClusterFrequencyMap
instance GHC.Classes.Ord Types.ClusterFrequencyMap
instance GHC.Classes.Eq Types.ClusterFrequencyMap
instance GHC.Show.Show Types.ClusterMap
instance GHC.Classes.Ord Types.ClusterMap
instance GHC.Classes.Eq Types.ClusterMap
instance GHC.Read.Read Types.BlosumVal
instance GHC.Show.Show Types.BlosumVal
instance GHC.Enum.Enum Types.BlosumVal
instance GHC.Num.Num Types.BlosumVal
instance GHC.Classes.Ord Types.BlosumVal
instance GHC.Classes.Eq Types.BlosumVal
instance GHC.Read.Read Types.Identity
instance GHC.Show.Show Types.Identity
instance GHC.Num.Num Types.Identity
instance GHC.Classes.Ord Types.Identity
instance GHC.Classes.Eq Types.Identity
instance GHC.Read.Read Types.Position
instance GHC.Show.Show Types.Position
instance GHC.Enum.Enum Types.Position
instance GHC.Num.Num Types.Position
instance GHC.Classes.Ord Types.Position
instance GHC.Classes.Eq Types.Position
instance GHC.Real.Fractional Types.Frequency
instance GHC.Read.Read Types.Frequency
instance GHC.Show.Show Types.Frequency
instance GHC.Enum.Enum Types.Frequency
instance GHC.Num.Num Types.Frequency
instance GHC.Classes.Ord Types.Frequency
instance GHC.Classes.Eq Types.Frequency
instance GHC.Classes.Eq Types.Field
instance GHC.Read.Read Types.Nuc
instance GHC.Show.Show Types.Nuc
instance GHC.Classes.Ord Types.Nuc
instance GHC.Classes.Eq Types.Nuc
instance GHC.Read.Read Types.AA
instance GHC.Show.Show Types.AA
instance GHC.Classes.Ord Types.AA
instance GHC.Classes.Eq Types.AA
instance GHC.Base.Monoid Types.AAMap

module Print

-- | Print the BLOSUM matrix as a dataframe
printBlosum :: Blosum -> Text

-- | Print the BLOSUM matrix as a csv matrix according to a certain order
printBlosumCSV :: [AA] -> Blosum -> Text

module Cluster

-- | Takes in an identity and fasta sequences and returns the sequences
--   grouped together by hamming distance identity
getClusterIdentity :: Identity -> Seq FastaSequence -> ClusterMap

-- | Group together by all pairings rather than adjacent. Altered from
--   lyxia's original to use sequences.
groupBy' :: (a -> a -> Bool) -> Seq a -> Seq (Seq a)

module Utility

-- | Extract sequence from a fasta sequence
getSeq :: FastaSequence -> [AA]

-- | Sort a tuple
sortTuple :: (Ord a) => (a, a) -> (a, a)

-- | Faster nub
nub' :: (Ord a) => [a] -> [a]

-- | Group together fasta entires by a field
groupBlocks :: Maybe Field -> [FastaSequence] -> [[FastaSequence]]

-- | Cut off the ends of a sequence
cutEnds :: Seq a -> Seq a

-- | Sum up a map
sumMap :: (Ord a, Num b) => Map a b -> b

module Matrix

-- | Filter gaps out of the map. If no gaps are wanted, remove the entire
--   position
removeChar :: Bool -> Maybe [AA] -> AAMap -> AAMap

-- | Get the frequencies of amino acid pairs for each position in a cluster
getClusterFrequencyMap :: Seq FastaSequence -> ClusterFrequencyMap

-- | Get the frequency matrix from a list of frequency maps from clusters.
--   We no longer care about positions after this.
getBlockMap :: Bool -> Maybe [AA] -> [ClusterFrequencyMap] -> BlockMap

-- | Join together all frequency maps into a single frequency map.
joinBlockMaps :: [BlockMap] -> FrequencyMap

-- | Get the blosum matrix of each AA entry
getBlosum :: FrequencyMap -> Blosum
