A nexus (phylogenetics) file reader (.nex, .trees)
Project description
Reading a Nexus
>>> import os >>> EXAMPLE_DIR = os.path.join(os.path.dirname(__file__), 'examples') >>> >>> from nexus import NexusReader >>> n = NexusReader() >>> n.read_file(os.path.join(EXAMPLE_DIR, 'example.nex')) ... >>> n = NexusReader(os.path.join(EXAMPLE_DIR, 'example.nex')) ...
# display blocks found in data file >>> n.blocks {‘data’: <NexusDataBlock: 2 characters from 4 taxa>}
data blocks
>>> n.data.nchar 2
>>> n.data.ntaxa 4
>>> n.data.format {'datatype': 'standard', 'symbols': '01', 'gap': '-'}
>>> n.data.matrix.keys() ['Simon', 'Louise', 'Betty', 'Harry']
>>> n.data.matrix['Simon'] ['0', '1']
>>> sorted(n.data.taxa) ['Betty', 'Harry', 'Louise', 'Simon']
>>> sorted(n.data.matrix.keys()) ['Betty', 'Harry', 'Louise', 'Simon']
>>> for taxon, characters in n.data: #doctest: +SKIP
tree blocks
>>> n = NexusReader(os.path.join(EXAMPLE_DIR, 'example.trees')) >>> n.trees.ntrees 3 >>> n.trees.trees[0][0:60] 'tree tree.0.1065.603220 = (((((((Chris:0.0668822155,Bruce:0.'
>>> for tree in n.trees: #doctest: +SKIP
Writing a Nexus File
>>> from nexus import NexusWriter >>> n = NexusWriter()
Add a comment to appear in the header of the file >>> n.add_comment(“I am a comment”)
data are added by using the “add” function - which takes 3 arguments, a taxon, a character name, and a value
>>> n.add('taxon1', 'Character1', 'A') >>> n.data {'Character1': {'taxon1': 'A'}} >>> n.add('taxon2', 'Character1', 'C') >>> n.add('taxon3', 'Character1', 'A')
Characters and values can be strings or integers >>> n.add(‘taxon1’, 2, 1) >>> n.add(‘taxon2’, 2, 2) >>> n.add(‘taxon3’, 2, 3)
NexusWriter will interpolate missing entries (i.e. taxon2 in this case) >>> n.add(‘taxon1’, “Char3”, ‘4’) >>> n.add(‘taxon3’, “Char3”, ‘4’)
… when you’re ready, you can generate the nexus using make_nexus or write_to_file: n.make_nexus(interleave=True, charblock=True) n.write_to_file(filename=”output.nex”, interleave=True, charblock=True)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for python_nexus-1.31-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3fd8683950b4f8e57559519de4e6cee50892623daf96827deddfce34a13f30d4 |
|
MD5 | 391493b5ac126096273844648f0dcc8d |
|
BLAKE2b-256 | 972886cb3beeb1704a2ab4534599531acad5cd6eb65c292f6578b34488b981c6 |