sequenceserver 3.0.1 → 3.1.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (64) hide show
  1. checksums.yaml +4 -4
  2. data/bin/sequenceserver +2 -2
  3. data/lib/sequenceserver/api_errors.rb +56 -2
  4. data/lib/sequenceserver/blast/job.rb +20 -3
  5. data/lib/sequenceserver/blast/report.rb +74 -86
  6. data/lib/sequenceserver/blast/tasks.rb +38 -0
  7. data/lib/sequenceserver/blast.rb +6 -0
  8. data/lib/sequenceserver/config.rb +54 -20
  9. data/lib/sequenceserver/database.rb +13 -0
  10. data/lib/sequenceserver/makeblastdb.rb +16 -2
  11. data/lib/sequenceserver/report.rb +0 -6
  12. data/lib/sequenceserver/routes.rb +66 -25
  13. data/lib/sequenceserver/sequence.rb +34 -7
  14. data/lib/sequenceserver/server.rb +1 -1
  15. data/lib/sequenceserver/version.rb +1 -1
  16. data/lib/sequenceserver.rb +1 -1
  17. data/public/404.html +1 -1
  18. data/public/css/app.css +121 -0
  19. data/public/css/app.min.css +1 -0
  20. data/public/css/sequenceserver.css +0 -148
  21. data/public/css/sequenceserver.min.css +3 -3
  22. data/public/js/circos.js +2 -2
  23. data/public/js/collapse_preferences.js +37 -0
  24. data/public/js/databases.js +65 -37
  25. data/public/js/databases_tree.js +2 -1
  26. data/public/js/dnd.js +37 -50
  27. data/public/js/download_fasta.js +1 -0
  28. data/public/js/form.js +79 -50
  29. data/public/js/grapher.js +23 -37
  30. data/public/js/hits_overview.js +2 -2
  31. data/public/js/kablammo.js +2 -2
  32. data/public/js/length_distribution.js +3 -3
  33. data/public/js/null_plugins/grapher/histogram.js +25 -0
  34. data/public/js/null_plugins/options.js +3 -0
  35. data/public/js/null_plugins/query_stats.js +11 -0
  36. data/public/js/null_plugins/report_plugins.js +6 -1
  37. data/public/js/null_plugins/search_header_plugin.js +4 -0
  38. data/public/js/options.js +161 -56
  39. data/public/js/query.js +85 -59
  40. data/public/js/report.js +1 -1
  41. data/public/js/search.js +2 -0
  42. data/public/js/search_button.js +67 -56
  43. data/public/js/sidebar.js +10 -1
  44. data/public/js/tests/database.spec.js +5 -5
  45. data/public/js/tests/form.spec.js +98 -0
  46. data/public/js/tests/mock_data/databases.json +5 -5
  47. data/public/js/tests/mocks/circos.js +6 -0
  48. data/public/js/tests/report.spec.js +4 -3
  49. data/public/js/tests/search_query.spec.js +16 -6
  50. data/public/sequenceserver-report.min.js +46 -24
  51. data/public/sequenceserver-search.min.js +57 -13
  52. data/public/sequenceserver_logo.webp +0 -0
  53. data/views/blastn_options.erb +66 -66
  54. data/views/blastp_options.erb +59 -59
  55. data/views/blastx_options.erb +68 -68
  56. data/views/layout.erb +61 -3
  57. data/views/search.erb +33 -38
  58. data/views/search_layout.erb +153 -0
  59. data/views/tblastn_options.erb +57 -57
  60. data/views/tblastx_options.erb +64 -64
  61. metadata +51 -22
  62. data/lib/sequenceserver/makeblastdb-modified-with-cache.rb +0 -345
  63. data/public/SequenceServer_logo.png +0 -0
  64. data/public/js/tests/advanced_parameters.spec.js +0 -36
