跳转到主要内容

一个用于读取和写入NEXUS(系统发育)文件的文件读取器和写入器 (.nex, .trees)

项目描述

commonnexus

Build Status Documentation Status PyPI

此包提供了根据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 APIshell 命令 来操作 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 内容是 listCommand 对象,
  • CHARACTERS MATRIX 中缺失的状态表示为 None 值等。

这允许以从 NEXUS 格式约定抽象的方式处理 NEXUS 数据

有关 Python API 的详细文档,请参阅 ReadTheDocs 上的文档

另请参阅

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源代码分发

commonnexus-1.9.2.tar.gz (86.0 kB 查看哈希值)

上传时间 源代码

构建分发

commonnexus-1.9.2-py2.py3-none-any.whl (81.4 kB 查看哈希值)

上传时间 Python 2 Python 3

支持者