miga-base 1.3.9.0 → 1.3.9.2

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: 7a4aa208ac4dfe7ff6edbedb7aa7b3444c909c77e47b2ef1b93282adc83192d6
4
- data.tar.gz: 78bdce8752b3a1a1a281123a99cccdc002d0f95a2a345aa16b1c4ee684220c29
3
+ metadata.gz: 2603688836b87b4be16c9c88bacbb206a93bd6b71b19a5a7febc219638f4e912
4
+ data.tar.gz: 1df2051e7d1d88facce4e0738828274ca9743807cdf90da959697addde25e424
5
5
  SHA512:
6
- metadata.gz: 335e7a8715a6c561b618e21d1e273381f88d384daf16360c01f9b6818ec374f05f6ae824a36628fbe4dcb0c7d6e082f633e8372137edfa035389cb92922363fa
7
- data.tar.gz: 76bdf75348e711bdfcca6b973acd3768559acde7ee80233833ae8b8caa595020599756b7913774dc53c038290592d20710b1b67bd5fa8bb93fd334206bf21b06
6
+ metadata.gz: a28d606569bdd37e5d4d33710564573639b103747c9622fae0a3a2d254f6293bf8462decb09bdf67d7656f84bca84fc7094e217c66ff081e75c5f5622bd9711c
7
+ data.tar.gz: 7e18ecf2487c31b5d99d3fb53b8716ce0dea2f2a8b2bab5015a871be9b703dd63c4384fb050380dad4dd28f5de3d1de5c9bcb1cb8544726870c7314fab626ca9
@@ -26,6 +26,9 @@ module MiGA::Cli::Action::Download::Ncbi
26
26
  cli[:scaffold] = true
27
27
  cli[:contig] = true
28
28
  end
29
+ opt.on('--ncbi-list-json STRING', '::HIDE::') do |v|
30
+ cli[:ncbi_list_json] = v
31
+ end
29
32
  end
30
33
 
31
34
  def cli_name_modifiers(opt)
@@ -35,7 +38,9 @@ module MiGA::Cli::Action::Download::Ncbi
35
38
  'Only affects --complete and --chromosome'
36
39
  ) { |v| cli[:add_version] = v }
37
40
  # For backwards compatibility
38
- cli.opt_flag(opt, 'legacy-name', '::HIDE::', :legacy_name)
41
+ opt.on('--legacy-name', '::HIDE::') do
42
+ warn 'Deprecated flag --legacy-name ignored'
43
+ end
39
44
  end
40
45
 
41
46
  def sanitize_cli
@@ -49,6 +54,11 @@ module MiGA::Cli::Action::Download::Ncbi
49
54
  end
50
55
 
51
56
  def remote_list
57
+ if cli[:ncbi_list_json] && File.size?(cli[:ncbi_list_json])
58
+ cli.say "Reusing remote list: #{cli[:ncbi_list_json]}"
59
+ return MiGA::Json.parse(cli[:ncbi_list_json])
60
+ end
61
+
52
62
  list = {}
53
63
  query = remote_list_query
54
64
  loop do
@@ -66,6 +76,14 @@ module MiGA::Cli::Action::Download::Ncbi
66
76
  break unless page[:next_page_token]
67
77
  query[:page_token] = page[:next_page_token]
68
78
  end
79
+
80
+ if cli[:ncbi_list_json]
81
+ cli.say "Saving remote list: #{cli[:ncbi_list_json]}"
82
+ File.open(cli[:ncbi_list_json], 'w') do |fh|
83
+ fh.puts MiGA::Json.generate_plain(list)
84
+ end
85
+ end
86
+
69
87
  list
70
88
  end
71
89
 
@@ -80,7 +98,8 @@ module MiGA::Cli::Action::Download::Ncbi
80
98
  ds[n] = {
81
99
  ids: [asm], db: :assembly, universe: :ncbi,
82
100
  md: {
83
- type: :genome, ncbi_asm: asm, strain: r.dig(:organism, :infraspecific_names, :strain)
101
+ type: :genome, ncbi_asm: asm,
102
+ strain: r.dig(:organism, :infraspecific_names, :strain)
84
103
  }
85
104
  }
86
105
  date = r.dig(:assembly_info, :release_date)
@@ -29,33 +29,15 @@ module MiGA::Result::Stats
29
29
  seq_opts = { gc: true, x: true, skew: true }
30
30
  if self[:files][:pair1].nil?
31
31
  s = MiGA::MiGA.seqs_length(file_path(:single), :fastq, seq_opts)
32
- stats = {
33
- reads: s[:n],
34
- length_average: [s[:avg], 'bp'],
35
- length_standard_deviation: [s[:sd], 'bp'],
36
- g_c_content: [s[:gc], '%'],
37
- x_content: [s[:x], '%'],
38
- g_c_skew: [s[:gc_skew], '%'],
39
- a_t_skew: [s[:at_skew], '%']
40
- }
32
+ stats = seqs_length_as_stats_hash(s)
41
33
  else