@@ -0,0 +1,153 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+
4
+ <head>
5
+ <title>SequenceServer: Custom BLAST Server</title>
6
+ <meta name="author" content="Pragmatic Genomics Limited"/>
7
+ <meta charset="UTF-8">
8
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
9
+ <%= Rack::Csrf.metatag(env) %>
10
+ <link rel="stylesheet" media="screen,print" type="text/css" href="css/app.min.css"/>
11
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/css/all.min.css" integrity="sha512-SnH5WK+bZxgPHs44uWIX+LLJAJ9/2PkPKZ5QiAj6Ta86w+fsb2TkcmfRyVX3pBnMFcV7oQPJkl9QevSCWr3W6A==" crossorigin="anonymous" referrerpolicy="no-referrer" />
12
+ </head>
13
+
14
+ <body>
15
+ <header id="header" class="bg-gray-100 shadow-lg w-full">
16
+ <div class="mx-auto max-w-7xl px-4 sm:px-6 lg:px-8">
17
+ <div class="flex flex-none items-center">
18
+ <div class="py-4">
19
+ <a href="https://sequenceserver.com" target="_blank" class="flex items-end">
20
+ <img src="sequenceserver_logo.webp" alt="sequenceserver_logo" width="1620" height="213" class="h-8 w-auto pr-2">
21
+ <small>
22
+ <%= SequenceServer::VERSION %>
23
+ </small>
24
+ </a>
25
+ </div>
26
+
27
+ <div class="flex-grow"></div>
28
+ <ul class="flex space-x-2">
29
+ <li>
30
+ <a
31
+ href="https://sequenceserver.com/progress-on-BLAST-interface/"
32
+ class="underline text-seqblue"
33
+ data-update-check
34
+ data-version="<%= SequenceServer::VERSION %>"
35
+ target="_blank">
36
+ </a>
37
+ </li>
38
+ <li>
39
+ <a
40
+ class="text-seqblue flex items-center"
41
+ target="_blank"
42
+ href="https://sequenceserver.com/support">
43
+
44
+ <i class="fa-solid fa-comment w-4 h-4 mr-1 fill-current"></i>
45
+ Help &amp; Support
46
+ </a>
47
+ </li>
48
+ </ul>
49
+ </div>
50
+ </div>
51
+ </header>
52
+
53
+ <noscript>
54
+ <div class="mx-auto px-4">
55
+ <div class="bg-red-100 border border-red-400 text-red-700 px-4 py-3 rounded relative" role="alert">
56
+ <strong class="font-bold">Our website cannot work without JavaScript.</strong>
57
+ <ul class="mt-2 list-disc list-inside">
58
+ <li>Please see if you can enable JavaScript in your browser's preferences.</li>
59
+ <li>If your browser doesn't support JavaScript, please consider upgrading to the latest version or using Firefox or Chrome.</li>
60
+ </ul>
61
+ </div>
62
+ </div>
63
+ </noscript>
64
+
65
+ <%= yield %>
66
+
67
+ <div class="mx-auto px-4">
68
+ <div class="container">
69
+ <p class="text-center">
70
+ Please cite data sources and <a class="text-seqblue" href="https://doi.org/10.1093/molbev/msz185">the paper</a> describing <a class="text-seqblue" href="https://wurmlab.com">our</a> <a class="text-seqblue" href="https://sequenceserver.com">SequenceServer BLAST interface</a>.
71
+ <a class="text-seqblue" href='https://sequenceserver.com'>
72
+ <em>
73
+ <%=
74
+ quote = [
75
+ "Visualize BLAST results.",
76
+ "Run BLAST on local computer.",
77
+ "BLAST on Mac.",
78
+ "BLAST on Windows.",
79
+ "Run blast on mac.",
80
+ "Blast analysis software.",
81
+ "Sequence Search on local computer.",
82
+ "Blast DNA sequence search.",
83
+ "Custom BLAST search.",
84
+ "Install blast on Mac.",
85
+ "Perform BLAST analyses.",
86
+ "Custom BLAST web interface.",
87
+ "SequenceServer: Local BLAST with bespoke html interface.",
88
+ "Set up custom BLAST interface with SequenceServer.",
89
+ "Easy BLASTing with SequenceServer.",
90
+ "BLAST against a custom, local database with SequenceServer.",
91
+ "Cloud BLAST custom genome.",
92
+ "NCBI BLAST alternative.",
93
+ "BLAST private transcriptome assembly in the Cloud.",
94
+ "Cloud server for comparative genomics, oligos, crisp, primers and more."
95
+ ].sample
96
+ %>
97
+ </em>
98
+ </a>
99
+ </p>
100
+ </div>
101
+
102
+ <script>
103
+ document.addEventListener('DOMContentLoaded', function() {
104
+
105
+ function suggestNewVersion(element, version) {
106
+ element.textContent = `New version v${version} is available`;
107
+ console.log(`New SequenceServer version available ${version}. Please consider updating.`)
108
+ }
109
+
110
+ const element = document.querySelector('[data-update-check]');
111
+ const currentVersion = element.getAttribute('data-version');
112
+ const cachedVersion = document.cookie.split(';').find((item) => item.trim().startsWith('newVersion='));
113
+ const upToDate = document.cookie.split(';').find((item) => item.trim().startsWith('versionIsLatest='));
114
+ if (upToDate) {
115
+ console.log('SequenceServer is up to date');
116
+ return;
117
+ }
118
+ if (cachedVersion) {
119
+ const newVersion = cachedVersion.split('=')[1];
120
+ if (newVersion !== currentVersion) {
121
+ suggestNewVersion(element, newVersion);
122
+ }
123
+ return;
124
+ }
125
+ console.log('Checking for new SequenceServer version...')
126
+ fetch(`https://updates.sequenceserver.com/?version=${currentVersion}`)
127
+ .then(response => {
128
+ if (response.ok) {
129
+ return response.json();
130
+ } else {
131
+ console.error('Failed to check for new SequenceServer version')
132
+ }
133
+ })
134
+ .then(data => {
135
+ const date = new Date();
136
+ date.setTime(date.getTime() + (24 * 60 * 60 * 1000));
137
+ const expires = "; expires=" + date.toUTCString();
138
+
139
+ if (data.update_available) {
140
+ const newVersion = data.new_version;
141
+ document.cookie = `newVersion=${newVersion}${expires}; path=/`;
142
+ suggestNewVersion(element, newVersion);
143
+ } else {
144
+ console.log('SequenceServer is up to date');
145
+ document.cookie = `versionIsLatest=true${expires}; path=/`;
146
+ }
147
+ })
148
+ .catch(() => {});
149
+ });
150
+
151
+ </script>
152
+ </body>
153
+ </html>
@@ -4,52 +4,52 @@
4
4
  characters per line to preserve formatting.
