Learn R Programming

PhylogeneticEM (version 1.8.1)

Automatic Shift Detection using a Phylogenetic EM

Description

Implementation of the automatic shift detection method for Brownian Motion (BM) or Ornstein–Uhlenbeck (OU) models of trait evolution on phylogenies. Some tools to handle equivalent shifts configurations are also available. See Bastide et al. (2017) and Bastide et al. (2018) .

Copy Link

Version

Install

install.packages('PhylogeneticEM')

Monthly Downloads

602

Version

1.8.1

License

GPL (>= 2) | file LICENSE

Issues

Pull Requests

Stars

Forks

Maintainer

Paul Bastide

Last Published

September 23rd, 2025

Functions in PhylogeneticEM (1.8.1)

clusters_from_shifts

Clustering associated to a shift allocation, assuming no homoplasy.
compute_expectations.BM

Compute the expected states of a BM
compute_betas_from_shifts

Computation of the optimal values at nodes and tips.
compute_dist_phy

Phylogenetic Distances
check_range_alpha

Check range of alpha
compute_fixed_moments

Compute fixed moments for E step.
compute_E.simple

E step
compute_expectations.scOU

Compute the expected states of a scOU
compute_actualization_matrix_ultrametric

Compute Matrix W of actualization (Ultrametric case)
compute_diff_exp.BM

Compute differences of expectations between node and parent.
compute_sum_var_diff

Compute weighted sum of var_diff
compute_gauss_lasso

Do a lm on top of a lasso regression.
compute_shifts_from_betas

Computation of shifts from the vector of optimal values
compute_residuals.simple

Residuals
compute_mean_variance.simple

Compute moments of params_old
compute_variance_covariance.OU.nonsym

Complete variance covariance matrix for OU
compute_mahalanobis_distance.simple

Squared Mahalanobis Distance
compute_variance_covariance.OU

Complete variance covariance matrix for OU
compute_variance_covariance.BM

Complete variance covariance matrix for BM
compute_state_filter

List of potential daughter states when parent is in state k.
enumerate_tips_under_edges

Tips descendants of nodes.
compute_times_ca

Common Ancestors Times
compute_stationary_variance

Compute the stationary variance matrix
correspondenceEdges

Correspondence between edges numbers
estimateEM

Perform One EM
enumerate_parsimony

Enumerate all the possible regime allocations, given a clustering of the tips.
compute_variance_block_diagonal.OU

Tips Variances for the OU
compute_variance_block_diagonal.BM

Tips Variances for the BM
equivalent_shifts_values

Find values given edges. OU stationary case. Ultrametric tree.
compute_var_M.BM

Computation of the variance.
compute_variance_covariance.scOU

Complete variance covariance matrix for scOU
equivalent_shifts

Find all equivalent shifts allocations and values.
enlight

Make the result lighter
compute_tree_correlations_matrix.scOU

Matrix of tree-induced correlations for the scOU
estimate.alpha

Function to estimate alpha
compute_log_likelihood.simple

Log Likelihood
compute_tree_correlations_matrix.BM

Matrix of tree-induced correlations for the BM
extract.partitionsNumber

Extract from object partitionsNumber
extract.parsimonyCost

Extraction of the actual number of solutions.
compute_var_diff.BM

Compute variances of differences between nodes and parents.
incidence.matrix.full

Incidence matrix of a tree.
find_grid_alpha

Find a reasonable grid for alpha
incidence.matrix

Incidence matrix of a tree.
equivalent_shifts_edges

Find all the equivalent shift edges allocations.
find_independent_regression_vectors.glmnet_multivariate

Given a regularization path, find K selected independent variables.
extract_variance_covariance

Extract sub-matrices of variance.
find_rotation

Test for rotation invariant datasets
init.alpha.gamma.estimation

Initialization the selection strength alpha using robust estimation
incidence_matrix_actualization_factors

Compute the actualization factors to apply to the incidence matrix.
init.EM.lasso

Initialization of the shifts using Lasso.
init.allocate_regimes_from_shifts

Initialization for the allocation of shifts.
go_back_to_original_process

Scale the parameters back to the original process
extract.parsimonyNumber

Extraction of the actual number of solutions.
init.simulate.OU

Initialize state and expectation matrices
log_likelihood

Log Likelihood of a fitted object
merge_rotations

Merge fits from independent runs of PhyloEM.
init.simulate.BM

Initialize BM
lasso_regression_K_fixed.glmnet_multivariate

Do a lasso regression with the number of non-zero variables fixed.
extract.equivalent_shifts

Extract the shifts values for one trait.
extract.enumerate_parsimony

Extract the result of enumerate_parsimony at a node.
extract

Extraction function
extract.simul_process

Extraction of simulated traits
model_selection

