sequenceserver 2.0.0.beta1 → 2.0.0.beta3

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.
@@ -0,0 +1,12 @@
1
+ >Query_1:1-199
2
+ MNTLWLSLWDYPGKLPLNFMVFDTKDDLQAAYWRDPYSIPLAVIFEDPQPISQRLIYEIRTNPSYTLPPPPTKLYSAPISCRKNKTGHWMDDILSIKTGESCPVNNYLHSGFLALQMITDITKIKLENSDVTIPDIKLIMFPKEPYTADWMLAFRVVIPLYMVLALSQFITYLLILIVGEKENKIKEGMKMMGLNDSVF
3
+ >Query_1:1-199_alignment_SI2.2.0_06267:1-199
4
+ MNTLWLSLWDYPGKLPLNFMVFDTKDDLQAAYWRDPYSIPLAVIFEDPQPISQRLIYEIRTNPSYTLPPPPTKLYSAPISCRKNKTGHWMDDILSIKTGESCPVNNYLHSGFLALQMITDITKIKLENSDVTIPDIKLIMFPKEPYTADWMLAFRVVIPLYMVLALSQFITYLLILIVGEKENKIKEGMKMMGLNDSVF
5
+ >SI2.2.0_06267:1-199
6
+ MNTLWLSLWDYPGKLPLNFMVFDTKDDLQAAYWRDPYSIPLAVIFEDPQPISQRLIYEIRTNPSYTLPPPPTKLYSAPISCRKNKTGHWMDDILSIKTGESCPVNNYLHSGFLALQMITDITKIKLENSDVTIPDIKLIMFPKEPYTADWMLAFRVVIPLYMVLALSQFITYLLILIVGEKENKIKEGMKMMGLNDSVF
7
+ >SI2.2.0_13722:1-186
8
+ MSANRLNVLVTLMLAVALLVTESGNAQVDGYLQFNPKRSAVSSPQKYCGKKLSNALQIICDGVYNSMFKKSGQDFPPQNKRHIAHRINGNEEESFTTLKSNFLNWCVEVYHRHYRFVFVSEMEMADYPLAYDISPYLPPFLSRARARGMLDGRFAGRRYRRESRGIHEECCINGCTINELTSYCGP
9
+ >SI2.2.0_13722:1-186_alignment_SI2.2.0_13722:1-186
10
+ MSANRLNVLVTLMLAVALLVTESGNAQVDGYLQFNPKRSAVSSPQKYCGKKLSNALQIICDGVYNSMFKKSGQDFPPQNKRHIAHRINGNEEESFTTLKSNFLNWCVEVYHRHYRFVFVSEMEMADYPLAYDISPYLPPFLSRARARGMLDGRFAGRRYRRESRGIHEECCINGCTINELTSYCGP
11
+ >SI2.2.0_13722:1-186
12
+ MSANRLNVLVTLMLAVALLVTESGNAQVDGYLQFNPKRSAVSSPQKYCGKKLSNALQIICDGVYNSMFKKSGQDFPPQNKRHIAHRINGNEEESFTTLKSNFLNWCVEVYHRHYRFVFVSEMEMADYPLAYDISPYLPPFLSRARARGMLDGRFAGRRYRRESRGIHEECCINGCTINELTSYCGP
@@ -0,0 +1,10 @@
1
+ >SI2.2.0_06267 locus=Si_gnF.scaffold02592[1282609..1284114].pep_2 quality=100.00
2
+ MNTLWLSLWDYPGKLPLNFMVFDTKDDLQAAYWRDPYSIPLAVIFEDPQPISQRLIYEIR
3
+ TNPSYTLPPPPTKLYSAPISCRKNKTGHWMDDILSIKTGESCPVNNYLHSGFLALQMITD
4
+ ITKIKLENSDVTIPDIKLIMFPKEPYTADWMLAFRVVIPLYMVLALSQFITYLLILIVGE
5
+ KENKIKEGMKMMGLNDSVF
6
+ >SI2.2.0_13722 locus=Si_gnF.scaffold06207[1925625..1928536].pep_1 quality=100.00
7
+ MSANRLNVLVTLMLAVALLVTESGNAQVDGYLQFNPKRSAVSSPQKYCGKKLSNALQIIC
8
+ DGVYNSMFKKSGQDFPPQNKRHIAHRINGNEEESFTTLKSNFLNWCVEVYHRHYRFVFVS
9
+ EMEMADYPLAYDISPYLPPFLSRARARGMLDGRFAGRRYRRESRGIHEECCINGCTINEL
10
+ TSYCGP
data/spec/spec_helper.rb CHANGED
@@ -45,7 +45,7 @@ RSpec.configure do |config|
45
45
 
