Package 'gromovlab'

Title: Gromov-Hausdorff Type Distances for Labeled Metric Spaces
Description: Computes Gromov-Hausdorff type l^p distances for labeled metric spaces. These distances were introduced in V.Liebscher, Gromov meets Phylogenetics - new Animals for the Zoo of Metrics on Tree Space <arXiv:1504.05795> for phylogenetic trees, but may apply to a diversity of scenarios.
Authors: Volkmar Liebscher
Maintainer: Volkmar Liebscher <[email protected]>
License: GPL (>= 2)
Version: 0.8-3
Built: 2025-03-03 06:34:24 UTC
Source: https://github.com/cran/gromovlab

Help Index


Gromov-Hausdorff-type distances of labelled metric spaces

Description

The function gromovdist calculates the matched Gromov-p\ell^p distances of two metrics on a finite space XX:

Dp(ρ1,ρ2)=inf{(d(ϕ1(x),ϕ2(x)))xXp}.D_p(\rho_1,\rho_2)=\inf\{\|(|d(\phi_1(x),\phi_2(x))|)_{x \in X}\|_p\}.

There, the infimum is taken over all isometric embeddings ϕ1\phi_1 of (X,ρ1)(X,\rho_1), ϕ2\phi_2 of (X,ρ2)(X,\rho_2) into a common metric space (Y,d)(Y,d). Only 1p1\le p\le \infty is considered.

At the basis is the reformulation of the metric as value of a convex program, see Liebscher (2015).

Methods for various classes are provided:

  • dist,dissimilarity which are distance matrices.

  • matrix for matrices containing the individual distances of the elements of XX.

  • igraph for connected graphs. The metric on the nodes or just the leaves (nodes of degree 1) of the graph is the length of the shortest path.

  • phylo for phylogenetic trees. Again the metric is induced by the graph.

Usage

gromovdist(d1,d2=NULL,type="l1",p=NULL,...)

## S3 method for class 'list'
gromovdist(d1,d2=NULL,type="l1",p=NULL,...)
## S3 method for class 'multiPhylo'
gromovdist(d1,d2=NULL,type="l1",p=NULL,...)
## S3 method for class 'phylo'
gromovdist(d1,d2=NULL,type="l1",p=NULL,...)
## S3 method for class 'dist'
gromovdist(d1,d2=NULL,type="l1",p=NULL,...)
## S3 method for class 'dissimilarity'
gromovdist(d1,d2=NULL,type="l1",p=NULL,...)
## S3 method for class 'matrix'
gromovdist(d1,d2=NULL,type="l1",p=NULL,...)
## S3 method for class 'igraph'
gromovdist(d1,d2=NULL,type="l1",p=NULL,leavesonly=TRUE,...)

Arguments

type

type of metric to use

d1, d2

distance object(s).

p

if type="lp" the value of pp. If not supplied, p=2p=2 is used.

leavesonly

compute the distances between the leaves of the graph/tree only?

...

further parameters

Details

type="l1" yields p=1p=1

type="l2" yields p=2p=2

type="linfinity" yields p=p=\infty

type="lp" is for (not so efficient) computation using constrOptim for arbitrary 1p<1\le p<\infty

If d1 is a list, the distance matrix between all elements of the list is computed. It is represented as an object of class dissimiliarity, see dissimilarity.object.

The distance is only computed for that part of the objects where the labels are present in both objects. If there are no labels the elements are numbered consecutively.

Value

The distance (one numeric) or a distance matrix for the list and multiPhylo methods

Author(s)

Volkmar Liebscher

References

V.Liebscher, Gromov meets Phylogenetics - new Animals for the Zoo of Metrics on Tree Space. preprint 2015 arXiv:1504.05795

See Also

dist, dissimilarity.object,phangorn-package, igraph-package,constrOptim.

Examples

library("ape")
tr1<-rtree(n=10)
tr2<-rtree(n=10)
gromovdist(tr1,tr2,"l1")
gromovdist(tr1,tr2,"l2")
#thesame, but slower
gromovdist(d1=tr1,d2=tr2,type="lp",p=2)
gromovdist(tr1,tr2,"linf")