5
5
  %>
6
6
 
7
- <h5>General Search Options</h5>
8
- <ul class="list-unstyled">
7
+ <h5 class="text-lg py-4 font-medium">General Search Options</h5>
8
+ <ul class="list-unstyled space-y-2">
9
9
  <li>
10
- <pre><%= ERB::Util.h %q|-task <String, Permissible values: 'tblastn' 'tblastn-fast'>
10
+ <pre class="bg-gray-100 border rounded overflow-x-auto p-2 font-mono hover:bg-yellow-100"><%= ERB::Util.h %q|-task <String, Permissible values: 'tblastn' 'tblastn-fast'>
11
11
  Task to execute
12
12
  Default = 'tblastn'|%></pre>
13
13
  </li>
14
14
  <li>
15
- <pre><%= ERB::Util.h %q|-evalue <Real>
15
+ <pre class="bg-gray-100 border rounded overflow-x-auto p-2 font-mono hover:bg-yellow-100"><%= ERB::Util.h %q|-evalue <Real>
16
16
  Expectation value (E) threshold for saving hits
17
17
  Default = '10'| %></pre>
18
18
  </li>
19
19
  <li>
20
- <pre><%= ERB::Util.h %q|-word_size <Integer, >=2>
20
+ <pre class="bg-gray-100 border rounded overflow-x-auto p-2 font-mono hover:bg-yellow-100"><%= ERB::Util.h %q|-word_size <Integer, >=2>
21
21
  Word size for wordfinder algorithm| %></pre>
