bio-phyloxml 0.9.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,227 @@
1
+ #
2
+ # = bio/db/phyloxml_writer.rb - PhyloXML writer
3
+ #
4
+ # Copyright:: Copyright (C) 2009
5
+ # Diana Jaunzeikare <latvianlinuxgirl@gmail.com>
6
+ # License:: The Ruby License
7
+ #
8
+ # $Id:$
9
+ #
10
+ # == Description
11
+ #
12
+ # This file containts writer for PhyloXML.
13
+ #
14
+ # == Requirements
15
+ #
16
+ # Libxml2 XML parser is required. Install libxml-ruby bindings from
17
+ # http://libxml.rubyforge.org or
18
+ #
19
+ # gem install -r libxml-ruby
20
+ #
21
+ # == References
22
+ #
23
+ # * http://www.phyloxml.org
24
+ #
25
+ # * https://www.nescent.org/wg_phyloinformatics/PhyloSoC:PhyloXML_support_in_BioRuby
26
+
27
+ require 'libxml'
28
+
29
+ module Bio
30
+
31
+ module PhyloXML
32
+
33
+ # == Description
34
+ #
35
+ # Bio::PhyloXML::Writer is for writing phyloXML (version 1.10) format files.
36
+ #
37
+ # == Requirements
38
+ #
39
+ # Libxml2 XML parser is required. Install libxml-ruby bindings from
40
+ # http://libxml.rubyforge.org or
41
+ #
42
+ # gem install -r libxml-ruby
43
+ #
44
+ # == Usage
45
+ #
46
+ # require 'bio'
47
+ #
48
+ # # Create new phyloxml parser
49
+ # phyloxml = Bio::PhyloXML::Parser.open('example.xml')
50
+ #
51
+ # # Read in some trees from file
52
+ # tree1 = phyloxml.next_tree
53
+ # tree2 = phyloxml.next_tree
54
+ #
55
+ # # Create new phyloxml writer
56
+ # writer = Bio::PhyloXML::Writer.new('tree.xml')
57
+ #
58
+ # # Write tree to the file tree.xml
59
+ # writer.write(tree1)
60
+ #
61
+ # # Add another tree to the file
62
+ # writer.write(tree2)
63
+ #
64
+ # == References
65
+ #
66
+ # http://www.phyloxml.org/documentation/version_100/phyloxml.xsd.html
67
+
68
+ class Writer
69
+
70
+ include LibXML
71
+
72
+ SCHEMA_LOCATION = 'http://www.phyloxml.org http://www.phyloxml.org/1.10/phyloxml.xsd'
73
+
74
+ attr_accessor :write_branch_length_as_subelement
75
+
76
+ #
77
+ # Create new Writer object. As parameters provide filename of xml file
78
+ # you wish to create. Optional parameter is whether to indent or no.
79
+ # Default is true. By default branch_length is written as subelement of
80
+ # clade element.
81
+ #
82
+ def initialize(filename, indent=true)
83
+ @write_branch_length_as_subelement = true #default value
84
+ @filename = filename
85
+ @indent = indent
86
+
87
+ @doc = XML::Document.new()
88
+ @doc.root = XML::Node.new('phyloxml')
89
+ @root = @doc.root
90
+ @root['xmlns:xsi'] = 'http://www.w3.org/2001/XMLSchema-instance'
91
+ @root['xsi:schemaLocation'] = SCHEMA_LOCATION
92
+ @root['xmlns'] = 'http://www.phyloxml.org'
93
+
94
+ #@todo save encoding to be UTF-8. (However it is the default one).
95
+ #it gives error NameError: uninitialized constant LibXML::XML::Encoding
96
+ #@doc.encoding = XML::Encoding::UTF_8
97
+
98
+ @doc.save(@filename, :indent => true)
99
+ end
100
+
101
+ #
102
+ # Write a tree to a file in phyloxml format.
103
+ #
104
+ # require 'Bio'
105
+ # writer = Bio::PhyloXML::Writer.new
106
+ # writer.write(tree)
107
+ #
108
+ def write(tree)
109
+ @root << phylogeny = XML::Node.new('phylogeny')
110
+
111
+ PhyloXML::Writer.generate_xml(phylogeny, tree, [
112
+ [:attr, 'rooted'],
113
+ [:simple, 'name', tree.name],
114
+ [:complex, 'id', tree.phylogeny_id],
115
+ [:simple, 'description', tree.description],
116
+ [:simple, 'date', tree.date],
117
+ [:objarr, 'confidence', 'confidences']])
118
+
119
+ root_clade = tree.root.to_xml(nil, @write_branch_length_as_subelement)
120
+
121
+ phylogeny << root_clade
122
+
123
+ tree.children(tree.root).each do |node|
124
+ root_clade << node_to_xml(tree, node, tree.root)
125
+ end
126
+
127
+ Bio::PhyloXML::Writer::generate_xml(phylogeny, tree, [
128
+ [:objarr, 'clade_relation', 'clade_relations'],
129
+ [:objarr, 'sequence_relation', 'sequence_relations'],
130
+ [:objarr, 'property', 'properties']] )
131
+
132
+ @doc.save(@filename, :indent => @indent)
133
+ end #writer#write
134
+
135
+
136
+ #
137
+ # PhyloXML Schema allows to save data in different xml format after all
138
+ # phylogeny elements. This method is to write these additional data.
139
+ #
140
+ # parser = PhyloXML::Parser.open('phyloxml_examples.xml')
141
+ # writer = PhyloXML::Writer.new('new.xml')
142
+ #
143
+ # parser.each do |tree|
144
+ # writer.write(tree)
145
+ # end
146
+ #
147
+ # # When all the trees are read in by the parser, whats left is saved at
148
+ # # PhyloXML::Parser#other
149
+ # writer.write(parser.other)
150
+ #
151
+
152
+ def write_other(other_arr)
153
+ other_arr.each do |other_obj|
154
+ @root << other_obj.to_xml
155
+ end
156
+ @doc.save(@filename, :indent => @indent)
157
+ end
158
+
159
+ #class method
160
+
161
+ #
162
+ # Used by to_xml methods of PhyloXML element classes. Generally not to be
163
+ # invoked directly.
164
+ #
165
+ def self.generate_xml(root, elem, subelement_array)
166
+ #example usage: generate_xml(node, self, [[ :complex,'accession', ], [:simple, 'name', @name], [:simple, 'location', @location]])
167
+ subelement_array.each do |subelem|
168
+ if subelem[0] == :simple
169
+ root << XML::Node.new(subelem[1], subelem[2].to_s) if subelem[2] != nil and not subelem[2].to_s.empty?
170
+
171
+ elsif subelem[0] == :complex
172
+ root << subelem[2].send("to_xml") if subelem[2] != nil
173
+
174
+ elsif subelem[0] == :pattern
175
+ #seq, self, [[:pattern, 'symbol', @symbol, "\S{1,10}"]
176
+ if subelem[2] != nil
177
+ if subelem[2] =~ subelem[3]
178
+ root << XML::Node.new(subelem[1], subelem[2])
179
+ else
180
+ raise "#{subelem[2]} is not a valid value of #{subelem[1]}. It should follow pattern #{subelem[3]}"
181
+ end
182
+ end
183
+
184
+ elsif subelem[0] == :objarr
185
+ #[:objarr, 'annotation', 'annotations']])
186
+ obj_arr = elem.send(subelem[2])
187
+ obj_arr.each do |arr_elem|
188
+ root << arr_elem.to_xml
189
+ end
190
+
191
+ elsif subelem[0] == :simplearr
192
+ # [:simplearr, 'common_name', @common_names]
193
+ subelem[2].each do |elem_val|
194
+ root << XML::Node.new(subelem[1], elem_val)
195
+ end
196
+ elsif subelem[0] == :attr
197
+ #[:attr, 'rooted']
198
+ obj = elem.send(subelem[1])
199
+ if obj != nil
200
+ root[subelem[1]] = obj.to_s
201
+ end
202
+ else
203
+ raise "Not supported type of element by method generate_xml."
204
+ end
205
+ end
206
+ return root
207
+ end
208
+
209
+ private
210
+
211
+ def node_to_xml(tree, node, parent)
212
+ edge = tree.get_edge(parent, node)
213
+ branch_length = edge.distance
214
+
215
+ clade = node.to_xml(branch_length, @write_branch_length_as_subelement)
216
+
217
+ tree.children(node).each do |new_node|
218
+ clade << node_to_xml(tree, new_node, node)
219
+ end
220
+
221
+ return clade
222
+ end
223
+
224
+ end
225
+
226
+ end
227
+ end
@@ -0,0 +1,205 @@
1
+ #
2
+ # = sample/test_phyloxml_big.rb - Tests for Bio::PhyloXML. Testing very big files.
3
+ #
4
+ # Copyright:: Copyright (C) 2009
5
+ # Diana Jaunzeikare <latvianlinuxgirl@gmail.com>
6
+ # Naohisa Goto <ng@bioruby.org>
7
+ # License:: The Ruby License
8
+ #
9
+
10
+ # libraries needed for the tests
11
+ require 'libxml'
12
+ require 'pathname'
13
+ require 'test/unit'
14
+ require 'digest/sha1'
15
+
16
+ require 'bio/command'
17
+ require 'bio/db/phyloxml/phyloxml_parser'
18
+ require 'bio/db/phyloxml/phyloxml_writer'
19
+
20
+ PhyloXMLBigDataPath = ARGV.shift
21
+
22
+ if !PhyloXMLBigDataPath then
23
+ exit_code = 0
24
+ elsif !File.directory?(PhyloXMLBigDataPath) then
25
+ exit_code = 1
26
+ else
27
+ exit_code = false
28
+ end
29
+
30
+ if exit_code then
31
+ puts "Usage: #{$0} path_to_data (test options...)"
32
+ puts ""
33
+ puts "Requirements:"
34
+ puts " - Write permission to the path_to_data"
35
+ puts " - Internet connection for downloading test data"
36
+ puts " - unzip command to extract downloaded test data"
37
+ puts ""
38
+ puts "You may want to run Ruby with -rubygems and -I<path_to_bioruby_lib>."
39
+ puts ""
40
+ puts "Example of usage using /tmp:"
41
+ puts " $ mkdir /tmp/phyloxml"
42
+ puts " $ ruby -rubygems -I lib #{$0} /tmp/phyloxml -v"
43
+ puts ""
44
+ exit(exit_code)
45
+ end
46
+
47
+ module TestPhyloXMLBigData
48
+
49
+ module_function
50
+
51
+ def metazoa_xml
52
+ #puts "Metazoa 30MB"
53
+ filename = 'ncbi_taxonomy_metazoa.xml'
54
+ uri = "http://www.phylosoft.org/archaeopteryx/examples/data/ncbi_taxonomy_metazoa.xml.zip"
55
+ download_and_unzip_if_not_found(filename, uri, "1M", "33M")
56
+ end
57
+
58
+ def metazoa_test_xml
59
+ #puts "writing Metazoa 30MB"
60
+ File.join PhyloXMLBigDataPath, 'writer_test_ncbi_taxonomy_metazoa.xml'
61
+ end
62
+
63
+ def metazoa_roundtrip_xml
64
+ #puts "writing Metazoa 30MB roundtrip"
65
+ File.join PhyloXMLBigDataPath, 'roundtrip_test_ncbi_taxonomy_metazoa.xml'
66
+ end
67
+
68
+ def mollusca_xml
69
+ #puts "Mollusca 1.5MB"
70
+ filename = 'ncbi_taxonomy_mollusca.xml'
71
+ uri = "http://www.phylosoft.org/archaeopteryx/examples/data/ncbi_taxonomy_mollusca.xml.zip"
72
+ download_and_unzip_if_not_found(filename, uri, "67K", "1.5M")
73
+ end
74
+
75
+ def mollusca_test_xml
76
+ #puts "Writing Mollusca 1.5MB"
77
+ File.join PhyloXMLBigDataPath, 'writer_test_ncbi_taxonomy_mollusca.xml'
78
+ end
79
+
80
+ def mollusca_roundtrip_xml
81
+ #puts "Writing Mollusca 1.5MB roundtrip"
82
+ File.join PhyloXMLBigDataPath, 'roundtrip_test_ncbi_taxonomy_mollusca.xml'
83
+ end
84
+
85
+ def life_xml
86
+ #Right now this file is not compatible with xsd 1.10
87
+ filename = 'tol_life_on_earth_1.xml'
88
+ uri = "http://www.phylosoft.org/archaeopteryx/examples/data/tol_life_on_earth_1.xml.zip"
89
+
90
+ download_and_unzip_if_not_found(filename, uri, '10M', '45M')
91
+ end
92
+
93
+ def life_test_xml
94
+ File.join PhyloXMLBigDataPath, 'writer_test_tol_life_on_earth_1.xml'
95
+ end
96
+
97
+ def life_roundtrip_xml
98
+ File.join PhyloXMLBigDataPath, 'roundtrip_test_tol_life_on_earth_1.xml'
99
+ end
100
+
101
+ def unzip_file(file, target_dir)
102
+ flag = system('unzip', "#{file}.zip", "-d", target_dir)
103
+ unless flag then
104
+ raise "Failed to unzip #{file}.zip"
105
+ end
106
+ file
107
+ end
108
+
109
+ def download_and_unzip_if_not_found(basename, uri, zipsize, origsize)
110
+ file = File.join PhyloXMLBigDataPath, basename
111
+ return file if File.exists?(file)
112
+
113
+ if File.exists?("#{file}.zip")
114
+ unzip_file(file, PhyloXMLBigDataPath)
115
+ return file
116
+ end
117
+
118
+ puts "File #{basename} does not exist. Do you want to download it? (If yes, ~#{zipsize}B zip file will be downloaded and extracted (to #{origsize}B), if no, the test will be skipped.) y/n?"
119
+ res = gets
120
+ if res.to_s.chomp.downcase == "y"
121
+ File.open("#{file}.zip", "wb") do |f|
122
+ f.write(Bio::Command.read_uri(uri))
123
+ end
124
+ puts "File downloaded."
125
+ self.unzip_file(file, PhyloXMLBigDataPath)
126
+ return file
127
+ else
128
+ return nil
129
+ #return File.join PHYLOXML_TEST_DATA, "#{basename}.stub"
130
+ end
131
+ end
132
+
133
+ end #end module TestPhyloXMLBigData
134
+
135
+ module Bio
136
+
137
+ class TestPhyloXMLBig < Test::Unit::TestCase
138
+
139
+ def do_test_next_tree(readfilename)
140
+ raise "the test is skipped" unless readfilename
141
+ filesizeMB = File.size(readfilename) / 1048576.0
142
+ printf "Reading %s (%2.1f MB)\n", readfilename, filesizeMB
143
+
144
+ begin
145
+ phyloxml = Bio::PhyloXML::Parser.open(readfilename)
146
+ rescue NoMethodError
147
+ phyloxml = Bio::PhyloXML::Parser.new(readfilename)
148
+ end
149
+ tree = nil
150
+ assert_nothing_raised {
151
+ tree = phyloxml.next_tree
152
+ }
153
+ tree
154
+ end
155
+ private :do_test_next_tree
156
+
157
+ def do_test_write(tree, writefilename)
158
+ printf "Writing to %s\n", writefilename
159
+ writer = Bio::PhyloXML::Writer.new(writefilename)
160
+ assert_nothing_raised {
161
+ writer.write(tree)
162
+ }
163
+
164
+ # checks file size and sha1sum
165
+ str = File.open(writefilename, 'rb') { |f| f.read }
166
+ sha1 = Digest::SHA1.hexdigest(str)
167
+ puts "Wrote #{str.length} bytes."
168
+ puts "sha1: #{sha1}"
169
+ end
170
+ private :do_test_write
171
+
172
+ def test_mollusca
173
+ tree = do_test_next_tree(TestPhyloXMLBigData.mollusca_xml)
174
+ do_test_write(tree, TestPhyloXMLBigData.mollusca_test_xml)
175
+
176
+ tree2 = do_test_next_tree(TestPhyloXMLBigData.mollusca_test_xml)
177
+ do_test_write(tree2, TestPhyloXMLBigData.mollusca_roundtrip_xml)
178
+ end
179
+
180
+ def test_metazoa
181
+ tree = do_test_next_tree(TestPhyloXMLBigData.metazoa_xml)
182
+ do_test_write(tree, TestPhyloXMLBigData.metazoa_test_xml)
183
+
184
+ tree2 = do_test_next_tree(TestPhyloXMLBigData.metazoa_test_xml)
185
+ do_test_write(tree2, TestPhyloXMLBigData.metazoa_roundtrip_xml)
186
+ end
187
+
188
+ if false
189
+ # Disabled because of the error.
190
+ # LibXML::XML::Error: Fatal error: Input is not proper UTF-8,
191
+ # indicate encoding !
192
+ # Bytes: 0xE9 0x6B 0x65 0x73 at tol_life_on_earth_1.xml:132170.
193
+ #
194
+ def test_life
195
+ tree = do_test_next_tree(TestPhyloXMLBigData.life_xml)
196
+ do_test_write(tree, TestPhyloXMLBigData.life_test_xml)
197
+
198
+ tree2 = do_test_next_tree(TestPhyloXMLBigData.life_test_xml)
199
+ do_test_write(tree2, TestPhyloXMLBigData.life_roundtrip_xml)
200
+ end
201
+ end #if false
202
+
203
+ end
204
+
205
+ end
@@ -0,0 +1,666 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <phyloxml xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.phyloxml.org http://www.phyloxml.org/1.00/phyloxml.xsd" xmlns="http://www.phyloxml.org">
3
+ <phylogeny rooted="true">
4
+ <clade>
5
+ <clade>
6
+ <branch_length>0.18105</branch_length>
7
+ <confidence type="unknown">89.0</confidence>
8
+ <clade>
9
+ <branch_length>0.07466</branch_length>
10
+ <confidence type="unknown">32.0</confidence>
11
+ <clade>
12
+ <branch_length>0.26168</branch_length>
13
+ <confidence type="unknown">100.0</confidence>
14
+ <clade>
15
+ <branch_length>0.22058</branch_length>
16
+ <confidence type="unknown">89.0</confidence>
17
+ <clade>
18
+ <branch_length>0.28901</branch_length>
19
+ <confidence type="unknown">100.0</confidence>
20
+ <clade>
21
+ <branch_length>0.06584</branch_length>
22
+ <confidence type="unknown">100.0</confidence>
23
+ <clade>
24
+ <branch_length>0.02309</branch_length>
25
+ <confidence type="unknown">43.0</confidence>
26
+ <clade>
27
+ <branch_length>0.0746</branch_length>
28
+ <confidence type="unknown">100.0</confidence>
29
+ <clade>
30
+ <branch_length>0.02365</branch_length>
31
+ <confidence type="unknown">88.0</confidence>
32
+ <clade>
33
+ <name>22_MOUSE</name>
34
+ <branch_length>0.05998</branch_length>
35
+ <taxonomy>
36
+ <code>MOUSE</code>
37
+ </taxonomy>
38
+ <sequence>
39
+ <domain_architecture length="1249">
40
+ <domain from="6" to="90" confidence="7.0E-26">CARD</domain>
41
+ <domain from="109" to="414" confidence="7.2E-117">NB-ARC</domain>
42
+ <domain from="605" to="643" confidence="2.4E-6">WD40</domain>
43
+ <domain from="647" to="685" confidence="1.1E-12">WD40</domain>
44
+ <domain from="689" to="729" confidence="2.4E-7">WD40</domain>
45
+ <domain from="733" to="771" confidence="4.7E-14">WD40</domain>
46
+ <domain from="872" to="910" confidence="2.5E-8">WD40</domain>
47
+ <domain from="993" to="1031" confidence="4.6E-6">WD40</domain>
48
+ <domain from="1075" to="1113" confidence="6.3E-7">WD40</domain>
49
+ <domain from="1117" to="1155" confidence="1.4E-7">WD40</domain>
50
+ <domain from="1168" to="1204" confidence="0.3">WD40</domain>
51
+ </domain_architecture>
52
+ </sequence>
53
+ </clade>
54
+ <clade>
55
+ <name>Apaf-1_HUMAN</name>
56
+ <branch_length>0.01825</branch_length>
57
+ <taxonomy>
58
+ <code>HUMAN</code>
59
+ </taxonomy>
60
+ <sequence>
61
+ <domain_architecture length="1248">
62
+ <domain from="6" to="90" confidence="1.1E-25">CARD</domain>
63
+ <domain from="109" to="414" confidence="3.0E-134">NB-ARC</domain>
64
+ <domain from="605" to="643" confidence="8.5E-6">WD40</domain>
65
+ <domain from="647" to="685" confidence="2.5E-11">WD40</domain>
66
+ <domain from="689" to="729" confidence="2.4E-8">WD40</domain>
67
+ <domain from="733" to="771" confidence="3.6E-14">WD40</domain>
68
+ <domain from="872" to="910" confidence="3.8E-8">WD40</domain>
69
+ <domain from="1075" to="1113" confidence="4.0E-7">WD40</domain>
70
+ <domain from="1117" to="1155" confidence="5.9E-8">WD40</domain>
71
+ </domain_architecture>
72
+ </sequence>
73
+ </clade>
74
+ </clade>
75
+ <clade>
76
+ <name>12_CANFA</name>
77
+ <branch_length>0.04683</branch_length>
78
+ <taxonomy>
79
+ <code>CANFA</code>
80
+ </taxonomy>
81
+ <sequence>
82
+ <domain_architecture length="1153">
83
+ <domain from="6" to="90" confidence="4.5E-22">CARD</domain>
84
+ <domain from="110" to="415" confidence="4.0E-119">NB-ARC</domain>
85
+ <domain from="597" to="635" confidence="3.9E-5">WD40</domain>
86
+ <domain from="639" to="677" confidence="2.5E-11">WD40</domain>
87
+ <domain from="681" to="721" confidence="1.8E-7">WD40</domain>
88
+ <domain from="725" to="763" confidence="9.4E-13">WD40</domain>
89
+ <domain from="889" to="927" confidence="1.1E-6">WD40</domain>
90
+ <domain from="971" to="1009" confidence="1.7E-7">WD40</domain>
91
+ <domain from="1013" to="1051" confidence="1.9E-7">WD40</domain>
92
+ </domain_architecture>
93
+ </sequence>
94
+ </clade>
95
+ </clade>
96
+ <clade>
97
+ <name>11_CHICK</name>
98
+ <branch_length>0.15226</branch_length>
99
+ <taxonomy>
100
+ <code>CHICK</code>
101
+ </taxonomy>
102
+ <sequence>
103
+ <domain_architecture length="1207">
104
+ <domain from="6" to="90" confidence="3.6E-21">CARD</domain>
105
+ <domain from="109" to="414" confidence="3.6E-109">NB-ARC</domain>
106
+ <domain from="603" to="641" confidence="1.6E-4">WD40</domain>
107
+ <domain from="645" to="683" confidence="8.2E-11">WD40</domain>
108
+ <domain from="687" to="727" confidence="6.2E-10">WD40</domain>
109
+ <domain from="731" to="769" confidence="1.8E-11">WD40</domain>
110
+ <domain from="828" to="866" confidence="1.8">WD40</domain>
111
+ <domain from="993" to="1030" confidence="2.9E-4">WD40</domain>
112
+ <domain from="1034" to="1072" confidence="1.7E-8">WD40</domain>
113
+ <domain from="1076" to="1114" confidence="7.5E-9">WD40</domain>
114
+ <domain from="1127" to="1163" confidence="0.044">WD40</domain>
115
+ </domain_architecture>
116
+ </sequence>
117
+ </clade>
118
+ </clade>
119
+ <clade>
120
+ <name>16_XENLA</name>
121
+ <branch_length>0.4409</branch_length>
122
+ <taxonomy>
123
+ <code>XENLA</code>
124
+ </taxonomy>
125
+ <sequence>
126
+ <domain_architecture length="1362">
127
+ <domain from="6" to="90" confidence="4.0E-20">CARD</domain>
128
+ <domain from="109" to="410" confidence="3.1E-56">NB-ARC</domain>
129
+ <domain from="148" to="298" confidence="0.8">NACHT</domain>
130
+ <domain from="729" to="767" confidence="7.0E-6">WD40</domain>
131
+ <domain from="771" to="809" confidence="2.3E-11">WD40</domain>
132
+ <domain from="813" to="853" confidence="1.1E-8">WD40</domain>
133
+ <domain from="857" to="895" confidence="1.1E-10">WD40</domain>
134
+ <domain from="992" to="1030" confidence="8.4E-9">WD40</domain>
135
+ <domain from="1116" to="1154" confidence="7.3E-11">WD40</domain>
136
+ <domain from="1158" to="1196" confidence="1.6E-8">WD40</domain>
137
+ <domain from="1200" to="1238" confidence="1.2E-7">WD40</domain>
138
+ </domain_architecture>
139
+ </sequence>
140
+ </clade>
141
+ </clade>
142
+ <clade>
143
+ <branch_length>0.17031</branch_length>
144
+ <confidence type="unknown">100.0</confidence>
145
+ <clade>
146
+ <branch_length>0.10929</branch_length>
147
+ <confidence type="unknown">100.0</confidence>
148
+ <clade>
149
+ <name>14_FUGRU</name>
150
+ <branch_length>0.02255</branch_length>
151
+ <taxonomy>
152
+ <code>FUGRU</code>
153
+ </taxonomy>
154
+ <sequence>
155
+ <domain_architecture length="1258">
156
+ <domain from="8" to="92" confidence="4.6E-24">CARD</domain>
157
+ <domain from="111" to="418" confidence="7.0E-74">NB-ARC</domain>
158
+ <domain from="609" to="647" confidence="2.8E-4">WD40</domain>
159
+ <domain from="651" to="689" confidence="2.3E-12">WD40</domain>
160
+ <domain from="740" to="778" confidence="1.8E-6">WD40</domain>
161
+ <domain from="874" to="912" confidence="1.6E-9">WD40</domain>
162
+ <domain from="998" to="1036" confidence="9.8E-13">WD40</domain>
163
+ <domain from="1040" to="1080" confidence="1.6E-4">WD40</domain>
164
+ <domain from="1084" to="1122" confidence="1.5E-9">WD40</domain>
165
+ <domain from="1126" to="1164" confidence="6.2E-9">WD40</domain>
166
+ </domain_architecture>
167
+ </sequence>
168
+ </clade>
169
+ <clade>
170
+ <name>15_TETNG</name>
171
+ <branch_length>0.09478</branch_length>
172
+ <taxonomy>
173
+ <code>TETNG</code>
174
+ </taxonomy>
175
+ <sequence>
176
+ <domain_architecture length="621">
177
+ <domain from="8" to="92" confidence="2.5E-24">CARD</domain>
178
+ <domain from="104" to="308" confidence="9.8E-11">NB-ARC</domain>
179
+ <domain from="366" to="404" confidence="1.2E-12">WD40</domain>
180
+ <domain from="455" to="493" confidence="1.0E-10">WD40</domain>
181
+ <domain from="537" to="575" confidence="4.1E-10">WD40</domain>
182
+ </domain_architecture>
183
+ </sequence>
184
+ </clade>
185
+ </clade>
186
+ <clade>
187
+ <name>17_BRARE</name>
188
+ <branch_length>0.1811</branch_length>
189
+ <taxonomy>
190
+ <code>BRARE</code>
191
+ </taxonomy>
192
+ <sequence>
193
+ <domain_architecture length="1260">
194
+ <domain from="6" to="90" confidence="3.9E-23">CARD</domain>
195
+ <domain from="137" to="444" confidence="1.7E-72">NB-ARC</domain>
196
+ <domain from="635" to="673" confidence="1.6">WD40</domain>
197
+ <domain from="694" to="732" confidence="5.3E-12">WD40</domain>
198
+ <domain from="783" to="821" confidence="2.0E-8">WD40</domain>
199
+ <domain from="1040" to="1078" confidence="2.4E-8">WD40</domain>
200
+ <domain from="1081" to="1121" confidence="6.6E-4">WD40</domain>
201
+ <domain from="1125" to="1163" confidence="5.1E-8">WD40</domain>
202
+ <domain from="1167" to="1205" confidence="1.3E-7">WD40</domain>
203
+ </domain_architecture>
204
+ </sequence>
205
+ </clade>
206
+ </clade>
207
+ </clade>
208
+ <clade>
209
+ <branch_length>0.01594</branch_length>
210
+ <confidence type="unknown">53.0</confidence>
211
+ <clade>
212
+ <branch_length>0.10709</branch_length>
213
+ <confidence type="unknown">68.0</confidence>
214
+ <clade>
215
+ <name>1_BRAFL</name>
216
+ <branch_length>0.26131</branch_length>
217
+ <taxonomy>
218
+ <code>BRAFL</code>
219
+ </taxonomy>
220
+ <sequence>
221
+ <domain_architecture length="1238">
222
+ <domain from="6" to="89" confidence="5.7E-19">CARD</domain>
223
+ <domain from="111" to="413" confidence="4.2E-48">NB-ARC</domain>
224
+ <domain from="600" to="638" confidence="3.2E-8">WD40</domain>
225
+ <domain from="642" to="680" confidence="1.5E-10">WD40</domain>
226
+ <domain from="730" to="768" confidence="9.6E-11">WD40</domain>
227
+ <domain from="857" to="895" confidence="3.7E-10">WD40</domain>
228
+ <domain from="984" to="1022" confidence="6.7E-10">WD40</domain>
229
+ <domain from="1025" to="1064" confidence="3.1E-6">WD40</domain>
230
+ <domain from="1069" to="1107" confidence="1.5E-4">WD40</domain>
231
+ <domain from="1111" to="1149" confidence="7.9E-7">WD40</domain>
232
+ </domain_architecture>
233
+ </sequence>
234
+ </clade>
235
+ <clade>
236
+ <name>18_NEMVE</name>
237
+ <branch_length>0.38014</branch_length>
238
+ <taxonomy>
239
+ <code>NEMVE</code>
240
+ </taxonomy>
241
+ <sequence>
242
+ <domain_architecture length="1290">
243
+ <domain from="7" to="90" confidence="1.5E-13">CARD</domain>
244
+ <domain from="117" to="200" confidence="5.4E-14">CARD</domain>
245
+ <domain from="216" to="517" confidence="1.5E-50">NB-ARC</domain>
246
+ <domain from="711" to="749" confidence="1.0E-7">WD40</domain>
247
+ <domain from="753" to="791" confidence="8.5E-12">WD40</domain>
248
+ <domain from="795" to="833" confidence="4.3E-11">WD40</domain>
249
+ <domain from="837" to="875" confidence="1.0E-12">WD40</domain>
250
+ <domain from="920" to="957" confidence="2.0E-4">WD40</domain>
251
+ <domain from="961" to="999" confidence="3.0E-6">WD40</domain>
252
+ <domain from="1085" to="1123" confidence="4.4E-6">WD40</domain>
253
+ <domain from="1128" to="1166" confidence="3.0E-4">WD40</domain>
254
+ <domain from="1170" to="1207" confidence="1.7E-10">WD40</domain>
255
+ </domain_architecture>
256
+ </sequence>
257
+ </clade>
258
+ </clade>
259
+ <clade>
260
+ <name>23_STRPU</name>
261
+ <branch_length>0.48179</branch_length>
262
+ <taxonomy>
263
+ <code>STRPU</code>
264
+ </taxonomy>
265
+ <sequence>
266
+ <domain_architecture length="1236">
267
+ <domain from="110" to="402" confidence="1.0E-40">NB-ARC</domain>
268
+ <domain from="594" to="632" confidence="8.9E-4">WD40</domain>
269
+ <domain from="636" to="673" confidence="2.5E-6">WD40</domain>
270
+ <domain from="721" to="759" confidence="0.0043">WD40</domain>
271
+ <domain from="765" to="802" confidence="0.0036">WD40</domain>
272
+ <domain from="848" to="886" confidence="9.0E-10">WD40</domain>
273
+ <domain from="975" to="1013" confidence="1.9E-5">WD40</domain>
274
+ <domain from="1015" to="1053" confidence="2.4E-6">WD40</domain>
275
+ <domain from="1057" to="1095" confidence="2.7E-9">WD40</domain>
276
+ <domain from="1099" to="1137" confidence="4.9E-8">WD40</domain>
277
+ <domain from="1141" to="1177" confidence="0.011">WD40</domain>
278
+ </domain_architecture>
279
+ </sequence>
280
+ </clade>
281
+ </clade>
282
+ </clade>
283
+ <clade>
284
+ <branch_length>0.34475</branch_length>
285
+ <confidence type="unknown">100.0</confidence>
286
+ <clade>
287
+ <name>26_STRPU</name>
288
+ <branch_length>0.36374</branch_length>
289
+ <taxonomy>
290
+ <code>STRPU</code>
291
+ </taxonomy>
292
+ <sequence>
293
+ <domain_architecture length="1319">
294
+ <domain from="18" to="98" confidence="3.4E-5">Death</domain>
295
+ <domain from="189" to="481" confidence="1.8E-10">NB-ARC</domain>
296
+ <domain from="630" to="668" confidence="8.2E-5">WD40</domain>
297
+ </domain_architecture>
298
+ </sequence>
299
+ </clade>
300
+ <clade>
301
+ <name>25_STRPU</name>
302
+ <branch_length>0.33137</branch_length>
303
+ <taxonomy>
304
+ <code>STRPU</code>
305
+ </taxonomy>
306
+ <sequence>
307
+ <domain_architecture length="1947">
308
+ <domain from="143" to="227" confidence="7.4E-5">Death</domain>
309
+ <domain from="227" to="550" confidence="2.0E-13">NB-ARC</domain>
310
+ <domain from="697" to="736" confidence="7.9E-4">WD40</domain>
311
+ <domain from="745" to="785" confidence="1.5">WD40</domain>
312
+ <domain from="1741" to="1836" confidence="2.0">Adeno_VII</domain>
313
+ </domain_architecture>
314
+ </sequence>
315
+ </clade>
316
+ </clade>
317
+ </clade>
318
+ <clade>
319
+ <branch_length>1.31498</branch_length>
320
+ <confidence type="unknown">100.0</confidence>
321
+ <clade>
322
+ <name>CED4_CAEEL</name>
323
+ <branch_length>0.13241</branch_length>
324
+ <taxonomy>
325
+ <code>CAEEL</code>
326
+ </taxonomy>
327
+ <sequence>
328
+ <domain_architecture length="714">
329
+ <domain from="7" to="90" confidence="9.2E-14">CARD</domain>
330
+ <domain from="116" to="442" confidence="5.8E-151">NB-ARC</domain>
331
+ </domain_architecture>
332
+ </sequence>
333
+ </clade>
334
+ <clade>
335
+ <name>31_CAEBR</name>
336
+ <branch_length>0.04777</branch_length>
337
+ <taxonomy>
338
+ <code>CAEBR</code>
339
+ </taxonomy>
340
+ <sequence>
341
+ <domain_architecture length="554">
342
+ <domain from="1" to="75" confidence="0.0046">CARD</domain>
343
+ <domain from="101" to="427" confidence="2.1E-123">NB-ARC</domain>
344
+ </domain_architecture>
345
+ </sequence>
346
+ </clade>
347
+ </clade>
348
+ </clade>
349
+ <clade>
350
+ <branch_length>0.13172</branch_length>
351
+ <confidence type="unknown">45.0</confidence>
352
+ <clade>
353
+ <branch_length>0.24915</branch_length>
354
+ <confidence type="unknown">95.0</confidence>
355
+ <clade>
356
+ <branch_length>0.76898</branch_length>
357
+ <confidence type="unknown">100.0</confidence>
358
+ <clade>
359
+ <name>28_DROPS</name>
360
+ <branch_length>0.1732</branch_length>
361
+ <taxonomy>
362
+ <code>DROPS</code>
363
+ </taxonomy>
364
+ <sequence>
365
+ <domain_architecture length="535">
366
+ <domain from="112" to="399" confidence="1.4E-5">NB-ARC</domain>
367
+ </domain_architecture>
368
+ </sequence>
369
+ </clade>
370
+ <clade>
371
+ <name>Dark_DROME</name>
372
+ <branch_length>0.18863</branch_length>
373
+ <taxonomy>
374
+ <code>DROME</code>
375
+ </taxonomy>
376
+ <sequence>
377
+ <domain_architecture length="1421">
378
+ <domain from="108" to="397" confidence="2.1E-5">NB-ARC</domain>
379
+ </domain_architecture>
380
+ </sequence>
381
+ </clade>
382
+ </clade>
383
+ <clade>
384
+ <name>29_AEDAE</name>
385
+ <branch_length>0.86398</branch_length>
386
+ <taxonomy>
387
+ <code>AEDAE</code>
388
+ </taxonomy>
389
+ <sequence>
390
+ <domain_architecture length="423">
391
+ <domain from="109" to="421" confidence="9.3E-6">NB-ARC</domain>
392
+ </domain_architecture>
393
+ </sequence>
394
+ </clade>
395
+ </clade>
396
+ <clade>
397
+ <name>30_TRICA</name>
398
+ <branch_length>0.97698</branch_length>
399
+ <taxonomy>
400
+ <code>TRICA</code>
401
+ </taxonomy>
402
+ <sequence>
403
+ <domain_architecture length="1279">
404
+ <domain from="5" to="81" confidence="0.59">CARD</domain>
405
+ <domain from="92" to="400" confidence="9.0E-11">NB-ARC</domain>
406
+ <domain from="630" to="668" confidence="1.1E-5">WD40</domain>
407
+ </domain_architecture>
408
+ </sequence>
409
+ </clade>
410
+ </clade>
411
+ </clade>
412
+ <clade>
413
+ <branch_length>0.18105</branch_length>
414
+ <confidence type="unknown">89.0</confidence>
415
+ <clade>
416
+ <branch_length>0.15891</branch_length>
417
+ <confidence type="unknown">64.0</confidence>
418
+ <clade>
419
+ <branch_length>0.54836</branch_length>
420
+ <confidence type="unknown">100.0</confidence>
421
+ <clade>
422
+ <branch_length>0.09305</branch_length>
423
+ <confidence type="unknown">46.0</confidence>
424
+ <clade>
425
+ <branch_length>0.21648</branch_length>
426
+ <confidence type="unknown">61.0</confidence>
427
+ <clade>
428
+ <branch_length>0.93134</branch_length>
429
+ <confidence type="unknown">100.0</confidence>
430
+ <clade>
431
+ <name>34_BRAFL</name>
432
+ <branch_length>0.093</branch_length>
433
+ <taxonomy>
434
+ <code>BRAFL</code>
435
+ </taxonomy>
436
+ <sequence>
437
+ <domain_architecture length="752">
438
+ <domain from="49" to="356" confidence="9.0E-6">NB-ARC</domain>
439
+ </domain_architecture>
440
+ </sequence>
441
+ </clade>
442
+ <clade>
443
+ <name>35_BRAFL</name>
444
+ <branch_length>0.08226</branch_length>
445
+ <taxonomy>
446
+ <code>BRAFL</code>
447
+ </taxonomy>
448
+ <sequence>
449
+ <domain_architecture length="753">
450
+ <domain from="25" to="105" confidence="0.16">DED</domain>
451
+ <domain from="113" to="409" confidence="1.1E-6">NB-ARC</domain>
452
+ </domain_architecture>
453
+ </sequence>
454
+ </clade>
455
+ </clade>
456
+ <clade>
457
+ <name>8_BRAFL</name>
458
+ <branch_length>0.58563</branch_length>
459
+ <taxonomy>
460
+ <code>BRAFL</code>
461
+ </taxonomy>
462
+ <sequence>
463
+ <domain_architecture length="916">
464
+ <domain from="58" to="369" confidence="8.4E-7">NB-ARC</domain>
465
+ </domain_architecture>
466
+ </sequence>
467
+ </clade>
468
+ </clade>
469
+ <clade>
470
+ <branch_length>0.28437</branch_length>
471
+ <confidence type="unknown">84.0</confidence>
472
+ <clade>
473
+ <name>20_NEMVE</name>
474
+ <branch_length>0.71946</branch_length>
475
+ <taxonomy>
476
+ <code>NEMVE</code>
477
+ </taxonomy>
478
+ <sequence>
479
+ <domain_architecture length="786">
480
+ <domain from="8" to="91" confidence="1.7E-17">DED</domain>
481
+ <domain from="8" to="85" confidence="0.37">PAAD_DAPIN</domain>
482
+ <domain from="90" to="388" confidence="6.8E-5">NB-ARC</domain>
483
+ <domain from="575" to="608" confidence="0.27">TPR_1</domain>
484
+ <domain from="657" to="690" confidence="0.22">TPR_2</domain>
485
+ <domain from="698" to="731" confidence="4.2E-5">TPR_2</domain>
486
+ </domain_architecture>
487
+ </sequence>
488
+ </clade>
489
+ <clade>
490
+ <name>21_NEMVE</name>
491
+ <branch_length>0.9571</branch_length>
492
+ <taxonomy>
493
+ <code>NEMVE</code>
494
+ </taxonomy>
495
+ <sequence>
496
+ <domain_architecture length="1563">
497
+ <domain from="234" to="317" confidence="2.3E-14">CARD</domain>
498
+ <domain from="238" to="318" confidence="0.5">Death</domain>
499
+ <domain from="329" to="619" confidence="0.022">NB-ARC</domain>
500
+ <domain from="906" to="939" confidence="0.17">TPR_1</domain>
501
+ <domain from="1326" to="1555" confidence="3.2E-26">RVT_1</domain>
502
+ </domain_architecture>
503
+ </sequence>
504
+ </clade>
505
+ </clade>
506
+ </clade>
507
+ <clade>
508
+ <name>9_BRAFL</name>
509
+ <branch_length>1.09612</branch_length>
510
+ <taxonomy>
511
+ <code>BRAFL</code>
512
+ </taxonomy>
513
+ <sequence>
514
+ <domain_architecture length="1011">
515
+ <domain from="5" to="321" confidence="5.0E-5">NB-ARC</domain>
516
+ <domain from="497" to="616" confidence="1.6">BTAD</domain>
517
+ <domain from="500" to="533" confidence="5.6E-4">TPR_1</domain>
518
+ <domain from="542" to="575" confidence="0.43">TPR_1</domain>
519
+ <domain from="626" to="659" confidence="0.0084">TPR_2</domain>
520
+ <domain from="708" to="741" confidence="1.9E-4">TPR_2</domain>
521
+ <domain from="708" to="739" confidence="1.3">TPR_3</domain>
522
+ <domain from="708" to="733" confidence="0.16">TPR_4</domain>
523
+ <domain from="833" to="916" confidence="5.6E-14">Death</domain>
524
+ <domain from="846" to="868" confidence="0.36">LTXXQ</domain>
525
+ <domain from="930" to="1011" confidence="8.3E-17">Death</domain>
526
+ </domain_architecture>
527
+ </sequence>
528
+ </clade>
529
+ </clade>
530
+ <clade>
531
+ <branch_length>0.34914</branch_length>
532
+ <confidence type="unknown">98.0</confidence>
533
+ <clade>
534
+ <branch_length>0.22189</branch_length>
535
+ <confidence type="unknown">95.0</confidence>
536
+ <clade>
537
+ <name>3_BRAFL</name>
538
+ <branch_length>0.48766</branch_length>
539
+ <taxonomy>
540
+ <code>BRAFL</code>
541
+ </taxonomy>
542
+ <sequence>
543
+ <domain_architecture length="2080">
544
+ <domain from="116" to="423" confidence="1.4E-12">NB-ARC</domain>
545
+ <domain from="620" to="659" confidence="1.4E-6">WD40</domain>
546
+ <domain from="663" to="701" confidence="1.4E-8">WD40</domain>
547
+ <domain from="705" to="743" confidence="3.0E-11">WD40</domain>
548
+ <domain from="747" to="785" confidence="1.1E-8">WD40</domain>
549
+ <domain from="788" to="826" confidence="1.6E-5">WD40</domain>
550
+ <domain from="830" to="870" confidence="1.3E-4">WD40</domain>
551
+ <domain from="874" to="914" confidence="6.2E-9">WD40</domain>
552
+ <domain from="919" to="957" confidence="0.0011">WD40</domain>
553
+ <domain from="961" to="1000" confidence="1.8E-8">WD40</domain>
554
+ <domain from="1013" to="1051" confidence="1.3E-6">WD40</domain>
555
+ <domain from="1055" to="1092" confidence="0.096">WD40</domain>
556
+ <domain from="1794" to="1853" confidence="3.6E-4">Collagen</domain>
557
+ </domain_architecture>
558
+ </sequence>
559
+ </clade>
560
+ <clade>
561
+ <name>2_BRAFL</name>
562
+ <branch_length>0.65293</branch_length>
563
+ <taxonomy>
564
+ <code>BRAFL</code>
565
+ </taxonomy>
566
+ <sequence>
567
+ <domain_architecture length="1691">
568
+ <domain from="162" to="457" confidence="4.4E-10">NB-ARC</domain>
569
+ <domain from="640" to="680" confidence="0.0068">WD40</domain>
570
+ <domain from="684" to="722" confidence="1.6E-8">WD40</domain>
571
+ <domain from="726" to="764" confidence="6.0E-9">WD40</domain>
572
+ <domain from="827" to="865" confidence="6.9E-10">WD40</domain>
573
+ <domain from="868" to="906" confidence="1.2E-6">WD40</domain>
574
+ <domain from="910" to="950" confidence="0.0080">WD40</domain>
575
+ <domain from="954" to="994" confidence="0.0016">WD40</domain>
576
+ <domain from="999" to="1037" confidence="4.9E-6">WD40</domain>
577
+ <domain from="1042" to="1080" confidence="6.3E-8">WD40</domain>
578
+ <domain from="1100" to="1138" confidence="1.9E-8">WD40</domain>
579
+ <domain from="1142" to="1178" confidence="1.4">WD40</domain>
580
+ <domain from="1577" to="1615" confidence="4.3E-4">WD40</domain>
581
+ </domain_architecture>
582
+ </sequence>
583
+ </clade>
584
+ </clade>
585
+ <clade>
586
+ <name>19_NEMVE</name>
587
+ <branch_length>0.57144</branch_length>
588
+ <taxonomy>
589
+ <code>NEMVE</code>
590
+ </taxonomy>
591
+ <sequence>
592
+ <domain_architecture length="1649">
593
+ <domain from="99" to="174" confidence="4.6E-7">DED</domain>
594
+ <domain from="181" to="503" confidence="8.0E-13">NB-ARC</domain>
595
+ <domain from="696" to="734" confidence="1.4E-8">WD40</domain>
596
+ <domain from="738" to="776" confidence="2.9E-9">WD40</domain>
597
+ <domain from="780" to="818" confidence="3.8E-10">WD40</domain>
598
+ <domain from="822" to="860" confidence="6.4E-9">WD40</domain>
599
+ <domain from="864" to="902" confidence="2.1E-10">WD40</domain>
600
+ <domain from="906" to="944" confidence="1.3E-8">WD40</domain>
601
+ <domain from="948" to="986" confidence="1.2E-8">WD40</domain>
602
+ <domain from="990" to="1028" confidence="9.4E-8">WD40</domain>
603
+ <domain from="1032" to="1070" confidence="6.0E-8">WD40</domain>
604
+ <domain from="1074" to="1112" confidence="2.6E-4">WD40</domain>
605
+ <domain from="1364" to="1597" confidence="1.9">SGL</domain>
606
+ <domain from="1442" to="1480" confidence="9.7E-7">WD40</domain>
607
+ <domain from="1527" to="1565" confidence="1.2">WD40</domain>
608
+ <domain from="1568" to="1606" confidence="1.1E-6">WD40</domain>
609
+ </domain_architecture>
610
+ </sequence>
611
+ </clade>
612
+ </clade>
613
+ </clade>
614
+ <clade>
615
+ <branch_length>0.43438</branch_length>
616
+ <confidence type="unknown">92.0</confidence>
617
+ <clade>
618
+ <branch_length>0.92214</branch_length>
619
+ <confidence type="unknown">100.0</confidence>
620
+ <clade>
621
+ <name>37_BRAFL</name>
622
+ <branch_length>0.21133</branch_length>
623
+ <taxonomy>
624
+ <code>BRAFL</code>
625
+ </taxonomy>
626
+ <sequence>
627
+ <domain_architecture length="1793">
628
+ <domain from="6" to="89" confidence="9.6E-13">CARD</domain>
629
+ <domain from="118" to="202" confidence="4.5E-9">CARD</domain>
630
+ <domain from="206" to="491" confidence="0.0011">NB-ARC</domain>
631
+ <domain from="238" to="388" confidence="0.0043">NACHT</domain>
632
+ </domain_architecture>
633
+ </sequence>
634
+ </clade>
635
+ <clade>
636
+ <name>36_BRAFL</name>
637
+ <branch_length>0.16225</branch_length>
638
+ <taxonomy>
639
+ <code>BRAFL</code>
640
+ </taxonomy>
641
+ <sequence>
642
+ <domain_architecture length="918">
643
+ <domain from="9" to="93" confidence="1.6E-9">CARD</domain>
644
+ <domain from="98" to="403" confidence="0.0019">NB-ARC</domain>
645
+ </domain_architecture>
646
+ </sequence>
647
+ </clade>
648
+ </clade>
649
+ <clade>
650
+ <name>33_BRAFL</name>
651
+ <branch_length>0.8363</branch_length>
652
+ <taxonomy>
653
+ <code>BRAFL</code>
654
+ </taxonomy>
655
+ <sequence>
656
+ <domain_architecture length="1212">
657
+ <domain from="5" to="87" confidence="4.7E-12">Death</domain>
658
+ <domain from="154" to="465" confidence="2.0E-6">NB-ARC</domain>
659
+ </domain_architecture>
660
+ </sequence>
661
+ </clade>
662
+ </clade>
663
+ </clade>
664
+ </clade>
665
+ </phylogeny>
666
+ </phyloxml>