46
46
  # Suppress "open with / save" dialog for FASTA, XML, and TSV file types.
47
47
  options.profile['browser.helperApps.neverAsk.saveToDisk'] =
48
- 'text/fasta,text/xml,text/tsv'
48
+ 'text/fasta,text/xml,text/tsv,image/png'
49
49
 
50
50
  Capybara::Selenium::Driver.new(app, browser: :firefox, options: options)
51
51
  end
data/views/layout.erb CHANGED
@@ -94,8 +94,8 @@
94
94
  </a>
95
95
  <br>
96
96
  Please cite relevant data sources and:
97
- <a href="http://www.biorxiv.org/content/early/2015/11/27/033142">
98
- Priyam et al. (2015) Sequenceserver: a modern graphical user interface for custom BLAST databases</a>.
97
+ <a href="https://doi.org/10.1093/molbev/msz185">
98
+ Priyam et al. (2019) Sequenceserver: a modern graphical user interface for custom BLAST databases</a>.
99
99
  </p>
100
100
  </div> <!-- /container -->
101
101
  </div>
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sequenceserver
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0.beta1
4
+ version: 2.0.0.beta3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Anurag Priyam
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2019-07-24 00:00:00.000000000 Z
14
+ date: 2019-08-21 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: json_pure
@@ -57,62 +57,62 @@ dependencies:
57
57
  name: sinatra
58
58
  requirement: !ruby/object:Gem::Requirement
59
59
  requirements:
60
- - - "~>"
61
- - !ruby/object:Gem::Version
62
- version: '2.0'
63
60
  - - ">="
64
61
  - !ruby/object:Gem::Version
65
62
  version: 2.0.0
63
+ - - "~>"
64
+ - !ruby/object:Gem::Version
65
+ version: '2.0'
66
66
  type: :runtime
67
67
  prerelease: false
68
68
  version_requirements: !ruby/object:Gem::Requirement
69
69
  requirements:
70
- - - "~>"
71
- - !ruby/object:Gem::Version
72
- version: '2.0'
73
70
  - - ">="
74
71
  - !ruby/object:Gem::Version
75
72
  version: 2.0.0
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '2.0'
76
76
  - !ruby/object:Gem::Dependency
77
77
  name: slop
78
78
  requirement: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - "~>"
81
- - !ruby/object:Gem::Version
82
- version: '3.6'
83
80
  - - ">="
84
81
  - !ruby/object:Gem::Version
85
82
  version: 3.6.0
83
+ - - "~>"
84
+ - !ruby/object:Gem::Version
85
+ version: '3.6'
86
86
  type: :runtime
87
87
  prerelease: false
88
88
  version_requirements: !ruby/object:Gem::Requirement
89
89
  requirements:
90
- - - "~>"
91
- - !ruby/object:Gem::Version
92
- version: '3.6'
93
90
  - - ">="
94
91
  - !ruby/object:Gem::Version
95
92
  version: 3.6.0
93
+ - - "~>"
94
+ - !ruby/object:Gem::Version
95
+ version: '3.6'
96
96
  - !ruby/object:Gem::Dependency
97
97
  name: capybara
98
98
  requirement: !ruby/object:Gem::Requirement
99
99
  requirements:
100
100
  - - "~>"
101
101
  - !ruby/object:Gem::Version
102
- version: '3.12'
102
+ version: '3.15'
103
103
  - - ">="
104
104
  - !ruby/object:Gem::Version
105
- version: 3.12.0
105
+ version: 3.15.1
106
106
  type: :development
107
107
  prerelease: false
108
108
  version_requirements: !ruby/object:Gem::Requirement
109
109
  requirements:
110
110
  - - "~>"
111
111
  - !ruby/object:Gem::Version
112
- version: '3.12'
112
+ version: '3.15'
113
113
  - - ">="
114
114
  - !ruby/object:Gem::Version
115
- version: 3.12.0
115
+ version: 3.15.1
116
116
  - !ruby/object:Gem::Dependency
117
117
  name: capybara-screenshot
118
118
  requirement: !ruby/object:Gem::Requirement
@@ -134,45 +134,25 @@ dependencies:
134
134
  - !ruby/object:Gem::Version
135
135
  version: 1.0.23
136
136
  - !ruby/object:Gem::Dependency
137
- name: codeclimate-test-reporter
137
+ name: rack-test
138
138
  requirement: !ruby/object:Gem::Requirement
139
139
  requirements:
140
+ - - ">="
141
+ - !ruby/object:Gem::Version
142
+ version: 1.0.0
140
143
  - - "~>"
