miga-base 0.3.6.2 → 0.3.6.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: 18d4ed2342a1b2d1e1b35b1bbb060a79bd573af5cdc9c286fe9dc9d7b7b9c6aa
4
- data.tar.gz: 723c593505c7a54c26316862d0a5eef7072dbd2de174154517f7cb14a8bd3bae
3
+ metadata.gz: f989fccd5161208979728e293bfc89d18e24e1ca6941b18a804063749cce56e9
4
+ data.tar.gz: 7568cb56974c18279428a50f750a5302beae8063a190def53734eb985fe4b56b
5
5
  SHA512:
6
- metadata.gz: d955e1011f1f02730adb0fdf689740cb494b15552fccc07ce86c4427170f42f599a87fc527512809af99d0d7365fb7a5af55c101e87e7b16df013e3e648781e7
7
- data.tar.gz: 63fa2a296df01ba78e281be1bf4fed252bdad7959d355d5b112228b25f71a79e1a6af1094a623967eaaf69431fb440529b481a9b5b9a06ff90c6660a22d2c73f
6
+ metadata.gz: 8d026577fd38d399d643fbc9ef7c01ffa7969d8206d6f859655b9d04e41d7c3e75b1432581add654c5b3d58ce6b2bedf566783c2587165f811e12f6fbf87b695
7
+ data.tar.gz: 4fae078b18a74314a7654d5c7a83ca7277555977b299931e33ddfabc3356cfa82994b00c6950a646eb8c16289f4cdb34f686574fc9505aacfec9ae826242c742
data/README.md CHANGED
@@ -7,10 +7,7 @@
7
7
 
8
8
  # MiGA: Microbial Genomes Atlas
9
9
 
10
- **Important**: MiGA is under active development, and we currently cannot ensure
11
- any stability on the different interfaces. We're currently running a Beta
12
- Testing program with dedicated support for a small number of laboratories. If
13
- you're interested, please [contact us][contact].
10
+ ![Graphical abstract](manual/img/Graphical_abstract-01.png)
14
11
 
15
12
  For additional information on MiGA, visit:
16
13
 
data/actions/get.rb CHANGED
@@ -39,10 +39,11 @@ OptionParser.new do |opt|
39
39
  opt.on('--get-metadata',
40
40
  'Only download and update metadata for existing datasets'
41
41
  ){ |v| o[:get_md] = v }
42
+ opt.on('--api-key STRING',
43
+ 'API key for the given universe.'){ |v| o[:api_key] = v }
42
44
  opt_common(opt, o)
43
45
  end.parse!
44
46
 
45
-
46
47
  ##=> Main <=
47
48
  glob = [o]
48
49
  unless o[:file].nil?
@@ -66,6 +67,9 @@ end
66
67
 
67
68
  glob.each do |o_i|
68
69
  opt_require(o_i, project: '-P', dataset: '-D', ids: '-I')
70
+ unless o_i[:api_key].nil?
71
+ ENV["#{o_i[:universe].to_s.upcase}_API_KEY"] = o_i[:api_key]
72
+ end
69
73
 
70
74
  $stderr.puts "Dataset: #{o_i[:dataset]}" unless o_i[:q]
71
75
  $stderr.puts 'Loading project.' unless o_i[:q]
data/actions/ncbi_get.rb CHANGED
@@ -50,6 +50,7 @@ OptionParser.new do |opt|
50
50
  opt.on('-R', '--remote-list PATH',
51
51
  'Path to an output file with the list of all datasets listed remotely.'
52
52
  ){ |v| o[:remote_list]=v }
53
+ opt.on('--api-key STRING', 'NCBI API key.'){ |v| ENV['NCBI_API_KEY'] = v }
53
54
  opt_common(opt, o)
54
55
  end.parse!
55
56
 
data/lib/miga/daemon.rb CHANGED
@@ -95,15 +95,18 @@ class MiGA::Daemon < MiGA::MiGA
95
95
  def load_status
96
96
  f_path = File.expand_path('daemon/status.json', project.path)
97
97
  return unless File.size? f_path
98
+ say 'Loading previous status in daemon/status.json:'
98
99
  status = JSON.parse(File.read(f_path), symbolize_names: true)
99
100
  status.keys.each do |i|
100
101
  status[i].map! do |j|
101
102
  j.tap { |k| k[:ds] = project.dataset(k[:ds_name]) unless k[:ds].nil? }
102
103
  end
103
104
  end
104
- @jobs_to_run = status[:jobs_to_run]
105
105
  @jobs_running = status[:jobs_running]
106
+ @jobs_to_run = status[:jobs_to_run]
106
107
  purge!
108
+ say "- jobs running: #{@jobs_running.size}"
109
+ say "- jobs to run: #{@jobs_to_run.size}"
107
110
  end
108
111
 
109
112
  ##
@@ -111,7 +114,7 @@ class MiGA::Daemon < MiGA::MiGA
111
114
  def check_datasets
112
115
  project.each_dataset do |n, ds|
113
116
  if ds.nil?
114
- say "Warning: Dataset #{n} listed but not loaded, reloading project."
117
+ say "Warning: Dataset #{n} listed but not loaded, reloading project"
115
118
  project.load
116
119
  else
117
120
  to_run = ds.next_preprocessing(true)
@@ -27,6 +27,8 @@ module MiGA::RemoteDataset::Base
27
27
  # option.
28
28
  # - +method+ => Method used to query the URL. Only +:rest+ and +:net+ are
29
29
  # currently supported.
30
+ # - +api_key+ => A lambda function that takes a URL as input and returns the
31
+ # URL to be downloaded with an API Key (if available).
30
32
  # - +map_to_universe+ => Universe where results map to. Currently unsupported.
