sequenceserver 0.7.9 → 0.8.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


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

@@ -0,0 +1,144 @@
1
+ <%#
2
+
3
+ NOTE: The markup below is displayed in a modal window. Use less than 70
4
+ characters per line to preserve formatting.
5
+ %>
6
+
7
+ <h6>General Search Options</h6>
8
+
9
+ <br/>
10
+
11
+ <ul class="unstyled">
12
+ <li>
13
+ <pre><%= ERB::Util.h %q|-evalue <Real>
14
+ Expectation value (E) threshold for saving hits
15
+ Default = '10'| %></pre>
16
+ </li>
17
+ <li>
18
+ <pre><%= ERB::Util.h %q|-word_size <Integer, >=2>
19
+ Word size for wordfinder algorithm| %></pre>
20
+ </li>
21
+ <li>
22
+ <pre><%= ERB::Util.h %q|-gapopen <Integer>
23
+ Cost to open a gap| %></pre>
24
+ </li>
25
+ <li>
26
+ <pre><%= ERB::Util.h %q|-gapextend <Integer>
27
+ Cost to extend a gap| %></pre>
28
+ </li>
29
+ <li>
30
+ <pre><%= ERB::Util.h %q|-matrix <String>
31
+ Scoring matrix name (normally BLOSUM62)| %></pre>
32
+ </li>
33
+ <li>
34
+ <pre><%= ERB::Util.h %q|-threshold <Real, >=0>
35
+ Minimum word score such that the word is added to the BLAST lookup
36
+ table| %></pre>
37
+ </li>
38
+ <li>
39
+ <pre><%= ERB::Util.h %q|-comp_based_stats <String>
40
+ Use composition-based statistics for blastp / tblastn:
41
+ D or d: default (equivalent to 2)
42
+ 0 or F or f: no composition-based statistics
43
+ 1: Composition-based statistics as in NAR 29:2994-3005, 2001
44
+ 2 or T or t : Composition-based score adjustment as in
45
+ Bioinformatics 21:902-911, 2005, conditioned on sequence
46
+ properties
47
+ 3: Composition-based score adjustment as in Bioinformatics
48
+ 21:902-911, 2005, unconditionally
49
+ For programs other than tblastn, must either be absent or be D, F
50
+ or 0
51
+ Default = `2'| %></pre>
52
+ </li>
53
+ <li>
54
+ <pre><%= ERB::Util.h %q|-num_descriptions <Integer, >=0>
55
+ Number of database sequences to show one-line descriptions for
56
+ Default = `500'| %></pre>
57
+ </li>
58
+ <li>
59
+ <pre><%= ERB::Util.h %q| -num_alignments <Integer, >=0>
60
+ Number of database sequences to show alignments for
61
+ Default = `250'| %></pre>
62
+ </li>
63
+ </ul>
64
+
65
+ <br/>
66
+
67
+ <h6>Query filtering options</h6>
68
+
69
+ <br/>
70
+
71
+ <ul class="unstyled">
72
+ <li>
73
+ <pre><%= ERB::Util.h %q|-seg <String>
74
+ Filter query sequence with SEG (Format: 'yes', 'window locut hicut',
75
+ or 'no' to disable)
76
+ Default = `no'| %></pre>
77
+ </li>
78
+ <li>
79
+ <pre><%= ERB::Util.h %q|-soft_masking <Boolean>
80
+ Apply filtering locations as soft masks
81
+ Default = `false'| %></pre>
82
+ </li>
83
+ <li>
84
+ <pre><%= ERB::Util.h %q|-lcase_masking
85
+ Use lower case filtering in query and subject sequence(s)?| %></pre>
86
+ </li>
87
+ </ul>
88
+
89
+ <br/>
90
+
91
+ <h6>Restrict search or results</h6>
92
+
93
+ <br/>
94
+
95
+ <ul class="unstyled">
96
+ <li>
97
+ <pre><%= ERB::Util.h %q|-gilist <String>
98
+ Restrict search of database to list of GI's
99
+ * Incompatible with: negative_gilist, seqidlist, remote, subject,
100
+ subject_loc| %></pre>
101
+ </li>
102
+ <li>
103
+ <pre><%= ERB::Util.h %q|-seqidlist <String>
104
+ Restrict search of database to list of SeqId's
105
+ * Incompatible with: gilist, negative_gilist, remote, subject,
106
+ subject_loc| %></pre>
107
+ </li>
108
+ <li>
109
+ <pre><%= ERB::Util.h %q|-negative_gilist <String>
110
+ Restrict search of database to everything except the listed GIs
111
+ * Incompatible with: gilist, seqidlist, remote, subject,
112
+ subject_loc| %></pre>
113
+ </li>
114
+ <li>
115
+ <pre><%= ERB::Util.h %q|-entrez_query <String>
116
+ Restrict search with the given Entrez query
117
+ * Requires: remote| %></pre>
118
+ </li>
119
+ <li>
120
+ <pre><%= ERB::Util.h %q|-db_soft_mask <String>
121
+ Filtering algorithm ID to apply to the BLAST database as soft masking
122
+ * Incompatible with: subject, subject_loc| %></pre>
123
+ </li>
124
+ <li>
125
+ <pre><%= ERB::Util.h %q|-culling_limit <Integer, >=0>
126
+ If the query range of a hit is enveloped by that of at least this
127
+ many higher-scoring hits, delete the hit
128
+ * Incompatible with: best_hit_overhang, best_hit_score_edge| %></pre>
129
+ </li>
130
+ <li>
131
+ <pre><%= ERB::Util.h %q|-best_hit_overhang <Real, (>0 and <0.5)>
132
+ Best Hit algorithm overhang value (recommended value: 0.1)
133
+ * Incompatible with: culling_limit| %></pre>
134
+ </li>
135
+ <li>
136
+ <pre><%= ERB::Util.h %q|-best_hit_score_edge <Real, (>0 and <0.5)>
137
+ Best Hit algorithm score edge value (recommended value: 0.1)
138
+ * Incompatible with: culling_limit| %></pre>
139
+ </li>
140
+ <li>
141
+ <pre><%= ERB::Util.h %q|-max_target_seqs <Integer, >=1>
142
+ Maximum number of aligned sequences to keep| %></pre>
143
+ </li>
144
+ </ul>
data/views/search.erb CHANGED
@@ -8,93 +8,83 @@
8
8
  <meta name="author" content="Cedric Wurm" />
9
9
  <meta name="description" content="Custom BLAST server provided by SequenceServer (http://www.sequenceserver.com)"/>
10
10
  <meta content="text/html; charset=UTF-8" http-equiv="Content-Type"/>
11
+ <script type="text/javascript" src="<%= uri('/js/store.min.js') %>"></script>
11
12
  <script type="text/javascript" src="<%= uri('/js/jquery.js') %>"></script>
13
+ <script type="text/javascript" src="<%= uri('/js/jquery.ui.js') %>"></script>
12
14
  <script type="text/javascript" src="<%= uri('/js/jquery.enablePlaceholder.min.js') %>"></script>
13
15
  <script type="text/javascript" src="<%= uri('/js/jquery.activity.js') %>"></script>
16
+ <script type="text/javascript" src="<%= uri('/js/jquery.scrollspy.js') %>"></script>
17
+ <script type="text/javascript" src="<%= uri('/js/jquery.index.js') %>"></script>
18
+ <script type="text/javascript" src="<%= uri('/js/bootstrap.transition.js') %>"></script>
19
+ <script type="text/javascript" src="<%= uri('/js/bootstrap.dropdown.js') %>"></script>
20
+ <script type="text/javascript" src="<%= uri('/js/bootstrap.modal.js') %>"></script>
14
21
  <script type="text/javascript" src="<%= uri('/js/sequenceserver.js') %>"></script>
15
22
  <script type="text/javascript" src="<%= uri('/js/sequenceserver.blast.js') %>"></script>
16
23
 
17
24
  <%# without a space after erb's closing tag, a / gets appended to css' path %>
18
25
  <link rel="stylesheet" media="screen" type="text/css" href="<%= uri('/css/bootstrap.min.css') %>" />
26
+ <link rel="stylesheet" media="screen" type="text/css" href="<%= uri('/css/bootstrap.dropdown.css') %>" />
27
+ <link rel="stylesheet" media="screen" type="text/css" href="<%= uri('/css/bootstrap.modal.css') %>" />
28
+ <link rel="stylesheet" media="screen" type="text/css" href="<%= uri('/css/bootstrap.icons.css') %>" />
19
29
  <link rel="stylesheet" media="screen" type="text/css" href="<%= uri('/css/custom.css') %>" />
20
30
  </head>
21
31
 
22
32
  <body>
23
33
  <div class="container">
34
+ <noscript>
35
+ <div class="nojs-error">
36
+ <h3>SequenceServer can't work without JavaScript.</h3>
37
+ <ul>
38
+ <li>Please see if you can enable JavaScript in your browser's preferences.</li>
39
+ <li>If your browser doesn't support JavaScript, please consider upgrading to the latest version or using Firefox or Chrome.</li>
40
+ </ul>
41
+ </div>
42
+ </noscript>
43
+
24
44
  <div class="page">
25
- <div class="page-header" id="banner">
45
+ <div id="banner">
26
46
  <h1>BLAST Sequence(s)</h1>
27
47
  </div>
28
48
 
29
49
  <form method="post" id="blast" action="<%= uri('/#result') %>">
30
50
  <div class="row">
31
- <div class="span12">
32
- <div class="offset-left sequence">
33
- <div class="clearfix">
34
- <textarea name="sequence" id="sequence" rows="11" spellcheck="false" <%= 'autofocus="true"' unless @blast %> placeholder="Paste your sequence(s) here..." ></textarea>
35
- </div>
51
+ <div class="span16">
52
+ <div class="control-group">
53
+ <textarea name="sequence" id="sequence" spellcheck="false" autofocus="true" placeholder="Paste your sequence(s) here..." ></textarea>
36
54
  </div>
37
55
  </div>
56
+ </div>
38
57
 
39
- <div class="span4">
40
- <div class="offset-right box blastmethods">
41
- <div class="clearfix">
42
- <fieldset>
43
- <legend><h4>Blast methods</h4></legend>
44
- <ul class="inputs-list">
45
- <li>
46
- <label title="Protein query; protein database.">
47
- <input type="radio" name="method" value="blastp" id="blastp"/>
48
- <span>blastp</span>
49
- </label>
50
- </li>
51
- <li>
52
- <label title="Protein query; six frame translated nucleotide database.">
53
- <input type="radio" name="method" value="tblastn" id="tblastn"/>
54
- <span>tblastn</span>
55
- </label>
56
- </li>
57
- <li>
58
- <label title="Nucleotide query; nucleotide database.">
59
- <input type="radio" name="method" value="blastn" id="blastn"/>
60
- <span>blastn</span>
61
- </label>
62
- </li>
63
- <li>
64
- <label title="Translated nucleotide query; protein database">
65
- <input type="radio" name="method" value="blastx" id="blastx"/>
66
- <span>blastx</span>
67
- </label>
68
- </li>
69
- <li>
70
- <label title="Six-frame translated nucleotide query; six-frame translated nucleotide database">
71
- <input type="radio" name="method" value="tblastx" id="tblastx"/>
72
- <span>tblastx</span>
73
- </label>
74
- </li>
75
- </ul>
76
- </fieldset>
77
- </div>
78
- </div>
58
+ <div class="notifications">
59
+ <div class="notification alert-info hide" id="nucleotide-sequence-notification">
60
+ Detected: nucleotide sequence(s).
61
+ </div>
62
+
63
+ <div class="notification alert-info hide" id="protein-sequence-notification">
64
+ Detected: protein sequence(s).
65
+ </div>
66
+
67
+ <div class="notification alert-error hide" id="mixed-sequence-notification">
68
+ Detected: mixed nucleotide and protein sequences. We can't handle that. Please try one sequence at a time.
79
69
  </div>
80
70
  </div>
81
71
 
72
+ <br class="large"/>
73
+
82
74
  <div class="row">
83
75
  <div class="span8">
84
76
  <div class="offset-left box databases nucleotide">
85
77
  <div class="clearfix">
86
78
  <fieldset>
87
- <legend><h4>Nucleotide databases</h4></legend>
88
- <ul class="inputs-list">
89
- <% settings.databases['nucleotide'].each_with_index do |db, i| %>
90
- <li>
91
- <label>
92
- <input type="checkbox" id="ndb<%=i%>" name="db[nucleotide][]" value="<%=i%>"/>
93
- <span> <%= db.title or db.name %></span>
94
- </label>
95
- </li>
79
+ <legend>Nucleotide databases</legend>
80
+ <div class="controls offset-left">
81
+ <% settings.databases.values.select{|database| database.type == :nucleotide}.sort.each do |database| %>
82
+ <label class="checkbox">
83
+ <input type="checkbox" name="databases[]" value="<%=database.hash%>" data-type="<%=database.type%>" />
84
+ <span> <%= database.title or database.name %></span>
85
+ </label>
96
86
  <% end %>
97
- </ul>
87
+ </div>
98
88
  </fieldset>
99
89
  </div>
100
90
  </div>
@@ -104,115 +94,80 @@
104
94
  <div class="offset-right box databases protein">
105
95
  <div class="clearfix">
106
96
  <fieldset>
107
- <legend><h4>Protein databases</h4></legend>
108
- <ul class="inputs-list">
109
- <% settings.databases['protein'].each_with_index do |db, i| %>
110
- <li>
111
- <label>
112
- <input type="checkbox" id="pdb<%=i%>" name="db[protein][]" value="<%=i%>"/>
113
- <span> <%= db.title or db.name %></span>
114
- </label>
115
- </li>
97
+ <legend>Protein databases</legend>
98
+ <div class="controls offset-left">
99
+ <% settings.databases.values.select{|database| database.type == :protein}.sort.each do |database| %>
100
+ <label class="checkbox">
101
+ <input type="checkbox" name="databases[]" value="<%=database.hash%>" data-type="<%=database.type%>" />
102
+ <span> <%= database.title or database.name %></span>
103
+ </label>
116
104
  <% end %>
117
- </ul>
105
+ </div>
118
106
  </fieldset>
119
107
  </div>
120
108
  </div>
121
109
  </div>
122
110
  </div>
123
111
 
112
+ <br class="large"/>
113
+
124
114
  <div class="row">
125
115
  <div class="span12">
126
116
  <div class="offset-left box advanced">
127
117
  <div class="clearfix">
128
- <label class="span4" for="advanced"><h4 title="Click to show/hide advanced options.">Advanced Parameters:</h4></label>
118
+ <label for="advanced">Advanced Parameters:</label>
129
119
  <input class="span8" type="text" name="advanced" id="advanced" title="View, and enter advanced parameters." placeholder="eg: -evalue 1.0e-5 -num_alignments 100"/>
120
+ <span class="icon-question-sign" data-toggle="modal" href="#help"></span>
121
+ </div>
122
+
123
+ <div class="modal hide fade" id="help">
124
+ <div class="modal-header">
125
+ <h3>Advanced Options</h3>
126
+ </div>
127
+ <div class="modal-body">
128
+ <%= erb :_options %>
129
+ </div>
130
+ <div class="modal-footer">
131
+ <button class="btn btn-primary" data-dismiss="modal">Got it!</button>
132
+ </div>
130
133
  </div>
131
- <pre class="help">
132
- <%= ERB::Util.h %q|
133
- -evalue <Real>
134
- Expectation value (E) threshold for saving hits
135
- Default = `10'
136
- -word_size <Integer, >=2>
137
- Word size for wordfinder algorithm
138
- -gapopen <Integer>
139
- Cost to open a gap
140
- -gapextend <Integer>
141
- Cost to extend a gap
142
- -matrix <String>
143
- Scoring matrix name (normally BLOSUM62)
144
- -threshold <Real, >=0>
145
- Minimum word score such that the word is added to the BLAST lookup table
146
- -comp_based_stats <String>
147
- Use composition-based statistics for blastp / tblastn:
148
- D or d: default (equivalent to 2)
149
- 0 or F or f: no composition-based statistics
150
- 1: Composition-based statistics as in NAR 29:2994-3005, 2001
151
- 2 or T or t : Composition-based score adjustment as in Bioinformatics
152
- 21:902-911,
153
- 2005, conditioned on sequence properties
154
- 3: Composition-based score adjustment as in Bioinformatics 21:902-911,
155
- 2005, unconditionally
156
- For programs other than tblastn, must either be absent or be D, F or 0
157
- Default = `2'
158
- -num_descriptions <Integer, >=0>
159
- Number of database sequences to show one-line descriptions for
160
- Default = `500'
161
- -num_alignments <Integer, >=0>
162
- Number of database sequences to show alignments for
163
- Default = `250'
164
- *** Query filtering options
165
- -seg <String>
166
- Filter query sequence with SEG (Format: 'yes', 'window locut hicut', or
167
- 'no' to disable)
168
- Default = `no'
169
- -soft_masking <Boolean>
170
- Apply filtering locations as soft masks
171
- Default = `false'
172
- -lcase_masking
173
- Use lower case filtering in query and subject sequence(s)?
174
- *** Restrict search or results
175
- -gilist <String>
176
- Restrict search of database to list of GI's
177
- * Incompatible with: negative_gilist, seqidlist, remote, subject,
178
- subject_loc
179
- -seqidlist <String>
180
- Restrict search of database to list of SeqId's
181
- * Incompatible with: gilist, negative_gilist, remote, subject,
182
- subject_loc
183
- -negative_gilist <String>
184
- Restrict search of database to everything except the listed GIs
185
- * Incompatible with: gilist, seqidlist, remote, subject, subject_loc
186
- -entrez_query <String>
187
- Restrict search with the given Entrez query
188
- * Requires: remote
189
- -db_soft_mask <String>
190
- Filtering algorithm ID to apply to the BLAST database as soft masking
191
- * Incompatible with: subject, subject_loc
192
- -culling_limit <Integer, >=0>
193
- If the query range of a hit is enveloped by that of at least this many
194
- higher-scoring hits, delete the hit
195
- * Incompatible with: best_hit_overhang, best_hit_score_edge
196
- -best_hit_overhang <Real, (>0 and <0.5)>
197
- Best Hit algorithm overhang value (recommended value: 0.1)
198
- * Incompatible with: culling_limit
199
- -best_hit_score_edge <Real, (>0 and <0.5)>
200
- Best Hit algorithm score edge value (recommended value: 0.1)
201
- * Incompatible with: culling_limit
202
- -max_target_seqs <Integer, >=1>
203
- Maximum number of aligned sequences to keep | %>
204
- </pre>
134
+ </div>
205
135
  </div>
206
- </div>
207
136
 
208
137
  <div class="span4">
209
- <input type="submit" class="btn large primary" value="BLAST!"/>
138
+ <div id="methods">
139
+ <button type="submit" class="span3 btn btn-large btn-primary" id="method" disabled="disabled">blast</button>
140
+ <button class="btn btn-primary btn-large dropdown-toggle hide" data-toggle="dropdown">
141
+ <span class="caret"></span>
142
+ </button>
143
+ <ul class="dropdown-menu"></ul>
144
+ </div>
210
145
  </div>
211
146
  </div>
212
147
  </form>
213
148
 
214
- <div id="result" class="offset-left offset-right">
215
- <%= @blast %>
149
+ <div class="modal hide" id="spinner" data-keyboard="false" data-backdrop="static">
150
+ <div class="modal-body">
151
+ </div>
152
+ </div>
153
+
154
+ <div class="results hide">
155
+ <div id="result">
156
+ </div>
157
+ </div>
158
+
159
+ <div class="modal hide fade" id="error">
160
+ <div class="modal-header">
161
+ <h3 id="error-short">Oops! BLAST Failed</h3>
162
+ </div>
163
+ <div class="modal-body">
164
+ <h4 id="error-type"></h4>
165
+ <br/>
166
+ <p id="error-message"></p>
167
+ </div>
168
+ <div class="modal-footer">
169
+ <button class="btn btn-danger" data-dismiss="modal">Close</button>
170
+ </div>
216
171
  </div>
217
172
 
218
173
  <div id="underbar">
@@ -229,5 +184,38 @@
229
184
  </div>
230
185
  </div> <!-- /page -->
231
186
  </div> <!-- /container -->
187
+
188
+ <div id="social" class="modal hide fade">
189
+ <div class="modal-header">
190
+ <h3 id="error-short">Looks like you are fond of SequenceServer :).</h3>
191
+ </div>
192
+ <div class="modal-body">
193
+ <p>Please consider giving us a plus-one and/or tweeting about us. Thanks!</p>
194
+ <br/>
195
+ <div class="buttons">
196
+ <div class="button-container well">
197
+ <div class="g-plusone" data-annotation="none" data-href="http://www.sequenceserver.com"></div>
198
+ </div>
199
+ <div class="button-container well">
200
+ <a href="https://twitter.com/share" class="twitter-share-button" data-url="http://www.sequenceserver.com" data-text="SequenceServer: BLAST search made easy." data-via="yeban" data-size="large" data-count="none" data-hashtags="bioinformatics">Tweet</a>
201
+ </div>
202
+ </div>
203
+ </div>
204
+ <div class="modal-footer">
205
+ <button class="btn btn-primary" data-dismiss="modal">Done</button>
206
+ </div>
207
+ </div> <!-- /social -->
208
+
209
+ <!-- google plus -->
210
+ <script type="text/javascript">
211
+ (function() {
212
+ var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
213
+ po.src = 'https://apis.google.com/js/plusone.js';
214
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
215
+ })();
216
+ </script>
217
+
218
+ <!-- twitter -->
219
+ <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
232
220
  </body>
233
221
  </html>