22
22
  </li>
23
23
  <li>
24
- <pre><%= ERB::Util.h %q|-gapopen <Integer>
24
+ <pre class="bg-gray-100 border rounded overflow-x-auto p-2 font-mono hover:bg-yellow-100"><%= ERB::Util.h %q|-gapopen <Integer>
25
25
  Cost to open a gap| %></pre>
26
26
  </li>
27
27
  <li>
28
- <pre><%= ERB::Util.h %q|-gapextend <Integer>
28
+ <pre class="bg-gray-100 border rounded overflow-x-auto p-2 font-mono hover:bg-yellow-100"><%= ERB::Util.h %q|-gapextend <Integer>
29
29
  Cost to extend a gap| %></pre>
30
30
  </li>
31
31
  <li>
32
- <pre><%= ERB::Util.h %q|-db_gencode <Integer, values between: 1-6, 9-16, 21-31, 33>
32
+ <pre class="bg-gray-100 border rounded overflow-x-auto p-2 font-mono hover:bg-yellow-100"><%= ERB::Util.h %q|-db_gencode <Integer, values between: 1-6, 9-16, 21-31, 33>
33
33
  Genetic code to use to translate database/subjects (see user manual for details)
34
34
  Default = '1' | %></pre>
35
35
  </li>
36
36
  <li>
37
- <pre><%= ERB::Util.h %q|-max_intron_length <Integer, >=0>
38
- Length of the largest intron allowed in a translated nucleotide sequence when
39
- linking multiple distinct alignments
37
+ <pre class="bg-gray-100 border rounded overflow-x-auto p-2 font-mono hover:bg-yellow-100"><%= ERB::Util.h %q|-max_intron_length <Integer, >=0>
38
+ Length of the largest intron allowed in a translated nucleotide sequence when
39
+ linking multiple distinct alignments
40
40
  Default = '0'| %></pre>
41
41
  </li>
42
42
  <li>
43
- <pre><%= ERB::Util.h %q|-matrix <String>
43
+ <pre class="bg-gray-100 border rounded overflow-x-auto p-2 font-mono hover:bg-yellow-100"><%= ERB::Util.h %q|-matrix <String>
44
44
  Scoring matrix name (normally BLOSUM62)| %></pre>
45
45
  </li>
46
46
  <li>
47
- <pre><%= ERB::Util.h %q|-threshold <Real, >=0>
47
+ <pre class="bg-gray-100 border rounded overflow-x-auto p-2 font-mono hover:bg-yellow-100"><%= ERB::Util.h %q|-threshold <Real, >=0>
48
48
  Minimum word score such that the word is added to the BLAST lookup
49
49
  table| %></pre>
50
50
  </li>
51
51
  <li>
52
- <pre><%= ERB::Util.h %q|-comp_based_stats <String>
52
+ <pre class="bg-gray-100 border rounded overflow-x-auto p-2 font-mono hover:bg-yellow-100"><%= ERB::Util.h %q|-comp_based_stats <String>
53
53
  Use composition-based statistics for blastp / tblastn:
54
54
  D or d: default (equivalent to 2)
55
55
  0 or F or f: no composition-based statistics
@@ -66,21 +66,21 @@
66
66
  </ul>
67
67
  <br />
68
68
 
69
- <h5>Formatting Options</h5>
70
- <ul class="list-unstyled">
69
+ <h5 class="text-lg py-4 font-medium">Formatting Options</h5>
70
+ <ul class="list-unstyled space-y-2">
71
71
  <li>
72
- <pre><%= ERB::Util.h %q|-show_gis
72
+ <pre class="bg-gray-100 border rounded overflow-x-auto p-2 font-mono hover:bg-yellow-100"><%= ERB::Util.h %q|-show_gis
73
73
  Show NCBI GIs in deflines?| %></pre>
74
74
  </li>
75
75
  <li>