31
33
  @@UNIVERSE = {
32
34
  web: {
@@ -46,7 +48,10 @@ module MiGA::RemoteDataset::Base
46
48
  ncbi: {
47
49
  dbs: { nuccore: {stage: :assembly, format: :fasta} },
48
50
  url: "#{@@_EUTILS}efetch.fcgi?db=%1$s&id=%2$s&rettype=%3$s&retmode=text",
49
- method: :rest
51
+ method: :rest,
52
+ api_key: lambda { |url|
53
+ ENV['NCBI_API_KEY'].nil? ?
54
+ url : "#{url}&api_key=#{ENV['NCBI_API_KEY']}" }
50
55
  },
51
56
  ncbi_map: {
52
57
  dbs: {
@@ -56,7 +61,10 @@ module MiGA::RemoteDataset::Base
56
61
  },
57
62
  url: "#{@@_EUTILS}elink.fcgi?dbfrom=%1$s&id=%2$s&db=%4$s&retmode=%3$s",
58
63
  method: :net,
59
- map_to_universe: :ncbi
64
+ map_to_universe: :ncbi,
65
+ api_key: lambda { |url|
66
+ ENV['NCBI_API_KEY'].nil? ?
67
+ url : "#{url}&api_key=#{ENV['NCBI_API_KEY']}" }
60
68
  }
61
69
  }
62
70
 
@@ -34,6 +34,7 @@ class MiGA::RemoteDataset
34
34
  def download_rest(universe, db, ids, format, extra = [])
35
35
  u = @@UNIVERSE[universe]
36
36
  url = sprintf(u[:url], db, ids.join(","), format, *extra)
37
+ url = u[:api_key][url] unless u[:api_key].nil?
37
38
  download_url url
38
39
  end
39
40
 
data/lib/miga/version.rb CHANGED
@@ -10,7 +10,7 @@ module MiGA
10
10
  # - Float representing the major.minor version.
11
11
  # - Integer representing gem releases of the current version.
12
12
  # - Integer representing minor changes that require new version number.
13
- VERSION = [0.3, 6, 2]
13
+ VERSION = [0.3, 6, 3]
14
14
 
15
15
  ##
16
16
  # Nickname for the current major.minor version.
@@ -11,9 +11,6 @@ cd "$PROJECT/data/10.clades/01.find"
11
11
  # Initialize
12
12
  miga date > "miga-project.start"
13
13
 
14
- # Cleanup databases
15
- ruby -I "$MIGA/lib" "$MIGA/utils/cleanup-databases.rb" "$PROJECT" "$CORES"
16
-
17
14
  # Run
18
15
  ruby -I "$MIGA/lib" "$MIGA/utils/subclades.rb" "$PROJECT" "$SCRIPT"
19
16
 
@@ -11,6 +11,10 @@ cd "$PROJECT/data/09.distances/01.haai"
11
11
  # Initialize
12
12
  miga date > "miga-project.start"
13
13
 
14
+ # Cleanup databases
15
+ ruby -I "$MIGA/lib" "$MIGA/utils/cleanup-databases.rb" "$PROJECT" "$CORES"
16
+
17
+ # Run hAAI
14
18
  echo -n "" > miga-project.log
15
19
  DS=$(miga ls -P "$PROJECT" --ref --no-multi --active)
16
20
 
@@ -53,11 +53,11 @@ module MiGA::DistanceRunner::Commands
53
53
  end
54
54
 
55
55
  ##
56
- # Calculates and returns ANI against +target+ if AAI >= 85%. Returns
57
- # +nil+ otherwise
58
- def ani_after_aai(target)
56
+ # Calculates and returns ANI against +target+ if AAI >= +aai_limit+.
57
+ # Returns +nil+ otherwise
58
+ def ani_after_aai(target, aai_limit = 85.0)
59
59
  aai = aai(target)
60
- ani(target) unless aai.nil? or aai < 85.0
60
+ ani(target) unless aai.nil? or aai < aai_limit
61
61
  end
62
62
 
63
63
  ##
@@ -94,19 +94,19 @@ class MiGA::DistanceRunner
94
94
  fh.each_line do |ln|
95
95
  r = ln.chomp.split("\t")
96
96
  next unless r[1].to_i == val_cls
97
- ani = ani_after_aai(ref_project.dataset(r[0]))
97
+ ani = ani_after_aai(ref_project.dataset(r[0]), 80.0)
98
98
  closest = {ds: r[0], ani: ani} unless ani.nil? or ani < closest[:ani]
99
99
  end
100
100
  end
101
101
  end
102
102
 
103
- # Calculate all the AAIs/ANIs against the closest ANI95-clade (if ANI > 95%)
104
- cl_path = File.expand_path('miga-project.ani95-clades', home)
105
- if File.size? cl_path and tsk[0] == :clade_finding and closest[:ani] >= 95.0
103
+ # Calculate all the AAIs/ANIs against the closest ANI95-clade (if AAI > 80%)
104
+ cl_path = res.file_path :clades_ani95
105
+ if File.size? cl_path and tsk[0] == :clade_finding
106
106
  File.foreach(cl_path).
107
107
  map { |i| i.chomp.split(',') }.
108
- find { |i| i.include? closest[:ds] }.
109
- each { |i| ani_after_aai(ref_project.dataset(i)) }
108
+ find( lambda{[]} ){ |i| i.include? closest[:ds] }.
109
+ each { |i| ani_after_aai(ref_project.dataset(i), 80.0) }
110
110
  end
111
111
 
112
112
  # Finalize
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: 0.3.6.2
4
+ version: 0.3.6.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: 2018-12-06 00:00:00.000000000 Z
11
+ date: 2018-12-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: daemons