mizlab 0.1.5 → 0.1.6

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: 4407f6c76b786fe0c6bdc8a70ef04bbbd721bf247cf9d96de66be8300e137dbe
4
- data.tar.gz: f404ba612019c0f19f28f7da7d660c31c7eb2a53bba962f1e495be25a19fe52e
3
+ metadata.gz: '0997e1a56ba6b17aa4eedc2fd89e84462e3ac2d3f51c1c251221a0fc7613ff66'
4
+ data.tar.gz: aaac55320663e3b8fef03c5518d73156ea3a1880736936c8debb1a6eb9d60935
5
5
  SHA512:
6
- metadata.gz: adbe76a35b85afff62667f50be8913936486ad9928edb51d9ded44ab20b4c9c30ecb3a106f8b92474c998d55630d85aeebe40aa678a2c4ec0ef81c887480c181
7
- data.tar.gz: dee0b71988bb5b80103984d9f81b8cba8156d3ebce89728a423ee9e3517011444e4ac1ef13cd692ebb88caa3f1f2d8e6f44e839e5a812100211ba5326014d801
6
+ metadata.gz: a5e073bceea54fd25ad99e80c35052732c265a6e827b8e23bcf4f2bc21f3b03095243d5e9b718bf6b521ae8097f5059b72a15cc32ec67e7bfe534e3b8c7d35bc
7
+ data.tar.gz: 61f1545fd3218ce1a74b030a6a64718964a8129f30587deaebeb038cadfe82991b9d7356751129ba92df751278193d5a1cf92c147790e8a88008bb285fa665c8
data/Gemfile CHANGED
@@ -5,10 +5,7 @@ source "https://rubygems.org"
5
5
  # Specify your gem's dependencies in mizlab.gemspec
6
6
  gemspec
7
7
 
8
- gem "rake", "~> 13.0"
9
-
10
- gem "minitest", "~> 5.0"
11
-
12
- gem "yard", "~> 0.9"
13
-
14
- gem "bio"
8
+ # gem "rake", "~> 13.0"
9
+ # gem "minitest", "~> 5.0"
10
+ # gem "yard", "~> 0.9"
11
+ # gem "bio", "~> 2.0.0"
data/README.md CHANGED
@@ -1,10 +1,10 @@
1
1
  [![Test](https://github.com/MizLab/Mizlab-ruby/actions/workflows/minitest.yml/badge.svg)](https://github.com/MizLab/Mizlab-ruby/actions/workflows/minitest.yml)
2
2
  [![Build page](https://github.com/MizLab/Mizlab-ruby/actions/workflows/yardoc.yml/badge.svg)](https://github.com/MizLab/Mizlab-ruby/actions/workflows/yardoc.yml)
3
+ [![Gem Version](https://badge.fury.io/rb/mizlab.svg)](https://badge.fury.io/rb/mizlab)
3
4
 
4
5
  # Mizlab-ruby
5
6
 
6
- This gem is for easy handling of the processes used in our labolatory.
7
-
7
+ This gem is for easy handling of the processes used in our laboratory.
8
8
 
9
9
  ## Installation
10
10
 
@@ -14,7 +14,7 @@ Install it yourself as:
14
14
  gem install mizlab
15
15
  ```
16
16
 
17
- or add below to your application's Gemfile:
17
+ Or add below to your application's Gemfile:
18
18
 
19
19
  ```ruby
20
20
  gem 'mizlab'
@@ -38,7 +38,7 @@ To install this gem onto your local machine, run `bundle exec rake install`. To
38
38
 
39
39
  ## Contributing
40
40
 
41
- Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/mizlab.
41
+ Bug reports and pull requests are welcome on GitHub at https://github.com/MizLab/Mizlab-ruby
42
42
 
43
43
  ## License
44
44
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Mizlab
4
- VERSION = "0.1.5"
4
+ VERSION = "0.1.6"
5
5
  end
data/lib/mizlab.rb CHANGED
@@ -4,6 +4,7 @@ require_relative "mizlab/version"
4
4
  require "set"
5
5
  require "bio"
6
6
  require "stringio"
7
+ require "rexml/document"
7
8
 
8
9
  module Mizlab
9
10
  class << self
@@ -138,6 +139,23 @@ module Mizlab
138
139
  return local_pattern_list
139
140
  end
140
141
 
142
+ # Fetch Taxonomy information from Taxonomy ID. can be give block too.
143
+ # @param [String/Integer] taxonid Taxonomy ID, or Array of its.
144
+ # @return [Hash] Taxonomy informations.
145
+ # @yield [Hash] Taxonomy informations.
146
+ def fetch_taxon(taxonid)
147
+ taxonid = taxonid.is_a?(Array) ? taxonid : [taxonid]
148
+ taxonid.each do |id|
149
+ obj = Bio::NCBI::REST::EFetch.taxonomy(id, "xml")
150
+ hashed = xml_to_hash(REXML::Document.new(obj).root)
151
+ if block_given?
152
+ yield hashed[:TaxaSet][:Taxon][:LineageEx][:Taxon]
153
+ else
154
+ return hashed[:TaxaSet][:Taxon][:LineageEx][:Taxon]
155
+ end
156
+ end
157
+ end
158
+
141
159
  private
142
160
 
143
161
  def fetch_protein(accession)
@@ -243,5 +261,21 @@ module Mizlab
243
261
  yield e
244
262
  end
245
263
  end
264
+
265
+ # Convert XML to Hash.
266
+ # @param [REXML::Document] element XML object.
267
+ # @return [Hash] Hash that converted from xml.
268
+ def xml_to_hash(element)
269
+ value = (if element.has_elements?
270
+ children = {}
271
+ element.each_element do |e|
272
+ children.merge!(xml_to_hash(e)) { |k, v1, v2| v1.is_a?(Array) ? v1 << v2 : [v1, v2] }
273
+ end
274
+ children
275
+ else
276
+ element.text
277
+ end)
278
+ return { element.name.to_sym => value }
279
+ end
246
280
  end
247
281
  end
data/mizlab.gemspec CHANGED
@@ -29,8 +29,14 @@ Gem::Specification.new do |spec|
29
29
  spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
30
30
  spec.require_paths = ["lib"]
31
31
 
32
- # Uncomment to register a new dependency of your gem
33
- # spec.add_dependency "example-gem", "~> 1.0"
32
+ # Dependency
33
+ spec.add_dependency "bio", "~> 2.0.0"
34
+ spec.add_dependency "rexml", ">= 0"
35
+
36
+ # Dependency (for development)
37
+ spec.add_development_dependency "rake", "~> 13.0"
38
+ spec.add_development_dependency "yard", "~> 0.9"
39
+ spec.add_development_dependency "minitest", "~> 5.0"
34
40
 
35
41
  # For more information and examples about making a new gem, checkout our
36
42
  # guide at: https://bundler.io/guides/creating_gem.html
metadata CHANGED
@@ -1,15 +1,85 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mizlab
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
4
+ version: 0.1.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Omochice
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-10-26 00:00:00.000000000 Z
12
- dependencies: []
11
+ date: 2021-10-28 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bio
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 2.0.0
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 2.0.0
27
+ - !ruby/object:Gem::Dependency
28
+ name: rexml
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rake
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '13.0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '13.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: yard
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '0.9'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '0.9'
69
+ - !ruby/object:Gem::Dependency
70
+ name: minitest
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '5.0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '5.0'
13
83
  description: The tools for our laboratory
14
84
  email:
15
85
  - mochice.mls.ntl@gmail.com