栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

将CSV转换为Newick树

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

将CSV转换为Newick树

您可以使用一些简单的Python从CSV构建树,然后将其写到Newick树中。不确定这是否是您要尝试的操作。

import csvfrom collections import defaultdictfrom pprint import pprintdef tree(): return defaultdict(tree)def tree_add(t, path):  for node in path:    t = t[node]def pprint_tree(tree_instance):    def dicts(t): return {k: dicts(t[k]) for k in t}    pprint(dicts(tree_instance))def csv_to_tree(input):    t = tree()    for row in csv.reader(input, quotechar='''):        tree_add(t, row)    return tdef tree_to_newick(root):    items = []    for k in root.iterkeys():        s = ''        if len(root[k].keys()) > 0: sub_tree = tree_to_newick(root[k]) if sub_tree != '':     s += '(' + sub_tree + ')'        s += k        items.append(s)    return ','.join(items)def csv_to_weightless_newick(input):    t = csv_to_tree(input)    #pprint_tree(t)    return tree_to_newick(t)if __name__ == '__main__':    # see https://docs.python.org/2/library/csv.html to read CSV file    input = [        "'Phylum','Class','Order','Family','Genus','Species','Subspecies','unique_gi'",         "'Phylum','Class','Order','example'",        "'Another','Test'",    ]    print csv_to_weightless_newick(input)

输出示例:

$ python ~/tmp/newick_tree.py(((example,((((unique_gi)Subspecies)Species)Genus)Family)Order)Class)Phylum,(Test)Another
另外,该库看起来很酷,可以让您形象地看待树木:http
//biopython.org/wiki/Phylo


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/661305.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号