def readData(filepath, format=FileFormats.NEXUS, out=None): """Returns a data matrix (or None if there is no data) from `filepath` Currently only supports NEXUS and only returns the last data matrix, but this will be generalized to read other formats and return the supermatrix of all data matrices in the file.""" _readFileSanityCheck(filepath, format, out) from phycas.ReadNexus import NexusReader reader = NexusReader() reader.readFile(filepath) return reader.getLastDiscreteMatrix(True)
def readFileNoSideEffects(filepath, format=FileFormats.NEXUS, out=None): """Returns a (list of taxon labels, DataSource, TreeCollection) from the file `filepath`""" _readFileSanityCheck(filepath, format, out) from phycas.ReadNexus import NexusReader reader = NexusReader() reader.readFile(filepath) x = PhyloPackage() x.taxon_labels = reader.taxa matrix = reader.getLastDiscreteMatrix(True) x.characters = DataSource(matrix=matrix, taxon_labels=x.taxon_labels) x.trees = TreeCollection(trees=reader.getTrees(), taxon_labels=x.taxon_labels) return x