141
144
  - !ruby/object:Gem::Version
142
145
  version: '1.0'
143
- - - ">="
144
- - !ruby/object:Gem::Version
145
- version: 1.0.8
146
146
  type: :development
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
- - - "~>"
151
- - !ruby/object:Gem::Version
152
- version: '1.0'
153
- - - ">="
154
- - !ruby/object:Gem::Version
155
- version: 1.0.8
156
- - !ruby/object:Gem::Dependency
157
- name: rack-test
158
- requirement: !ruby/object:Gem::Requirement
159
- requirements:
160
- - - "~>"
161
- - !ruby/object:Gem::Version
162
- version: '1.0'
163
150
  - - ">="
164
151
  - !ruby/object:Gem::Version
165
152
  version: 1.0.0
166
- type: :development
167
- prerelease: false
168
- version_requirements: !ruby/object:Gem::Requirement
169
- requirements:
170
153
  - - "~>"
171
154
  - !ruby/object:Gem::Version
172
155
  version: '1.0'
173
- - - ">="
174
- - !ruby/object:Gem::Version
175
- version: 1.0.0
176
156
  - !ruby/object:Gem::Dependency
177
157
  name: rake
178
158
  requirement: !ruby/object:Gem::Requirement
@@ -197,22 +177,22 @@ dependencies:
197
177
  name: rspec
198
178
  requirement: !ruby/object:Gem::Requirement
199
179
  requirements:
200
- - - "~>"
201
- - !ruby/object:Gem::Version
202
- version: '3.7'
203
180
  - - ">="
204
181
  - !ruby/object:Gem::Version
205
182
  version: 3.7.0
183
+ - - "~>"
184
+ - !ruby/object:Gem::Version
185
+ version: '3.7'
206
186
  type: :development
207
187
  prerelease: false
208
188
  version_requirements: !ruby/object:Gem::Requirement
209
189
  requirements:
210
- - - "~>"
211
- - !ruby/object:Gem::Version
212
- version: '3.7'
213
190
  - - ">="
214
191
  - !ruby/object:Gem::Version
215
192
  version: 3.7.0
193
+ - - "~>"
194
+ - !ruby/object:Gem::Version
195
+ version: '3.7'
216
196
  - !ruby/object:Gem::Dependency
217
197
  name: sauce_whisk
218
198
  requirement: !ruby/object:Gem::Requirement
@@ -239,20 +219,40 @@ dependencies:
239
219
  requirements:
240
220
  - - "~>"
241
221
  - !ruby/object:Gem::Version
242
- version: '3.141'
222
+ version: '3.142'
243
223
  - - ">="
244
224
  - !ruby/object:Gem::Version
245
- version: 3.141.0
225
+ version: 3.142.3
246
226
  type: :development
247
227
  prerelease: false
248
228
  version_requirements: !ruby/object:Gem::Requirement
249
229
  requirements:
250
230
  - - "~>"
251
231
  - !ruby/object:Gem::Version
252
- version: '3.141'
232
+ version: '3.142'
233
+ - - ">="
234
+ - !ruby/object:Gem::Version
235
+ version: 3.142.3
236
+ - !ruby/object:Gem::Dependency
237
+ name: simplecov
238
+ requirement: !ruby/object:Gem::Requirement
239
+ requirements:
253
240
  - - ">="
254
241
  - !ruby/object:Gem::Version
255
- version: 3.141.0
242
+ version: 0.17.0
243
+ - - "~>"
244
+ - !ruby/object:Gem::Version
245
+ version: 0.17.0
246
+ type: :development
247
+ prerelease: false
248
+ version_requirements: !ruby/object:Gem::Requirement
249
+ requirements:
250
+ - - ">="
251
+ - !ruby/object:Gem::Version
252
+ version: 0.17.0
253
+ - - "~>"
254
+ - !ruby/object:Gem::Version
255
+ version: 0.17.0
256
256
  description: |
257
257
  SequenceServer lets you rapidly set up a BLAST+ server with an intuitive
258
258
  user interface for use locally or over the web.
@@ -3714,7 +3714,6 @@ files:
3714
3714
  - spec/blast_versions/blast_2.9.0/import_spec_capybara_local_2.9.0.rb
3715
3715
  - spec/blast_versions/diamond_0.9.24/diamond_0.9.24_spec.rb
3716
3716
  - spec/blast_versions/diamond_0.9.24/import_spec_capybara_local_0.9.24.rb
3717
- - spec/capybara_spec.local.rb
3718
3717
  - spec/capybara_spec.rb
3719
3718
  - spec/config_spec.rb