76
- <pre><%= ERB::Util.h %q|-num_descriptions <Integer, >=0>
76
+ <pre class="bg-gray-100 border rounded overflow-x-auto p-2 font-mono hover:bg-yellow-100"><%= ERB::Util.h %q|-num_descriptions <Integer, >=0>
77
77
  Number of database sequences to show one-line descriptions for
78
78
  Not applicable for outfmt > 4
79
79
  Default = '500'
80
80
  * Incompatible with: max_target_seqs| %></pre>
81
81
  </li>
82
82
  <li>
83
- <pre><%= ERB::Util.h %q| -num_alignments <Integer, >=0>
83
+ <pre class="bg-gray-100 border rounded overflow-x-auto p-2 font-mono hover:bg-yellow-100"><%= ERB::Util.h %q| -num_alignments <Integer, >=0>
84
84
  Number of database sequences to show alignments for
85
85
  Default = '250'
86
86
  * Incompatible with: max_target_seqs| %></pre>
@@ -89,52 +89,52 @@
89
89
 
90
90
  <br/>
91
91
 
92
- <h5>Query filtering options</h5>
93
- <ul class="list-unstyled">
92
+ <h5 class="text-lg py-4 font-medium">Query filtering options</h5>
93
+ <ul class="list-unstyled space-y-2">
94
94
  <li>
95
- <pre><%= ERB::Util.h %q|-seg <String>
95
+ <pre class="bg-gray-100 border rounded overflow-x-auto p-2 font-mono hover:bg-yellow-100"><%= ERB::Util.h %q|-seg <String>
96
96
  Filter query sequence with SEG (Format: 'yes', 'window locut hicut',
97
97
  or 'no' to disable)
98
98
  Default = '12 2.2 2.5'| %></pre>
99
99
  </li>
100
100
  <li>
101
- <pre><%= ERB::Util.h %q|-soft_masking <Boolean>
101
+ <pre class="bg-gray-100 border rounded overflow-x-auto p-2 font-mono hover:bg-yellow-100"><%= ERB::Util.h %q|-soft_masking <Boolean>
102
102
  Apply filtering locations as soft masks
103
103
  Default ='false'| %></pre>
104
104
  </li>
105
105
  <li>
106
- <pre><%= ERB::Util.h %q|-lcase_masking
106
+ <pre class="bg-gray-100 border rounded overflow-x-auto p-2 font-mono hover:bg-yellow-100"><%= ERB::Util.h %q|-lcase_masking
107
107
  Use lower case filtering in query and subject sequence(s)?| %></pre>
108
108
  </li>
109
109
  </ul>
110
110
 
111
111
  <br/>
112
112
 
113
- <h5>Restrict search or results</h5>
114
- <ul class="list-unstyled">
113
+ <h5 class="text-lg py-4 font-medium">Restrict search or results</h5>
114
+ <ul class="list-unstyled space-y-2">
115
115
  <li>
116
- <pre><%= ERB::Util.h %q|-gilist <String>
116
+ <pre class="bg-gray-100 border rounded overflow-x-auto p-2 font-mono hover:bg-yellow-100"><%= ERB::Util.h %q|-gilist <String>
117
117
  Restrict search of database to list of GIs
118
118
  * Incompatible with: seqidlist, taxids, taxidlist, negative_gilist,
119
119
  negative_seqidlist, negative_taxids, negative_taxidlist, remote, subject,
120
120
  subject_loc| %></pre>
121
121
  </li>
122
122
  <li>
123
- <pre><%= ERB::Util.h %q|-seqidlist <String>
123
+ <pre class="bg-gray-100 border rounded overflow-x-auto p-2 font-mono hover:bg-yellow-100"><%= ERB::Util.h %q|-seqidlist <String>
124
124
  Restrict search of database to list of SeqIDs
125
125
  * Incompatible with: gilist, taxids, taxidlist, negative_gilist,
126
126
  negative_seqidlist, negative_taxids, negative_taxidlist, remote, subject,
127
127
  subject_loc| %></pre>
128
128
  </li>
129
129
  <li>
