Example #1
0
"""Hidden Markov tree models"""
import string
import openalea.stat_tool.error as check_error
import openalea.tree_statistic._errors as _errors
import openalea.stat_tool as stat_tool, openalea.tree_statistic.trees as trees
import openalea.stat_tool.error as check_error
import _hmt

VariableType=stat_tool.VariableTypeBis
StatTreeError = _errors.StatTreeError
CharacteristicType=trees.CharacteristicType
EntropyAlgorithm=_hmt.EntropyAlgorithm
VariableTypeDict=VariableType.values

from openalea.stat_tool import interface
interface.extend_class(_hmt.CiHmot, interface.StatInterface)
interface.extend_class(_hmt.CHmt_data, interface.StatInterface)

class HiddenMarkovIndOutTree:
    """An implementation of the hidden Markov out-trees with conditionally 
    independent children states given their parent."""

    def __init__(self, arg, aliasing=False):
        """Initialize a Hmt by copy or by reading into a file.

            Usage:  H=HiddenMarkovIndOutTree("file_name")
                    H=HiddenMarkovIndOutTree(HiddenMarkovIndOutTree)."""
        ## Aliasing is used to make an alias between argument and
        ## self.__chmt -> useful for the connection between HiddenMarkovIndOutTree
        ## and HiddenMarkovTreeData
        if type(arg)==str:
import os
import openalea.stat_tool.interface as interface
from openalea.sequence_analysis._sequence_analysis import \
    _VariableOrderMarkov, _VariableOrderMarkovData
from openalea.sequence_analysis._sequence_analysis import DEFAULT_LENGTH

from openalea.stat_tool import error

__all__ = ['VariableOrderMarkov',
           '_VariableOrderMarkov',
           '_VariableOrderMarkovData']


# Extend dynamically class
interface.extend_class( _VariableOrderMarkov, interface.StatInterface)
interface.extend_class( _VariableOrderMarkovData, interface.StatInterface)

# Add methods to _Vectors


def VariableOrderMarkov(*args, **kargs):
    """VariableOrderMarkov

    :Usage:

    .. doctest::
        :options: +SKIP

        >>> VariableOrderMarkov(filename)
    """
Example #3
0
import openalea.stat_tool.interface as interface
from openalea.sequence_analysis._sequence_analysis import _Tops
from openalea.sequence_analysis._sequence_analysis import _Sequences

from openalea.sequence_analysis.enums import index_parameter_type_map

#import _sequence_analysis
from openalea.stat_tool import error

__all__ = ['Tops',
           '_Tops',
           'RemoveApicalInternodes']


# Extend dynamically class
interface.extend_class( _Tops, interface.StatInterface)

# Add methods to _Vectors


def Tops(*args, **kargs):
    """Construction of a set of sequences from multidimensional arrays of
    integers, from data generated by a renewal process or from an ASCII file.

    The data structure of type array(array(array(int))) should be constituted
    at the most internal level of arrays of constant size. If the optional
    argument IndexParameter is set at "Position" or "Time", the data
    structure of type array(array(array(int))) is constituted at the most
    internal level of arrays of size 1+n (index parameter, n variables attached
    to the explicit index parameter). If the optional argument IndexParameter
    is set at "Position", only the index parameter of the last array of size
import os
import openalea.stat_tool.interface as interface
from openalea.sequence_analysis._sequence_analysis import _SemiMarkov
from openalea.sequence_analysis._sequence_analysis import _SemiMarkovData
from openalea.stat_tool import error

from openalea.sequence_analysis._sequence_analysis import DEFAULT_LENGTH

__all__ = ['SemiMarkov',
           '_SemiMarkov',
           '_SemiMarkovData']


# Extend dynamically class
interface.extend_class( _SemiMarkov, interface.StatInterface)
interface.extend_class( _SemiMarkovData, interface.StatInterface)
# Add methods to _Vectors


def SemiMarkov(filename=None, length=DEFAULT_LENGTH, counting=True,
               cumul_threshold=0):
    """SemiMarkov constructor

    Construction of a semi-Markov chain from an ASCII file.

    :Usage:

    ::
    
        SemiMarkov(filename, length=40, counting=True, cumul_threshold=40) 