3720
3719
  - spec/database/funky_ids/funky_ids.fa
@@ -3964,10 +3963,12 @@ files:
3964
3963
  - spec/sequences/Nucleotide_TP53_COX41.fasta
3965
3964
  - spec/sequences/Protein_TP53_COX41.fasta
3966
3965
  - spec/sequences/Query_1_SI2_2_0_06267.txt
3966
+ - spec/sequences/alignment-2_hits.txt
3967
3967
  - spec/sequences/nucleotide_query.fa
3968
3968
  - spec/sequences/problematic_query.fa
3969
3969
  - spec/sequences/protein_query.fa
3970
3970
  - spec/sequences/sample_query_fire_ant_obps.fa
3971
+ - spec/sequences/sequenceserver-2_hits.fa
3971
3972
  - spec/sequences/sequenceserver-SI2.2.0_06267.fa
3972
3973
  - spec/sequenceserver_spec.rb
3973
3974
  - spec/spec_helper.rb
@@ -4006,8 +4007,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
4006
4007
  - !ruby/object:Gem::Version
4007
4008
  version: 1.3.1
4008
4009
  requirements: []
4009
- rubyforge_project:
4010
- rubygems_version: 2.5.2.3
4010
+ rubygems_version: 3.0.1
4011
4011
  signing_key:
4012
4012
  specification_version: 4
4013
4013
  summary: BLAST search made easy!
