Nexus(系统发育)文件读取器(.nex,.trees)

python-nexus的Python项目详细描述


读取关系

>>> 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'))
...

#显示在数据文件中找到的块 >>>>n.块 {'data':<;nexusdatablock:4个分类单元中的2个字符>;}

数据

>>> 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

>>> 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

编写nexus文件

>>> from nexus import NexusWriter
>>> n = NexusWriter()

添加要显示在文件头中的注释 >;gt;gt;n.添加注释(“我是注释”)

使用“add”函数添加数据- 它包含3个参数、一个分类单元、一个字符名和一个值

>>> n.add('taxon1', 'Character1', 'A')
>>> n.data
{'Character1': {'taxon1': 'A'}}
>>> n.add('taxon2', 'Character1', 'C')
>>> n.add('taxon3', 'Character1', 'A')

字符和值可以是字符串或整数 >;gt;gt;n.添加('Taxon1',2,1) >;gt;gt;n.add('Taxon2',2,2) >>>>不另加('Taxon3',2,3)

nexuswriter将插入缺少的条目(在本例中是taxon2) >;gt;gt;n.add('taxon1','char3','4') >;gt;gt;n.add('taxon3','char3','4')

…准备好后,可以使用make\nexus生成nexus 或将文件写入: n.make_nexus(交织=真,字符块=真) n.写入文件(filename=“output.nex”,interleave=true,charblock=true)

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
javajavax。艾尔。PropertyNotFoundException:   java为什么通过TCP发送的文件比它本身包含的文件包含更多的数据?   java为什么字符开关/案例不起作用?   php到java连接器,在哪里可以找到好的连接器   需要帮助Java简单规则形状面积计算器和if语句吗   macos如何从newstyle Oracle Java OSX捆绑包结构启动帮助页?   java既然所有的类都扩展对象,而对象是一个类,那么对象如何扩展对象呢?   java从JavaPairdd<String,Tuple2<Integer,Integer>>转换为JavaPairdd<String,Integer>   java微调器值未从一个活动传递到另一个活动   参数化类型的java数组   java不提供类。getCanonicalName是否存在性能问题?   java输入键JTextField   为什么我不能在java中调用nextLine()方法两次?   JTextPane中的java JProgressBar   java如何获取Crudepository实例?   用于提取几个<div>标记的java正则表达式   java如何使用JUnit Testrunner生成html图像   Go中Java静态属性的等价性