コード例 #1
0
ファイル: robomendel_test.py プロジェクト: codeaudit/darwin
def unrelated_model(modelWh, modelPu):
    'model mom, dad, child as independent'
    pstate = model.VarFilterState('Pu', modelPu)
    wstate = model.VarFilterState('Wh', modelWh)
    prior = model.StateGraph({'START': {pstate: 0.9, wstate: 0.1}})
    stop = model.StopState(useObsLabel=False)
    term = model.StateGraph({
        pstate: {
            stop: 1.
        },
        wstate: {
            stop: 1.
        },
        robomendel.noneState: {
            stop: 1.
        }
    })

    dg = model.DependencyGraph({
        'START': {
            'mom': prior,
            'dad': prior,
            'child': prior
        },
        'mom': {
            'STOP': term
        },
        'dad': {
            'STOP': term
        },
        'child': {
            'STOP': term
        }
    })
    return dg
コード例 #2
0
ファイル: robomendel_test.py プロジェクト: codeaudit/darwin
def mixture_model2(modelWh, modelPu):
    'model process as single species, with mixture emission, supports multiple matingID'
    mixModel = get_mix_model(modelWh, modelPu)
    peaSpecies = model.VarFilterState('pea', mixModel)
    prior = model.StateGraph({'START': {peaSpecies: 1.0}})
    stop = model.StopState(useObsLabel=False)
    term = model.StateGraph({
        peaSpecies: {
            stop: 1.
        },
        robomendel.noneState: {
            stop: 1.
        }
    })
    sct = robomendel.SpeciesCrossTransition()

    moms = model.BranchGenerator('mom', prior, iterTag='matingID')
    dads = model.BranchGenerator('dad', prior, iterTag='matingID')
    dg = model.DependencyGraph(
        {
            'START': {
                moms: {},
                dads: {}
            },
            ('mom', 'dad'): {
                'child': sct
            },
            'child': {
                'STOP': term
            }
        },
        joinTags=('matingID', ))
    return dg
コード例 #3
0
ファイル: robomendel_test.py プロジェクト: codeaudit/darwin
def mixture_model(modelWh, modelPu):
    'model process as single species, with mixture emission'
    mixModel = get_mix_model(modelWh, modelPu)
    peaSpecies = model.VarFilterState('pea', mixModel)
    prior = model.StateGraph({'START': {peaSpecies: 1.0}})
    stop = model.StopState(useObsLabel=False)
    term = model.StateGraph({
        peaSpecies: {
            stop: 1.
        },
        robomendel.noneState: {
            stop: 1.
        }
    })
    sct = robomendel.SpeciesCrossTransition()

    dg = model.DependencyGraph({
        'START': {
            'mom': prior,
            'dad': prior
        },
        ('mom', 'dad'): {
            'child': sct
        },
        'child': {
            'STOP': term
        }
    })
    return dg
コード例 #4
0
ファイル: robomendel_test.py プロジェクト: codeaudit/darwin
def multicond_setup(modelWh, modelPu, pHybrid=0.):
    pstate = model.VarFilterState('Pu', modelPu)
    wstate = model.VarFilterState('Wh', modelWh)
    prior = model.StateGraph({'START': {pstate: 0.9, wstate: 0.1}})
    stop = model.StopState(useObsLabel=False)
    term = model.StateGraph({
        pstate: {
            stop: 1.
        },
        wstate: {
            stop: 1.
        },
        robomendel.noneState: {
            stop: 1.
        }
    })

    sct = robomendel.SpeciesCrossTransition(pHybrid=pHybrid)
    return pstate, wstate, prior, stop, term, sct
