The l1ou package provides functions to study trait evolution from comparative data and detect past changes in the expected mean trait values, as well as convergent evolution. It uses the Ornstein-Uhlenbeck process along a phylogenetic tree, which can model a changing adaptive landscape over time and over lineages. Shifts can be detected from multiple traits, assuming that all traits shifted along the same lineages. Estimation is very fast thanks to lasso techniques, and the user can choose from multiple information criteria for model selection, including a phylognetic BIC. Citation:

- M. Khabbazian, R. Kriebel, K. Rohe, and Cécile Ané. Fast and accurate detection of evolutionary shifts in Ornstein-Uhlenbeck models. Methods in Ecology and Evolution, 7(7):811–824. doi:10.1111/2041-210X.12534

From within R:

```
install.packages("devtools")
library(devtools)
install_github("glmgen/genlasso")
install_github("khabbazian/l1ou")
```

Windows users will first need to install Rtools.

To resolve dependencies, first install the following packages from CRAN, then the knitr package. From within R:

```
install.packages(c("igraph", "phylolm", "lars", "grplasso", "magic", "Rcpp"))
install.packages("knitr")
```

Download genlasso version 1.3 R package from CRAN archive (link). From within R:

```
install.packages("genlasso_1.3.tar.gz", repos=NULL, type="source")
```
Now in the shell, with asterisks to be replaced with the correct version number:
```shell
git clone https://github.com/khabbazian/l1ou.git
R CMD build l1ou
R -e 'install.packages("l1ou_*.**.tar.gz")'
```

major changes are indicated below.

- v1.40:
- intercept correctly handled after noise-whitening (results may change for variables with a mean far from 0)
- bug fix in the function calculating the square-root (and inverse) of the phylogenetic covariance matrix.
- v1.25: the penalty term in the AICc score now considers the intercept as a free variable. The change only affects the final value of the AICc score.
- v1.23: "estimate_convergent_regimes" function accepts multiple traits.
- v1.22:
- the scores returned by "estimate_shift_configuration” function are now for the non-normalized, original data.
- "estimate_shift_configuration" function also accepts multiple traits with missing values.

Embedding an R snippet on your website

Add the following code to your website.

For more information on customizing the embed code, read Embedding Snippets.