sequenceserver 0.8.6 → 0.8.7.beta1

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.

Potentially problematic release.


This version of sequenceserver might be problematic. Click here for more details.

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: []