quorum 0.3.3 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile.lock +42 -48
- data/HISTORY.md +11 -0
- data/app/assets/javascripts/quorum/quorum.js +8 -5
- data/db/migrate/20120807202555_add_gaps_to_blast_reports.rb +8 -0
- data/lib/generators/templates/blast.rb +76 -40
- data/lib/quorum/version.rb +1 -1
- data/quorum.gemspec +6 -7
- data/spec/data/fake_seq.txt +2 -0
- data/spec/data/nucl_prot_seqs.txt +15 -0
- data/spec/data/tmp/test.tgz +0 -0
- data/spec/dummy/config/initializers/quorum_initializer.rb +1 -1
- data/spec/dummy/config/quorum_settings.yml +5 -9
- data/spec/dummy/db/schema.rb +23 -19
- data/spec/dummy/quorum/bin/fetch +3 -3
- data/spec/dummy/quorum/bin/search +8 -8
- data/spec/dummy/quorum/blastdb/test/contigs.fa +13 -0
- data/spec/dummy/quorum/blastdb/test/peptides.fa +2 -0
- data/spec/dummy/quorum/blastdb/test.nhd +1 -0
- data/spec/dummy/quorum/blastdb/test.nhi +0 -0
- data/spec/dummy/quorum/blastdb/test.nhr +0 -0
- data/spec/dummy/quorum/blastdb/test.nin +0 -0
- data/spec/dummy/quorum/blastdb/test.nog +0 -0
- data/spec/dummy/quorum/blastdb/test.nsd +1 -0
- data/spec/dummy/quorum/blastdb/test.nsi +0 -0
- data/spec/dummy/quorum/blastdb/test.nsq +0 -0
- data/spec/dummy/quorum/blastdb/test.phd +1 -0
- data/spec/dummy/quorum/blastdb/test.phi +0 -0
- data/spec/dummy/quorum/blastdb/test.phr +0 -0
- data/spec/dummy/quorum/blastdb/test.pin +0 -0
- data/spec/dummy/quorum/blastdb/test.pog +0 -0
- data/spec/dummy/quorum/blastdb/test.psd +1 -0
- data/spec/dummy/quorum/blastdb/test.psi +0 -0
- data/spec/dummy/quorum/blastdb/test.psq +0 -0
- data/spec/dummy/quorum/lib/fetch_tools/blast_db.rb +6 -6
- data/spec/dummy/quorum/lib/logger.rb +4 -4
- data/spec/dummy/quorum/lib/search_tools/blast.rb +76 -40
- data/spec/dummy/quorum/lib/trollop.rb +4 -4
- data/spec/javascripts/fixtures/formatted_sequence.html +1 -1
- data/spec/javascripts/quorum_spec.js +8 -6
- data/spec/requests/jobs_spec.rb +13 -3
- data/spec/spec_helper.rb +0 -4
- data/spec/templates/blast_spec.rb +53 -3
- metadata +17 -31
data/Gemfile.lock
CHANGED
@@ -1,47 +1,47 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
quorum (0.
|
5
|
-
bio-blastxmlparser (~> 1.0
|
4
|
+
quorum (0.4.0)
|
5
|
+
bio-blastxmlparser (~> 1.1.0)
|
6
6
|
jquery-rails
|
7
7
|
net-ssh (~> 2.3.0)
|
8
8
|
rails (~> 3.1)
|
9
|
-
resque (~> 1.
|
9
|
+
resque (~> 1.20.0)
|
10
10
|
resque-result (~> 1.0.1)
|
11
11
|
|
12
12
|
GEM
|
13
13
|
remote: http://rubygems.org/
|
14
14
|
specs:
|
15
|
-
actionmailer (3.2.
|
16
|
-
actionpack (= 3.2.
|
15
|
+
actionmailer (3.2.8)
|
16
|
+
actionpack (= 3.2.8)
|
17
17
|
mail (~> 2.4.4)
|
18
|
-
actionpack (3.2.
|
19
|
-
activemodel (= 3.2.
|
20
|
-
activesupport (= 3.2.
|
18
|
+
actionpack (3.2.8)
|
19
|
+
activemodel (= 3.2.8)
|
20
|
+
activesupport (= 3.2.8)
|
21
21
|
builder (~> 3.0.0)
|
22
22
|
erubis (~> 2.7.0)
|
23
|
-
journey (~> 1.0.
|
23
|
+
journey (~> 1.0.4)
|
24
24
|
rack (~> 1.4.0)
|
25
25
|
rack-cache (~> 1.2)
|
26
26
|
rack-test (~> 0.6.1)
|
27
27
|
sprockets (~> 2.1.3)
|
28
|
-
activemodel (3.2.
|
29
|
-
activesupport (= 3.2.
|
28
|
+
activemodel (3.2.8)
|
29
|
+
activesupport (= 3.2.8)
|
30
30
|
builder (~> 3.0.0)
|
31
|
-
activerecord (3.2.
|
32
|
-
activemodel (= 3.2.
|
33
|
-
activesupport (= 3.2.
|
31
|
+
activerecord (3.2.8)
|
32
|
+
activemodel (= 3.2.8)
|
33
|
+
activesupport (= 3.2.8)
|
34
34
|
arel (~> 3.0.2)
|
35
35
|
tzinfo (~> 0.3.29)
|
36
|
-
activeresource (3.2.
|
37
|
-
activemodel (= 3.2.
|
38
|
-
activesupport (= 3.2.
|
39
|
-
activesupport (3.2.
|
36
|
+
activeresource (3.2.8)
|
37
|
+
activemodel (= 3.2.8)
|
38
|
+
activesupport (= 3.2.8)
|
39
|
+
activesupport (3.2.8)
|
40
40
|
i18n (~> 0.6)
|
41
41
|
multi_json (~> 1.0)
|
42
|
-
addressable (2.2
|
42
|
+
addressable (2.3.2)
|
43
43
|
arel (3.0.2)
|
44
|
-
bio-blastxmlparser (1.0
|
44
|
+
bio-blastxmlparser (1.1.0)
|
45
45
|
bio-logger (>= 1.0.0)
|
46
46
|
nokogiri (>= 1.5.0)
|
47
47
|
bio-logger (1.0.1)
|
@@ -54,17 +54,12 @@ GEM
|
|
54
54
|
rack-test (>= 0.5.4)
|
55
55
|
selenium-webdriver (~> 2.0)
|
56
56
|
xpath (~> 0.1.4)
|
57
|
-
childprocess (0.3.
|
58
|
-
ffi (~> 1.0.6)
|
57
|
+
childprocess (0.3.5)
|
58
|
+
ffi (~> 1.0, >= 1.0.6)
|
59
59
|
database_cleaner (0.8.0)
|
60
60
|
diff-lcs (1.1.3)
|
61
61
|
erubis (2.7.0)
|
62
|
-
|
63
|
-
activesupport (>= 2.3.9)
|
64
|
-
factory_girl_rails (1.7.0)
|
65
|
-
factory_girl (~> 2.6.0)
|
66
|
-
railties (>= 3.0.0)
|
67
|
-
ffi (1.0.11)
|
62
|
+
ffi (1.1.5)
|
68
63
|
hike (1.2.1)
|
69
64
|
i18n (0.6.0)
|
70
65
|
jasmine (1.2.0)
|
@@ -77,8 +72,8 @@ GEM
|
|
77
72
|
jquery-rails (2.0.2)
|
78
73
|
railties (>= 3.2.0, < 5.0)
|
79
74
|
thor (~> 0.14)
|
80
|
-
json (1.7.
|
81
|
-
libwebsocket (0.1.
|
75
|
+
json (1.7.4)
|
76
|
+
libwebsocket (0.1.5)
|
82
77
|
addressable
|
83
78
|
log4r (1.1.10)
|
84
79
|
mail (2.4.4)
|
@@ -100,17 +95,17 @@ GEM
|
|
100
95
|
rack
|
101
96
|
rack-test (0.6.1)
|
102
97
|
rack (>= 1.0)
|
103
|
-
rails (3.2.
|
104
|
-
actionmailer (= 3.2.
|
105
|
-
actionpack (= 3.2.
|
106
|
-
activerecord (= 3.2.
|
107
|
-
activeresource (= 3.2.
|
108
|
-
activesupport (= 3.2.
|
98
|
+
rails (3.2.8)
|
99
|
+
actionmailer (= 3.2.8)
|
100
|
+
actionpack (= 3.2.8)
|
101
|
+
activerecord (= 3.2.8)
|
102
|
+
activeresource (= 3.2.8)
|
103
|
+
activesupport (= 3.2.8)
|
109
104
|
bundler (~> 1.0)
|
110
|
-
railties (= 3.2.
|
111
|
-
railties (3.2.
|
112
|
-
actionpack (= 3.2.
|
113
|
-
activesupport (= 3.2.
|
105
|
+
railties (= 3.2.8)
|
106
|
+
railties (3.2.8)
|
107
|
+
actionpack (= 3.2.8)
|
108
|
+
activesupport (= 3.2.8)
|
114
109
|
rack-ssl (~> 1.3.2)
|
115
110
|
rake (>= 0.8.7)
|
116
111
|
rdoc (~> 3.4)
|
@@ -121,7 +116,7 @@ GEM
|
|
121
116
|
redis (2.2.2)
|
122
117
|
redis-namespace (1.0.3)
|
123
118
|
redis (< 3.0.0)
|
124
|
-
resque (1.
|
119
|
+
resque (1.20.0)
|
125
120
|
multi_json (~> 1.0)
|
126
121
|
redis-namespace (~> 1.0.2)
|
127
122
|
sinatra (>= 0.9.2)
|
@@ -131,7 +126,7 @@ GEM
|
|
131
126
|
resque-result (1.0.1)
|
132
127
|
resque (~> 1.9)
|
133
128
|
resque-meta (~> 1.0)
|
134
|
-
resque_spec (0.12.
|
129
|
+
resque_spec (0.12.3)
|
135
130
|
resque (>= 1.19.0)
|
136
131
|
rspec (>= 2.5.0)
|
137
132
|
rspec (2.11.0)
|
@@ -139,7 +134,7 @@ GEM
|
|
139
134
|
rspec-expectations (~> 2.11.0)
|
140
135
|
rspec-mocks (~> 2.11.0)
|
141
136
|
rspec-core (2.11.1)
|
142
|
-
rspec-expectations (2.11.
|
137
|
+
rspec-expectations (2.11.2)
|
143
138
|
diff-lcs (~> 1.1.3)
|
144
139
|
rspec-mocks (2.11.1)
|
145
140
|
rspec-rails (2.11.0)
|
@@ -177,11 +172,10 @@ PLATFORMS
|
|
177
172
|
|
178
173
|
DEPENDENCIES
|
179
174
|
capybara (~> 1.1)
|
180
|
-
database_cleaner (~> 0.
|
181
|
-
|
182
|
-
jasmine (~> 1.1)
|
175
|
+
database_cleaner (~> 0.8)
|
176
|
+
jasmine (~> 1.2)
|
183
177
|
mysql2 (~> 0.3.11)
|
184
178
|
quorum!
|
185
179
|
rake (~> 0.9.2)
|
186
|
-
resque_spec (~> 0.
|
187
|
-
rspec-rails (~> 2.
|
180
|
+
resque_spec (~> 0.12)
|
181
|
+
rspec-rails (~> 2.11)
|
data/HISTORY.md
CHANGED
@@ -1,3 +1,14 @@
|
|
1
|
+
## 0.4.0 (2012-08-10)
|
2
|
+
|
3
|
+
* Added Hsp gaps to Blast Job Reports.
|
4
|
+
To add gaps: `rake quorum:install:migrations` `rake db:migrate`
|
5
|
+
* Upgraded bio-blastxmlparser to v1.1.0.
|
6
|
+
See https://github.com/pjotrp/blastxmlparser/pull/1
|
7
|
+
* Fixed JavaScript RangeError: Max call stack size exceeded bug in views.
|
8
|
+
Bug was present in large datasets.
|
9
|
+
* General refactoring.
|
10
|
+
* Updated dependencies.
|
11
|
+
|
1
12
|
## 0.3.3 (2012-07-19)
|
2
13
|
|
3
14
|
* Fixed discover input sequence type bug. Upper and lowercase
|
@@ -90,8 +90,10 @@ QUORUM.viewDetailedReport = function(id, focus_id, query, algo) {
|
|
90
90
|
// Insert the detailed report data.
|
91
91
|
$('#detailed_report_dialog').empty().html(temp);
|
92
92
|
|
93
|
-
// Add tipsy to
|
94
|
-
$('
|
93
|
+
// Add tipsy to sequence data on mouse enter.
|
94
|
+
$('#detailed_report_dialog .sequence').mouseenter(function() {
|
95
|
+
$(this).find('a[rel=quorum-tipsy]').tipsy({ gravity: 's' });
|
96
|
+
});
|
95
97
|
|
96
98
|
// Highlight the selected id.
|
97
99
|
$('#' + focus_id).addClass("ui-state-highlight");
|
@@ -115,7 +117,8 @@ QUORUM.addBaseTitleIndex = function(bases, from, to, algo, type) {
|
|
115
117
|
var self = this,
|
116
118
|
forward = true,
|
117
119
|
value = 1,
|
118
|
-
index = from
|
120
|
+
index = from,
|
121
|
+
str;
|
119
122
|
|
120
123
|
if (from > to) {
|
121
124
|
forward = false;
|
@@ -129,7 +132,7 @@ QUORUM.addBaseTitleIndex = function(bases, from, to, algo, type) {
|
|
129
132
|
|
130
133
|
// Add tipsy to each base.
|
131
134
|
return _.map(bases.split(''), function(c) {
|
132
|
-
|
135
|
+
str = "<a rel='quorum-tipsy' title=" + index + ">" + c + "</a>";
|
133
136
|
forward ? index += value : index -= value;
|
134
137
|
return str;
|
135
138
|
}).join('');
|
@@ -180,7 +183,7 @@ QUORUM.formatSequenceReport = function(qseq, midline, hseq, q_from, q_to, h_from
|
|
180
183
|
}
|
181
184
|
}
|
182
185
|
return "<p class='small'>Alignment (Mouse over for positions):</p>" +
|
183
|
-
"<span class='small'><pre>" + seq + "</pre></span>";
|
186
|
+
"<span class='small sequence'><pre>" + seq + "</pre></span>";
|
184
187
|
|
185
188
|
};
|
186
189
|
|
@@ -0,0 +1,8 @@
|
|
1
|
+
class AddGapsToBlastReports < ActiveRecord::Migration
|
2
|
+
def change
|
3
|
+
add_column :quorum_blastn_job_reports, :gaps, :integer
|
4
|
+
add_column :quorum_blastx_job_reports, :gaps, :integer
|
5
|
+
add_column :quorum_tblastn_job_reports, :gaps, :integer
|
6
|
+
add_column :quorum_blastp_job_reports, :gaps, :integer
|
7
|
+
end
|
8
|
+
end
|
@@ -126,6 +126,9 @@ module Quorum
|
|
126
126
|
Digest::MD5.hexdigest(sequence).to_s + "-" + Time.now.to_f.to_s
|
127
127
|
end
|
128
128
|
|
129
|
+
#
|
130
|
+
# Blastn command
|
131
|
+
#
|
129
132
|
def generate_blastn_cmd
|
130
133
|
blastn = "blastn " <<
|
131
134
|
"-db \"#{@db}\" " <<
|
@@ -145,6 +148,9 @@ module Quorum
|
|
145
148
|
blastn
|
146
149
|
end
|
147
150
|
|
151
|
+
#
|
152
|
+
# Blastx command
|
153
|
+
#
|
148
154
|
def generate_blastx_cmd
|
149
155
|
blastx = "blastx " <<
|
150
156
|
"-db \"#{@db}\" " <<
|
@@ -164,6 +170,9 @@ module Quorum
|
|
164
170
|
blastx
|
165
171
|
end
|
166
172
|
|
173
|
+
#
|
174
|
+
# Tblastn command
|
175
|
+
#
|
167
176
|
def generate_tblastn_cmd
|
168
177
|
tblastn = "tblastn " <<
|
169
178
|
"-db \"#{@db}\" " <<
|
@@ -185,6 +194,9 @@ module Quorum
|
|
185
194
|
tblastn
|
186
195
|
end
|
187
196
|
|
197
|
+
#
|
198
|
+
# Blastp command
|
199
|
+
#
|
188
200
|
def generate_blastp_cmd
|
189
201
|
blastp = "blastp " <<
|
190
202
|
"-db \"#{@db}\" " <<
|
@@ -256,12 +268,65 @@ module Quorum
|
|
256
268
|
end
|
257
269
|
|
258
270
|
#
|
259
|
-
#
|
260
|
-
#
|
271
|
+
# Save Blast Job Report
|
272
|
+
#
|
273
|
+
# Hsps are only reported if a query hit against the Blast db.
|
274
|
+
# Only save the @data if bit_score exists and it's > the user
|
275
|
+
# defined minimum score.
|
276
|
+
#
|
277
|
+
# Set the attribute results to true for downstream processes.
|
278
|
+
#
|
279
|
+
def save_hsp_results
|
280
|
+
if @data[:bit_score] && (@data[:bit_score].to_i > @min_score.to_i)
|
281
|
+
@data[:results] = true
|
282
|
+
@data["#{@algorithm}_job_id".to_sym] = @job.method(@job_association).call.job_id
|
283
|
+
|
284
|
+
job_report = @job.method(@job_report_association).call.build(@data)
|
285
|
+
|
286
|
+
unless job_report.save!
|
287
|
+
@logger.log(
|
288
|
+
"ActiveRecord",
|
289
|
+
"Unable to save #{@algorithm} results to database.",
|
290
|
+
1,
|
291
|
+
@tmp_files
|
292
|
+
)
|
293
|
+
end
|
294
|
+
end
|
295
|
+
end
|
296
|
+
|
297
|
+
#
|
298
|
+
# Save empty Blast Job Report
|
299
|
+
#
|
300
|
+
# Set the attribute results to false for downstream processes.
|
301
|
+
#
|
302
|
+
def save_empty_results
|
303
|
+
job_report = @job.method(@job_report_association).call.build(
|
304
|
+
"#{@algorithm}_job_id" => @job.method(@job_association).call.job_id,
|
305
|
+
"results" => false
|
306
|
+
)
|
307
|
+
unless job_report.save!
|
308
|
+
@logger.log(
|
309
|
+
"ActiveRecord",
|
310
|
+
"Unable to save #{@algorithm} results to database.",
|
311
|
+
1,
|
312
|
+
@tmp_files
|
313
|
+
)
|
314
|
+
end
|
315
|
+
@logger.log(
|
316
|
+
"NCBI Blast",
|
317
|
+
"#{@algorithm} report empty.",
|
318
|
+
0,
|
319
|
+
@tmp_files
|
320
|
+
)
|
321
|
+
end
|
322
|
+
|
323
|
+
#
|
324
|
+
# Parse and save Blast results.
|
325
|
+
#
|
326
|
+
# Parse the Blast XML output and save results.
|
261
327
|
#
|
262
328
|
def parse_and_save_results
|
263
|
-
|
264
|
-
saved = false
|
329
|
+
@results = false # Did the xml contain results?
|
265
330
|
|
266
331
|
if File.size(@out) > 0
|
267
332
|
report = Bio::Blast::XmlIterator.new(@out)
|
@@ -292,28 +357,16 @@ module Quorum
|
|
292
357
|
@data[:hit_frame] = hsp.hit_frame
|
293
358
|
@data[:identity] = hsp.identity
|
294
359
|
@data[:positive] = hsp.positive
|
360
|
+
@data[:gaps] = hsp.gaps
|
295
361
|
@data[:align_len] = hsp.align_len
|
296
362
|
@data[:qseq] = hsp.qseq
|
297
363
|
@data[:hseq] = hsp.hseq
|
298
364
|
@data[:midline] = hsp.midline
|
299
365
|
|
300
|
-
# Hsps are only reported if a query hit against the Blast db.
|
301
|
-
# Only save the @data if bit_score exists.
|
302
366
|
if @data[:bit_score] &&
|
303
367
|
(@data[:bit_score].to_i > @min_score.to_i)
|
304
|
-
@
|
305
|
-
|
306
|
-
saved = true
|
307
|
-
# Build a new report for each Hsp.
|
308
|
-
job_report = @job.method(@job_report_association).call.build(@data)
|
309
|
-
unless job_report.save!
|
310
|
-
@logger.log(
|
311
|
-
"ActiveRecord",
|
312
|
-
"Unable to save #{@algorithm} results to database.",
|
313
|
-
1,
|
314
|
-
@tmp_files
|
315
|
-
)
|
316
|
-
end
|
368
|
+
@results = true
|
369
|
+
save_hsp_results
|
317
370
|
end
|
318
371
|
|
319
372
|
end
|
@@ -321,27 +374,7 @@ module Quorum
|
|
321
374
|
end
|
322
375
|
end
|
323
376
|
|
324
|
-
|
325
|
-
unless saved
|
326
|
-
job_report = @job.method(@job_report_association).call.build(
|
327
|
-
"#{@algorithm}_job_id" => @job.method(@job_association).call.job_id,
|
328
|
-
"results" => false
|
329
|
-
)
|
330
|
-
unless job_report.save!
|
331
|
-
@logger.log(
|
332
|
-
"ActiveRecord",
|
333
|
-
"Unable to save #{@algorithm} results to database.",
|
334
|
-
1,
|
335
|
-
@tmp_files
|
336
|
-
)
|
337
|
-
end
|
338
|
-
@logger.log(
|
339
|
-
"NCBI Blast",
|
340
|
-
"#{@algorithm} report empty.",
|
341
|
-
0,
|
342
|
-
@tmp_files
|
343
|
-
)
|
344
|
-
end
|
377
|
+
save_empty_results unless @results
|
345
378
|
end
|
346
379
|
|
347
380
|
#
|
@@ -388,6 +421,9 @@ module Quorum
|
|
388
421
|
end
|
389
422
|
end
|
390
423
|
|
424
|
+
#
|
425
|
+
# Remove tmp files.
|
426
|
+
#
|
391
427
|
def remove_tmp_files
|
392
428
|
`rm #{@tmp_files}` if @tmp_files
|
393
429
|
end
|
data/lib/quorum/version.rb
CHANGED
data/quorum.gemspec
CHANGED
@@ -18,15 +18,14 @@ Gem::Specification.new do |s|
|
|
18
18
|
s.add_dependency "rails", "~> 3.1"
|
19
19
|
s.add_dependency "jquery-rails"
|
20
20
|
s.add_dependency "net-ssh", "~> 2.3.0"
|
21
|
-
s.add_dependency "resque", "~> 1.
|
21
|
+
s.add_dependency "resque", "~> 1.20.0"
|
22
22
|
s.add_dependency "resque-result", "~> 1.0.1"
|
23
|
-
s.add_dependency "bio-blastxmlparser", "~> 1.0
|
23
|
+
s.add_dependency "bio-blastxmlparser", "~> 1.1.0"
|
24
24
|
|
25
25
|
s.add_development_dependency "mysql2", "~> 0.3.11"
|
26
|
-
s.add_development_dependency "rspec-rails", "~> 2.
|
27
|
-
s.add_development_dependency "resque_spec", "~> 0.
|
26
|
+
s.add_development_dependency "rspec-rails", "~> 2.11"
|
27
|
+
s.add_development_dependency "resque_spec", "~> 0.12"
|
28
28
|
s.add_development_dependency "capybara", "~> 1.1"
|
29
|
-
s.add_development_dependency "database_cleaner", "~> 0.
|
30
|
-
s.add_development_dependency "
|
31
|
-
s.add_development_dependency "jasmine", "~> 1.1"
|
29
|
+
s.add_development_dependency "database_cleaner", "~> 0.8"
|
30
|
+
s.add_development_dependency "jasmine", "~> 1.2"
|
32
31
|
end
|
@@ -30,7 +30,22 @@ GGCACCAGGGATCTTACAAGGCTGGATCTCCATAATAACAAGTTGACAGGGCCTATTCCTCCTCAAATTGGACGGTTGAA
|
|
30
30
|
GGAAATGAGCACAATGTTAAGCAGATCAAGAATTACCGCCAAAAGGTTGAGGAGGAACTCTCCAAAATTTGTGGTGACATCCTGACTATTATAGACCAGCATCTAATTCCTTCTTCCGCCTCAGCAGAAGCTAGTGTTTTCTACTATAAGATGAAAGGTGATTATTATCGGTATCTTGCTGAGTTCAAGACCGACCAAGAAAGGAAAGAGGCAGCCGAGCAGTCACTCAAGGGATATGAGGCTGCTTCAGCCACTGCCAACACCGATCTTCCATCAACACATCCAATCCGTCTTGGACTTGCTCTCAACTTCTCTGTCTTTTATTACGAGATCATGAACTCTCCTGAAAGGGCCTGCCATTTGGCTAAACAAGCTTTTGATGAGGCAATTGCAGAGTTGGACACCTTGAGTGAAGAGTCATACAAGGACAGTACTTTGATCATGCAGTTGTTGAGAGACAACCTGACTCTCTGGACATCCGATTTGCCAGAAGATGGAGGCGAGGAGAACATAAAAGCTGAAGAAGCCAAACCTACTGAGCCTGAGAATTAACTAGGTTCTTTTGGATCTTTGGCCCTGATTCAATAGTCAGATTTTTGTGGTGCTCTGCAAAGAGGGCATTTTTCAGCTTTTCTTGCAATGGATTTGGAATGGACAATATGAGCTGTCGCCACTTCATAATTACCAACCAAAGCCAAAAGATCTGAGCCTGCCTTTTCTTTATTTCTTTAAATTGTTTTTCTTTCTTACTGCCTTTATCTATTTTAAGCAAAGTGGTCGGTTGAAACAATGGATAATTCACATTTAAATCATAAGAATCTTTTTCAAGTGTTCATTACATCCGTTTTGGTTCGTTTAAAATATTGTTTCCTATGCGCTCCTAGATGGGATACAGTACAAGTATTCAACTGTTGAGCAGAGATTTTTACCTCAAAAAATTAGT
|
31
31
|
>TOG895871
|
32
32
|
AGACACAACATCATAGAAACAGATCAACAACACATTAAAATTAGCATGGATCATAGCTTACGTTGTTTTGGGTCGACACTACCCAAAACTCTTCTTCAGTTTCTGTTATCACCTTCACTCCTTCTCTTCATCTCCTTCTTCAGTTTCTCCAACGCAGCCTTCGACCTCGCCACCATACCCTTCAACGATGCCTATTCACCCCTCTTTGGGGATGGCAACCTTGTCCGCTCCGCCGATGGCAACGGTGTTCAACTCCTCCTCGATCGCTTCACCGGTTCTGGTTTCGTTTCTTCCAATATGTACCAGCATGGATTCTTCAGCGCCAATATCAAGCTACCATCGAATTACAGCGCTGGTATTTGCGTGGCCTTTTATACATCAAACAATGAGATGTTTGAGAAGACACACGATGAGTTAGACTTTGAATTCTTAGGTAATATAGCCGGAAAGCCTTGGAGGTTTCAGACAAACTTGTACGGCAATGGCAGCACCAACCGTGGCCGTGAGGAGCGGTACCGCCTCTGGTTTGATCCAACCAAGGGATTCCATAGATACAGCATTCTATGGACAGCTAAGAACATCATATTTTACATAGATGAGGTTCCAATTAGAGAAATTATAAGAAGTGAAGAAATGGGAGCTGATTACCCAGCAAAGCCAATGGCATTATACGCCACAATATGGGATGCATCAAATTGGGCCACATCGGGTGGAAA
|
33
|
+
>reverse translation of ADA84676.1 protein L-isoaspartyl methyltransferase 1 [Cicer arietinum] to a 687 base sequence of most likely codons.
|
34
|
+
atggaacagtattggagcggcagcgcgattaacgaaaacaaaggcatggtggaaaacctg
|
35
|
+
cagcgctatggcattattaaaagcagcaaagtggcggaaaccatggaaaaaattgatcgc
|
36
|
+
ggcctgtttgtgccgaacggcgtgcagccgtatattgatagcccgatgagcattggctat
|
37
|
+
aacgcgaccattagcgcgccgcatatgcatgcgacctgcctgcagctgctggaaaactat
|
38
|
+
ctgcagccgggcatgcatgcgctggatgtgggcagcggcaccggctatctgaccgcgtgc
|
39
|
+
tttgcgatgatggtgggcccgaacggccgcgcggtgggcgtggaacatattccggaactg
|
40
|
+
gtgagctttagcattaacaacattgaaaaaagcgcggcggcgccgcagctgaaagatggc
|
41
|
+
agcctgagcgtgcatgaaggcgatggccgccagggctggccggaatttgcgacctatgat
|
42
|
+
gcgattcatgtgggcgcggcggcgccggaaattccgcagccgctgattgatcagctgaaa
|
43
|
+
accggcggccgcatgattattccggtgggcaacgtgtttcaggatctgaaagtggtggat
|
44
|
+
aaaaacagcgatggcagcattagcattcgcaccgaaaccagcgtgcgctatgtgccgctg
|
45
|
+
accagcaaagaagcgcagctgaaagaa
|
33
46
|
>ADA84676.1 protein L-isoaspartyl methyltransferase 1 [Cicer arietinum]
|
34
47
|
MEQYWSGSAINENKGMVENLQRYGIIKSSKVAETMEKIDRGLFVPNGVQPYIDSPMSIGYNATISAPHMHATCLQLLENYLQPGMHALDVGSGTGYLTACFAMMVGPNGRAVGVEHIPELVSFSINNIEKSAAAPQLKDGSLSVHEGDGRQGWPEFATYDAIHVGAAAPEIPQPLIDQLKTGGRMIIPVGNVFQDLKVVDKNSDGSISIRTETSVRYVPLTSKEAQLKE
|
35
48
|
>ADA84676.2 protein L-isoaspartyl methyltransferase 1 [Cicer arietinum]
|
36
49
|
MEQYWSGSAGIIKSSKVAETMEKIDRGLFVPNGVQPYIDSPMSIGYNATISAPHMHATCLQLLENYLQINENKGMVENLQRYPGMHALDVGSGTGYLTACFAMMVGPNGRAVGVEHIPELVSFSINNIEKSAAAPQLKDGSLSVHEGDGRQGWPEFATYDAIHVGAAAPEIPGIIKSSKVAETMEKIDRGLFVPNGVQPYIDSPMSIGYNATISAPHMHATCLQLLENYLQPLIDQLKTGGRMIIPVGNVFQDLKVVDKNSDGSISIRTETGIIKSSKVAETMEKIDRGLFVPNGVQPYIDSPMSIGYNATISAPHMHATCLQLLENYLQSVRYVPLTSKEAQLKE
|
50
|
+
>VIRT10447
|
51
|
+
TVLPHLPHHLAAAQHQAPFQQVIAICQNSGQILYRPKARWWDPLLLPYMFRHKHELVQSFHK
|
data/spec/data/tmp/test.tgz
CHANGED
Binary file
|
@@ -2,7 +2,7 @@
|
|
2
2
|
#
|
3
3
|
# ==> General
|
4
4
|
# Quorum initializer safely substitutes %{RAILS_ROOT} with ::Rails.root.to_s.
|
5
|
-
#
|
5
|
+
#
|
6
6
|
# ==> NCBI BLAST+ Settings
|
7
7
|
# blast:
|
8
8
|
# remote: true to execute script on remote machine via
|
@@ -77,17 +77,13 @@ development:
|
|
77
77
|
tmp_dir: "%{RAILS_ROOT}/quorum/tmp"
|
78
78
|
blast_db: "%{RAILS_ROOT}/quorum/blastdb"
|
79
79
|
blastn:
|
80
|
-
"
|
81
|
-
"colchicum_autumnale-20101112": colchicum_autumnale-20101112
|
80
|
+
"tmp": test
|
82
81
|
blastx:
|
83
|
-
"
|
84
|
-
"colchicum_autumnale-20101112": colchicum_autumnale-20101112
|
82
|
+
"tmp": test
|
85
83
|
tblastn:
|
86
|
-
"
|
87
|
-
"colchicum_autumnale-20101112": colchicum_autumnale-20101112
|
84
|
+
"tmp": test
|
88
85
|
blastp:
|
89
|
-
"
|
90
|
-
"colchicum_autumnale-20101112": colchicum_autumnale-20101112
|
86
|
+
"tmp": test
|
91
87
|
blast_threads: 4
|
92
88
|
|
93
89
|
test:
|
data/spec/dummy/db/schema.rb
CHANGED
@@ -11,7 +11,7 @@
|
|
11
11
|
#
|
12
12
|
# It's strongly recommended to check this file into your version control system.
|
13
13
|
|
14
|
-
ActiveRecord::Schema.define(:version =>
|
14
|
+
ActiveRecord::Schema.define(:version => 20120807211452) do
|
15
15
|
|
16
16
|
create_table "quorum_blastn_job_reports", :force => true do |t|
|
17
17
|
t.string "query"
|
@@ -39,9 +39,10 @@ ActiveRecord::Schema.define(:version => 20120119000561) do
|
|
39
39
|
t.text "midline"
|
40
40
|
t.boolean "results"
|
41
41
|
t.integer "blastn_job_id"
|
42
|
-
t.datetime "created_at"
|
43
|
-
t.datetime "updated_at"
|
42
|
+
t.datetime "created_at", :null => false
|
43
|
+
t.datetime "updated_at", :null => false
|
44
44
|
t.string "hit_display_id"
|
45
|
+
t.integer "gaps"
|
45
46
|
end
|
46
47
|
|
47
48
|
create_table "quorum_blastn_jobs", :force => true do |t|
|
@@ -55,8 +56,8 @@ ActiveRecord::Schema.define(:version => 20120119000561) do
|
|
55
56
|
t.text "blast_dbs"
|
56
57
|
t.boolean "queue"
|
57
58
|
t.integer "job_id"
|
58
|
-
t.datetime "created_at"
|
59
|
-
t.datetime "updated_at"
|
59
|
+
t.datetime "created_at", :null => false
|
60
|
+
t.datetime "updated_at", :null => false
|
60
61
|
end
|
61
62
|
|
62
63
|
create_table "quorum_blastp_job_reports", :force => true do |t|
|
@@ -85,9 +86,10 @@ ActiveRecord::Schema.define(:version => 20120119000561) do
|
|
85
86
|
t.text "midline"
|
86
87
|
t.boolean "results"
|
87
88
|
t.integer "blastp_job_id"
|
88
|
-
t.datetime "created_at"
|
89
|
-
t.datetime "updated_at"
|
89
|
+
t.datetime "created_at", :null => false
|
90
|
+
t.datetime "updated_at", :null => false
|
90
91
|
t.string "hit_display_id"
|
92
|
+
t.integer "gaps"
|
91
93
|
end
|
92
94
|
|
93
95
|
create_table "quorum_blastp_jobs", :force => true do |t|
|
@@ -101,8 +103,8 @@ ActiveRecord::Schema.define(:version => 20120119000561) do
|
|
101
103
|
t.text "blast_dbs"
|
102
104
|
t.boolean "queue"
|
103
105
|
t.integer "job_id"
|
104
|
-
t.datetime "created_at"
|
105
|
-
t.datetime "updated_at"
|
106
|
+
t.datetime "created_at", :null => false
|
107
|
+
t.datetime "updated_at", :null => false
|
106
108
|
end
|
107
109
|
|
108
110
|
create_table "quorum_blastx_job_reports", :force => true do |t|
|
@@ -131,9 +133,10 @@ ActiveRecord::Schema.define(:version => 20120119000561) do
|
|
131
133
|
t.text "midline"
|
132
134
|
t.boolean "results"
|
133
135
|
t.integer "blastx_job_id"
|
134
|
-
t.datetime "created_at"
|
135
|
-
t.datetime "updated_at"
|
136
|
+
t.datetime "created_at", :null => false
|
137
|
+
t.datetime "updated_at", :null => false
|
136
138
|
t.string "hit_display_id"
|
139
|
+
t.integer "gaps"
|
137
140
|
end
|
138
141
|
|
139
142
|
create_table "quorum_blastx_jobs", :force => true do |t|
|
@@ -147,8 +150,8 @@ ActiveRecord::Schema.define(:version => 20120119000561) do
|
|
147
150
|
t.text "blast_dbs"
|
148
151
|
t.boolean "queue"
|
149
152
|
t.integer "job_id"
|
150
|
-
t.datetime "created_at"
|
151
|
-
t.datetime "updated_at"
|
153
|
+
t.datetime "created_at", :null => false
|
154
|
+
t.datetime "updated_at", :null => false
|
152
155
|
end
|
153
156
|
|
154
157
|
create_table "quorum_jobs", :force => true do |t|
|
@@ -156,8 +159,8 @@ ActiveRecord::Schema.define(:version => 20120119000561) do
|
|
156
159
|
t.text "na_sequence"
|
157
160
|
t.text "aa_sequence"
|
158
161
|
t.string "sequence_hash"
|
159
|
-
t.datetime "created_at"
|
160
|
-
t.datetime "updated_at"
|
162
|
+
t.datetime "created_at", :null => false
|
163
|
+
t.datetime "updated_at", :null => false
|
161
164
|
end
|
162
165
|
|
163
166
|
create_table "quorum_tblastn_job_reports", :force => true do |t|
|
@@ -186,9 +189,10 @@ ActiveRecord::Schema.define(:version => 20120119000561) do
|
|
186
189
|
t.text "midline"
|
187
190
|
t.boolean "results"
|
188
191
|
t.integer "tblastn_job_id"
|
189
|
-
t.datetime "created_at"
|
190
|
-
t.datetime "updated_at"
|
192
|
+
t.datetime "created_at", :null => false
|
193
|
+
t.datetime "updated_at", :null => false
|
191
194
|
t.string "hit_display_id"
|
195
|
+
t.integer "gaps"
|
192
196
|
end
|
193
197
|
|
194
198
|
create_table "quorum_tblastn_jobs", :force => true do |t|
|
@@ -202,8 +206,8 @@ ActiveRecord::Schema.define(:version => 20120119000561) do
|
|
202
206
|
t.text "blast_dbs"
|
203
207
|
t.boolean "queue"
|
204
208
|
t.integer "job_id"
|
205
|
-
t.datetime "created_at"
|
206
|
-
t.datetime "updated_at"
|
209
|
+
t.datetime "created_at", :null => false
|
210
|
+
t.datetime "updated_at", :null => false
|
207
211
|
end
|
208
212
|
|
209
213
|
end
|
data/spec/dummy/quorum/bin/fetch
CHANGED
@@ -37,7 +37,7 @@ Options:
|
|
37
37
|
:required => true, :short => "-l"
|
38
38
|
opt :tmp_directory, "Path to tmp directory", :type => :string,
|
39
39
|
:required => true, :short => "-m"
|
40
|
-
|
40
|
+
|
41
41
|
# Global settings
|
42
42
|
opt :fetch_database, "Path to fetch tool database", :type => :string,
|
43
43
|
:short => "-d"
|
@@ -46,7 +46,7 @@ Options:
|
|
46
46
|
|
47
47
|
# Algorithm specific opts
|
48
48
|
opt :blast_hit_id, "Blast hit id", :type => :string, :short => "-b"
|
49
|
-
opt :blast_hit_display_id, "Blast hit display id", :type => :string,
|
49
|
+
opt :blast_hit_display_id, "Blast hit display id", :type => :string,
|
50
50
|
:short => "-s"
|
51
51
|
opt :blast_algo, "Blast algorithm", :type => :string, :short => "-a"
|
52
52
|
end
|
@@ -110,6 +110,6 @@ Options:
|
|
110
110
|
end
|
111
111
|
|
112
112
|
if __FILE__ == $0
|
113
|
-
Quorum::Fetch.new
|
113
|
+
Quorum::Fetch.new
|
114
114
|
end
|
115
115
|
|