一个用于读取和写入NEXUS(系统发育)文件的文件读取器和写入器 (.nex, .trees)
项目描述
commonnexus
此包提供了根据Maddison, Swofford, 和 Maddison (1997) "NEXUS: An extensible file format for systematic information" 指定的NEXUS文件格式读取和写入的功能。
Maddison, Swofford, and Maddison (1997). "NEXUS: An extensible file format for systematic information". Systematic Biology. 46 (4): 590–621. doi:10.1093/sysbio/46.4.590
与尽快撕掉 NEXUS 文件的相关部分相比,commonnexus
的实现尝试根据规范“做正确的事”,即逐个解析文件标记。因此,我们牺牲了速度以换取正确性和支持像
注释不会打断标记。因此,
AssuMP[comment]TiONS
被处理为ASSUMPTIONS
。
安装
从 PyPI 安装 commonnexus
pip install commonnexus
概述
commonnexus
提供了 Python API 和 shell 命令 来操作 NEXUS 文件。
特别是,它允许读取 NEXUS
>>> from commonnexus import Nexus
>>> nex = Nexus.from_file('docs/characters.nex')
>>> nex.CHARACTERS.get_matrix()['t1'].values()
odict_values(['1', '0', '0', '1', '0', '1', '0', '0', '0', '0'])
和写入 NEXUS
>>> from commonnexus import Nexus
>>> from commonnexus.blocks import Data
>>> nex = Nexus.from_file('docs/characters.nex')
>>> print(Nexus.from_blocks(Data.from_data(nex.CHARACTERS.get_matrix())))
#NEXUS
BEGIN DATA;
DIMENSIONS NCHAR=10;
FORMAT DATATYPE=STANDARD MISSING=? GAP=- SYMBOLS="01";
MATRIX
t1 1001010000
t2 0101000100
t3 0011101010
t4 0001100001
t5 0001100001
;
END;
命令行使用
安装 commonnexus
软件包还将安装命令行界面 commonnexus
,它提供了一些子命令来操作 NEXUS 文件。
运行 commonnexus -h
以获取可用子命令的概述或通过 ReadTheDocs 查找带有示例的详细文档。
Python API
Python API 尝试将 NEXUS 构造转换为适当的 Python 对象,例如
- NEXUS 内容是
list
的Command
对象, - CHARACTERS MATRIX 中缺失的状态表示为
None
值等。
这允许以从 NEXUS 格式约定抽象的方式处理 NEXUS 数据
有关 Python API 的详细文档,请参阅 ReadTheDocs 上的文档。
另请参阅
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。