Thursday: parrotfish analysis

Summarizing parrotfish data under the single shift at the intramandibular joint. See version stable code for data loading/transforms (parrotfish_data.R), and for plots (parrotfish.R) as shown, and for analysis functions (loop_models_traits_regimes.R). Models are named by the parameter which is regime-dependent. Results are shown sorted by likelihood, so the best model is on top, and likelihood values are scaled by the weakest model.

Tree:

alpha is favored in all the ratio traits, sometimes substantially.

Without size corrections the muscle traits essentially reflect body mass. Though ratio may be better than the regression:

Size-corrected length traits show a substantial signal:

The appaxial muscle looks strong candidate for release of constraint, the control muscles not involved with the jaw mechanism do not show any such release:

Strength of constraint (alpha parameter), by trait: log ratio of intramandibular to other parrotfish:

hmm, doesn’t match the general model fits:

Puzzles and puzzle-shooting

A couple traits don’t converge for the general model:

conv(test) [1] “trait  AM.x regime intramandibular model wright didn’t converge” [1] “trait  SH.y regime intramandibular model wright didn’t converge” [1] “trait  LP.y regime intramandibular model wright didn’t converge”

Above uses equal-alpha always as starting conditions (taken from hansen fit).  Comparing against a fit attempt using very different alphas for each regime (intra at 0.1, other at 5).  Comparisons run and pushed to flickr, gallery below.  Results are clearly different; i.e. alpha ratios on release (alpha varies) model:

(replotted without the two dominant ratios here, first in stream below.)

[flickr-gallery mode=“search” tags=“phylogenetics” min_upload_date=“2011-05-05 18:00:00” max_upload_date=“2011-05-05 18:45:00”]

Results in more convergence errors, but not enough to explain difference (only one release_constraint model didn’t converge):

conv(test) [1] “trait bodymass, regime intramandibular, model ouch didn’t converge” [1] “trait bodymass, regime intramandibular, model release_constraint didn’t converge” [1] “trait LP.x, regime intramandibular, model ouch didn’t converge” [1] “trait open, regime intramandibular, model ouch didn’t converge” [1] “trait kt, regime intramandibular, model ouch didn’t converge” [1] “trait LP.y, regime intramandibular, model wright didn’t converge”

(commitwith this version of code)

Illustrates need for more robust searching of the likelihood surface!

Trying now with simulated annealing, shows a release of constraint:

wright_alphas intramandibular    other gape.y        3.786699 12.59779 prot.y        9.275002 15.27857 release_alphas intramandibular     other gape.y        2.008825  2.262495 prot.y       23.093936 25.768637

Protrusion strongly favors alpha model:

lliks $gape.y gen     alpha     sigma 0.0000000 0.7693642 1.0315282

$prot.y sigma      gen    alpha 0.00000 13.04190 13.44653

Worrisome that gen doesn’t do best though, it probably needs a slower cooling schedule for so many parameters. (code)

Trying with slower cooling, starting with unfavorable init conditions (higher alpha for intramandibulars):

release_alphas intramandibular      other gape.y        1.969489  0.6064478 prot.y       25.087304 27.2187761 > wright_alphas intramandibular     other gape.y        2.198133  4.446376 prot.y       20.443740 22.325272 >

Clearly just need super aggressive parameters.  Robust search for actual inferences coming up.  Need to add automated clever convergence testing.

Meetings:

Duncan

Discussing web tools to interface with APIs, with implementations in R.  OAuth, CURL, XML, JSON.  Approaches in REST vs SOAP.  Notes (in prep, will be separate post.)

Marissa Lab