Learn R Programming

ape (version 5.5)

all.equal.DNAbin: Compare DNA Sets

Description

Comparison of DNA sequence sets, particularly when aligned.

Usage

# S3 method for DNAbin
all.equal(target, current, plot = FALSE, ...)

Arguments

target, current

the two sets of sequences to be compared.

plot

a logical value specifying whether to plot the sites that are different (only if the labels of both alignments are the same).

further arguments passed to image.DNAbin.

Value

TRUE if the two sets are identical; a list with two elements (message and different.sites) if a detailed comparison is done; or a vector of mode character.

Details

If the two sets of DNA sequences are exactly identical, this function returns TRUE. Otherwise, a detailed comparison is made only if the labels (i.e., rownames) of target and current are the same (possibly in different orders). In all other cases, a brief description of the differences is returned (sometimes with recommendations to make further comparisons).

This function can be used for testing in programs using isTRUE (see examples below).

See Also

image.DNAbin, clustal, checkAlignment, the generic function: all.equal

Examples

Run this code
# NOT RUN {
data(woodmouse)
woodm2 <- woodmouse
woodm2[1, c(1:5, 10:12, 30:40)] <- as.DNAbin("g")
res <- all.equal(woodmouse, woodm2, plot = TRUE)
str(res)

## if used for testing in R programs:
isTRUE(all.equal(woodmouse, woodmouse)) # TRUE
isTRUE(all.equal(woodmouse, woodm2)) # FALSE

all.equal(woodmouse, woodmouse[15:1, ])
all.equal(woodmouse, woodmouse[-1, ])
all.equal(woodmouse, woodmouse[, -1])

# }
# NOT RUN {
## To run the followings you need internet and Clustal and MUSCLE
## correctly installed.
## Data from Johnson et al. (2006, Science)
refs <- paste("DQ082", 505:545, sep = "")
DNA <- read.GenBank(refs)
DNA.clustal <- clustal(DNA)
DNA.muscle <- muscle(DNA)
isTRUE(all.equal(DNA.clustal, DNA.muscle)) # FALSE
all.equal(DNA.clustal, DNA.muscle, TRUE)
# }

Run the code above in your browser using DataLab