Model Selection of a fitted object
init.parsimonyNumber

Initialization for parsimonyNumber.
merge_complementary_vectors

Merge several complementary vectors into one.
format_output

Run the EM for several values of K
find_shift_values

Find values given edges. OU stationary case. Ultrametric tree.
params_process.PhyloEM

Parameter estimates
params_process.character

Create an object params_process
parsimonyCost

Minimal number of shifts needed to get a clustering.
params_process

Create an object params_process
params_BM

Create an object params_process for a BM
get_criterion

Get Model Selection Criterion
merge_alpha_grids

Merge PhyloEM fits on various grids of alpha values
merge_params_independent

Merge a list of independent parameters into into one parameter
params_OU

Create an object params_process for an OU
matrix_of_possibles

Compute parent matrix from possibles daughter matrices.
init.incidence.matrix

Initialization for incidence matrix
init.parsimonyCost

Initialization for parsimonyCost.
get_variance_node

Get variance matrix of a node
init.incidence.matrix.full

Initialization for incidence matrix (full tree)
imputed_traits

Ancestral State Reconstruction
init.compute_betas_from_shifts

Initialization for the computation of the optimal values
plot_criterion

Plot Model Selection Criterion
prod_index

Product of elements of a matrix
plot.enumerate_parsimony

Plot all the equivalent solutions.
scale_params

Scale variance and selection strength from a linear transform
plot.PhyloEM

Plot for class PhyloEM
segmentation.OU.specialCase.lasso

Segmentation in the OU special case, using lasso regression
sample_shifts_edges

Sample shifts edges in a parsimonious way.
segmentation.BM

Segmentation in the BM case
residuals.PhyloEM

Residuals of a fitted object
sample_edges_intervals

Sample equally spaced edges.
shifts.matrix_to_list

Compute the list of shifts.
shifts_to_simmap

Simmap format mapping from list of edges
penalty_pBIC

Penalty function type pBIC
penalty_BirgeMassart_shape2

Penalty function type Birgé-Massart 2
shifts.vector_to_list

Compute the list of shifts.
shifts.list_to_vector

Compute the vector of shifts.
parsimonyNumber

Number of equivalent parsimonious allocations.
partitionsNumber

Number of different models
is.in.ranges

Check whether parameters are in ranges.
init.simulate.StateAndExp

Initialize state and expectation matrices
init.enumerate_parsimony

Initialization for the enumeration of parsimonious solutions.
sum_partitions.cardFixed

Sum on subsets of a given cardinal.
transform_branch_length

Transform branch length for a re-scaled BM
transform_shifts_values

Transform the shift values
penalty_BirgeMassart_shape1

Penalty function type Birgé-Massart 1
sum_partitions

Sum on all subsets.
qr_solve_exact

exact qr.solve
penalty_BaraudGiraudHuet_likelihood

Penalty function type Baraud Giraud Huet.
recursionDown

Generic recursion down the tree.
split_params_independent

Split independent parameters into a list of parameters
wrapper_E_step

Wrapper for E step in EM
sum_simplex

Sum on a simplex
node_optimal_values

Computation of the optimal values at nodes and tips.
plot.equivalent_shifts

Plot all the equivalent solutions.
update.partitionsNumber.gen

Update formula in the general case
update.parsimonyNumber

Actualization for parsimonyNumber.
monkeys

New World Monkeys dataset
test.root.state

Test state of root.
shifts.list_to_matrix

Compute the matrix of shifts.
simul_process

Simulate a Stochastic Process on a tree
simulate_internal

Simulate a Stochastic Process on a tree
segmentation.OU.specialCase.same_shifts

Segmentation in the OU special case, conserving the same shifts position.
update.incidence.matrix.full

Update function for incidence matrix
plot.params_process

Plot for class simul_process
update.enumerate_parsimony

Actualization of the enumeration.
update.incidence.matrix

Update function for incidence matrix
update.parsimonyCost

Actualization for parsimonyCost.
sum_prod.comb

Sum on a simplex
update.compute_betas_from_shifts

Update function for optimal value computation
update.allocate_regimes_from_shifts

Update function for regime allocation.
check.selection.strength

Check selection strength
allocate_shifts_from_regimes

Allocation of shifts to edges
check_parsimony

Check Parsimony, assuming no homoplasy
allocate_regimes_from_shifts

Allocation of regimes to nodes.
PhyloEM

Model Estimation with Detection of Shifts
add_complementary

Add several entries, when only one is not NA.
allocate_subset_node.simulate

Iteration allocation
check_data

Test the format of data entry.
check_dimensions

Check dimensions of the parameters
check_parsimony_clusters

Check whether an allocation of the shifts is parsimonious, in the "infinite site model".