42
- s1 = MiGA::MiGA.seqs_length(file_path(:pair1), :fastq, seq_opts)
43
- s2 = MiGA::MiGA.seqs_length(file_path(:pair2), :fastq, seq_opts)
44
- stats = {
45
- read_pairs: s1[:n],
46
- forward_length_average: [s1[:avg], 'bp'],
47
- forward_length_standard_deviation: [s1[:sd], 'bp'],
48
- forward_g_c_content: [s1[:gc], '%'],
49
- forward_x_content: [s1[:x], '%'],
50
- forward_g_c_skew: [s1[:gc_skew], '%'],
51
- forward_a_t_skew: [s1[:at_skew], '%'],
52
- reverse_length_average: [s2[:avg], 'bp'],
53
- reverse_length_standard_deviation: [s2[:sd], 'bp'],
54
- reverse_g_c_content: [s2[:gc], '%'],
55
- reverse_x_content: [s2[:x], '%'],
56
- reverse_g_c_skew: [s2[:gc_skew], '%'],
57
- reverse_a_t_skew: [s2[:at_skew], '%']
58
- }
34
+ stats = { read_pairs: nil }
35
+ { pair1: :forward, pair2: :reverse }.each do |pair, direction|
36
+ s = MiGA::MiGA.seqs_length(file_path(pair), :fastq, seq_opts)
37
+ seqs_length_as_stats_hash(s).each do |k, v|
38
+ stats[k == :reads ? :read_pairs : :"#{direction}_#{k}"] ||= v
39
+ end
40
+ end
59
41
  end
60
42
  stats
61
43
  end
@@ -63,15 +45,7 @@ module MiGA::Result::Stats
63
45
  def compute_stats_trimmed_fasta
64
46
  f = self[:files][:coupled].nil? ? file_path(:single) : file_path(:coupled)
65
47
  s = MiGA::MiGA.seqs_length(f, :fasta, gc: true, x: true, skew: true)
66
- {
67
- reads: s[:n],
68
- length_average: [s[:avg], 'bp'],
69
- length_standard_deviation: [s[:sd], 'bp'],
70
- g_c_content: [s[:gc], '%'],
71
- x_content: [s[:x], '%'],
72
- g_c_skew: [s[:gc_skew], '%'],
73
- a_t_skew: [s[:at_skew], '%']
74
- }
48
+ seqs_length_as_stats_hash(s)
75
49
  end
76
50
 
77
51
  def compute_stats_assembly
@@ -79,16 +53,17 @@ module MiGA::Result::Stats
79
53
  file_path(:largecontigs), :fasta,
80
54
  n50: true, gc: true, x: true, skew: true
81
55
  )
56
+ h = seqs_length_as_stats_hash(s)
82
57
  {
83
58
  contigs: s[:n],
84
59
  n50: [s[:n50], 'bp'],
85
60
  total_length: [s[:tot], 'bp'],
86
- longest_sequence: [s[:max], 'bp'],
87
- g_c_content: [s[:gc], '%'],
88
- x_content: [s[:x], '%'],
89
- g_c_skew: [s[:gc_skew], '%'],
90
- a_t_skew: [s[:at_skew], '%']
91
- }
61
+ longest_sequence: [s[:max], 'bp']
62
+ }.tap do |stats|
63
+ %i[g_c_content x_content g_c_skew a_t_skew].each do |i|
64
+ stats[i] = h[i]
65
+ end
66
+ end
92
67
  end
93
68
 
94
69
  def compute_stats_cds
@@ -253,4 +228,16 @@ module MiGA::Result::Stats
253
228
  add_file(:raw_report, "#{source.name}.ess/log")
254
229
  add_file(:report, "#{source.name}.ess/log.domain")
255
230
  end
231
+
232
+ def seqs_length_as_stats_hash(s)
233
+ {
234
+ reads: s[:n],
235
+ length_average: [s[:avg], 'bp'],
236
+ length_standard_deviation: [s[:sd], 'bp'],
237
+ g_c_content: [s[:gc], '%'],
238
+ x_content: [s[:x], '%'],
239
+ g_c_skew: [s[:gc_skew], '%'],
240
+ a_t_skew: [s[:at_skew], '%']
241
+ }
242
+ end
256
243
  end
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, 9, 0].freeze
15
+ VERSION = [1.3, 9, 2].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, 1, 22)
23
+ VERSION_DATE = Date.new(2024, 1, 23)
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.9.0
4
+ version: 1.3.9.2
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-01-22 00:00:00.000000000 Z
11
+ date: 2024-01-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: daemons
@@ -52,6 +52,20 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '1.3'
55
+ - !ruby/object:Gem::Dependency
56
+ name: net-http
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
55
69
  - !ruby/object:Gem::Dependency
56
70
  name: net-ftp
57
71
  requirement: !ruby/object:Gem::Requirement