Hi Alex,
The columns in your matrix should sum to 0.0, so if you want the
transitions to any of the four states to be equiprobable, try:
> q<-list(rbind(c(-1, 1/3, 1/3, 1/3),
c(1/3, -1, 1/3, 1/3),
c(1/3, 1/3, -1, 1/3),
c(1/3, 1/3, 1/3, -1)));
Then type:
> results<-sim.char(tree,q,nsims=1,model="discrete",root.state=1);
Note that you don't have to set the root.state, but if not assigned it
will assume a root.state of 1.
If you want to simulate many characters at once under the same model,
you can do that in one of two ways, depending on how you want the output
to be stored. You can increase nsims, e.g.:
> results<-sim.char(tree,q,nsims=10,model="discrete",root.state=1);
for 10 simulations. Or, you can add additional matrices to the list of
transition matrices, q, e.g.:
> for (i in 2:10){
q[[i]]=q[[1]];
}
The latter gives your results in a more convenient form, from which:
> results<-as.matrix(results[,,1]);
puts all the results from all 10 simulations into one numspecies x 10
matrix.
Good luck!
- Liam
Liam J. Revell
NESCent, Duke University
web: http://anolis.oeb.harvard.edu/~liam/
NEW email: lrev...@nescent.org
Alexandre Antonelli wrote:
Hi,
I am trying to use the function sim.char in geiger without success.
I would like to let a character (in this case 'species distribution',
with four states) evolve along a tree, and try different transition
costs in the matrix.
However, I don't manage to get more than one character with 2
states. Any ideas what I am doing wrong? It is very unclear to me how
the transition matrix should be compiled (if columns/rows have to sum
up to one, etc). The manual indicated that the number of states per
character would be dependent on the size of the matrix, but that does
not seem to be the case.
These are the commands I used, and the transition matrix I intended
to apply:
## 0: Area A, 1:Area B, 2:Area C, 3:Area D
##
## From 0 1 2 3
## To 0 -.5 .5 .5 .5
## 1 .5 -.5 .5 .5
## 2 .5 .5 -.5 .5
## 3 .5 .5 .5 -.5
require (geiger)
tree <- read.nexus(file="input.tre")
q<-list (rbind( c(-.5, .5, .5, .5),
c(.5, -.5, .5, .5),
c(.5, .5, -.5, .5),
c(.5, .5, .5, -.5)))
results<-sim.char(tree, q, model="discrete",n=2)
------
Thanks for any help!
Best wishes,
Alex
Dr Alexandre Antonelli
Institute of Systematic Botany
Zollikerstrasse 107
CH 8008 Zürich
Switzerland
Phone: +41 (0)44 634 8416
Mobile: + 41 (0) 76 7345116
alexandre.antone...@systbot.uzh.ch
http://www.systbot.uzh.ch/Personen/PostdoktorandInnen/AlexandreAntonelli.html
******************************************************
[[alternative HTML version deleted]]
------------------------------------------------------------------------
_______________________________________________
R-sig-phylo mailing list
R-sig-phylo@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-sig-phylo
_______________________________________________
R-sig-phylo mailing list
R-sig-phylo@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-sig-phylo