sequenceserver 0.8.6 → 0.8.7.beta1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 497b668eaeb852effdb0181e176e37c7c8fe746f
4
+ data.tar.gz: 1999260fc36d0d0defccbe80123f5dc85650f6a5
5
+ SHA512:
6
+ metadata.gz: 00b1a531ab3dae22b949581e8d2d73ef0948b12186284701dac14e90aa790f959c0b19f3c6daaa8b4d88e6f7b8fa5099fb7c632e7335b612b5bdaf1b4b17beca
7
+ data.tar.gz: 4600be84bc18e1ac2e93f11340355a867292bcec70d6c79758a6a9d6e88b75080870fea5e39c9faeaff0029bcc20187adb2daff2e52c3a92ef119767f1e127e7
@@ -0,0 +1,217 @@
1
+ require 'ruby-prof'
2
+
3
+ $:.unshift '.'
4
+
5
+ #require 'sinatra/base'
6
+ require 'yaml'
7
+ require 'logger'
8
+ require 'fileutils'
9
+ require 'sequenceserver/helpers'
10
+ require 'sequenceserver/blast'
11
+ require 'sequenceserver/sequencehelpers'
12
+ require 'sequenceserver/sinatralikeloggerformatter'
13
+ require 'sequenceserver/customisation'
14
+ require 'sequenceserver/version'
15
+
16
+ require 'sequenceserver'
17
+
18
+
19
+ query = '>1111883
20
+ GCTGGCGGCGTGCCTAACACATGTAAGTCGAACGGGACTGGGGGCAACTCCAGTTCAGTG
21
+ GCAGACGGGTGCGTAACACGTGAGCAACTTGTCCGACGGCGGGGGATAGCCGGCCCAACG
22
+ GCCGGGTAATACCGCGTACGCTCGTTTAGGGACATCCCTGAATGAGGAAAGCCGTAAGGC
23
+ ACCGACGGAGAGGCTCGCGGCCTATCAGCTAGTTGGCGGGGTAACGGCCCACCAAGGCGA
24
+ CGACGGGTAGCTGGTCTGAGAGGATGGCCAGCCACATTGGGACTGAGACACGGCCCAGAC
25
+ TCCTACGGGAGGCAGCAGTGGGGAATCTTGCGCAATGGCCGCAAGGCTGACGCAGCGACG
26
+ CCGCGTGTGGGATGACGGCCTTCGGGTTGTAAACCACTGTCGGGAGGAACGAATACTCGG
27
+ CTAGTCCGAGGGTGACGGTACCTCCAAAGGAAGCACCGGCTAACTCCGTGCCAGCAGCCG
28
+ CGGTAATACGGAGGGTGCGAGCGTTGTCCGGAATCACTGGGCGTAAAGGGCGCGTAGGTG
29
+ GCCCGTTAAGTGGCTGGTGAAATCCCGGGGCTCAACTCCGGGGCTGCCGGTCAGACTGGC
30
+ GAGCTAGAGCACGGTAGGGGCAGATGGAATTCCCGGTGTAGCGGTGGAATGCGTAGATAT
31
+ CGGGAAGAATACCAGTGGCGAAGGCGTTCTGCTGGGCCGTTGCTGACACTGAGGCGCGAC
32
+ AGCGTGGGGAGCAAACAGGATTAGATACCCTGGTAGTCCACGCCGTAAACGATGGACACT
33
+ AGACGTCGGGGGGAGCGACCCTCCCGGTGTCGTCGCTAACGCAGTAAGTGTCCCGCCTGG
34
+ GGAGTACGGCCGCAAGGCTGAAACTCAAAGGAATTGACGGGGGCCCGCACAAGCGGTGGA
35
+ GCATGTGGTTTAATTCGAAGCAACGCGAAGAACCTTACCTGGGCTTGACATGCTGGTGCA
36
+ AGCCGGTGGAAACATCGGCCCCTCTTCGGAGCGCCAGCACAGGTGCTGCATGGCTGTCGT
37
+ CAGCTCGTGTCGTGAGATGTTGGGTTAAGTCCCGCAACGAGCGCAACTCTCGCTCCCAGT
38
+ TGCCAGCGGTTCGGCCGGGGACTCTGGGGGGACTGCCGGCGTTAAGCCGGAGGAAGGTGG
39
+ GGACGACGTCAAGTCATCATGGCCCTTACGTCCAGGGCGACACACGTGCTACAATGCCTG
40
+ GTACAGCGCGTCGCGAACTCGCAAGAGGGAGCCAATCGCCAAAAGCCGGGCTAAGTTCGG
41
+ ATTGTCGTCTGCAACTCGACGGCATGAAGCCGGAATCGCTAGTAATCGCGGATCAGCCAC
42
+ GCCGCGGTGAATACGTTCCCGGGCCTTGTACACACCGCCCGTCACGCCATGGAAGCCGGA
43
+ GGGACCCGAAACCGGTGGGCCAACCGCAAGGGGGCAGCCGTCTAAGGT'
44
+
45
+ #blastn -db '/home/ben/git/sequenceserver/db/97_otus.fasta' -query '/tmp/sequenceserver_query20140119-10926-qt2ecp' -task blastn -num_threads 1 -html
46
+ method = 'blastn'#params['method']
47
+ databases = ['/home/ben/git/sequenceserver/db/97_otus.fasta']#params[:databases]
48
+ sequence = query #params[:sequence]
49
+ advanced_opts = '-max_target_seqs 1'#params['advanced']
50
+
51
+ # evaluate empty sequence as nil, otherwise as fasta
52
+ # sequence = sequence.empty? ? nil : to_fasta(sequence)
53
+
54
+ # blastn implies blastn, not megablast; but let's not interfere if a user
55
+ # specifies `task` herself
56
+ if method == 'blastn' and not advanced_opts =~ /task/
57
+ #advanced_opts << ' -task blastn '
58
+ end
59
+
60
+
61
+ # run blast and log
62
+ blast = SequenceServer::Blast.new(method, sequence, databases.join(' '), advanced_opts)
63
+ blast.run!
64
+ puts('Ran: ' + blast.command)
65
+
66
+
67
+ def format_blast_results(result, databases)
68
+ formatted_result = ''
69
+ @all_retrievable_ids = []
70
+ string_of_used_databases = databases.join(' ')
71
+ blast_database_number = 0
72
+ line_number = 0
73
+ started_query = false
74
+ finished_database_summary = false
75
+ finished_alignments = false
76
+ reference_string = ''
77
+ database_summary_string = ''
78
+ result.each do |line|
79
+ line_number += 1
80
+ next if line_number <= 5 #skip the first 5 lines
81
+
82
+ # Add the reference to the end, not the start, of the blast result
83
+ if line_number >= 7 and line_number <= 15
84
+ reference_string += line
85
+ next
86
+ end
87
+
88
+ if !finished_database_summary and line_number > 15
89
+ database_summary_string += line
90
+ finished_database_summary = true if line.match(/total letters/)
91
+ next
92
+ end
93
+
94
+ # Remove certain lines from the output
95
+ skipped_lines = [/^<\/BODY>/,/^<\/HTML>/,/^<\/PRE>/]
96
+ skip = false
97
+ skipped_lines.each do |skippy|
98
+ # $stderr.puts "`#{line}' matches #{skippy}?"
99
+ if skippy.match(line)
100
+ skip = true
101
+ # $stderr.puts 'yes'
102
+ else
103
+ # $stderr.puts 'no'
104
+ end
105
+ end
106
+ next if skip
107
+
108
+ # Remove the javascript inclusion
109
+ line.gsub!(/^<script src=\"blastResult.js\"><\/script>/, '')
110
+
111
+ if line.match(/^>/) # If line to possibly replace
112
+ # Reposition the anchor to the end of the line, so that it both still works and
113
+ # doesn't interfere with the diagnostic space at the beginning of the line.
114
+ #
115
+ # There are two cases:
116
+ #
117
+ # database formatted _with_ -parse_seqids
118
+ line.gsub!(/^>(.+)(<a.*><\/a>)(.*)/, '>\1\3\2')
119
+ #
120
+ # database formatted _without_ -parse_seqids
121
+ line.gsub!(/^>(<a.*><\/a>)(.*)/, '>\2\1')
122
+
123
+ # get hit coordinates -- useful for linking to genome browsers
124
+ hit_length = result[line_number..-1].index{|l| l =~ />lcl|Lambda/}
125
+ hit_coordinates = result[line_number, hit_length].grep(/Sbjct/).
126
+ map(&:split).map{|l| [l[1], l[-1]]}.flatten.map(&:to_i).minmax
127
+
128
+ # Create the hyperlink (if required)
129
+ formatted_result += construct_sequence_hyperlink_line(line, databases, hit_coordinates)
130
+ else
131
+ # Surround each query's result in <div> tags so they can be coloured by CSS
132
+ if matches = line.match(/^<b>Query=<\/b> (.*)/) # If starting a new query, then surround in new <div> tag, and finish the last one off
133
+ line = "<div class=\"resultn\" id=\"#{matches[1]}\">\n<h3>Query= #{matches[1]}</h3><pre>"
134
+ unless blast_database_number == 0
135
+ line = "</pre></div>\n#{line}"
136
+ end
137
+ blast_database_number += 1
138
+ elsif line.match(/^ Database: /) and !finished_alignments
139
+ formatted_result += "</div>\n<pre>#{database_summary_string}\n\n"
140
+ finished_alignments = true
141
+ end
142
+ formatted_result += line
143
+ end
144
+ end
145
+ formatted_result << "</pre>"
146
+
147
+ link_to_fasta_of_all = "/get_sequence/?id=#{@all_retrievable_ids.join(' ')}&db=#{string_of_used_databases}"
148
+ # #dbs must be sep by ' '
149
+ retrieval_text = @all_retrievable_ids.empty? ? '' : "<a href='#{url(link_to_fasta_of_all)}'>FASTA of #{@all_retrievable_ids.length} retrievable hit(s)</a>"
150
+
151
+ "<h2>Results</h2>"+
152
+ retrieval_text +
153
+ "<br/><br/>" +
154
+ formatted_result +
155
+ "<br/>" +
156
+ "<pre>#{reference_string.strip}</pre>"
157
+ end
158
+
159
+ def construct_sequence_hyperlink_line(line, databases, hit_coordinates)
160
+ matches = line.match(/^>(.+)/)
161
+ sequence_id = matches[1]
162
+
163
+ link = nil
164
+
165
+ # If a custom sequence hyperlink method has been defined,
166
+ # use that.
167
+ options = {
168
+ :sequence_id => sequence_id,
169
+ :databases => databases,
170
+ :hit_coordinates => hit_coordinates
171
+ }
172
+
173
+ # First precedence: construct the whole line to be customised
174
+ if self.respond_to?(:construct_custom_sequence_hyperlinking_line)
175
+ settings.log.debug("Using custom hyperlinking line creator with sequence #{options.inspect}")
176
+ link_line = construct_custom_sequence_hyperlinking_line(options)
177
+ unless link_line.nil?
178
+ return link_line
179
+ end
180
+ end
181
+
182
+ # If we have reached here, custom construction of the
183
+ # whole line either wasn't defined, or returned nil
184
+ # (indicating failure)
185
+ if self.respond_to?(:construct_custom_sequence_hyperlink)
186
+ # settings.log.debug("Using custom hyperlink creator with sequence #{options.inspect}")
187
+ link = construct_custom_sequence_hyperlink(options)
188
+ else
189
+ # settings.log.debug("Using standard hyperlink creator with sequence `#{options.inspect}'")
190
+ link = construct_standard_sequence_hyperlink(options)
191
+ end
192
+
193
+ # Return the BLAST output line with the link in it
194
+ if link.nil?
195
+ # settings.log.debug('No link added link for: `'+ sequence_id +'\'')
196
+ return line
197
+ else
198
+ settings.log.debug('Added link for: `'+ sequence_id +'\''+ link)
199
+ return "><a href='#{url(link)}' target='_blank'>#{sequence_id}</a> \n"
200
+ end
201
+
202
+ end
203
+
204
+ # Advanced options are specified by the user. Here they are checked for interference with SequenceServer operations.
205
+ # raise ArgumentError if an error has occurred, otherwise return without value
206
+ def validate_advanced_parameters(advanced_options)
207
+ raise ArgumentError, "Invalid characters detected in the advanced options" unless advanced_options =~ /\A[a-z0-9\-_\. ']*\Z/i
208
+ disallowed_options = %w(-out -html -outfmt -db -query)
209
+ disallowed_options.each do |o|
210
+ raise ArgumentError, "The advanced BLAST option \"#{o}\" is used internally by SequenceServer and so cannot be specified by the you" if advanced_options =~ /#{o}/i
211
+ end
212
+ end
213
+
214
+ puts format_blast_results(blast.result, databases)
215
+
216
+
217
+
@@ -337,8 +337,8 @@ module SequenceServer
337
337
  <em>#{found_sequences_count > sequenceids.length ? 'more' : 'less'}</em>
338
338
  sequence than expected.</strong></p>
339
339
 
340
- <p>This is likely due to a problem with how databases are formatted.
341
- <strong>Please share this text with the person managing this website so
340
+ <p>This is likely due to a problem with how databases are formatted.
341
+ <strong>Please share this text with the person managing this website so
342
342
  they can resolve the issue.</strong></p>
343
343
 
344
344
  <p> You requested #{sequenceids.length} sequence#{sequenceids.length > 1 ? 's' : ''}
@@ -375,7 +375,10 @@ HEADER
375
375
  end
376
376
 
377
377
  def format_blast_results(result, databases)
378
- formatted_result = ''
378
+ # Constructing the result in an Array and then calling Array#join is much faster than
379
+ # building up a String and using +=, as older versions of SeqServ did.
380
+ formatted_results = []
381
+
379
382
  @all_retrievable_ids = []
380
383
  string_of_used_databases = databases.join(' ')
381
384
  blast_database_number = 0
@@ -436,7 +439,7 @@ HEADER
436
439
  map(&:split).map{|l| [l[1], l[-1]]}.flatten.map(&:to_i).minmax
437
440
 
438
441
  # Create the hyperlink (if required)
439
- formatted_result += construct_sequence_hyperlink_line(line, databases, hit_coordinates)
442
+ formatted_results << construct_sequence_hyperlink_line(line, databases, hit_coordinates)
440
443
  else
441
444
  # Surround each query's result in <div> tags so they can be coloured by CSS
442
445
  if matches = line.match(/^<b>Query=<\/b> (.*)/) # If starting a new query, then surround in new <div> tag, and finish the last one off
@@ -446,13 +449,13 @@ HEADER
446
449
  end
447
450
  blast_database_number += 1
448
451
  elsif line.match(/^ Database: /) and !finished_alignments
449
- formatted_result += "</div>\n<pre>#{database_summary_string}\n\n"
452
+ formatted_results << "</div>\n<pre>#{database_summary_string}\n\n"
450
453
  finished_alignments = true
451
454
  end
452
- formatted_result += line
455
+ formatted_results << line
453
456
  end
454
457
  end
455
- formatted_result << "</pre>"
458
+ formatted_results << "</pre>"
456
459
 
457
460
  link_to_fasta_of_all = "/get_sequence/?id=#{@all_retrievable_ids.join(' ')}&db=#{string_of_used_databases}"
458
461
  # #dbs must be sep by ' '
@@ -461,7 +464,7 @@ HEADER
461
464
  "<h2>Results</h2>"+
462
465
  retrieval_text +
463
466
  "<br/><br/>" +
464
- formatted_result +
467
+ formatted_results.join +
465
468
  "<br/>" +
466
469
  "<pre>#{reference_string.strip}</pre>"
467
470
  end
@@ -1,7 +1,7 @@
1
1
  Gem::Specification.new do |s|
2
2
  # meta
3
3
  s.name = 'sequenceserver'
4
- s.version = '0.8.6'
4
+ s.version = '0.8.7.beta1'
5
5
  s.authors = ['Anurag Priyam', 'Ben J Woodcroft', 'Yannick Wurm']
6
6
  s.email = 'anurag08priyam@gmail.com'
7
7
  s.homepage = 'http://sequenceserver.com'
data/tests/test_ui.rb~ ADDED
@@ -0,0 +1,104 @@
1
+ require 'rspec'
2
+ require 'watir-webdriver'
3
+ require 'headless'
4
+
5
+ # These shared examples should work for
6
+ shared_examples_for 'a browser' do
7
+ let(:seqserv_url){'http://localhost:4567'}
8
+
9
+ it 'should simply go the seqserv webpage' do
10
+ b.goto seqserv_url
11
+ b.url.gsub(/\/$/,'').should eq(seqserv_url)
12
+ b.ready_state.should eq('complete')
13
+ end
14
+
15
+ it 'should do a simple blastp' do
16
+ b.goto seqserv_url
17
+
18
+ # Nucleotide database should be available
19
+ b.checkbox(:value => 'e205221dd32dc53ebfc9fb48cbdecd9e').enabled?.should eq(true)
20
+
21
+ # First up the blast button should be disabled
22
+ b.button(:id => 'method').text.should eq('BLAST')
23
+ b.button(:id => 'method').enabled?.should eq(false)
24
+
25
+ # Pick a protein blast database
26
+ b.checkbox(:value => '6669b1c88665158621afc06407ce88ea').set
27
+ b.checkbox(:value => '6669b1c88665158621afc06407ce88ea').checked?.should eq(true)
28
+
29
+ # nuc dbs now disabled
30
+ b.checkbox(:value => 'e205221dd32dc53ebfc9fb48cbdecd9e').enabled?.should eq(false)
31
+
32
+ # The blast button should still be disabled
33
+ b.button(:id => 'method').text.should eq('BLAST')
34
+ b.button(:id => 'method').enabled?.should eq(false)
35
+
36
+ # Give a sequence we know should hit
37
+ b.textarea(:name => 'sequence').set 'YTLPPPPTKLYSAPISCRKNKTGHWMDDILSIKTGESCPVNNYLHSGFLA'
38
+
39
+ #blast butn now active
40
+ b.button(:id => 'method').text.should eq('BLASTP')
41
+ b.button(:id => 'method').enabled?.should eq(true)
42
+
43
+ # Run the blast
44
+ b.button(:id => 'method').click
45
+
46
+ while b.div(:id => 'result').text.include?('Waiting for BLAST to be run')
47
+ end
48
+
49
+ # blast should have worked
50
+ b.div(:id => 'result').text.include?('Sequences producing significant alignments: ').should eq(true)
51
+ end
52
+ end
53
+
54
+ #####################################################################################
55
+ #+++++++++++ Below is admin code, hopefully not necessary to mess around with to test new UI specs
56
+
57
+ # NOT thread-safe, at least because of the interaction with headless
58
+ class BrowserAdmin
59
+ def self.setup_browser(type)
60
+ case type
61
+ when :firefox then
62
+ Watir::Browser.new :firefox
63
+ when :chrome then
64
+ Watir::Browser.new :chrome
65
+ when :headless_firefox then
66
+ @headless = Headless.new
67
+ @headless.start
68
+ Watir::Browser.new :firefox
69
+ when :headless_chrome then
70
+ @headless = Headless.new
71
+ @headless.start
72
+ Watir::Browser.new :chrome
73
+ else
74
+ raise "Unknown browser type asked for: #{type.inspect}"
75
+ end
76
+ end
77
+
78
+ def self.teardown_browser(browser)
79
+ browser.close
80
+
81
+ # Re-head again, but maybe this makes no difference
82
+ @headless.destroy unless @headless.nil?
83
+ @headless = nil
84
+ end
85
+ end
86
+
87
+
88
+ describe 'ui' do
89
+ [:firefox, :chrome, :headless_firefox, :headless_chrome].each do |bro|
90
+ context bro.to_s do
91
+ it_behaves_like 'a browser' do
92
+ browser = nil
93
+ before do
94
+ browser = BrowserAdmin.setup_browser bro
95
+ end
96
+ after do
97
+ BrowserAdmin.teardown_browser browser
98
+ end
99
+ let(:b){browser}
100
+ end
101
+ end
102
+ end
103
+ end
104
+
metadata CHANGED
@@ -1,8 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sequenceserver
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.6
5
- prerelease:
4
+ version: 0.8.7.beta1
6
5
  platform: ruby
7
6
  authors:
8
7
  - Anurag Priyam
@@ -11,224 +10,216 @@ authors:
11
10
  autorequire:
12
11
  bindir: bin
13
12
  cert_chain: []
14
- date: 2013-11-28 00:00:00.000000000 Z
13
+ date: 2014-01-21 00:00:00.000000000 Z
15
14
  dependencies:
16
15
  - !ruby/object:Gem::Dependency
17
16
  name: bundler
18
17
  requirement: !ruby/object:Gem::Requirement
19
- none: false
20
18
  requirements:
21
- - - ~>
19
+ - - "~>"
22
20
  - !ruby/object:Gem::Version
23
21
  version: '1.2'
24
22
  type: :runtime
25
23
  prerelease: false
26
24
  version_requirements: !ruby/object:Gem::Requirement
27
- none: false
28
25
  requirements:
29
- - - ~>
26
+ - - "~>"
30
27
  - !ruby/object:Gem::Version
31
28
  version: '1.2'
32
29
  - !ruby/object:Gem::Dependency
33
30
  name: sinatra
34
31
  requirement: !ruby/object:Gem::Requirement
35
- none: false
36
32
  requirements:
37
- - - ~>
33
+ - - "~>"
38
34
  - !ruby/object:Gem::Version
39
35
  version: 1.3.0
40
36
  type: :runtime
41
37
  prerelease: false
42
38
  version_requirements: !ruby/object:Gem::Requirement
43
- none: false
44
39
  requirements:
45
- - - ~>
40
+ - - "~>"
46
41
  - !ruby/object:Gem::Version
47
42
  version: 1.3.0
48
43
  - !ruby/object:Gem::Dependency
49
44
  name: ptools
50
45
  requirement: !ruby/object:Gem::Requirement
51
- none: false
52
46
  requirements:
53
- - - ! '>='
47
+ - - ">="
54
48
  - !ruby/object:Gem::Version
55
49
  version: '0'
56
50
  type: :runtime
57
51
  prerelease: false
58
52
  version_requirements: !ruby/object:Gem::Requirement
59
- none: false
60
53
  requirements:
61
- - - ! '>='
54
+ - - ">="
62
55
  - !ruby/object:Gem::Version
63
56
  version: '0'
64
57
  - !ruby/object:Gem::Dependency
65
58
  name: minitest
66
59
  requirement: !ruby/object:Gem::Requirement
67
- none: false
68
60
  requirements:
69
- - - ! '>='
61
+ - - ">="
70
62
  - !ruby/object:Gem::Version
71
63
  version: '0'
72
64
  type: :development
73
65
  prerelease: false
74
66
  version_requirements: !ruby/object:Gem::Requirement
75
- none: false
76
67
  requirements:
77
- - - ! '>='
68
+ - - ">="
78
69
  - !ruby/object:Gem::Version
79
70
  version: '0'
80
71
  - !ruby/object:Gem::Dependency
81
72
  name: rack-test
82
73
  requirement: !ruby/object:Gem::Requirement
83
- none: false
84
74
  requirements:
85
- - - ! '>='
75
+ - - ">="
86
76
  - !ruby/object:Gem::Version
87
77
  version: '0'
88
78
  type: :development
89
79
  prerelease: false
90
80
  version_requirements: !ruby/object:Gem::Requirement
91
- none: false
92
81
  requirements:
93
- - - ! '>='
82
+ - - ">="
94
83
  - !ruby/object:Gem::Version
95
84
  version: '0'
96
85
  - !ruby/object:Gem::Dependency
97
86
  name: watir-webdriver
98
87
  requirement: !ruby/object:Gem::Requirement
99
- none: false
100
88
  requirements:
101
- - - ! '>='
89
+ - - ">="
102
90
  - !ruby/object:Gem::Version
103
91
  version: '0'
104
92
  type: :development
105
93
  prerelease: false
106
94
  version_requirements: !ruby/object:Gem::Requirement
107
- none: false
108
95
  requirements:
109
- - - ! '>='
96
+ - - ">="
110
97
  - !ruby/object:Gem::Version
111
98
  version: '0'
112
99
  - !ruby/object:Gem::Dependency
113
100
  name: headless
114
101
  requirement: !ruby/object:Gem::Requirement
115
- none: false
116
102
  requirements:
117
- - - ! '>='
103
+ - - ">="
118
104
  - !ruby/object:Gem::Version
119
105
  version: '0'
120
106
  type: :development
121
107
  prerelease: false
122
108
  version_requirements: !ruby/object:Gem::Requirement
123
- none: false
124
109
  requirements:
125
- - - ! '>='
110
+ - - ">="
126
111
  - !ruby/object:Gem::Version
127
112
  version: '0'
128
113
  - !ruby/object:Gem::Dependency
129
114
  name: rspec
130
115
  requirement: !ruby/object:Gem::Requirement
131
- none: false
132
116
  requirements:
133
- - - ! '>='
117
+ - - ">="
134
118
  - !ruby/object:Gem::Version
135
119
  version: '0'
136
120
  type: :development
137
121
  prerelease: false
138
122
  version_requirements: !ruby/object:Gem::Requirement
139
- none: false
140
123
  requirements:
141
- - - ! '>='
124
+ - - ">="
142
125
  - !ruby/object:Gem::Version
143
126
  version: '0'
144
- description: ! 'SequenceServer lets you rapidly set up a BLAST+ server with an intuitive
145
- user interface for use locally or over the web.
146
-
147
- '
127
+ description: |
128
+ SequenceServer lets you rapidly set up a BLAST+ server with an intuitive user interface for use locally or over the web.
148
129
  email: anurag08priyam@gmail.com
149
130
  executables:
150
131
  - sequenceserver
151
132
  extensions: []
152
133
  extra_rdoc_files: []
153
134
  files:
154
- - lib/sequenceserver/sequencehelpers.rb
155
- - lib/sequenceserver/customisation.rb
135
+ - Gemfile
136
+ - LICENSE.Apache.txt
137
+ - LICENSE.txt
138
+ - README.txt
139
+ - bin/sequenceserver
140
+ - config.ru
141
+ - example.config.yml
142
+ - lib/profile_code.rb
143
+ - lib/sequenceserver.rb
156
144
  - lib/sequenceserver/blast.rb
145
+ - lib/sequenceserver/customisation.rb
157
146
  - lib/sequenceserver/database.rb
158
- - lib/sequenceserver/version.rb
147
+ - lib/sequenceserver/database_formatter.rb
159
148
  - lib/sequenceserver/helpers.rb
149
+ - lib/sequenceserver/sequencehelpers.rb
160
150
  - lib/sequenceserver/sinatralikeloggerformatter.rb
161
- - lib/sequenceserver/database_formatter.rb
162
- - lib/sequenceserver.rb
163
- - views/_options.erb
164
- - views/500.erb
165
- - views/search.erb
166
- - public/js/jquery.activity.js
167
- - public/js/sequenceserver.js
168
- - public/js/jquery.js
169
- - public/js/jquery-scrollspy.js
170
- - public/js/sequenceserver.blast.js
171
- - public/js/bootstrap.dropdown.js
172
- - public/js/store.min.js
173
- - public/js/bootstrap.modal.js
174
- - public/js/bootstrap.transition.js
175
- - public/js/jquery-ui.js
176
- - public/js/jquery.enablePlaceholder.min.js
151
+ - lib/sequenceserver/version.rb
152
+ - public/css/beige.css.css
153
+ - public/css/bootstrap.dropdown.css
154
+ - public/css/bootstrap.icons.css
177
155
  - public/css/bootstrap.min.css
178
156
  - public/css/bootstrap.modal.css
179
- - public/css/bootstrap.icons.css
180
- - public/css/bootstrap.dropdown.css
181
- - public/css/beige.css.css
182
157
  - public/css/custom.css
183
158
  - public/img/glyphicons-halflings-white.png
184
159
  - public/img/glyphicons-halflings.png
185
- - tests/ui.specs.todo
186
- - tests/test_sequenceserver_blast.rb
187
- - tests/test_ui.rb
188
- - tests/test_sequencehelpers.rb
189
- - tests/database/protein/Sinvicta2-2-3.prot.subset.fasta.psq
190
- - tests/database/protein/Sinvicta2-2-3.prot.subset.fasta.pin
191
- - tests/database/protein/Sinvicta2-2-3.prot.subset.fasta.phr
192
- - tests/database/protein/Sinvicta2-2-3.prot.subset.fasta
160
+ - public/js/bootstrap.dropdown.js
161
+ - public/js/bootstrap.modal.js
162
+ - public/js/bootstrap.transition.js
163
+ - public/js/jquery-scrollspy.js
164
+ - public/js/jquery-ui.js
165
+ - public/js/jquery.activity.js
166
+ - public/js/jquery.enablePlaceholder.min.js
167
+ - public/js/jquery.js
168
+ - public/js/sequenceserver.blast.js
169
+ - public/js/sequenceserver.js
170
+ - public/js/store.min.js
171
+ - sequenceserver.gemspec
172
+ - tests/database/nucleotide/Sinvicta2-2-3.cdna.subset.fasta
193
173
  - tests/database/nucleotide/Sinvicta2-2-3.cdna.subset.fasta.nhr
194
174
  - tests/database/nucleotide/Sinvicta2-2-3.cdna.subset.fasta.nin
195
175
  - tests/database/nucleotide/Sinvicta2-2-3.cdna.subset.fasta.nsq
196
- - tests/database/nucleotide/Sinvicta2-2-3.cdna.subset.fasta
176
+ - tests/database/protein/Sinvicta2-2-3.prot.subset.fasta
177
+ - tests/database/protein/Sinvicta2-2-3.prot.subset.fasta.phr
178
+ - tests/database/protein/Sinvicta2-2-3.prot.subset.fasta.pin
179
+ - tests/database/protein/Sinvicta2-2-3.prot.subset.fasta.psq
197
180
  - tests/run
198
- - config.ru
199
- - example.config.yml
200
- - LICENSE.txt
201
- - LICENSE.Apache.txt
202
- - README.txt
203
- - Gemfile
204
- - sequenceserver.gemspec
205
- - bin/sequenceserver
181
+ - tests/test_sequencehelpers.rb
182
+ - tests/test_sequenceserver_blast.rb
183
+ - tests/test_ui.rb
184
+ - tests/test_ui.rb~
185
+ - tests/ui.specs.todo
186
+ - views/500.erb
187
+ - views/_options.erb
188
+ - views/search.erb
206
189
  homepage: http://sequenceserver.com
207
190
  licenses:
208
191
  - SequenceServer (custom)
209
- post_install_message: ! "\n------------------------------------------------------------------------\n
210
- \ Thank you for installing SequenceServer :)!\n\n To launch SequenceServer execute
211
- 'sequenceserver' from command line.\n\n $ sequenceserver\n\n\n Visit http://sequenceserver.com
212
- for more.\n------------------------------------------------------------------------\n\n"
192
+ metadata: {}
193
+ post_install_message: |2+
194
+
195
+ ------------------------------------------------------------------------
196
+ Thank you for installing SequenceServer :)!
197
+
198
+ To launch SequenceServer execute 'sequenceserver' from command line.
199
+
200
+ $ sequenceserver
201
+
202
+
203
+ Visit http://sequenceserver.com for more.
204
+ ------------------------------------------------------------------------
205
+
213
206
  rdoc_options: []
214
207
  require_paths:
215
208
  - lib
216
209
  required_ruby_version: !ruby/object:Gem::Requirement
217
- none: false
218
210
  requirements:
219
- - - ! '>='
211
+ - - ">="
220
212
  - !ruby/object:Gem::Version
221
213
  version: '0'
222
214
  required_rubygems_version: !ruby/object:Gem::Requirement
223
- none: false
224
215
  requirements:
225
- - - ! '>='
216
+ - - ">"
226
217
  - !ruby/object:Gem::Version
227
- version: '0'
218
+ version: 1.3.1
228
219
  requirements: []
229
220
  rubyforge_project:
230
- rubygems_version: 1.8.23
221
+ rubygems_version: 2.2.0.rc.1
231
222
  signing_key:
232
- specification_version: 3
223
+ specification_version: 4
233
224
  summary: BLAST search made easy!
234
225
  test_files: []