bio-nwk 0.1.0 → 0.1.3

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: 2e8d6abc34a527831c247633a3348905504eb24a36153993ca6749f7fef815de
4
- data.tar.gz: fdc68bf449c666e6bd715b75be20f5cd8470ee96b8ccd70e0c33b4ef0f5a371a
3
+ metadata.gz: 8d9592e998026208adab8760c3c98f61c7dca740ede2e2634146252abeea18cc
4
+ data.tar.gz: be558a160cdc49fed06d255f84f72bde9a062c2ca7a8422db865292c86a2a9aa
5
5
  SHA512:
6
- metadata.gz: 4edd2ae55dd4b579be39f211830d05e615e7a67511119624870f757e7b81842c1743f24e437bea7d901f08d254882c3e5a1bf566db0a35edd34b39f2de9c42d7
7
- data.tar.gz: d27ccdc661874bdb6965419b885463df1f7e90f306626a021789ad9f343727b4ed5d0b955f3473977427b422eacdf29d96bbdac12d4b8ecaaebebf90d6f4a070
6
+ metadata.gz: 92351aaa11e1743679f87aebaa0919dee8c903378b819e1ea857fea1f4066c1276485ab0328dc50e63fcdee0dd3ba3bb7fd3160aab4a6b184318ddc0f4d1a219
7
+ data.tar.gz: a48f163a2a2498c50971f45f922fe6062bdc698dd06a2a762daed8311a8528c3133800d5a3f3b290da1e22f0454cb59ac66f895a52526cd815230b610b7be96a
@@ -1,5 +1,5 @@
1
1
  module Bio
2
2
  module Nwk
3
- VERSION = "0.1.0"
3
+ VERSION = "0.1.3"
4
4
  end
5
5
  end
data/lib/bio/nwk.rb CHANGED
@@ -17,6 +17,10 @@ class Bio::Tree
17
17
  return(rv)
18
18
  end
19
19
 
20
+ def all_nodes_of_subtree(node)
21
+ [leaves(node), tips(node)].flatten
22
+ end
23
+
20
24
  def cleanName!
21
25
  allTips.each do |tip|
22
26
  tip.name.gsub!(' ', '_')
@@ -39,6 +43,15 @@ class Bio::Tree
39
43
  end
40
44
  end
41
45
 
46
+ def twoTaxaNodeNameStr(node, sep='|')
47
+ a = twoTaxaNodeName(node)
48
+ if a.is_a?(Array)
49
+ return(a.join(sep))
50
+ else
51
+ return(a)
52
+ end
53
+ end
54
+
42
55
  def sisters(node)
43
56
  if node == root
44
57
  return([])
@@ -120,6 +133,34 @@ class Bio::Tree
120
133
  end
121
134
  end
122
135
 
136
+ def getAlldistances()
137
+ distances = Array.new
138
+ each_edge do |node0, node1, edge|
139
+ next if node0 == root or node1 == root
140
+ distances << edge.distance
141
+ end
142
+ return(distances)
143
+ end
144
+
145
+ def normalizeBranchLength!()
146
+ min, max = getAlldistances().minmax
147
+ each_edge do |node0, node1, edge|
148
+ edge.distance = (edge.distance-min+1e-10).to_f/(max-min)
149
+ end
150
+ end
151
+
152
+ def normalizeBranchLengthGainAndLoss!()
153
+ min, max = getAlldistances().select{|i|i>=0}.minmax
154
+ each_edge do |node0, node1, edge|
155
+ edge.distance = (edge.distance-min+1e-10).to_f/(max-min) + 1 if edge.distance >= 0
156
+ end
157
+
158
+ min, max = getAlldistances().select{|i|i<0}.minmax
159
+ each_edge do |node0, node1, edge|
160
+ edge.distance = (edge.distance-min+1e-10).to_f/(max-min) if edge.distance < 0
161
+ end
162
+ end
163
+
123
164
  private
124
165
  def translate
125
166
  # TRANSLATE
@@ -164,3 +205,10 @@ def getTreeObjFromNwkString(nwk_str)
164
205
  end
165
206
 
166
207
 
208
+ def getTreeObjFromMcmctree(tree_file)
209
+ first_line = `head -1 #{tree_file}`.chomp
210
+ tree_txt = `tail -1 #{tree_file}`.chomp
211
+ treeio = Bio::Newick.new(tree_txt).tree
212
+ return([first_line, treeio])
213
+ end
214
+
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.0
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sishuo Wang
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-07-06 00:00:00.000000000 Z
11
+ date: 2022-03-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -87,11 +87,11 @@ files:
87
87
  - lib/bio-nwk.rb
88
88
  - lib/bio/nwk.rb
89
89
  - lib/bio/nwk/version.rb
90
- homepage:
90
+ homepage:
91
91
  licenses:
92
92
  - MIT
93
93
  metadata: {}
94
- post_install_message:
94
+ post_install_message:
95
95
  rdoc_options: []
96
96
  require_paths:
97
97
  - lib
@@ -106,9 +106,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
106
106
  - !ruby/object:Gem::Version
107
107
  version: '0'
108
108
  requirements: []
109
- rubyforge_project:
110
- rubygems_version: 2.7.3
111
- signing_key:
109
+ rubygems_version: 3.2.3
110
+ signing_key:
112
111
  specification_version: 4
113
112
  summary: Some codes for parsing newick tree.
114
113
  test_files: []