Example #5
0
"""
__version__ = "$Id$"
import os
import openalea.stat_tool.interface as interface
from openalea.sequence_analysis._sequence_analysis import _Tops
from openalea.sequence_analysis._sequence_analysis import _Sequences

from openalea.sequence_analysis.enums import index_parameter_type_map

#import _sequence_analysis
from openalea.stat_tool import error

__all__ = ['Tops', '_Tops', 'RemoveApicalInternodes']

# Extend dynamically class
interface.extend_class(_Tops, interface.StatInterface)

# Add methods to _Vectors


def Tops(*args, **kargs):
    """Construction of a set of sequences from multidimensional arrays of
    integers, from data generated by a renewal process or from an ASCII file.

    The data structure of type array(array(array(int))) should be constituted
    at the most internal level of arrays of constant size. If the optional
    argument IndexParameter is set at "Position" or "Time", the data
    structure of type array(array(array(int))) is constituted at the most
    internal level of arrays of size 1+n (index parameter, n variables attached
    to the explicit index parameter). If the optional argument IndexParameter
    is set at "Position", only the index parameter of the last array of size
from openalea.stat_tool._stat_tool import _DiscreteMixtureData
from openalea.stat_tool._stat_tool import _CompoundData
from openalea.stat_tool._stat_tool import _ConvolutionData
from openalea.stat_tool._stat_tool import _DiscreteDistributionData

from openalea.sequence_analysis._sequence_analysis import _TimeEvents
from openalea.sequence_analysis._sequence_analysis import _RenewalData
from openalea.sequence_analysis._sequence_analysis import _Sequences

#import _sequence_analysis
from openalea.stat_tool import error

__all__ = ['TimeEvents', '_TimeEvents', 'NbEventSelect']

# Extend dynamically class
interface.extend_class(_TimeEvents, interface.StatInterface)

# Add methods to _Vectors


def TimeEvents(*args, **kargs):
    """TimeEvents

    Construction of data of type {time interval between two observation dates,
    number of events occurring between these two observation dates} from time
    sequences, from an object of type HISTOGRAM or from an ASCII file.

    :Usage:

    .. doctest::
        :options: +SKIP
from openalea.sequence_analysis.enums import type_dict, norm_type
from openalea.sequence_analysis.data_transform import _check_nb_variable
from openalea.stat_tool import error

from openalea.sequence_analysis._sequence_analysis import MAX_LAG

__all__ = ['_Correlation',
           'ComputeCorrelation',
           'ComputeAutoCorrelation',
           'ComputeWhiteNoiseCorrelation',
           'ComputePartialAutoCorrelation']


# Extend dynamically class
interface.extend_class( _Correlation, interface.StatInterface)


def ComputeCorrelation(obj, *args, **kargs):
    """Computation of sample autocorrelation or cross-correlation functions.

    :Examples:

    .. doctest::
        :options: +SKIP
        
        >>> ComputeCorrelation(seq1, MaxLag=10, Type="Spearman", Normalization="Exact")
        >>> ComputeCorrelation(seqn, variable, MaxLag=10, Type="Spearman", Normalization="Exact")
        >>> ComputeCorrelation(seqn, variable1, variable2, MaxLag=10, Type="Spearman", Normalization="Exact")

    :Arguments:
Example #8
0
    from openalea.sequence_analysis import *
"""
__version__ = "$Id$"

import os
import openalea.stat_tool.interface as interface
from openalea.sequence_analysis._sequence_analysis import _HiddenSemiMarkov

from openalea.stat_tool import error
from openalea.sequence_analysis._sequence_analysis import DEFAULT_LENGTH
from openalea.sequence_analysis._sequence_analysis import OCCUPANCY_THRESHOLD

__all__ = ['HiddenSemiMarkov', '_HiddenSemiMarkov']

# Extend dynamically class
interface.extend_class(_HiddenSemiMarkov, interface.StatInterface)

# Add methods to _Vectors


def HiddenSemiMarkov(*args, **kargs):
    """HiddenSemiMarkov

    Construction of an object of type hidden_semi-markov from an ASCII file.

    :Usage:

    .. doctest::
        :options: +SKIP

        >>> HiddenSemiMarkov(file_name, Length=40, Counting=False)
