bio-nwk 0.1.3 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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