1 ## dist.gene.R (2002-08-28)
3 ## Pairwise Distances from Genetic Data
5 ## Copyright 2002 Emmanuel Paradis
7 ## This file is part of the R-package `ape'.
8 ## See the file ../COPYING for licensing issues.
10 dist.gene.pairwise <- function(x, variance = FALSE)
12 if (is.data.frame(x)) x <- as.matrix(x)
17 for (i in 1:(n - 1)) {
18 for (j in (i + 1):n) {
19 D[i, j] <- D[j, i] <- L - sum(x[i, ] == x[j, ])
22 if (!is.null(rownames(x))) rownames(D) <- colnames(D) <- rownames(x)
24 var.D <- D * (L - D) / L
25 return(list(distances = D, variance = var.D))
30 dist.gene.percentage <- function(x, variance = FALSE)
33 D <- dist.gene.pairwise(x) / L
35 var.D <- D * (1 - D) / L
36 return(list(pairwise.distances = D, variance = var.D))
41 dist.gene <- function(x, method = "pairwise", variance = FALSE)
43 if (method == "pairwise")
44 return(dist.gene.pairwise(x, variance = variance))
45 if (method == "percentage")
46 return(dist.gene.percentage(x, variance = variance))