Example #9
0
__all__ = ['Sequences',
           '_Sequences',
           '_MarkovianSequences',
           'LumpabilityTest',
           'RemoveIndexParameter',
           'TransformPosition',
           'SaveMTG',
           'ComputeInitialRun',
           'IndexParameterType',
           'ComputeInitialRun',
           'Split']


# Extend dynamically class
interface.extend_class( _Sequences, interface.StatInterface)
interface.extend_class( _MarkovianSequences, interface.StatInterface)

# Add methods to _Vectors



def LumpabilityTest(obj, *args, **kargs):
    """.. todo:: documenation"""

    error.CheckArgumentsLength(args, 1, 1)
    error.CheckType([obj], [[_MarkovianSequences, _VariableOrderMarkovData,
                            _SemiMarkovData, _NonHomogeneousMarkovData]])


    symbol = args[0]
from openalea.sequence_analysis._sequence_analysis import _TimeEvents
from openalea.sequence_analysis._sequence_analysis import _RenewalData
from openalea.sequence_analysis._sequence_analysis import _Sequences

#import _sequence_analysis
from openalea.stat_tool import error

__all__ = ['TimeEvents',
           '_TimeEvents',
           'NbEventSelect']



# Extend dynamically class
interface.extend_class( _TimeEvents, interface.StatInterface)

# Add methods to _Vectors


def TimeEvents(*args, **kargs):
    """TimeEvents

    Construction of data of type {time interval between two observation dates,
    number of events occurring between these two observation dates} from time
    sequences, from an object of type HISTOGRAM or from an ASCII file.

    :Usage:

    .. doctest::
        :options: +SKIP
Example #11
0
     _DiscreteParametric

from openalea.sequence_analysis._sequence_analysis import \
    _Renewal, _RenewalData, _Sequences, _MarkovianSequences
from openalea.sequence_analysis._sequence_analysis import DEFAULT_TIME

from openalea.stat_tool import error
from openalea.stat_tool.enums import \
    distribution_identifier_type, model_distribution_types

__all__ = ['Renewal',
           '_Renewal', '_RenewalData', 'RenewalData']


# Extend dynamically class
interface.extend_class( _Renewal, interface.StatInterface)
interface.extend_class( _RenewalData, interface.StatInterface)

# Add methods to _Vectors


def Renewal(*args, **kargs):
    """Renewal

    Construction of a (either ordinary or equilibrium) renewal process from an inter-event distribution or from an ASCII file.

    :Usage:

    .. doctest::
        :options: +SKIP
        
import openalea.stat_tool.interface as interface
from openalea.sequence_analysis._sequence_analysis import \
    _HiddenVariableOrderMarkov

from openalea.sequence_analysis._sequence_analysis import DEFAULT_LENGTH
from openalea.sequence_analysis._sequence_analysis import OCCUPANCY_THRESHOLD

from openalea.stat_tool import error

__all__ = ['HiddenVariableOrderMarkov',
           '_HiddenVariableOrderMarkov']


# Extend dynamically class
interface.extend_class( _HiddenVariableOrderMarkov, interface.StatInterface)

# Add methods to _Vectors


def HiddenVariableOrderMarkov(filename=None, Length=DEFAULT_LENGTH,
                              CumulThreshold=OCCUPANCY_THRESHOLD):
    """HiddenVariableOrderMarkov

    :param str filename:
    :param int Length: 
    :param float CumulThreshold: 


    .. todo:: documentation
    """
Example #13
0
import os
import openalea.stat_tool.interface as interface
from openalea.sequence_analysis._sequence_analysis import _NonHomogeneousMarkov
from openalea.sequence_analysis._sequence_analysis import _NonHomogeneousMarkovData
from openalea.stat_tool import error
from openalea.sequence_analysis._sequence_analysis import DEFAULT_LENGTH

__all__ = [
    'NonhomogeneousMarkov',
    '_NonHomogeneousMarkov',
    '_NonHomogeneousMarkovData',
]

# Extend dynamically class
interface.extend_class(_NonHomogeneousMarkov, interface.StatInterface)
interface.extend_class(_NonHomogeneousMarkovData, interface.StatInterface)


