bio-nwk 0.1.3 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8d9592e998026208adab8760c3c98f61c7dca740ede2e2634146252abeea18cc
4
- data.tar.gz: be558a160cdc49fed06d255f84f72bde9a062c2ca7a8422db865292c86a2a9aa
3
+ metadata.gz: b5f845416e561baa214dee9ad326763f784b5ca2f891bdb01c4deb9572f9ca23
4
+ data.tar.gz: e7720ae89b70955493c510b4291ae8f2125e00a6d83e88d4274fa8b3490b137a
5
5
  SHA512:
6
- metadata.gz: 92351aaa11e1743679f87aebaa0919dee8c903378b819e1ea857fea1f4066c1276485ab0328dc50e63fcdee0dd3ba3bb7fd3160aab4a6b184318ddc0f4d1a219
7
- data.tar.gz: a48f163a2a2498c50971f45f922fe6062bdc698dd06a2a762daed8311a8528c3133800d5a3f3b290da1e22f0454cb59ac66f895a52526cd815230b610b7be96a
6
+ metadata.gz: a252ea335e65cbf252f3482a5fb93d5c33499df3cc401932de7db4c491628c1e3c72e9628613cf66bc632a9723bf2c541cd76c583c8aca3e8d1a456d17d71676
7
+ data.tar.gz: 960aa5a028aa7d475654d80683983f0b2f1900aaa665f09a37fa776d67bec11992ed0b9328c9d1aeb2a9fbf1bf884ee39629236f2ab70e41b6445289e3b95cdc
@@ -1,5 +1,5 @@
1
1
  module Bio
2
2
  module Nwk
3
- VERSION = "0.1.3"
3
+ VERSION = "0.1.4"
4
4
  end
5
5
  end
data/lib/bio/nwk.rb CHANGED
@@ -7,6 +7,7 @@ class Bio::Tree
7
7
  DELIMITER = ';'
8
8
  attr_accessor :tip2index, :index2tip
9
9
 
10
+
10
11
  def tips(node)
11
12
  rv = Array.new
12
13
  if node.isTip?(self)
@@ -17,16 +18,19 @@ class Bio::Tree
17
18
  return(rv)
18
19
  end
19
20
 
21
+
20
22
  def all_nodes_of_subtree(node)
21
23
  [leaves(node), tips(node)].flatten
22
24
  end
23
25
 
26
+
24
27
  def cleanName!
25
28
  allTips.each do |tip|
26
29
  tip.name.gsub!(' ', '_')
27
30
  end
28
31
  end
29
32
 
33
+
30
34
  def twoTaxaNode(node)
31
35
  if node.isTip?(self)
32
36
  return(node)
@@ -34,6 +38,7 @@ class Bio::Tree
34
38
  return children(node).map{|child|tips(child).sort_by{|i|i.name}.shift}.sort_by{|i|i.name}
35
39
  end
36
40
  end
41
+
37
42
 
38
43
  def twoTaxaNodeName(node)
39
44
  if node.isTip?(self)
@@ -43,6 +48,7 @@ class Bio::Tree
43
48
  end
44
49
  end
45
50
 
51
+
46
52
  def twoTaxaNodeNameStr(node, sep='|')
47
53
  a = twoTaxaNodeName(node)
48
54
  if a.is_a?(Array)
@@ -52,6 +58,7 @@ class Bio::Tree
52
58
  end
53
59
  end
54
60
 
61
+
55
62
  def sisters(node)
56
63
  if node == root
57
64
  return([])
@@ -60,10 +67,12 @@ class Bio::Tree
60
67
  end
61
68
  end
62
69
 
70
+
63
71
  def sister(node)
64
72
  return(sisters(node)[0])
65
73
  end
66
74
 
75
+
67
76
  def internal_nodes
68
77
  a = Array.new
69
78
  nodes.each do |node|
@@ -74,6 +83,7 @@ class Bio::Tree
74
83
  return(a)
75
84
  end
76
85
 
86
+
77
87
  def allSubtreeRepresentatives
78
88
  arr = Array.new
79
89
  nodes.each do |node|
@@ -82,6 +92,7 @@ class Bio::Tree
82
92
  return(arr)
83
93
  end
84
94
 
95
+
85
96
  def allTips
86
97
  a = Array.new
87
98
  nodes.each do |node|
@@ -90,6 +101,7 @@ class Bio::Tree
90
101
  return(a)
91
102
  end
92
103
 
104
+
93
105
  def outputNexus(isTranslate=false, isTip2Index=false)
94
106
  puts "#NEXUS"
95
107
  puts
@@ -101,6 +113,7 @@ class Bio::Tree
101
113
  newickIndexToTip if isTip2Index
102
114
  end
103
115
 
116
+
104
117
  def cleanNewick
105
118
  output = output_newick
106
119
  output.gsub!(/[\n\s]/, '')
@@ -108,6 +121,7 @@ class Bio::Tree
108
121
  return(output)
109
122
  end
110
123
 
124
+
111
125
  def tipToIndex
112
126
  @tip2index = Hash.new
113
127
  @index2tip = Hash.new
@@ -117,6 +131,7 @@ class Bio::Tree
117
131
  end
118
132
  end
119
133
 
134
+
120
135
  def newickTipToIndex()
121
136
  tipToIndex
122
137
  allTips.each do |tip|
@@ -125,6 +140,7 @@ class Bio::Tree
125
140
  end
126
141
  end
127
142
 
143
+
128
144
  def newickIndexToTip()
129
145
  tipToIndex if @index2tip.empty?
130
146
  allTips.each do |tip|
@@ -133,6 +149,7 @@ class Bio::Tree
133
149
  end
134
150
  end
135
151
 
152
+
136
153
  def getAlldistances()
137
154
  distances = Array.new
138
155
  each_edge do |node0, node1, edge|
@@ -142,6 +159,7 @@ class Bio::Tree
142
159
  return(distances)
143
160
  end
144
161
 
162
+
145
163
  def normalizeBranchLength!()
146
164
  min, max = getAlldistances().minmax
147
165
  each_edge do |node0, node1, edge|
@@ -149,6 +167,7 @@ class Bio::Tree
149
167
  end
150
168
  end
151
169
 
170
+
152
171
  def normalizeBranchLengthGainAndLoss!()
153
172
  min, max = getAlldistances().select{|i|i>=0}.minmax
154
173
  each_edge do |node0, node1, edge|
@@ -161,6 +180,27 @@ class Bio::Tree
161
180
  end
162
181
  end
163
182
 
183
+
184
+ def getNameTipRela()
185
+ tip2name, name2tip = [Hash.new, Hash.new]
186
+ allTips.each do |tip|
187
+ tip2name[tip] = tip.name
188
+ name2tip[tip.name] = tip
189
+ end
190
+ return([name2tip, tip2name])
191
+ end
192
+
193
+
194
+ def getNameNodeRela()
195
+ node2name, name2node = [Hash.new, Hash.new]
196
+ nodes.each do |node|
197
+ node2name[node] = node.name
198
+ name2node[node.name] = node
199
+ end
200
+ return([name2node, node2name])
201
+ end
202
+
203
+
164
204
  private
165
205
  def translate
166
206
  # TRANSLATE
@@ -212,3 +252,4 @@ def getTreeObjFromMcmctree(tree_file)
212
252
  return([first_line, treeio])
213
253
  end
214
254
 
255
+
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bio-nwk
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sishuo Wang
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-03-14 00:00:00.000000000 Z
11
+ date: 2022-04-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler