Macaulay2 » Documentation
Packages » PhylogeneticTrees :: model
next | previous | forward | backward | up | index | toc

model -- construct a Model

Synopsis

Description

The elements of G must have an addition operation meaning that if two elements $g, h \in G$, then $g+h$ must work. The usual choices for G are the list of elements of $\mathbb{Z}/2$ or $(\mathbb{Z}/2)^2$.

i1 : (a,b) = (0_(ZZ/2),1_(ZZ/2))

o1 = (0, 1)

o1 : Sequence
i2 : G = {{a,a}, {a,b}, {b,a}, {b,b}}

o2 = {{0, 0}, {0, 1}, {1, 0}, {1, 1}}

o2 : List

The elements of B are lists of the elements of G with the same parameter value.

In the following example, the first two elements of G receive distinct parameters, while the last two share a parameter. This is precisely the Kimura 2-parameter model.

i3 : B = {{G#0}, {G#1}, {G#2,G#3}}

o3 = {{{0, 0}}, {{0, 1}}, {{1, 0}, {1, 1}}}

o3 : List

Finally, for every ordered pair of group elements sharing a parameter, aut must provide an automorphism of the group that switches those two group elements. In aut all of the group elements are identified by their index in $G$, and an automorphism is given by a list of permuted index values.

In our example, the pairs requiring an automorphism are \{2,3\} and \{3,2\}.

i4 : aut = {({2,3}, {0,1,3,2}),
            ({3,2}, {0,1,3,2})}

o4 = {({2, 3}, {0, 1, 3, 2}), ({3, 2}, {0, 1, 3, 2})}

o4 : List
i5 : model(G,B,aut)

o5 = Model{AList => HashTable{{0, 0} => {1, 0, 0}}                          }
                              {0, 1} => {0, 1, 0}
                              {1, 0} => {0, 0, 1}
                              {1, 1} => {0, 0, 1}
           Automorphisms => HashTable{{2, 3} => HashTable{{0, 0} => {0, 0}}}
                                                          {0, 1} => {0, 1}
                                                          {1, 0} => {1, 1}
                                                          {1, 1} => {1, 0}
                                      {3, 2} => HashTable{{0, 0} => {0, 0}}
                                                          {0, 1} => {0, 1}
                                                          {1, 0} => {1, 1}
                                                          {1, 1} => {1, 0}
           Buckets => {{{0, 0}}, {{0, 1}}, {{1, 0}, {1, 1}}}
           Group => {{0, 0}, {0, 1}, {1, 0}, {1, 1}}

o5 : Model

See also

Ways to use model :

For the programmer

The object model is a method function.