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)