miga-base 1.3.9.0 → 1.3.9.2

Sign up to get free protection for your applications and to get access to all the features.
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