iroki 0.0.5 → 0.0.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +4 -0
- data/exe/newick_to_phyloxml +36 -8
- data/lib/iroki/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c3b375398b510f08d8c97c4361a2996788abd2bb
|
4
|
+
data.tar.gz: b109a3a6bacea94e8aaa32c9d316a1fafb1bb899
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e92f0e993c5ffe7a1e7c767f33ff888d15ad4ef68695c14c2848c8d18c6f18fb860f3245677be5593bf24d821a786680c9de78be90734a05823301dd8d32f5b6
|
7
|
+
data.tar.gz: e1336a5681c508bb861dee39a7d4ddebc1137d5f3ef5bc27ca703b9cc2de143ef36e6a90c84f27f35be5230afb69cdf6b0a9d25e1b48575517f485509b73cb8c
|
data/README.md
CHANGED
data/exe/newick_to_phyloxml
CHANGED
@@ -1,5 +1,10 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
|
+
# NOTE make sure the newick has no spaces for jsPhyloXML
|
4
|
+
|
5
|
+
# NOTE for Archaeopteryx, you need <name>#{boot}</name> to show
|
6
|
+
# bootsraps, but for jsPhyloXML, just the confidence is needed
|
7
|
+
|
3
8
|
require "set"
|
4
9
|
require "bio"
|
5
10
|
|
@@ -24,22 +29,39 @@ $xml_end = %q{</clade>
|
|
24
29
|
</phyloxml>
|
25
30
|
}
|
26
31
|
|
27
|
-
added_nodes = Set.new
|
28
|
-
|
29
32
|
def leaf? tree, node
|
30
33
|
tree.descendents(node).count.zero?
|
31
34
|
end
|
32
35
|
|
33
|
-
def make_xml_string descendents
|
36
|
+
def make_xml_string descendents, start_node
|
34
37
|
while (node = descendents.shift)
|
35
38
|
unless $already_added.include? node
|
36
39
|
if leaf? $tree, node
|
37
|
-
|
40
|
+
# TODO this will raise something if no dist, rescue it
|
41
|
+
dist = $tree.distance(start_node, node)
|
42
|
+
|
43
|
+
$xml_start << "<clade>
|
44
|
+
<name>#{node.name}</name>
|
45
|
+
<branch_length>#{dist}</branch_length>
|
46
|
+
</clade>\n"
|
38
47
|
$already_added << node
|
48
|
+
$prev_node = node
|
39
49
|
else
|
50
|
+
boot = node.bootstrap
|
51
|
+
if boot
|
52
|
+
boot_xml = %Q{<confidence type="bootstrap">#{boot}</confidence>}
|
53
|
+
else
|
54
|
+
boot_xml = ""
|
55
|
+
end
|
56
|
+
|
57
|
+
# TODO this will raise something if no dist, rescue it
|
58
|
+
dist = $tree.distance(start_node, node)
|
59
|
+
$xml_start << "<clade>
|
60
|
+
<branch_length>#{dist}</branch_length>
|
61
|
+
#{boot_xml}"
|
62
|
+
|
40
63
|
STDERR.puts "LOG -- recurse"
|
41
|
-
$
|
42
|
-
make_xml_string $tree.descendents(node)
|
64
|
+
make_xml_string $tree.descendents(node), node
|
43
65
|
$xml_start << "</clade>\n"
|
44
66
|
$already_added << node
|
45
67
|
end
|
@@ -49,9 +71,15 @@ end
|
|
49
71
|
|
50
72
|
$already_added = Set.new
|
51
73
|
|
52
|
-
|
74
|
+
STDERR.puts $tree.nodes.inspect
|
75
|
+
|
76
|
+
start_node = $tree.root
|
77
|
+
|
78
|
+
$descendents = $tree.descendents(start_node)
|
79
|
+
|
80
|
+
STDERR.puts $descendents.inspect
|
53
81
|
|
54
|
-
make_xml_string $descendents
|
82
|
+
make_xml_string $descendents, start_node
|
55
83
|
|
56
84
|
puts $xml_start
|
57
85
|
puts "#{$xml_end}"
|
data/lib/iroki/version.rb
CHANGED