一种用于转换和操作系统发育数据的工具
项目描述
panphylo
panphylo
是一个免费且开源的系统发育数据转换和操作工具,特别适用于非生物数据集。
有各种类似工具,用于本地和远程执行。panphylo 的特点是专注于非生物起源的系统发育数据,特别是在历史语言学和谱系学领域。标准数据类型是标准,并关注多状态字符,其中最受欢迎的格式之一是文本表格(例如 CSV),这使得与这些领域使用的工具更容易集成。同样,我们的库提供现成的数据操作支持,例如自动二值化(带或不带鉴定字符的添加)、标签适应许多程序的约束(例如,将Unicode序列重新映射到ASCII但保持标识符的唯一性)、删除常量特征、添加鉴定校正字符等。
该库根据受广泛认可的 pandoc 工具的结构组织,该工具用于在文本文档格式之间进行转换,即“过滤器”,将不同的格式转换为具有多状态的内部分布。其他“过滤器”允许将此内部表示转换为不同的格式和方言,执行用户请求的操作。由于相同的数据格式可以指示为输入和输出,因此该工具还可以用于整理现有文件。
该库的名称是对“pandoc”的致敬和参考。它也是对它在谱系学领域的起源的提醒,指的是潘菲洛(“所有之爱者”),博卡丘的《十日谈》中的主要人物之一。本文档中使用的图片取自该作品的抄本,美丽的博德利安图书馆MS. Holkham 49(第148页)。
安装
在任何标准的Python环境中,可以使用以下命令安装panphylo
pip install panphylo
使用panphylo
如果未指定输入文件,则从stdin读取输入。默认情况下,输出到stdout。要输出到文件,请使用-o
选项
panphylo -o data.nex data.csv
可以使用命令行选项显式指定输入和输出格式。可以使用-f
/--from
选项指定输入格式,使用-t
/--to
选项指定输出格式。因此,要将data.nex
从NEXUS转换为PHYLIP,您可以输入:
panphylo -f nexus -t phylip data.nex
支持的输入和输出格式在“选项”部分下列出(有关输入格式,请参阅-f
;有关输出格式,请参阅-t
)。如果未显式指定输入格式,panphylo
将尝试从文件内容中猜测它。如果未指定输出格式,它将尝试从文件扩展名中猜测,默认为CSV。
关于字符编码,panphylo
使用UTF-8字符编码进行输出,在大多数情况下将限制为ASCII字符。如果您的本地字符编码不是UTF-8,您应该使用如iconv
之类的工具将输出通过管道。可以使用-e
选项指定输入编码,如果未提供,则自动检测(使用chardet
库)。
panphylo
使用的内部表示是专门的多状态表示,即使是从二进制数据转换而来也是如此,并且默认为多状态输出。要二值化数据(或“重新二值化”以允许执行实施的操作),可以使用b
选项。
选项
选项 | 帮助 |
---|---|
--input 文件 |
从文件读取输入。如果文件是- ,则输入将从stdin读取。 |
-o ,--output 文件 |
将输出写入文件而不是stdout。如果文件是- ,则输出将写入stdout。 |
-b ,--binarize |
二值化输出。是否以及如何添加确定性校正的说明由--ascertainment 选项指定。 |
-f ,--from 格式 |
指定输入格式。有效的格式选择为auto 、tabular 、csv 、tsv 、nexus 和phylip ;auto 将尝试从文件内容中自动检测格式,而tabular 将尝试检测表格文本文件中的分隔符(逗号或制表符)。默认为auto 。 |
-t ,--to 格式 |
指定输出格式。有效的格式选择为auto 、csv 、tsv 、nexus 和phylip ;auto 将根据文件扩展名决定格式。默认为csv 。 |
-e ,--encoding 编码 |
使用Python中的标准字符编码名称指定输入的字符编码。默认为使用chardet 库的自动检测。 |
--i-taxa 标签 |
输入标签、列或名称用于分类群。如果未提供,库将尝试自动检测。不适用于所有格式。 |
--i-char 标签 |
输入标签、列或名称用于特征。如果未提供,库将尝试自动检测。不适用于所有格式。 |
--i-state 标签 |
输入状态标签、列或名称。如果没有提供,库将尝试自动检测。不适用于所有格式。 |
--o-taxa 标签 |
输出标签、列或名称用于物种。如果没有提供,默认为 "Taxon" 。不适用于所有格式。 |
--o-char 标签 |
输出标签、列或名称用于特征。如果没有提供,默认为 "Character" 。不适用于所有格式。 |
--o-state 标签 |
输出标签、列或名称用于状态。如果没有提供,默认为 "State" 。不适用于所有格式。 |
--slug_taxa 级别 |
物种名称的“简化”(简化)级别。有效的级别选项为 none 、simple 和 full 。 |
--slug_chars 级别 |
特征名称的“简化”(简化)级别。有效的级别选项为 none 、simple 和 full 。 |
-v 、--verbosity 级别 |
设置日志级别。有效的级别选项,遵循 Python logging 库,为 "debug" 、"info" 、"warning" 、"error" 、"critical" 。 |
替代方案
如前所述,有许多本地和远程执行的工具与 panphylo
有所重叠。它们通常支持更多格式,并提供更好的遗传数据支持,但并不总是提供数据操作方法,如二值化和去二值化,或标签转换。最常用的工具有
-
最常用的工具
readseq
,可在多个在线界面找到,例如 [https://mafft.cbrc.jp/alignment/server/cgi-bin/readseq.txt] 和 [http://avermitilis.ls.kitasato-u.ac.jp/readseq.cgi] -
EMBOSS
seqret
工具,部分源自readseq
,在线界面为 [https://www.ebi.ac.uk/Tools/sfc/emboss_seqret/] -
LIRMM 的 Web 界面 [http://phylogeny.lirmm.fr/phylo_cgi/data_converter.cgi]
-
phangorn
R 库中的phyDat
方法,在 [https://rdrr.io/cran/phangorn/man/phyDat.html]
变更日志
版本 0.2
- 添加 Brython 支持,以在浏览器和 Web 界面中本地运行
- 输出生成的修正,主要与多状态数据相关(请注意,不建议在多状态数据上运行)
版本 0.1
- 首次公开发布
社区指南
虽然作者可以直接联系以获得支持,但建议第三方使用 GitHub 标准功能,如问题和拉取请求,以贡献、报告问题或寻求支持。
贡献指南,包括行为准则,可以在 CONTRIBUTING.md
文件中找到。
作者和引用
该库由 Tiago Tresoldi 开发(tiago.tresoldi@lingfil.uu.se)。该库是在 Cultural Evolution of Texts 项目的背景下开发的,并由 Riksbankens Jubileumsfond (协议 ID:MXM19-1087:1)资助。
如果您使用 panphylo
,请引用如下
Tresoldi, T. (2022). panphylo: 转换和处理系统发育数据的工具。版本 0.3. 乌普萨拉:乌普萨拉大学
在 BibTeX 中
@misc{Tresoldi2021panphylo,
url = {https://github.com/tresoldi/panphylo},
year = {2022},
author = {Tiago Tresoldi},
title = {panphylo: a tool for converting and manipulating phylogenetic data. Version 0.3.},
address = {Uppsala},
publisher = {Uppsala Universitet}
}
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。