Tools are available for concatenating matrices, although few deal with concatenating different data types. The function concatNexus
was designed for including both DNA and morphological matrices. If the morphological matrix is in some form of table (probably a spreadsheet), we can use the function table2nexus
to read a table file from the disk and write back the nexus-formatted.
In this example, we use these functions to concatenate the DNA alignments and morphological data for the South American Sabre-Tooth Characins of the family Cynodontidae. Data are in the examples
directory of the package repository.
Let's set up the environment for concatenating data:
# load the package library(tbea) # navigate to the examples/concatenation directory in the package repository setwd("examples/concatenation")
table2nexus(path="data/morpho.csv", datatype="standard", header=FALSE, sep=",", con="data/morpho.trimmed.nex")
The morphological matrix is now in nexus format, so we can concatenate DNA (also in nexus format) and morphology partitions as follows:
nexmatrices <- list.files(path="data", pattern=".nex", full.names=TRUE) concatNexus(matrices=nexmatrices, filename="concatenatedMolmorph.nexus", morpho=TRUE, morphoFilename="data/morpho.trimmed.nex", sumFilename="partitions.txt") # also, we can provide a pattern and a path path <- "data" pattern <- "trimmed.nex$" concatNexus(pattern=pattern, filename="concatenatedMolmorph.nexus", path=path, morpho=TRUE, morphoFilename=paste(path, grep(pattern="morpho.", x=dir(path, pattern), value=TRUE), sep="/"), sumFilename="partitions.txt")
This will generate two files, one with the concatenated nexus alignment (concatenatedMolMorph.nexus
) and one with information on the start and end position for each partition (partitions.txt
).
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.