miga-base 1.3.12.2 → 1.3.12.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: cf660d951441269a671b7fb57d3e91a572fdb62d5ffbaeda9ff412042798759b
4
- data.tar.gz: 1721194dcce4a70e4cad66ca4cea5db88f521323022b62c2c93740458a1b0bea
3
+ metadata.gz: a824f1edbe1778b4a7e5a0bb88062f81be5a29acfbaf22bc12d46e662f9fe15e
4
+ data.tar.gz: 4ccbc1577786a1c967fa93dfd15ad0e1d46f3daf4e6f31eb8f1fc401a29c0bf6
5
5
  SHA512:
6
- metadata.gz: ff0b9c3a8db37fa9b0d75a0b884154b416669e068eab9f22f406facf9822345a38baccc224138a15fb5e9e1dff786e55e2ebc0d870573b892f056bf7e18e275a
7
- data.tar.gz: af7dcea647e3ead8fdbde6f917264efd93335cc9c7878bd7a4b43b8dbb27434882dff76728fa984c5724802a581421ddd333f6cfe46ab1d6c75fb4bb953bc378
6
+ metadata.gz: aa3313457cae5bc365afa7d58ede79a7644afa5f051ed711d7fd7ade38961749ff8188491df675e7652037a440f24bb0e2bdba229e79b0c5b1eefcf2b015d8e4
7
+ data.tar.gz: be5039aa64d97347c65d290992a7022e7e069f9afb330265bd4b571b5936f2fcac686d92951cecb9c3d57ca52f83e659b3977b66aaa617c80ecafa3600769ff2
@@ -96,9 +96,21 @@ class MiGA::RemoteDataset
96
96
  o = download_rest(opts.merge(universe: :ncbi, db: :nuccore))
97
97
  return o unless o.strip.empty?
98
98
 
99
- MiGA::MiGA.DEBUG 'Empty sequence, attempting download from NCBI assembly'
100
- opts[:format] = :fasta
101
- ncbi_asm_get(opts)
99
+ begin
100
+ MiGA::MiGA.DEBUG 'Empty sequence, attempting download as NCBI assembly'
101
+ opts[:format] = :fasta
102
+ ncbi_asm_get(opts)
103
+ rescue => e
104
+ raise e unless opts[:obj]&.metadata&.dig(:ncbi_wgs)
105
+ MiGA::MiGA.DEBUG e.to_s
106
+ end
107
+
108
+ MiGA::MiGA.DEBUG 'Empty sequence, attempting download as WGS records'
109
+ a, b = opts[:obj].metadata[:ncbi_wgs].split('-', 2)
110
+ pref = longest_common_prefix([a, b])
111
+ rang = a[pref.size .. -1].to_i .. b[pref.size .. -1].to_i
112
+ ids = rang.map { |k| "%s%0#{a.size - pref.size}i" % [pref, k] }
113
+ download_rest(opts.merge(universe: :ncbi, db: :nuccore, ids: ids))
102
114
  end
103
115
 
104
116
  ##
@@ -184,6 +196,15 @@ class MiGA::RemoteDataset
184
196
  end
185
197
  tree
186
198
  end
199
+
200
+ ##
201
+ # From: https://github.com/isisAnchalee/Algorithms
202
+ def longest_common_prefix(strs)
203
+ return '' if strs.empty?
204
+ min, max = strs.minmax
205
+ idx = min.size.times { |i| break i if min[i] != max[i] }
206
+ min[0...idx]
207
+ end
187
208
  end
188
209
  end
189
210
 
@@ -322,9 +322,16 @@ class MiGA::RemoteDataset < MiGA::MiGA
322
322
  taxid = metadata.dig(:ncbi_dataset, :organism, :tax_id)
323
323
  return taxid if taxid
324
324
 
325
- # Try from GenBank document (obtain it)
325
+ # Get GenBank document
326
326
  doc = self.class.download(:ncbi, db, ids, :gb, nil, {}, self).split(/\n/)
327
- ln = doc.grep(%r{^\s+/db_xref="taxon:}).first
327
+
328
+ # Since we're here, try to recover WGS for synthetic records
329
+ ln = doc.grep(/^WGS\s+\S+-\S+/).first
330
+ wgs = ln&.gsub(/^WGS\s+(\S+-\S+).*/, '\1')
331
+ @metadata[:ncbi_wgs] = wgs if wgs
332
+
333
+ # Now try to extract taxid from GenBank
334
+ ln = doc.grep(%r{^\s+/db_xref="taxon:}).first
328
335
  return nil if ln.nil?
329
336
 
330
337
  ln.sub!(/.*(?:"taxon:)(\d+)["; ].*/, '\\1')
data/lib/miga/version.rb CHANGED
@@ -12,7 +12,7 @@ module MiGA
12
12
  # - String indicating release status:
13
13
  # - rc* release candidate, not released as gem
14
14
  # - [0-9]+ stable release, released as gem
15
- VERSION = [1.3, 12, 2].freeze
15
+ VERSION = [1.3, 12, 3].freeze
16
16
 
17
17
  ##
18
18
  # Nickname for the current major.minor version.
@@ -20,7 +20,7 @@ module MiGA
20
20
 
21
21
  ##
22
22
  # Date of the current gem relese.
23
- VERSION_DATE = Date.new(2024, 3, 8)
23
+ VERSION_DATE = Date.new(2024, 3, 10)
24
24
 
25
25
  ##
26
26
  # References of MiGA
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: miga-base
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.12.2
4
+ version: 1.3.12.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Luis M. Rodriguez-R
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-03-08 00:00:00.000000000 Z
11
+ date: 2024-03-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: daemons