{- too-many-cells Gregory W. Schwartz Clusters single cell data. -} {-# LANGUAGE OverloadedStrings #-} module Main where -- Remote import Options.Applicative -- Local import TooManyCells.Program.Differential import TooManyCells.Program.Diversity import TooManyCells.Program.Interactive import TooManyCells.Program.MakeTree import TooManyCells.Program.MatrixOutput import TooManyCells.Program.Classify import TooManyCells.Program.Motifs import TooManyCells.Program.Options import TooManyCells.Program.Paths import TooManyCells.Program.Peaks import TooManyCells.Program.Spatial main :: IO () main = do let opts = info (sub <**> helper) ( fullDesc <> progDesc "Clusters and analyzes single cell data." <> header "too-many-cells, Gregory W. Schwartz" ) config <- customExecParser (prefs (showHelpOnEmpty <> showHelpOnError)) opts let mainEntry (MakeTreeCommand _) = makeTreeMain config mainEntry (InteractiveCommand _) = interactiveMain config mainEntry (DifferentialCommand _) = differentialMain config mainEntry (DiversityCommand _) = diversityMain config mainEntry (PathsCommand _) = pathsMain config mainEntry (ClassifyCommand _) = classifyMain config mainEntry (PeaksCommand _) = peaksMain config mainEntry (MotifsCommand _) = motifsMain config mainEntry (MatrixOutputCommand _) = matrixOutputMain config mainEntry (SpatialCommand _) = spatialMain config mainEntry config