130
- <pre><%= ERB::Util.h %q|-negative_gilist <String>
130
+ <pre class="bg-gray-100 border rounded overflow-x-auto p-2 font-mono hover:bg-yellow-100"><%= ERB::Util.h %q|-negative_gilist <String>
131
131
  Restrict search of database to everything except the specified GIs
132
132
  * Incompatible with: gilist, seqidlist, taxids, taxidlist,
133
133
  negative_seqidlist, negative_taxids, negative_taxidlist, remote, subject,
134
134
  subject_loc| %></pre>
135
135
  </li>
136
136
  <li>
137
- <pre><%= ERB::Util.h %q|-negative_seqidlist <String>
137
+ <pre class="bg-gray-100 border rounded overflow-x-auto p-2 font-mono hover:bg-yellow-100"><%= ERB::Util.h %q|-negative_seqidlist <String>
138
138
  Restrict search of database to everything except the specified SeqIDs
139
139
  * Incompatible with: gilist, seqidlist, taxids, taxidlist,
140
140
  negative_gilist, negative_taxids, negative_taxidlist, remote, subject,
@@ -142,78 +142,78 @@
142
142
  </li>
143
143
  <li>
144
144
  <li>
145
- <pre><%= ERB::Util.h %q|-taxids <String>
145
+ <pre class="bg-gray-100 border rounded overflow-x-auto p-2 font-mono hover:bg-yellow-100"><%= ERB::Util.h %q|-taxids <String>
146
146
  Restrict search of database to include only the specified taxonomy IDs (multiple IDs delimited by ',')
147
147
  * Incompatible with: gilist, seqidlist, taxidlist, negative_gilist,
148
148
  negative_seqidlist, negative_taxids, negative_taxidlist, remote, subject,
149
149
  subject_loc| %></pre>
150
150
  </li>
151
151
  <li>
152
- <pre><%= ERB::Util.h %q|-negative_taxids <String>
152
+ <pre class="bg-gray-100 border rounded overflow-x-auto p-2 font-mono hover:bg-yellow-100"><%= ERB::Util.h %q|-negative_taxids <String>
153
153
  Restrict search of database to everything except the specified taxonomy IDs (multiple IDs delimited by ',')
154
154
  * Incompatible with: gilist, seqidlist, taxids, taxidlist,
155
155
  negative_gilist, negative_seqidlist, negative_taxidlist, remote, subject,
156
156
  subject_loc| %></pre>
157
157
  </li>
158
158
  <li>
159
- <pre><%= ERB::Util.h %q|-taxidlist <String>
159
+ <pre class="bg-gray-100 border rounded overflow-x-auto p-2 font-mono hover:bg-yellow-100"><%= ERB::Util.h %q|-taxidlist <String>
160
160
  Restrict search of database to include only the specified taxonomy IDs
161
161
  * Incompatible with: gilist, seqidlist, taxids, negative_gilist,
162
162
  negative_seqidlist, negative_taxids, negative_taxidlist, remote, subject,
163
163
  subject_loc| %></pre>
164
164
  </li>
165
165
  <li>
166
- <pre><%= ERB::Util.h %q|-negative_taxidlist <String>
166
+ <pre class="bg-gray-100 border rounded overflow-x-auto p-2 font-mono hover:bg-yellow-100"><%= ERB::Util.h %q|-negative_taxidlist <String>
167
167
  Restrict search of database to everything except the specified taxonomy IDs
168
168
  * Incompatible with: gilist, seqidlist, taxids, taxidlist,
169
169
  negative_gilist, negative_seqidlist, negative_taxids, remote, subject,
170
170
  subject_loc| %></pre>
171
171
  </li>
172
172
  <li>
173
- <pre><%= ERB::Util.h %q|-entrez_query <String>
173
+ <pre class="bg-gray-100 border rounded overflow-x-auto p-2 font-mono hover:bg-yellow-100"><%= ERB::Util.h %q|-entrez_query <String>
174
174
  Restrict search with the given Entrez query
175
175
  * Requires: remote| %></pre>
