Skip to content

Commit

Permalink
fixed a few bugs
Browse files Browse the repository at this point in the history
  • Loading branch information
Stephan Schiffels committed Mar 6, 2018
1 parent ec134a5 commit 00b48f4
Show file tree
Hide file tree
Showing 6 changed files with 16 additions and 16 deletions.
3 changes: 1 addition & 2 deletions exampleData/fourPop.histogram.txt
@@ -1,8 +1,7 @@
NAMES=EUR,SEA,SIB,FAM
N=66,44,44,28
MAX_M=10
0,0,0,0 2159959569
HIGHER 3462654
TOTAL_SITES=2170616682
1,0,0,0 1525898
0,1,0,0 1075097
0,0,1,0 818979
Expand Down
4 changes: 2 additions & 2 deletions src-rarecoal/Main.hs
Expand Up @@ -185,11 +185,11 @@ parseHistOpts = HistogramOptions <$> parseHistPath <*> parseMinAf <*>
\square-brackets. Gives all branches (as 0-based indices) in which you \
\require at least one derived allele for the computation of the \
\likelihood. This is useful for mapping ancient samples onto a tree" <>
OP.value [] <> OP.hidden
OP.value [] <> OP.showDefault
parseExcludePattern = OP.option OP.auto $ OP.long "excludePattern" <>
OP.metavar "[INT,INT,...]" <> OP.help "a comma-separated list without \
\spaces and surrounded by square-brackets. Gives a pattern to exclude \
\from fitting. Can be given multiple times" <> OP.hidden
\from fitting. Can be given multiple times" <> OP.hidden <> OP.value [] <> OP.showDefault

parseMaxl :: OP.Parser Command
parseMaxl = CmdMaxl <$> parseMaxlOpt
Expand Down
5 changes: 3 additions & 2 deletions src-rarecoal/Maxl.hs
Expand Up @@ -2,7 +2,7 @@
module Maxl (runMaxl, MaxlOpt(..)) where

import Rarecoal.ModelTemplate (ModelTemplate(..), instantiateModel, getModelTemplate,
ModelOptions(..), ParamOptions(..), makeParameterDict, getParamNames)
ModelOptions(..), ParamOptions(..), makeParameterDict, getParamNames, fillParameterDictWithDefaults)
import Rarecoal.Utils (GeneralOptions(..), HistogramOptions(..), setNrProcessors, loadHistogram)
import Rarecoal.MaxUtils (penalty, minFunc, computeFrequencySpectrum,
writeFullFitTable, writeSummaryFitTable, makeInitialPoint)
Expand Down Expand Up @@ -30,7 +30,8 @@ runMaxl :: MaxlOpt -> Script ()
runMaxl opts = do
scriptIO $ setNrProcessors (maGeneralOpts opts)
modelTemplate <- getModelTemplate (maModelOpts opts)
modelParams <- scriptIO $ makeParameterDict (maParamOpts opts)
modelParams <- (scriptIO $ makeParameterDict (maParamOpts opts)) >>=
fillParameterDictWithDefaults modelTemplate
_ <- tryRight $ instantiateModel (maGeneralOpts opts) modelTemplate modelParams
let modelBranchNames = mtBranchNames modelTemplate
hist <- loadHistogram (maHistogramOpts opts) modelBranchNames
Expand Down
5 changes: 3 additions & 2 deletions src-rarecoal/Mcmc.hs
Expand Up @@ -2,7 +2,7 @@ module Mcmc (runMcmc, McmcOpt(..)) where

import Rarecoal.Utils (GeneralOptions(..), HistogramOptions(..), setNrProcessors)
import Rarecoal.ModelTemplate (ModelTemplate(..), ParamOptions(..), ModelOptions(..),
getModelTemplate, instantiateModel, getParamNames, makeParameterDict)
getModelTemplate, instantiateModel, getParamNames, makeParameterDict, fillParameterDictWithDefaults)
import Rarecoal.Utils (loadHistogram)
import Rarecoal.MaxUtils (minFunc, penalty, writeFullFitTable, writeSummaryFitTable,
makeInitialPoint, computeFrequencySpectrum)
Expand Down Expand Up @@ -49,7 +49,8 @@ runMcmc :: McmcOpt -> Script ()
runMcmc opts = do
scriptIO $ setNrProcessors (mcGeneralOpts opts)
modelTemplate <- getModelTemplate (mcModelOpts opts)
modelParams <- scriptIO $ makeParameterDict (mcParamOpts opts)
modelParams <- (scriptIO $ makeParameterDict (mcParamOpts opts)) >>=
fillParameterDictWithDefaults modelTemplate
_ <- tryRight $ instantiateModel (mcGeneralOpts opts) modelTemplate modelParams
let modelBranchNames = mtBranchNames modelTemplate
hist <- loadHistogram (mcHistogramOpts opts) modelBranchNames
Expand Down
14 changes: 7 additions & 7 deletions src/Rarecoal/ModelTemplate.hs
Expand Up @@ -19,7 +19,6 @@ import Control.Monad.Trans.Except (throwE)
import Data.Char (isAlphaNum)
-- import Debug.Trace (trace)
import Data.List (elemIndex, nub)
import Data.Maybe (catMaybes)
import qualified Data.Text as T
import qualified Data.Text.IO as T
import qualified Text.Parsec as P
Expand Down Expand Up @@ -72,7 +71,8 @@ getModelTemplate mo = do
", constraints "%w%" and parameters "%w) n e c paramNames

modelTemplateP :: Parser ModelTemplate
modelTemplateP = ModelTemplate <$> parseBranchNames <*> parseEvents <*> parseConstraints
modelTemplateP = ModelTemplate <$> parseBranchNames <*> parseEvents <*>
(parseConstraints <|> pure [])

parseBranchNames :: Parser [T.Text]
parseBranchNames = PC.string "BRANCHES" *> PC.spaces *> PC.char '=' *> PC.spaces *> PC.char '[' *>
Expand Down Expand Up @@ -259,17 +259,17 @@ fillParameterDictWithDefaults :: ModelTemplate -> [(T.Text, Double)] ->
Script [(T.Text, Double)]
fillParameterDictWithDefaults mt paramsDict = do
let paramNames = getParamNames mt
fmap catMaybes . forM paramNames $ \p ->
forM paramNames $ \p ->
case p `lookup` paramsDict of
Just _ -> return Nothing
Just v -> return (p, v)
Nothing | T.head p == 'p' -> do
scriptIO . errLn $
format ("setting parameter "%w%" = 1.0 (default)") p
return $ Just (p, 1.0)
return (p, 1.0)
| T.take 3 p == "adm" -> do
scriptIO . errLn $ format ("setting parameter "%w%
" = 0.05 (d efault)") p
return $ Just (p, 0.05)
" = 0.05 (default)") p
return (p, 0.05)
| otherwise ->
throwE $ format ("Don't know how to initialize \
\parameter "%w%". Please provide initial \
Expand Down
1 change: 0 additions & 1 deletion src/Rarecoal/ModelTemplate/Test.hs
@@ -1,7 +1,6 @@
{-# LANGUAGE OverloadedStrings #-}
module Rarecoal.ModelTemplate.Test (tests) where

import Rarecoal.Utils (defaultTimes)
import Rarecoal.ModelTemplate (ModelTemplate(..), MTEvent(..), MTConstraint(..), ParamSpec(..),
ConstraintOperator(..), getModelTemplate, ModelOptions(..))

Expand Down

0 comments on commit 00b48f4

Please sign in to comment.