示例#1
0
def generate_hsm_sequence(hsm, sequence_length=100):
    """Generate a Hidden Semi Markov Sequence given an input transition matrix

    Used by :meth:`~openalea.stocatree.sequences.generate_sequence`

    :param hsm: A hidden semi markov instance of HiddenSemiMarkov class from VPlants.Sequence_analysis
    :param sequence_length: a length of sequence set to 100 by default

    :returns: a sequence

    """

    # Generate a Markov sequence
    #from openalea.sequence_analysis._sequence_analysis import _SemiMarkovIterator, _HiddenSemiMarkov
    #from openalea.sequence_analysis import HiddenSemiMarkov

    if type(hsm) == HiddenSemiMarkov or type(hsm) == _HiddenSemiMarkov:
        iterator = _SemiMarkovIterator(hsm)
        simulation = iterator.simulation(sequence_length, True)
    else:
        print "expected hsm datatype. Got %s" % type(hsm)
        return None
    #processes = hsm.nb_output_process() + 1
    #used to free memory in the c++ code

    i = 0
    sequence = []
    for i in range(0, sequence_length):
        if simulation[0][i] == 6:
            break
        sequence.append([simulation[0][i], simulation[1][i]])

    sequence.reverse()
    return sequence
def hsm_iterator(fn):
    hsm = HiddenSemiMarkov(fn)
    it = sa._SemiMarkovIterator(hsm)
    return it
def hsm_iterator(fn):
    hsm = HiddenSemiMarkov(fn)
    it = sa._SemiMarkovIterator(hsm)
    return it
def test_semi_markov_iterator():
    hsm = HiddenSemiMarkov(get_shared_data('test_hidden_semi_markov.dat'))
    smi = sa._SemiMarkovIterator(hsm)
    sim = smi.simulation(N, True)
def test_semi_markov_iterator():
    hsm = HiddenSemiMarkov(get_shared_data('test_hidden_semi_markov.dat'))
    smi = sa._SemiMarkovIterator(hsm)
    sim = smi.simulation(N, True)