@@ -1,190 +0,0 @@
1
- describe 'a browser', type: :feature, js: true do
2
- it 'properly controls blast button' do
3
- visit '/'
4
-
5
- fill_in('sequence', with: nucleotide_query)
6
- page.evaluate_script("$('#method').is(':disabled')").should eq(true)
7
-
8
- check(nucleotide_databases.first)
9
- page.evaluate_script("$('#method').is(':disabled')").should eq(false)
10
- end
11
-
12
- it 'properly controls interaction with database listing' do
13
- visit '/'
14
- fill_in('sequence', with: nucleotide_query)
15
- check(nucleotide_databases.first)
16
- page.evaluate_script("$('.protein .database').first().hasClass('disabled')")
17
- .should eq(true)
18
- end
19
-
20
- it 'shows a dropdown menu when other blast methods are available' do
21
- visit '/'
22
- fill_in('sequence', with: nucleotide_query)
23
- check(nucleotide_databases.first)
24
- page.save_screenshot('screenshot.png')
25
- page.has_css?('button.dropdown-toggle').should eq(true)
26
- end
27
-
28
- it 'can run a simple blastn search' do
29
- perform_search query: nucleotide_query,
30
- databases: nucleotide_databases
31
- page.should have_content('BLASTN')
32
- end
33
-
34
- it 'can run a simple blastp search' do
35
- perform_search query: protein_query,
36
- databases: protein_databases
37
- page.should have_content('BLASTP')
38
- end
39
-
40
- it 'can run a simple blastx search' do
41
- perform_search query: nucleotide_query,
42
- databases: protein_databases
43
- page.should have_content('BLASTX')
44
- end
45
-
46
- it 'can run a simple tblastx search' do
47
- perform_search query: nucleotide_query,
48
- databases: nucleotide_databases,
49
- method: 'tblastx'
50
- page.should have_content('TBLASTX')
51
- end
52
-
53
- it 'can run a simple tblastn search' do
54
- perform_search query: protein_query,
55
- databases: nucleotide_databases
56
- page.should have_content('TBLASTN')
57
- end
58
-
59
- ### Test aspects of the generated report.
60
-
61
- it 'can show hit sequences in a modal' do
62
- # Do a BLASTP search. protein_query refers to the first two sequence in
63
- # protein_databases[0], so the top hits are the query sequences themselves.
64
- perform_search(query: protein_query,
65
- databases: protein_databases.values_at(0))
66
-
67
- # Click on the first sequence viewer link in the report.
68
- page.execute_script("$('.view-sequence:eq(0)').click()")
69
-
70
- within('.sequence-viewer') do
71
- page.should have_content('SI2.2.0_06267')
72
- page.should have_content(<<~SEQ.chomp)
73
- MNTLWLSLWDYPGKLPLNFMVFDTKDDLQAAYWRDPYSIP
74
- LAVIFEDPQPISQRLIYEIRTNPSYTLPPPPTKLYSAPIS
75
- CRKNKTGHWMDDILSIKTGESCPVNNYLHSGFLALQMITD
76
- ITKIKLENSDVTIPDIKLIMFPKEPYTADWMLAFRVVIPL
77
- YMVLALSQFITYLLILIVGEKENKIKEGMKMMGLNDSVF
78
- SEQ
79
- end
80
-
81
- # Dismiss the first modal.
82
- page.execute_script("$('.sequence-viewer').modal('hide')")
83
-
84
- # Click on the second sequence viewer link in the report.
85
- page.execute_script("$('.view-sequence:eq(1)').click()")
86
-
87
- within('.sequence-viewer') do
88
- page.should have_content('SI2.2.0_13722')
89
- page.should have_content(<<~SEQ.chomp)
90
- MSANRLNVLVTLMLAVALLVTESGNAQVDGYLQFNPKRSA
91
- VSSPQKYCGKKLSNALQIICDGVYNSMFKKSGQDFPPQNK
92
- RHIAHRINGNEEESFTTLKSNFLNWCVEVYHRHYRFVFVS
93
- EMEMADYPLAYDISPYLPPFLSRARARGMLDGRFAGRRYR
94
- RESRGIHEECCINGCTINELTSYCGP
95
- SEQ
96
- end
97
- end
98
-
99
- it "can download hit sequences" do
100
- # Do a BLASTP search. protein_query refers to the first two sequence in
101
- # protein_databases[0], so the top hits are the query sequences themselves.
102
- perform_search(query: protein_query,
103
- databases: protein_databases.values_at(0))
104
-
105
- # Click on the first FASTA download button on the page and wait for the
106
- # download to finish.
107
- page.execute_script("$('.download-fa:eq(0)').click()")
108
- wait_for_download
109
-
110
- # Test name and content of the downloaded file.
111
- expect(File.basename(downloaded_file)).
112
- to eq('sequenceserver-SI2.2.0_06267.fa')
113
- expect(File.read(downloaded_file)).
114
- to eq(File.read("#{__dir__}/sequences/sequenceserver-SI2.2.0_06267.fa"))
115
- end
116
-
117
- it "can download alignment for each hit" do
118
- # Do a BLASTP search. protein_query refers to the first two sequence in
119
- # protein_databases[0], so the top hits are the query sequences themselves.
120
- perform_search(query: protein_query,
121
- databases: protein_databases.values_at(0))
122
-
123
- # Click on the first Alignment download button on the page and wait for the
124
- # download to finish.
125
- page.execute_script("$('.download-aln:eq(0)').click()")
126
- wait_for_download
127
-
128
- # Test name and content of the downloaded file.
129
- expect(File.basename(downloaded_file)).to eq('Query_1_SI2_2_0_06267.txt')
130
- expect(File.read(downloaded_file)).
131
- to eq(File.read("#{__dir__}/sequences/Query_1_SI2_2_0_06267.txt"))
132
- end
133
-
134
- it 'disables sequence viewer links if hits are longer than 10kb' do
135
- # BLASTN transcripts against genome. nucleotide_query refers to two fire
136
- # ant transcripts and nucleotide_databases[0] is subset of the fire ant
137
- # genome (few longest scaffolds). We expect sequence viewer links to be
138
- # disabled for all hits of this search.
139
- perform_search(query: nucleotide_query,
140
- databases: nucleotide_databases.values_at(0))
141
-
142
- # Check that the sequence viewer links are disabled.
143
- page.evaluate_script("$('.view-sequence').is(':disabled')").should eq(true)
144
- end
145
-
146
- ## Helpers ##
147
-
148
- def perform_search(query: , databases: , method: nil)
149
- # Load search form.
150
- visit '/'
151
-
152
- # Fill in query, select databases, submit form.
153
- fill_in('sequence', with: query)
154
- databases.each { |db| check db }
155
- if method == 'tblastx'
156
- find('.dropdown-toggle').click
157
- find('.dropdown-menu li').click
158
- end
159
- click_button('method')
160
-
161
- # Switch to new window because link opens in new window
162
- page.driver.browser.switch_to.window(page.driver.browser.window_handles.last)
163
-
164
- # It is important to have this line or the examples end prematurely with a
165
- # failure.
166
- page.should have_content('Query')
167
- end
168
-
169
- def nucleotide_query
170
- File.read File.join(__dir__, 'sequences', 'nucleotide_query.fa')
171
- end
172
-
173
- def protein_query
174
- File.read File.join(__dir__, 'sequences', 'protein_query.fa')
175
- end
176
-
177
- def nucleotide_databases
178
- [
179
- 'Solenopsis invicta gnG subset',
180
- 'Sinvicta 2-2-3 cdna subset'
181
- ]
182
- end
183
-
184
- def protein_databases
185
- [
186
- 'Sinvicta 2-2-3 prot subset',
187
- '2018-04 Swiss-Prot insecta'
188
- ]
189
- end
190
- end