def test_compute_state_sequence(): from openalea.sequence_analysis import HiddenSemiMarkov seq = Sequences(str(get_shared_data("wij1.seq"))) hsmc0 = HiddenSemiMarkov(str(get_shared_data("wij1.hsc"))) ComputeStateSequences(seq, hsmc0, Algorithm="ForwardBackward", Characteristics=True)
def create_data(self): hsmc0 = HiddenSemiMarkov(get_shared_data("belren1.hsc")) hsmc1 = HiddenSemiMarkov(get_shared_data("elstar1.hsc")) seq0 = Sequences(get_shared_data("belren1.seq")) seq1 = Sequences(get_shared_data("elstar1.seq")) data0 = Estimate(seq0, "HIDDEN_SEMI-MARKOV", hsmc0) data1 = Estimate(seq1, "HIDDEN_SEMI-MARKOV", hsmc1) return [seq0, seq1, data0, data1]
def create_data(self): hsmc0 = HiddenSemiMarkov(get_shared_data( "belren1.hsc")) hsmc1 = HiddenSemiMarkov(get_shared_data("elstar1.hsc")) seq0 = Sequences(get_shared_data( "belren1.seq")) seq1 = Sequences(get_shared_data( "elstar1.seq")) data0 = Estimate(seq0, "HIDDEN_SEMI-MARKOV", hsmc0) data1 = Estimate(seq1, "HIDDEN_SEMI-MARKOV", hsmc1) return [seq0, seq1, data0, data1]
def test_exploratory(): seq19 = Sequences(get_shared_data( "dupreziana_20a2.seq")) seq20 = RemoveRun(seq19, 0, "End") histo201 = ExtractHistogram(seq20, "Recurrence", 1) histo202 = ExtractHistogram(seq20, "Recurrence", 2) seq38 = Sequences(get_shared_data( "dupreziana_40a2.seq")) seq39 = RemoveRun(seq38, 2, 0, "End") seq40 = SegmentationExtract(seq39, 1, 2) histo401 = ExtractHistogram(seq40, "Recurrence", 1) histo402 = ExtractHistogram(seq40, "Recurrence", 2) seq58 = Sequences(get_shared_data( "dupreziana_60a2.seq")) seq59 = RemoveRun(seq58, 2, 0, "End") seq60 = LengthSelect(SegmentationExtract(seq59, 1, 2), 1, Mode="Reject") histo601 = ExtractHistogram(seq60, "Recurrence", 1) histo602 = ExtractHistogram(seq60, "Recurrence", 2) seq78 = Sequences(get_shared_data( "dupreziana_80a2.seq")) seq79 = RemoveRun(seq78, 2, 0, "End") seq80 = SegmentationExtract(seq79, 1, 2) histo801 = ExtractHistogram(seq80, "Recurrence", 1) histo802 = ExtractHistogram(seq80, "Recurrence", 2) Plot(histo201, histo401, histo601, histo801) Plot(histo202, histo402, histo602, histo802) Plot(ExtractHistogram(seq20, "Length"), ExtractHistogram(seq40, "Length"), ExtractHistogram(seq60, "Length"), ExtractHistogram(seq80, "Length")) seq10 = Merge(seq20, seq40, seq60, seq80) Display(seq10, ViewPoint="Data") #Plot(seq10, "Intensity") #Plot(seq10, "Recurrence") #Plot(seq10, "Sojourn") # plot of a sample Spearman (rank based) autocorrelation function Plot(ComputeCorrelation(seq10, Type="Spearman", MaxLag=15, Normalization="Exact")) seq11 = Transcode(seq10, [0, 1, 0]) seq12 = Transcode(seq10, [0, 0, 1]) acf1 = Merge(ComputeCorrelation(seq11, MaxLag=15, Normalization="Exact"),\ ComputeCorrelation(seq12, MaxLag=15, Normalization="Exact")) Plot(acf1) Display(acf1) acf2 = Merge(ComputeCorrelation(seq11, Type="Spearman", MaxLag=15, Normalization="Exact"),\ ComputeCorrelation(seq12, Type="Spearman", MaxLag=15, Normalization="Exact")) acf3 = Merge(ComputeCorrelation(seq11, Type="Kendall", MaxLag=15),\ ComputeCorrelation(seq12, Type="Kendall", MaxLag=15))
def CorrelationData(index=1): """Returns a correlation index from 1 to 3""" seq66 = Sequences(get_shared_data("laricio_date66.seq")) ret = ComputeCorrelation(seq66, index) return ret
def create_data(self): seq0 = Sequences(get_shared_data("chene_sessile_15pa.seq")) vec10 = Vectors(seq0) vec95 = ValueSelect(vec10, 1, 95) vec96 = ValueSelect(vec10, 1, 96) vec97 = ValueSelect(vec10, 1, 97) return [vec95, vec96, vec97]
def build_data(self): """todo: check identifier output. should be a list """ # build a list of 2 sequences with a variable that should be identical # to sequences1.seq hvom = HiddenVariableOrderMarkov(str(get_shared_data('dupreziana21.hc'))) return hvom
def create_data(self): seq0 = Sequences(get_shared_data( "chene_sessile_15pa.seq")) vec10 = Vectors(seq0) vec95 = ValueSelect(vec10, 1, 95) vec96 = ValueSelect(vec10, 1, 96) vec97 = ValueSelect(vec10, 1, 97) return [vec95, vec96, vec97]
def test_transition_count(): seq = Sequences(str(get_shared_data("wij1.seq"))) TransitionCount(seq, 5, Begin=True, Estimator="MaximumLikelihood", Filename="ASCII")
def build_data(self): """todo: check identifier output. should be a list """ # build a list of 2 sequences with a variable that should be identical # to sequences1.seq hsm = HiddenSemiMarkov( str(get_shared_data('test_hidden_semi_markov.dat'))) return hsm
def __init__(self): interface.__init__(self, self.build_data(), str(get_shared_data("sequences1.seq")), Sequences) self.seqn = self.build_seqn() self.seq1 = self.build_seq1()
def create_sequence_data(self): seq66 = Sequences(get_shared_data( "laricio_date66.seq")) seq69 = MovingAverage(VariableScaling(seq66, 3, 100), Distribution("B", 0, 6, 0.5), BeginEnd=True, Output="Residual") return seq69
def test_select_step(): """ ######################################################################### # # Well-log data; used in Fearnhead and Clifford "On-line Inference for # Hidden Markov Models via Particle Filters". Measurements of Nuclear-response # of a well-bore over time. Data from O Ruanaidh, J. J. K. and # Fitzgerald, W. J. (1996). "Numerical Bayesion Methods Applied to Signal # Processing". New York: Springer. # ######################################################################### """ seq1 = Sequences(str(get_shared_data( "well_log_filtered.seq"))) Plot(seq1, ViewPoint="Data") Plot(seq1) SelectStep(seq1, 1000) Plot(seq1) #Display(seq1, 1, 17, "Gaussian", ViewPoint="SegmentProfile", NbSegmentation=5) Plot(seq1, 1, 17, "Gaussian", ViewPoint="SegmentProfile") # seq20 = Segmentation(seq1, 1, 20, "Gaussian") # seq40 = Segmentation(seq1, 1, 40, "Gaussian") # seq20 = Segmentation(seq1, 1, 20, "Mean") # seq40 = Segmentation(seq1, 1, 40, "Mean") # seq16 = Segmentation(seq1, 1, 16, "Gaussian", NbSegment->"Fixed") vec1 = Vectors(seq1) Plot(vec1) SelectStep(vec1, 1000) Plot(vec1)
def CorrelationData(index=1): """Returns a correlation index from 1 to 3""" seq66 = Sequences(get_shared_data( "laricio_date66.seq")) ret = ComputeCorrelation(seq66, index) return ret
def test_select_step(): """ ######################################################################### # # Well-log data; used in Fearnhead and Clifford "On-line Inference for # Hidden Markov Models via Particle Filters". Measurements of Nuclear-response # of a well-bore over time. Data from O Ruanaidh, J. J. K. and # Fitzgerald, W. J. (1996). "Numerical Bayesion Methods Applied to Signal # Processing". New York: Springer. # ######################################################################### """ seq1 = Sequences(str(get_shared_data("well_log_filtered.seq"))) Plot(seq1, ViewPoint="Data") Plot(seq1) SelectStep(seq1, 1000) Plot(seq1) #Display(seq1, 1, 17, "Gaussian", ViewPoint="SegmentProfile", NbSegmentation=5) Plot(seq1, 1, 17, "Gaussian", ViewPoint="SegmentProfile") # seq20 = Segmentation(seq1, 1, 20, "Gaussian") # seq40 = Segmentation(seq1, 1, 40, "Gaussian") # seq20 = Segmentation(seq1, 1, 20, "Mean") # seq40 = Segmentation(seq1, 1, 40, "Mean") # seq16 = Segmentation(seq1, 1, 16, "Gaussian", NbSegment->"Fixed") vec1 = Vectors(seq1) Plot(vec1) SelectStep(vec1, 1000) Plot(vec1)
def build_data(self): """todo: check identifier output. should be a list """ # build a list of 2 sequences with a variable that should be identical # to sequences1.seq hvom = HiddenVariableOrderMarkov( str(get_shared_data('dupreziana21.hc'))) return hvom
def create_sequence_data(self): seq66 = Sequences(get_shared_data("laricio_date66.seq")) seq69 = MovingAverage(VariableScaling(seq66, 3, 100), Distribution("B", 0, 6, 0.5), BeginEnd=True, Output="Residual") return seq69
def test1(): """FIXME markovian_sequences call""" seq69 = Sequences(get_shared_data("pin_laricio_7x.seq")) a = IndexParameterExtract(seq69, 1929) b = IndexParameterExtract(seq69, 1929, 1994) c = seq69.index_parameter_extract(1929, -1).markovian_sequences() d = seq69.index_parameter_extract(1929, 1994).markovian_sequences() assert str(a) == str(c) assert str(b) == str(d)
def test_spearman(self): seq = Sequences(get_shared_data( "laricio_date66.seq")) ComputeCorrelation(seq, 1, Type="Spearman") ComputeCorrelation(seq, 1, 2,Type="Spearman") try: dummy = 3 ComputeCorrelation(seq, 1, 2, dummy, Type="Spearman") except: assert True
def test_spearman(self): seq = Sequences(get_shared_data("laricio_date66.seq")) ComputeCorrelation(seq, 1, Type="Spearman") ComputeCorrelation(seq, 1, 2, Type="Spearman") try: dummy = 3 ComputeCorrelation(seq, 1, 2, dummy, Type="Spearman") except: assert True
# Data: Celine Meredieu and Yves Caraglio # # VARIABLE 1 : year of growth (explicit index parameter), # VARIABLE 2 : length of the annual shoot (mm), # VARIABLE 3 : number of branches per annual shoot / tier. # ######################################################################### """ __revision__ = "$Id$" from openalea.sequence_analysis import * from openalea.sequence_analysis.compare import Compare as Compare from openalea.sequence_analysis import get_shared_data seq66 = Sequences(get_shared_data("laricio_date66.seq")) Plot(seq66, ViewPoint="Data") #Plot(Cumulate(seq66), ViewPoint="Data") vec66 = Vectors(seq66) regress66_1 = Regression(vec66, "MovingAverage", 1, 2, [1]) Plot(regress66_1) regress66_2 = Regression(vec66, "MovingAverage", 1, 3, [1]) regress66_23 = Regression(vec66, "NearestNeighbours", 2, 3, 0.3) Display(regress66_23) Plot(regress66_23) vec70 = Vectors(SelectIndividual(seq66, [1, 2, 3])) regress70_1 = Regression(vec70, "MovingAverage", 1, 2, [1]) Plot(regress70_1)
def create_data(self): conv = Convolution(str(get_shared_data('test_convolution1.conv'))) return conv.simulate(1000)
""" Difference tests .. author:: Thomas Cokelaer, [email protected] """ __revision__ = "$Id$" from openalea.sequence_analysis.data_transform import Difference from openalea.sequence_analysis import Sequences, get_shared_data seq1 = Sequences(get_shared_data("sequences1.seq")) seqn = Sequences(get_shared_data("sequences2.seq")) def test_difference1(): """difference test to finalise""" data = seq1 res = Difference(data,1) assert str(res)==str(data.difference(1, False)) assert res.cumul_length == 50 def test_difference1_first_element(): """difference test to finalise""" data = seq1 res = Difference(data,1, True) assert str(res)==str(data.difference(1, True)) assert res.cumul_length == 52 def test_differencen():
def __init__(self): interface.__init__(self, self.build_data(), get_shared_data("test_nonhomogeneous.dat"), NonhomogeneousMarkov)
def __init__(self): interface.__init__(self, self.build_data(), str(get_shared_data("test_variable_order_markov.dat")), VariableOrderMarkov)
def test_initial_run(self): from openalea.sequence_analysis import ComputeInitialRun #markovian sequences data = Sequences(str(get_shared_data('vanille_m.seq'))) ComputeInitialRun(data)
def build_data(self): sm = NonhomogeneousMarkov(get_shared_data('test_nonhomogeneous.dat')) return sm
def create_data(self): data = Sequences(str(get_shared_data('sequences2.seq'))) return data
from openalea.sequence_analysis import * from openalea.sequence_analysis.estimate import Estimate from openalea.sequence_analysis import get_shared_data seq0 = Sequences(get_shared_data("chene_sessile_15pa.seq")) Plot(seq0, ViewPoint="Data")
""" Cumulate tests .. author:: Thomas Cokelaer, [email protected] .. todo : in general, variable index starts at 1 when calling Cumulate! Do we want to start at 0 ? Since later on, python calls will start the index at 0 ? """ __revision__ = "$Id$" from openalea.sequence_analysis.data_transform import Cumulate from openalea.sequence_analysis import get_shared_data from openalea.sequence_analysis import Sequences seqn = Sequences(get_shared_data("sequences2.seq")) seq1 = Sequences(get_shared_data("sequences1.seq")) def test_cumulate1(): data = seq1 a = Cumulate(data) b = data.cumulate(1).markovian_sequences() assert str(a) == str(b) assert a.get_max_value(0) == 29 assert b.get_max_value(0) == 29 assert data.get_max_value(0) == 2
def create_data(self): comp = Compound(str(get_shared_data('test_compound1.cd'))) return comp.simulate(1000)
def test_get_shared_data(): from openalea.sequence_analysis.sequences import Sequences seq = Sequences(str(get_shared_data('wij1.seq')))
def VariableOrderMarkovData(): sm = VariableOrderMarkov(str(get_shared_data('test_variable_order_markov.dat'))) ret = Simulate(sm, 1, 1000, True) return sm
def __init__(self): interface.__init__( self, self.build_data(), str(get_shared_data("test_hidden_semi_markov.dat")), HiddenSemiMarkov )
def build_data(self): seq = Sequences(str(get_shared_data("belren1.seq"))) vom = Estimate(seq, "VARIABLE_ORDER_MARKOV", "Ordinary", MaxOrder=4, GlobalInitialTransition=False) return vom
def __init__(self): self.data = Sequences(str(get_shared_data("sequences1.seq")))
def NonhomogeneousMarkovData(): seq = Sequences(get_shared_data('vanille_m.seq')) mc_m = Estimate(seq_m, "NONHOMOGENEOUS_MARKOV", "MONOMOLECULAR", "VOID") return mc_m
""" functional tests """ __revision__ = "$Id$" from openalea.sequence_analysis import * from openalea.sequence_analysis.estimate import Estimate from openalea.sequence_analysis.compare import Compare from openalea.sequence_analysis import get_shared_data seq20 = Sequences(get_shared_data("belren1.seq")) seq21 = Sequences(get_shared_data("elstar1.seq")) seq22 = Sequences(get_shared_data("fuji1.seq")) seq23 = Sequences(get_shared_data("gala1.seq")) seq24 = Sequences(get_shared_data("granny1.seq")) seq25 = Sequences(get_shared_data("reinet1.seq")) seq26 = Sequences(get_shared_data("wij1.seq")) Display(seq25, ViewPoint="Data") Plot(seq25, "Intensity") Plot(seq25, "Sojourn") seq26 = Reverse(seq25) Plot(seq26, "Intensity") Plot(seq26, "FirstOccurrence") # Sojourn time (run length) distributions seq30 = Merge(seq20, seq21, seq22, seq23, seq24, seq25) Plot(seq30, "Sojourn") Plot(ExtractHistogram(seq30, "Sojourn", 1),
# # Data: Daniel Barthelemy # # VARIABLE 1 : phyllotaxis (number of leaves per node), # VARIABLE 2 : number of offspring shoots per node. # ######################################################################### """ __revision__ = "$Id$" from openalea.sequence_analysis import * from openalea.sequence_analysis.compare import Compare as Compare from openalea.sequence_analysis import get_shared_data seq1 = Sequences(get_shared_data( "dupreziana_a1.seq")) Display(seq1, ViewPoint="Data", Format="Line") vec20 = MergeVariable(ExtractVectors(seq1, "NbOccurrence", 1, 3), ExtractVectors(seq1, "Length")) Display(vec20) #todo #Plot(vec20,1) Plot(vec20) seq2 = Shift(seq1, 1, -3) seq3 = SegmentationExtract(seq1, 1, 3) seq4 = SegmentationExtract(seq1, 1, 4) Plot(ExtractHistogram(seq3, "Recurrence", 1), ExtractHistogram(seq4, "Recurrence", 1)) Plot(ExtractHistogram(seq3, "Sojourn", 1), ExtractHistogram(seq4, "Sojourn", 1))
# # 1st annual shoot of apple tree trunks # # Data: Evelyne Costes # # VARIABLE 1 : type of axillary production (0: latent bud, 1: one-year-delayed short shoot, # 2: one-year-delayed long shoot, 3: one-year-delayed flowering shoot, # 4: immediate shoot). # ######################################################################### """ __revision__ = "$Id$" from openalea.sequence_analysis import * from openalea.sequence_analysis import get_shared_data seq20 = Sequences(get_shared_data("belren1.seq")) seq21 = Sequences(get_shared_data("elstar1.seq")) seq22 = Sequences(get_shared_data("fuji1.seq")) seq23 = Sequences(get_shared_data("gala1.seq")) seq24 = Sequences(get_shared_data("granny1.seq")) seq25 = Sequences(get_shared_data("reinet1.seq")) Display(seq25, ViewPoint="Data") Plot(seq25, "Intensity") Plot(seq25, "Sojourn") seq26 = Reverse(seq25) Plot(seq26, "Intensity") Plot(seq26, "FirstOccurrence") # Sojourn time (run length) distributions
def _test_constructor_from_file2(self): hmc = HiddenSemiMarkov(str(get_shared_data("test_hidden_markov.hmc"))) assert hmc
def create_data(self): return Histogram(str(get_shared_data('fagus1.his')))
def _test_sequences_2(self): seq1 = Sequences(str(get_shared_data("sequences2.seq"))) seq2 = seq1.remove_run(1, 0, "e", 2) seq3 = RemoveRun(seq1, 1, 0, "e", 2) assert str(seq3) == str(seq2)
# VARIABLE 1 : year of growth (95, 96, 97) (index parameter of sequences) # VARIABLE 2 : length of the annual shoot (cm) # VARIABLE 3 : diameter of the annual shoot (1/10 de mm) # VARIABLE 4 : number of cycles # VARIABLE 5 : number of nodes # VARIABLE 6 : number de branches # ######################################################################### """ __revision__ = "$Id$" from openalea.sequence_analysis import * from openalea.sequence_analysis.estimate import Estimate from openalea.sequence_analysis import get_shared_data seq0 = Sequences(get_shared_data("chene_sessile_15pa.seq")) Plot(seq0, ViewPoint="Data") # change of unit for the variable diameter of the annual shoot marginal3 = ExtractHistogram(seq0, "Value", 3) Plot(Cluster(marginal3, "Information", 0.75)) Plot(Cluster(marginal3, "Information", 0.61)) Plot(Cluster(marginal3, "Step", 10)) vec10 = Vectors(seq0) # plot of the average sequence Plot(Regression(vec10, "MovingAverage", 1, 2, [1])) vec95 = ValueSelect(vec10, 1, 95)
""" functional tests .. todo:: to be done """ __revision__ = "$Id$" import os from openalea.stat_tool import * from openalea.sequence_analysis import * from openalea.sequence_analysis import get_shared_data seq1 = Sequences(get_shared_data('dupreziana_20a2.seq')) # correct seq2 = RemoveRun(seq1, 1, 0, "End") # correct histo21 = ExtractHistogram(seq2, "Recurrence", 1) # correct histo22 = ExtractHistogram(seq2, "Recurrence", 2) # correct seq3 = Sequences(get_shared_data('dupreziana_40a2.seq')) #correct seq4_0 = RemoveRun(seq3, 2, 0, "End") #correct seq4 = SegmentationExtract(seq4_0, 1, 2) #correct seq5 = Sequences(get_shared_data('dupreziana_60a2.seq')) #correct seq6_0 = RemoveRun(seq5, 2, 0, "End") #correct seq6 = LengthSelect(SegmentationExtract(seq6_0, 1, 2), 1, Mode="Reject") #correct seq7 = Sequences(get_shared_data('dupreziana_80a2.seq')) #correct seq8_0 = RemoveRun(seq7, 2, 0, "End") #correct seq8 = SegmentationExtract(seq8_0, 1, 2) #correct
def test_split(self): #markovian sequences data = Sequences(str(get_shared_data('vanille_m.seq'))) Split(data, 2)
def _test_sequences_2(self): seq1 = Sequences(str(get_shared_data("sequences2.seq"))) seq2 = seq1.remove_run(1, 0,"e",2) seq3 = RemoveRun(seq1,1, 0,"e",2) assert str(seq3)==str(seq2)
def HiddenSemiMarkovData(): hsm = HiddenSemiMarkov(str(get_shared_data("wij1.hsc"))) return hsm
def test_compute_state_sequence(): from openalea.sequence_analysis import HiddenSemiMarkov seq = Sequences(str(get_shared_data( "wij1.seq"))) hsmc0 = HiddenSemiMarkov(str(get_shared_data( "wij1.hsc"))) ComputeStateSequences(seq, hsmc0, Algorithm="ForwardBackward", Characteristics=True)
def build_data(self): """todo: check identifier output. should be a list """ # build a list of 2 sequences with a variable that should be identical # to sequences1.seq hsm = HiddenSemiMarkov(str(get_shared_data("test_hidden_semi_markov.dat"))) return hsm
def test_transition_count(): seq = Sequences(str(get_shared_data( "wij1.seq"))) TransitionCount(seq, 5, Begin=True, Estimator="MaximumLikelihood", Filename = "ASCII")
def test_constructor_from_file_nonparametric1(self): """Read HSM model from a file with 1st nonparametric variable with observation distribution ending by 1e-05 """ hmc = HiddenSemiMarkov(str(get_shared_data("test_hidden_markov_non-parametric1.hmc"))) assert hmc
""" functional tests """ __revision__ = "$Id$" from openalea.sequence_analysis import * from openalea.sequence_analysis.estimate import Estimate from openalea.sequence_analysis.compare import Compare from openalea.sequence_analysis import get_shared_data seq20 = Sequences(get_shared_data("belren1.seq")) seq21 = Sequences(get_shared_data("elstar1.seq")) seq22 = Sequences(get_shared_data("fuji1.seq")) seq23 = Sequences(get_shared_data("gala1.seq")) seq24 = Sequences(get_shared_data("granny1.seq")) seq25 = Sequences(get_shared_data("reinet1.seq")) seq26 = Sequences(get_shared_data("wij1.seq")) Display(seq25, ViewPoint="Data") Plot(seq25, "Intensity") Plot(seq25, "Sojourn") seq26 = Reverse(seq25) Plot(seq26, "Intensity") Plot(seq26, "FirstOccurrence") # Sojourn time (run length) distributions