---
title: "Introduction to the phylocomr package"
author: "Scott Chamberlain and Jeroen Ooms"
date: "`r Sys.Date()`"
output:
html_document:
toc: true
toc_float: true
theme: readable
vignette: >
%\VignetteIndexEntry{Introduction to the phylocomr package}
%\VignetteEngine{knitr::rmarkdown}
%\VignetteEncoding{UTF-8}
---
```{r echo=FALSE}
knitr::opts_chunk$set(
comment = "#>",
collapse = TRUE,
warning = FALSE,
message = FALSE
)
```
`phylocomr` is an R client for Phylocom - a C library for Analysis of Phylogenetic
Community Structure and Character Evolution.
Phylocom home page is at . The source code
for Phylocom is at .
Phylocom is usually used either on the command line or through the R package
`picante`, which has duplicated some of the Phylocom functionality.
Phylocom has been cited nearly 1000 times according to Google Scholar,
so is clearly a very widely used piece of software. The goal with this package
is to make it even easier to use - and in particular, to incorporate its use into
a reproducible workflow entirely in R instead of going to the shell/command line
for Phylocom usage. (Yes, some of Phylocom functionality is in `picante`, but
not all.)
In terms of performance, some functionality will be faster here than in `picante`,
but the maintainers of `picante` have re-written some Phylocom functionality
in C/C++, so performance should be similar in those cases.
## Install
Install `ape` for below examples:
```{r eval=FALSE}
install.packages('ape')
```
Stable `phylocomr` version from CRAN
```{r eval=FALSE}
install.packages("phylocomr")
```
Or, the development version from Github
```{r eval=FALSE}
devtools::install_github("ropensci/phylocomr")
```
```{r}
library("phylocomr")
```
## phylomatic
```r
taxa_file <- system.file("examples/taxa", package = "phylocomr")
phylo_file <- system.file("examples/phylo", package = "phylocomr")
(taxa_str <- readLines(taxa_file))
(phylo_str <- readLines(phylo_file))
ph_phylomatic(taxa = taxa_str, phylo = phylo_str)
```
## aot
```r
traits_file <- system.file("examples/traits_aot", package = "phylocomr")
phylo_file <- system.file("examples/phylo_aot", package = "phylocomr")
traitsdf_file <- system.file("examples/traits_aot_df", package = "phylocomr")
traits <- read.table(text = readLines(traitsdf_file), header = TRUE,
stringsAsFactors = FALSE)
phylo_str <- readLines(phylo_file)
ph_aot(traits = traits, phylo = phylo_str)
```
## bladj
```r
ages_file <- system.file("examples/ages", package = "phylocomr")
phylo_file <- system.file("examples/phylo_bladj", package = "phylocomr")
ages_df <- data.frame(
a = c('malpighiales','salicaceae','fabaceae','rosales','oleaceae',
'gentianales','apocynaceae','rubiaceae'),
b = c(81,20,56,76,47,71,18,56)
)
phylo_str <- readLines(phylo_file)
res <- ph_bladj(ages = ages_df, phylo = phylo_str)
if (requireNamespace("ape")) {
library(ape)
plot(read.tree(text = res))
}
```
![plot](img/blad_tree.png)