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


-- | Find the clumpiness of labels in a tree
--   
--   Use a clumpiness measure to find the aggregation relationship between
--   labels inside of a tree.
@package find-clumpiness
@version 0.2.3.1

module Types
data NodeLabel
NodeLabel :: !Text -> !Labels -> NodeLabel
[nodeID] :: NodeLabel -> !Text
[nodeLabels] :: NodeLabel -> !Labels
data Format
JSON :: Format
RJSON :: Format
Haskell :: HaskellFormat -> Format
Newick :: Format
Lineage :: Text -> Format
data HaskellFormat
BaseFormat :: HaskellFormat
TreeFormat :: HaskellFormat
DendrogramFormat :: HaskellFormat
data Exclusivity
Exclusive :: Exclusivity
AllExclusive :: Exclusivity
Majority :: Exclusivity
newtype Separator
Separator :: Text -> Separator
newtype Field
Field :: Int -> Field
type Label = Text
type Labels = Seq Label

-- | Class of trees that can be converted to workable trees.
class WorkableTree a
makeWorkable :: WorkableTree a => a -> Tree NodeLabel
instance GHC.Show.Show Types.NodeLabel
instance GHC.Read.Read Types.NodeLabel
instance GHC.Classes.Ord Types.NodeLabel
instance GHC.Classes.Eq Types.NodeLabel
instance GHC.Generics.Generic Types.NodeLabel
instance GHC.Show.Show Types.Field
instance GHC.Show.Show Types.Separator
instance GHC.Read.Read Types.Exclusivity
instance GHC.Read.Read Types.Format
instance GHC.Read.Read Types.HaskellFormat
instance Types.WorkableTree (Data.Tree.Tree Types.NodeLabel)
instance Types.WorkableTree (Data.Tree.Tree (Data.Sequence.Internal.Seq Data.Text.Internal.Text))
instance Types.WorkableTree (Data.Clustering.Hierarchical.Internal.Types.Dendrogram (Data.Sequence.Internal.Seq Data.Text.Internal.Text))
instance Data.Aeson.Types.FromJSON.FromJSON Types.NodeLabel

module TreeTransform

-- | Convert the input tree to a SuperNodeTree
convertToSuperTree :: Tree NodeLabel -> Tree (SuperNode NodeLabel)

-- | Get the PropertyMap of a SuperNodeTree, ignoring nodes that have no
--   labels
getPropertyMap :: Tree (SuperNode NodeLabel) -> PropertyMap NodeLabel Label

-- | Convert inner nodes with labels to leaves
innerToLeaves :: Tree NodeLabel -> Tree NodeLabel

-- | Change labels to be exclusive or not
filterExclusiveTree :: Exclusivity -> Tree NodeLabel -> Tree NodeLabel

-- | Add unique node IDs to a tree, replacing any previous node IDs.
addUniqueNodeIDs :: Tree NodeLabel -> Tree NodeLabel

module RJSONConvert

-- | Convert a R JSON format into the workable tree format
rJsonToTree :: Object -> Tree NodeLabel

-- | Get the generic AST from the file
decodeRJsonTree :: ByteString -> Object

-- | Get the lineage tree from a generic AST
getRJsonTree :: Object -> Tree NodeLabel

module Print
printClumpList :: ClumpList Label -> Text

module NewickConvert

-- | Convert a newick format into the workable tree format.
newickToTree :: Separator -> Field -> NewickTree -> Tree NodeLabel

module LineageConvert

-- | Convert a lineage format into the workable tree format
lineageToTree :: Label -> Object -> Tree NodeLabel

-- | Get the generic AST from the file
decodeLineageTree :: ByteString -> Object

-- | Get the lineage tree from a generic AST
getLineageTree :: Label -> Object -> Tree NodeLabel

module Clumpiness
getClumpiness :: Exclusivity -> Bool -> Bool -> Tree NodeLabel -> ClumpList Label

module Utility

-- | Get the separator and field info for getting labels from Newick trees
newickSplitters :: (String, Int) -> (Separator, Field)
