3

私には奇妙すぎると思われる問題があります。

私はこのnewickツリーを持っています:

(((637,5250,607,14782)6942,641)6441)0;

ETEを使用して読み取ろうとすると:

t=Tree("(((637,5250,607,14782)6942,641)6441)0;", format=8)

すべてが正常に機能しますが、分岐させたいので、新しいツリーは次のようになります。

(((((637,5250),607),14782)6942,641)6441)0;

そして今、私は上記と同じ構文を使用してそれを読み取ろうとします:

t=Tree("(((((637,5250),607),14782)6942,641)6441)0;", format=8)

このエラーが発生しました:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.7/site-packages/ete2-2.1rev539-py2.7.egg/ete2/coretype/tree.py", line 200, in __init__
    read_newick(newick, root_node = self, format=format)
  File "/usr/lib/python2.7/site-packages/ete2-2.1rev539-py2.7.egg/ete2/parser/newick.py", line 218, in read_newick
    return _read_newick_from_string(nw, root_node, format)
  File "/usr/lib/python2.7/site-packages/ete2-2.1rev539-py2.7.egg/ete2/parser/newick.py", line 280, in _read_newick_from_string
    _read_node_data(closing_internal, current_parent, "internal", format)
  File "/usr/lib/python2.7/site-packages/ete2-2.1rev539-py2.7.egg/ete2/parser/newick.py", line 351, in _read_node_data
    raise NewickError, "Unexpected leaf node format:\n\t"+ subnw[0:50]
ete2.parser.newick.NewickError: Unexpected leaf node format:

これは私を本当に夢中にさせています。誰でもこれを手伝ってくれますか?

4

1 に答える 1

3

Tree() 関数に format=8 があります。仕様によると、各ノードには名前が必要です。

フォーマット 8 を使用するには、次のようにノードに名前を付ける必要があります。

t=Tree("(((((637,5250)a,607)b,14782)6942,641)6441)0;", format=9)

また

t=Tree("(((((637,5250)0,607)0,14782)6942,641)6441)0;", format=9)

フォーマット 9 に変更することもできます。

t=Tree("(((((637,5250),607),14782)6942,641)6441)0;", format=9)

これにより、形式が 9 に変更され、葉に名前が付けられるだけで済みます。フォーマットを削除して、最初の引数だけを操作することもできます。

于 2013-08-14T13:28:32.570 に答える