def NonhomogeneousMarkov(filename, length=DEFAULT_LENGTH):
    """NonhomogeneousMarkov constructor

    :param str filename:
    :param int length: 

    :Usage:
    
    .. doctest:: 
        :options: +SKIP
        
        >>> nm = NonhomogeneousMarkov("filename.dat")
__version__ = "$Id$"

import os
import openalea.stat_tool.interface as interface
from openalea.sequence_analysis._sequence_analysis import \
    _VariableOrderMarkov, _VariableOrderMarkovData
from openalea.sequence_analysis._sequence_analysis import DEFAULT_LENGTH

from openalea.stat_tool import error

__all__ = [
    'VariableOrderMarkov', '_VariableOrderMarkov', '_VariableOrderMarkovData'
]

# Extend dynamically class
interface.extend_class(_VariableOrderMarkov, interface.StatInterface)
interface.extend_class(_VariableOrderMarkovData, interface.StatInterface)

# Add methods to _Vectors


def VariableOrderMarkov(*args, **kargs):
    """VariableOrderMarkov

    :Usage:

    .. doctest::
        :options: +SKIP

        >>> VariableOrderMarkov(filename)
    """
__version__ = "$Id$"

import os
import openalea.stat_tool.interface as interface
from openalea.sequence_analysis._sequence_analysis import _HiddenSemiMarkov

from openalea.stat_tool import error
from openalea.sequence_analysis._sequence_analysis import DEFAULT_LENGTH
from openalea.sequence_analysis._sequence_analysis import OCCUPANCY_THRESHOLD

__all__ = ['HiddenSemiMarkov',
           '_HiddenSemiMarkov']


# Extend dynamically class
interface.extend_class( _HiddenSemiMarkov, interface.StatInterface)

# Add methods to _Vectors


def HiddenSemiMarkov(*args, **kargs):
    """HiddenSemiMarkov

    Construction of an object of type hidden_semi-markov from an ASCII file.

    :Usage:

    .. doctest::
        :options: +SKIP

        >>> HiddenSemiMarkov(file_name, Length=40, Counting=False)
Example #16
0
from openalea.sequence_analysis._sequence_analysis import _MarkovianSequences
from openalea.sequence_analysis._sequence_analysis import _VariableOrderMarkov

from openalea.sequence_analysis.enums import type_dict, norm_type
from openalea.sequence_analysis.data_transform import _check_nb_variable
from openalea.stat_tool import error

from openalea.sequence_analysis._sequence_analysis import MAX_LAG

__all__ = [
    '_Correlation', 'ComputeCorrelation', 'ComputeAutoCorrelation',
    'ComputeWhiteNoiseCorrelation', 'ComputePartialAutoCorrelation'
]

# Extend dynamically class
interface.extend_class(_Correlation, interface.StatInterface)


def ComputeCorrelation(obj, *args, **kargs):
    """Computation of sample autocorrelation or cross-correlation functions.

    :Examples:

    .. doctest::
        :options: +SKIP
        
        >>> ComputeCorrelation(seq1, MaxLag=10, Type="Spearman", Normalization="Exact")
        >>> ComputeCorrelation(seqn, variable, MaxLag=10, Type="Spearman", Normalization="Exact")
        >>> ComputeCorrelation(seqn, variable1, variable2, MaxLag=10, Type="Spearman", Normalization="Exact")

    :Arguments:
import os
import openalea.stat_tool.interface as interface
from openalea.sequence_analysis._sequence_analysis import _NonHomogeneousMarkov
from openalea.sequence_analysis._sequence_analysis import _NonHomogeneousMarkovData
from openalea.stat_tool import error
from openalea.sequence_analysis._sequence_analysis import DEFAULT_LENGTH


__all__ = ['NonhomogeneousMarkov',
           '_NonHomogeneousMarkov',
           '_NonHomogeneousMarkovData',
           ]


# Extend dynamically class
interface.extend_class( _NonHomogeneousMarkov, interface.StatInterface)
interface.extend_class( _NonHomogeneousMarkovData, interface.StatInterface)


def NonhomogeneousMarkov(filename, length=DEFAULT_LENGTH):
    """NonhomogeneousMarkov constructor

    :param str filename:
    :param int length: 

    :Usage:
    
    .. doctest:: 
        :options: +SKIP
        
        >>> nm = NonhomogeneousMarkov("filename.dat")