176
176
  </li>
177
177
  <li>
178
- <pre><%= ERB::Util.h %q|-db_soft_mask <String>
178
+ <pre class="bg-gray-100 border rounded overflow-x-auto p-2 font-mono hover:bg-yellow-100"><%= ERB::Util.h %q|-db_soft_mask <String>
179
179
  Filtering algorithm ID to apply to the BLAST database as soft masking
180
180
  * Incompatible with: db_hard_mask, subject, subject_loc| %></pre>
181
181
  </li>
182
182
  <li>
183
- <pre><%= ERB::Util.h %q|-db_hard_mask <String>
183
+ <pre class="bg-gray-100 border rounded overflow-x-auto p-2 font-mono hover:bg-yellow-100"><%= ERB::Util.h %q|-db_hard_mask <String>
184
184
  Filtering algorithm ID to apply to the BLAST database as hard masking
185
185
  * Incompatible with: db_soft_mask, subject, subject_loc| %></pre>
186
186
  </li>
187
187
  <li>
188
- <pre><%= ERB::Util.h %q|-qcov_hsp_perc <Real, 0..100>
188
+ <pre class="bg-gray-100 border rounded overflow-x-auto p-2 font-mono hover:bg-yellow-100"><%= ERB::Util.h %q|-qcov_hsp_perc <Real, 0..100>
189
189
  Percent query coverage per hsp| %></pre>
190
190
  </li>
191
191
  <li>
192
- <pre><%= ERB::Util.h %q|-max_hsps <Integer, >=1>
192
+ <pre class="bg-gray-100 border rounded overflow-x-auto p-2 font-mono hover:bg-yellow-100"><%= ERB::Util.h %q|-max_hsps <Integer, >=1>
193
193
  Set maximum number of HSPs per subject sequence to save for each query| %></pre>
194
194
  </li>
195
195
  <li>
196
- <pre><%= ERB::Util.h %q|-culling_limit <Integer, >=0>
196
+ <pre class="bg-gray-100 border rounded overflow-x-auto p-2 font-mono hover:bg-yellow-100"><%= ERB::Util.h %q|-culling_limit <Integer, >=0>
197
197
  If the query range of a hit is enveloped by that of at least this
198
198
  many higher-scoring hits, delete the hit
199
199
  * Incompatible with: best_hit_overhang, best_hit_score_edge| %></pre>
200
200
  </li>
201
201
  <li>
202
- <pre><%= ERB::Util.h %q|-best_hit_overhang <Real, (>0 and <0.5)>
202
+ <pre class="bg-gray-100 border rounded overflow-x-auto p-2 font-mono hover:bg-yellow-100"><%= ERB::Util.h %q|-best_hit_overhang <Real, (>0 and <0.5)>
203
203
  Best Hit algorithm overhang value (recommended value: 0.1)
204
204
  * Incompatible with: culling_limit| %></pre>
205
205
  </li>
206
206
  <li>
207
- <pre><%= ERB::Util.h %q|-best_hit_score_edge <Real, (>0 and <0.5)>
207
+ <pre class="bg-gray-100 border rounded overflow-x-auto p-2 font-mono hover:bg-yellow-100"><%= ERB::Util.h %q|-best_hit_score_edge <Real, (>0 and <0.5)>
208
208
  Best Hit algorithm score edge value (recommended value: 0.1)
209
209
  * Incompatible with: culling_limit| %></pre>
210
210
  </li>
211
211
  <li>
212
- <pre><%= ERB::Util.h %q|-subject_besthit
212
+ <pre class="bg-gray-100 border rounded overflow-x-auto p-2 font-mono hover:bg-yellow-100"><%= ERB::Util.h %q|-subject_besthit
213
213
  Turn on best hit per subject sequence| %></pre>
214
214
  </li>
215
215
  <li>
216
- <pre><%= ERB::Util.h %q|-max_target_seqs <Integer, >=1>
216
+ <pre class="bg-gray-100 border rounded overflow-x-auto p-2 font-mono hover:bg-yellow-100"><%= ERB::Util.h %q|-max_target_seqs <Integer, >=1>
217
217
  Maximum number of aligned sequences to keep (value of 5 or more is recommended)