コード例 #5
0
ファイル: robomendel_test.py プロジェクト: codeaudit/darwin
def unrelated_model2(modelWh, modelPu):
    'model mom, dad, child as independent, supports multiple matingID'
    pstate = model.VarFilterState('Pu', modelPu)
    wstate = model.VarFilterState('Wh', modelWh)
    prior = model.StateGraph({'START': {pstate: 0.9, wstate: 0.1}})
    stop = model.StopState(useObsLabel=False)
    term = model.StateGraph({
        pstate: {
            stop: 1.
        },
        wstate: {
            stop: 1.
        },
        robomendel.noneState: {
            stop: 1.
        }
    })

    moms = model.BranchGenerator('mom', prior, iterTag='matingID')
    dads = model.BranchGenerator('dad', prior, iterTag='matingID')
    kids = model.BranchGenerator('child', prior, iterTag='matingID')
    dg = model.DependencyGraph(
        {
            'START': {
                moms: {},
                dads: {},
                kids: {}
            },
            'mom': {
                'STOP': term
            },
            'dad': {
                'STOP': term
            },
            'child': {
                'STOP': term
            }
        },
        joinTags=('matingID', ))
    return dg
コード例 #6
0
ファイル: robomendel_test.py プロジェクト: codeaudit/darwin
def environmental_model(modelWh, modelPu):
    'model wh / pu as random extrinsic variable'

    def filter_from_node(fromNode, *args):
        return dict(var=fromNode.var.label)

    pstate = model.VarFilterState('Pu', modelPu, filter_f=filter_from_node)
    wstate = model.VarFilterState('Wh', modelWh, filter_f=filter_from_node)
    peaSpecies = model.SilentState('pea')
    prior = model.StateGraph({'START': {peaSpecies: 1.}})
    extSG = model.StateGraph({peaSpecies: {pstate: 0.9, wstate: 0.1}})
    stop = model.StopState(useObsLabel=False)
    term = model.StateGraph({pstate: {stop: 1.}, wstate: {stop: 1.}})
    sct = robomendel.SpeciesCrossTransition()

    dg = model.DependencyGraph({
        'START': {
            'mom': prior,
            'dad': prior
        },
        'mom': {
            'ext': extSG
        },
        'dad': {
            'ext': extSG
        },
        ('mom', 'dad'): {
            'child': sct
        },
        'child': {
            'ext': extSG
        },
        'ext': {
            'STOP': term
        }
    })
    return dg
コード例 #7
0
ファイル: robomendel_test.py プロジェクト: codeaudit/darwin
def environmental_model2(modelWh, modelPu):
    'model wh / pu as random extrinsic variable, supports multiple matingID'

    def filter_from_node(fromNode, *args):
        return dict(var=fromNode.var.label)

    pstate = model.VarFilterState('Pu', modelPu, filter_f=filter_from_node)
    wstate = model.VarFilterState('Wh', modelWh, filter_f=filter_from_node)
    peaSpecies = model.SilentState('pea')
    prior = model.StateGraph({'START': {peaSpecies: 1.}})
    noSpecies = model.SilentState('no-species')
    extNone = model.VarFilterState('ext-none',
                                   model.EmissionDict({None: 1.}),
                                   filter_f=filter_from_node)
    extSG = model.StateGraph({
        peaSpecies: {
            pstate: 0.9,
            wstate: 0.1
        },
        noSpecies: {
            extNone: 1.
        }
    })
    stop = model.StopState(useObsLabel=False)
    term = model.StateGraph({
        pstate: {
            stop: 1.
        },
        wstate: {
            stop: 1.
        },
        extNone: {
            stop: 1.
        }
    })
    sct = robomendel.SpeciesCrossTransition(noneState=noSpecies)

    moms = model.BranchGenerator('mom', prior, iterTag='matingID')
    dads = model.BranchGenerator('dad', prior, iterTag='matingID')
    dg = model.DependencyGraph(
        {
            'START': {
                moms: {},
                dads: {}
            },
            'mom': {
                'ext': extSG
            },
            'dad': {
                'ext': extSG
            },
            ('mom', 'dad'): {
                'child': sct
            },
            'child': {
                'ext': extSG
            },
            'ext': {
                'STOP': term
            }
        },
        joinTags=('matingID', ))
    return dg