quorum 0.6.0 → 0.7.0
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.
- data/Gemfile.lock +3 -3
- data/HISTORY.md +6 -0
- data/app/models/quorum/job.rb +16 -1
- data/lib/generators/templates/blast.rb +1 -6
- data/lib/generators/templates/quorum_initializer.rb +12 -4
- data/lib/generators/templates/quorum_settings.yml +6 -0
- data/lib/quorum/version.rb +1 -1
- data/lib/quorum.rb +12 -4
- data/spec/config/quorum_settings.yml +3 -0
- data/spec/models/job_spec.rb +16 -0
- data/spec/templates/blast_spec.rb +1 -1
- metadata +4 -4
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
quorum (0.
|
4
|
+
quorum (0.7.0)
|
5
5
|
bio-blastxmlparser (~> 1.1.0)
|
6
6
|
jquery-rails
|
7
7
|
net-ssh (~> 2.3.0)
|
@@ -69,7 +69,7 @@ GEM
|
|
69
69
|
selenium-webdriver (>= 0.1.3)
|
70
70
|
jasmine-core (1.2.0)
|
71
71
|
journey (1.0.4)
|
72
|
-
jquery-rails (2.1.
|
72
|
+
jquery-rails (2.1.3)
|
73
73
|
railties (>= 3.1.0, < 5.0)
|
74
74
|
thor (~> 0.14)
|
75
75
|
json (1.7.5)
|
@@ -93,7 +93,7 @@ GEM
|
|
93
93
|
rack
|
94
94
|
rack-ssl (1.3.2)
|
95
95
|
rack
|
96
|
-
rack-test (0.6.
|
96
|
+
rack-test (0.6.2)
|
97
97
|
rack (>= 1.0)
|
98
98
|
rails (3.2.8)
|
99
99
|
actionmailer (= 3.2.8)
|
data/HISTORY.md
CHANGED
@@ -1,3 +1,9 @@
|
|
1
|
+
## 0.7.0 (2012-10-02)
|
2
|
+
|
3
|
+
* Fixed empty blast report bug. https://github.com/ncgr/quorum/issues/6
|
4
|
+
* Added max_sequence_size to quorum_settings.yml to allow user to specify
|
5
|
+
max input sequence size in bytes. Defaults to 50 KB.
|
6
|
+
|
1
7
|
## 0.6.0 (2012-09-21)
|
2
8
|
|
3
9
|
* Renamed blast report max_score to max_target_seqs to match NCBI Blast
|
data/app/models/quorum/job.rb
CHANGED
@@ -31,7 +31,7 @@ module Quorum
|
|
31
31
|
|
32
32
|
validates_associated :blastn_job, :blastx_job, :tblastn_job, :blastp_job
|
33
33
|
|
34
|
-
validate :filter_input_sequences, :algorithm_selected
|
34
|
+
validate :filter_input_sequences, :algorithm_selected, :sequence_size
|
35
35
|
|
36
36
|
#
|
37
37
|
# Fetch Blast hit_id, hit_display_id, queue Resque worker and
|
@@ -136,6 +136,21 @@ module Quorum
|
|
136
136
|
end
|
137
137
|
end
|
138
138
|
|
139
|
+
#
|
140
|
+
# Validate input sequence size.
|
141
|
+
#
|
142
|
+
# Defaults to 50 KB. See lib/quorum.rb.
|
143
|
+
#
|
144
|
+
def sequence_size
|
145
|
+
if self.sequence.size > Quorum.max_sequence_size
|
146
|
+
errors.add(
|
147
|
+
:sequence,
|
148
|
+
" - Input sequence size too large. " <<
|
149
|
+
"Max size: #{Quorum.max_sequence_size / 1024} KB"
|
150
|
+
)
|
151
|
+
end
|
152
|
+
end
|
153
|
+
|
139
154
|
#
|
140
155
|
# Queue Resque workers.
|
141
156
|
#
|
@@ -10,13 +10,22 @@ settings = YAML.load_file(
|
|
10
10
|
|
11
11
|
## Sub %{RAILS_ROOT} ##
|
12
12
|
settings.keys.each do |k|
|
13
|
-
settings[k.to_s].each_value
|
14
|
-
|
15
|
-
v.
|
13
|
+
if settings[k.to_s].respond_to?(:each_value)
|
14
|
+
settings[k.to_s].each_value do |v|
|
15
|
+
if v.kind_of?(String)
|
16
|
+
v.to_s.gsub!('%{RAILS_ROOT}', ::Rails.root.to_s)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
else
|
20
|
+
if settings[k.to_s].kind_of?(String)
|
21
|
+
settings[k.to_s].gsub!('%{RAILS_ROOT}', ::Rails.root.to_s)
|
16
22
|
end
|
17
23
|
end
|
18
24
|
end
|
19
25
|
|
26
|
+
## Quorum General Settings ##
|
27
|
+
Quorum.max_sequence_size = settings['max_sequence_size']
|
28
|
+
|
20
29
|
blast = settings['blast']
|
21
30
|
|
22
31
|
## Quorum Blast Settings ##
|
@@ -33,4 +42,3 @@ Quorum.blastp = blast['blastp']
|
|
33
42
|
Quorum.blastn = blast['blastn']
|
34
43
|
Quorum.blastx = blast['blastx']
|
35
44
|
Quorum.blast_threads = blast['blast_threads']
|
36
|
-
|
@@ -3,6 +3,9 @@
|
|
3
3
|
# ==> General
|
4
4
|
# Quorum initializer safely substitutes %{RAILS_ROOT} with ::Rails.root.to_s.
|
5
5
|
#
|
6
|
+
# max_sequence_size: Max input sequence size in bytes.
|
7
|
+
# Defaults to 51200 (50 KB).
|
8
|
+
#
|
6
9
|
# ==> NCBI BLAST+ Settings
|
7
10
|
# blast:
|
8
11
|
# remote: true to execute script on remote machine via
|
@@ -64,6 +67,7 @@
|
|
64
67
|
# Defaults to 1.
|
65
68
|
|
66
69
|
development:
|
70
|
+
max_sequence_size:
|
67
71
|
blast:
|
68
72
|
remote: false
|
69
73
|
ssh_host:
|
@@ -95,6 +99,7 @@ development:
|
|
95
99
|
blast_threads:
|
96
100
|
|
97
101
|
test:
|
102
|
+
max_sequence_size:
|
98
103
|
blast:
|
99
104
|
remote: false
|
100
105
|
ssh_host:
|
@@ -126,6 +131,7 @@ test:
|
|
126
131
|
blast_threads:
|
127
132
|
|
128
133
|
production:
|
134
|
+
max_sequence_size:
|
129
135
|
blast:
|
130
136
|
remote: true
|
131
137
|
ssh_host:
|
data/lib/quorum/version.rb
CHANGED
data/lib/quorum.rb
CHANGED
@@ -11,17 +11,25 @@ require "workers/quorum"
|
|
11
11
|
module Quorum
|
12
12
|
|
13
13
|
## Supported Algorithms ##
|
14
|
-
BLAST_ALGORITHMS = ["blastn", "blastx", "blastp", "tblastn"]
|
14
|
+
BLAST_ALGORITHMS = ["blastn", "blastx", "blastp", "tblastn"].freeze
|
15
15
|
|
16
|
-
mattr_accessor :
|
17
|
-
|
18
|
-
|
16
|
+
mattr_accessor :max_sequence_size, :blast_remote, :blast_ssh_host,
|
17
|
+
:blast_ssh_user, :blast_ssh_options, :blast_bin,
|
18
|
+
:blast_log_dir, :blast_tmp_dir, :blast_db, :tblastn,
|
19
|
+
:blastp, :blastn, :blastx, :blast_threads
|
19
20
|
|
20
21
|
## Deprecated ##
|
21
22
|
mattr_accessor :blast_script
|
22
23
|
|
23
24
|
class << self
|
24
25
|
|
26
|
+
## General ##
|
27
|
+
|
28
|
+
# Max input sequence size.
|
29
|
+
def max_sequence_size
|
30
|
+
@@max_sequence_size || 50.kilobytes
|
31
|
+
end
|
32
|
+
|
25
33
|
## Blast ##
|
26
34
|
|
27
35
|
# Execute remotely.
|
@@ -1,4 +1,5 @@
|
|
1
1
|
development:
|
2
|
+
max_sequence_size:
|
2
3
|
blast:
|
3
4
|
remote: false
|
4
5
|
ssh_host:
|
@@ -19,6 +20,7 @@ development:
|
|
19
20
|
blast_threads: 4
|
20
21
|
|
21
22
|
test:
|
23
|
+
max_sequence_size:
|
22
24
|
blast:
|
23
25
|
remote: false
|
24
26
|
ssh_host:
|
@@ -39,6 +41,7 @@ test:
|
|
39
41
|
blast_threads:
|
40
42
|
|
41
43
|
production:
|
44
|
+
max_sequence_size:
|
42
45
|
blast:
|
43
46
|
remote: true
|
44
47
|
ssh_host:
|
data/spec/models/job_spec.rb
CHANGED
@@ -12,6 +12,22 @@ describe Quorum::Job do
|
|
12
12
|
@job.should have(1).error_on(:algorithm)
|
13
13
|
end
|
14
14
|
|
15
|
+
it "fails validation when input sequence size is too large" do
|
16
|
+
@job.sequence = ">header\n" << "a" * 51200
|
17
|
+
@job.build_blastn_job
|
18
|
+
@job.blastn_job.queue = true
|
19
|
+
@job.should have(1).errors_on(:sequence)
|
20
|
+
end
|
21
|
+
|
22
|
+
it "fails validation with invalid sequence data" do
|
23
|
+
@job.sequence = File.open(
|
24
|
+
File.expand_path("../../data/seqs_not_fa.txt", __FILE__)
|
25
|
+
).read
|
26
|
+
@job.build_blastn_job
|
27
|
+
@job.blastn_job.queue = true
|
28
|
+
@job.should have(1).errors_on(:sequence)
|
29
|
+
end
|
30
|
+
|
15
31
|
it "passes validation with algorithm and valid sequence data" do
|
16
32
|
@job.sequence = File.open(
|
17
33
|
File.expand_path("../../data/nucl_prot_seqs.txt", __FILE__)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: quorum
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.7.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-10-02 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|
@@ -402,7 +402,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
402
402
|
version: '0'
|
403
403
|
segments:
|
404
404
|
- 0
|
405
|
-
hash:
|
405
|
+
hash: 376462079150931508
|
406
406
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
407
407
|
none: false
|
408
408
|
requirements:
|
@@ -411,7 +411,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
411
411
|
version: '0'
|
412
412
|
segments:
|
413
413
|
- 0
|
414
|
-
hash:
|
414
|
+
hash: 376462079150931508
|
415
415
|
requirements: []
|
416
416
|
rubyforge_project:
|
417
417
|
rubygems_version: 1.8.24
|