218
218
  Default = '500'
219
219
  * Incompatible with: num_descriptions, num_alignments| %></pre>
@@ -222,45 +222,45 @@
222
222
 
223
223
  <br/>
224
224
 
225
- <h5>Statistical options</h5>
226
- <ul class="list-unstyled">
225
+ <h5 class="text-lg py-4 font-medium">Statistical options</h5>
226
+ <ul class="list-unstyled space-y-2">
227
227
  <li>
228
- <pre><%= ERB::Util.h %q|-dbsize <Int8>
228
+ <pre class="bg-gray-100 border rounded overflow-x-auto p-2 font-mono hover:bg-yellow-100"><%= ERB::Util.h %q|-dbsize <Int8>
229
229
  Effective length of the database| %></pre>
230
230
  </li>
231
231
  <li>
232
- <pre><%= ERB::Util.h %q|-searchsp <Int8, >=0>
232
+ <pre class="bg-gray-100 border rounded overflow-x-auto p-2 font-mono hover:bg-yellow-100"><%= ERB::Util.h %q|-searchsp <Int8, >=0>
233
233
  Effective length of the search space| %></pre>
234
234
  </li>
235
235
  <li>
236
- <pre><%= ERB::Util.h %q|-sum_stats <Boolean>
236
+ <pre class="bg-gray-100 border rounded overflow-x-auto p-2 font-mono hover:bg-yellow-100"><%= ERB::Util.h %q|-sum_stats <Boolean>
237
237
  Use sum statistics| %></pre>
238
238
  </li>
239
239
  </ul>
240
240
 
241
241
  <br/>
242
242
 
243
- <h5>Extension options</h5>
244
- <ul class="list-unstyled">
243
+ <h5 class="text-lg py-4 font-medium">Extension options</h5>
244
+ <ul class="list-unstyled space-y-2">
245
245
  <li>
246
- <pre><%= ERB::Util.h %q|-xdrop_ungap <Real>
246
+ <pre class="bg-gray-100 border rounded overflow-x-auto p-2 font-mono hover:bg-yellow-100"><%= ERB::Util.h %q|-xdrop_ungap <Real>
247
247
  X-dropoff value (in bits) for ungapped extensions| %></pre>
248
248
  </li>
249
249
  <li>
250
- <pre><%= ERB::Util.h %q|-xdrop_gap <Real>
250
+ <pre class="bg-gray-100 border rounded overflow-x-auto p-2 font-mono hover:bg-yellow-100"><%= ERB::Util.h %q|-xdrop_gap <Real>
251
251
  X-dropoff value (in bits) for preliminary gapped extensions| %></pre>
252
252
  </li>
253
253
  <li>
254
- <pre><%= ERB::Util.h %q|-xdrop_gap_final <Real>
254
+ <pre class="bg-gray-100 border rounded overflow-x-auto p-2 font-mono hover:bg-yellow-100"><%= ERB::Util.h %q|-xdrop_gap_final <Real>
255
255
  X-dropoff value (in bits) for final gapped alignment| %></pre>
256
256
  </li>
257
257
  <li>
258
- <pre><%= ERB::Util.h %q|-ungapped
258
+ <pre class="bg-gray-100 border rounded overflow-x-auto p-2 font-mono hover:bg-yellow-100"><%= ERB::Util.h %q|-ungapped
259
259
  Perform ungapped alignment only?| %></pre>
260
260
  </li>
261
261
  <li>
262
- <pre><%= ERB::Util.h %q|-window_size <Integer, >=0>
262
+ <pre class="bg-gray-100 border rounded overflow-x-auto p-2 font-mono hover:bg-yellow-100"><%= ERB::Util.h %q|-window_size <Integer, >=0>
263
263
  Multiple hits window size, use 0 to specify 1-hit algorithm| %></pre>
264
264
  </li>
265
-
265
+
266
266
  </ul>