Metadata-Version: 1.1
Name: python-nexus
Version: 1.5
Summary: A nexus (phylogenetics) file reader (.nex, .trees)
Home-page: https://github.com/SimonGreenhill/python-nexus
Author: Simon Greenhill
Author-email: simon@simon.net.nz
License: BSD
Description: 
        python-nexus - Generic nexus (.nex, .trees) reader for python
        =============================================================
        
        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)
        
        
Keywords: phylogenetics nexus newick paup splitstree
Platform: UNKNOWN
Classifier: Programming Language :: Python
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: BSD License
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
