sequenceserver 0.8.9 → 1.0.0.pre.1
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.
- checksums.yaml +4 -4
- data/{README.txt → README.md} +2 -0
- data/bin/sequenceserver +255 -55
- data/config.ru +2 -4
- data/lib/sequenceserver.rb +293 -447
- data/lib/sequenceserver/blast.rb +464 -64
- data/lib/sequenceserver/database.rb +185 -19
- data/lib/sequenceserver/links.rb +114 -0
- data/lib/sequenceserver/logger.rb +27 -0
- data/lib/sequenceserver/sequence.rb +141 -0
- data/public/css/bootstrap.min.css +8 -413
- data/public/css/custom.css +363 -122
- data/public/css/font-awesome.min.css +4 -0
- data/public/fonts/FontAwesome.otf +0 -0
- data/public/fonts/fontawesome-webfont.eot +0 -0
- data/public/fonts/fontawesome-webfont.svg +565 -0
- data/public/fonts/fontawesome-webfont.ttf +0 -0
- data/public/fonts/fontawesome-webfont.woff +0 -0
- data/public/fonts/fontawesome-webfont.woff2 +0 -0
- data/public/js/bootstrap.min.js +11 -0
- data/public/js/d3.v3.min.js +5 -0
- data/public/js/html5shiv.min.js +4 -0
- data/public/js/jquery.scrollspy.js +74 -0
- data/public/js/jquery.t.js +353 -0
- data/public/js/sequence.js +2419 -0
- data/public/js/sequenceserver.blast.js +29 -30
- data/public/js/sequenceserver.js +544 -120
- data/public/js/underscore.min.js +6 -0
- data/public/js/webshims/polyfiller.js +1 -0
- data/public/js/webshims/shims/FlashCanvas/canvas2png.js +1 -0
- data/public/js/webshims/shims/FlashCanvas/flashcanvas.js +1 -0
- data/public/js/webshims/shims/FlashCanvas/flashcanvas.swf +0 -0
- data/public/js/webshims/shims/FlashCanvasPro/canvas2png.js +1 -0
- data/public/js/webshims/shims/FlashCanvasPro/flash10canvas.swf +0 -0
- data/public/js/webshims/shims/FlashCanvasPro/flash9canvas.swf +0 -0
- data/public/js/webshims/shims/FlashCanvasPro/flashcanvas.js +1 -0
- data/public/js/webshims/shims/canvas-blob.js +1 -0
- data/public/js/webshims/shims/color-picker.js +2 -0
- data/public/js/webshims/shims/combos/1.js +6 -0
- data/public/js/webshims/shims/combos/10.js +2 -0
- data/public/js/webshims/shims/combos/11.js +2 -0
- data/public/js/webshims/shims/combos/12.js +6 -0
- data/public/js/webshims/shims/combos/13.js +1 -0
- data/public/js/webshims/shims/combos/14.js +1 -0
- data/public/js/webshims/shims/combos/15.js +2 -0
- data/public/js/webshims/shims/combos/16.js +7 -0
- data/public/js/webshims/shims/combos/17.js +2 -0
- data/public/js/webshims/shims/combos/18.js +3 -0
- data/public/js/webshims/shims/combos/2.js +7 -0
- data/public/js/webshims/shims/combos/21.js +2 -0
- data/public/js/webshims/shims/combos/22.js +1 -0
- data/public/js/webshims/shims/combos/23.js +6 -0
- data/public/js/webshims/shims/combos/25.js +2 -0
- data/public/js/webshims/shims/combos/27.js +1 -0
- data/public/js/webshims/shims/combos/28.js +1 -0
- data/public/js/webshims/shims/combos/29.js +1 -0
- data/public/js/webshims/shims/combos/3.js +1 -0
- data/public/js/webshims/shims/combos/30.js +2 -0
- data/public/js/webshims/shims/combos/31.js +1 -0
- data/public/js/webshims/shims/combos/33.js +1 -0
- data/public/js/webshims/shims/combos/34.js +1 -0
- data/public/js/webshims/shims/combos/4.js +1 -0
- data/public/js/webshims/shims/combos/5.js +2 -0
- data/public/js/webshims/shims/combos/6.js +2 -0
- data/public/js/webshims/shims/combos/7.js +7 -0
- data/public/js/webshims/shims/combos/8.js +7 -0
- data/public/js/webshims/shims/combos/9.js +2 -0
- data/public/js/webshims/shims/combos/97.js +1 -0
- data/public/js/webshims/shims/combos/98.js +1 -0
- data/public/js/webshims/shims/combos/99.js +1 -0
- data/public/js/webshims/shims/details.js +1 -0
- data/public/js/webshims/shims/dom-extend.js +1 -0
- data/public/js/webshims/shims/es5.js +1 -0
- data/public/js/webshims/shims/es6.js +1 -0
- data/public/js/webshims/shims/excanvas.js +1 -0
- data/public/js/webshims/shims/filereader-xhr.js +1 -0
- data/public/js/webshims/shims/form-combat.js +1 -0
- data/public/js/webshims/shims/form-core.js +1 -0
- data/public/js/webshims/shims/form-datalist-lazy.js +1 -0
- data/public/js/webshims/shims/form-datalist.js +1 -0
- data/public/js/webshims/shims/form-fixrangechange.js +1 -0
- data/public/js/webshims/shims/form-inputmode.js +1 -0
- data/public/js/webshims/shims/form-message.js +1 -0
- data/public/js/webshims/shims/form-native-extend.js +1 -0
- data/public/js/webshims/shims/form-number-date-api.js +1 -0
- data/public/js/webshims/shims/form-number-date-ui.js +1 -0
- data/public/js/webshims/shims/form-shim-extend.js +1 -0
- data/public/js/webshims/shims/form-shim-extend2.js +1 -0
- data/public/js/webshims/shims/form-validation.js +1 -0
- data/public/js/webshims/shims/form-validators.js +1 -0
- data/public/js/webshims/shims/forms-picker.js +1 -0
- data/public/js/webshims/shims/geolocation.js +1 -0
- data/public/js/webshims/shims/i18n/formcfg-ar.js +1 -0
- data/public/js/webshims/shims/i18n/formcfg-ch-CN.js +1 -0
- data/public/js/webshims/shims/i18n/formcfg-cs.js +1 -0
- data/public/js/webshims/shims/i18n/formcfg-de.js +1 -0
- data/public/js/webshims/shims/i18n/formcfg-el.js +1 -0
- data/public/js/webshims/shims/i18n/formcfg-en.js +1 -0
- data/public/js/webshims/shims/i18n/formcfg-es.js +1 -0
- data/public/js/webshims/shims/i18n/formcfg-fa.js +1 -0
- data/public/js/webshims/shims/i18n/formcfg-fr.js +1 -0
- data/public/js/webshims/shims/i18n/formcfg-he.js +1 -0
- data/public/js/webshims/shims/i18n/formcfg-hi.js +1 -0
- data/public/js/webshims/shims/i18n/formcfg-hu.js +1 -0
- data/public/js/webshims/shims/i18n/formcfg-it.js +1 -0
- data/public/js/webshims/shims/i18n/formcfg-ja.js +1 -0
- data/public/js/webshims/shims/i18n/formcfg-lt.js +1 -0
- data/public/js/webshims/shims/i18n/formcfg-nl.js +1 -0
- data/public/js/webshims/shims/i18n/formcfg-pl.js +1 -0
- data/public/js/webshims/shims/i18n/formcfg-pt-BR.js +1 -0
- data/public/js/webshims/shims/i18n/formcfg-pt-PT.js +1 -0
- data/public/js/webshims/shims/i18n/formcfg-pt.js +1 -0
- data/public/js/webshims/shims/i18n/formcfg-ru.js +1 -0
- data/public/js/webshims/shims/i18n/formcfg-sv.js +1 -0
- data/public/js/webshims/shims/i18n/formcfg-zh-CN.js +1 -0
- data/public/js/webshims/shims/i18n/formcfg-zh-TW.js +1 -0
- data/public/js/webshims/shims/jme/alternate-media.js +1 -0
- data/public/js/webshims/shims/jme/base.js +1 -0
- data/public/js/webshims/shims/jme/controls.css +1 -0
- data/public/js/webshims/shims/jme/jme.eot +0 -0
- data/public/js/webshims/shims/jme/jme.svg +36 -0
- data/public/js/webshims/shims/jme/jme.ttf +0 -0
- data/public/js/webshims/shims/jme/jme.woff +0 -0
- data/public/js/webshims/shims/jme/mediacontrols-lazy.js +1 -0
- data/public/js/webshims/shims/jme/mediacontrols.js +1 -0
- data/public/js/webshims/shims/jme/playlist.js +1 -0
- data/public/js/webshims/shims/jpicker/images/AlphaBar.png +0 -0
- data/public/js/webshims/shims/jpicker/images/Bars.png +0 -0
- data/public/js/webshims/shims/jpicker/images/Maps.png +0 -0
- data/public/js/webshims/shims/jpicker/images/NoColor.png +0 -0
- data/public/js/webshims/shims/jpicker/images/bar-opacity.png +0 -0
- data/public/js/webshims/shims/jpicker/images/map-opacity.png +0 -0
- data/public/js/webshims/shims/jpicker/images/mappoint.gif +0 -0
- data/public/js/webshims/shims/jpicker/images/picker.gif +0 -0
- data/public/js/webshims/shims/jpicker/images/preview-opacity.png +0 -0
- data/public/js/webshims/shims/jpicker/images/rangearrows.gif +0 -0
- data/public/js/webshims/shims/jpicker/jpicker.css +1 -0
- data/public/js/webshims/shims/matchMedia.js +3 -0
- data/public/js/webshims/shims/mediacapture-picker.js +1 -0
- data/public/js/webshims/shims/mediacapture.js +1 -0
- data/public/js/webshims/shims/mediaelement-core.js +1 -0
- data/public/js/webshims/shims/mediaelement-debug.js +1 -0
- data/public/js/webshims/shims/mediaelement-jaris.js +1 -0
- data/public/js/webshims/shims/mediaelement-native-fix.js +1 -0
- data/public/js/webshims/shims/mediaelement-yt.js +1 -0
- data/public/js/webshims/shims/moxie/flash/Moxie.cdn.swf +0 -0
- data/public/js/webshims/shims/moxie/flash/Moxie.min.swf +0 -0
- data/public/js/webshims/shims/moxie/js/moxie-html4.js +3 -0
- data/public/js/webshims/shims/moxie/js/moxie-swf.js +2 -0
- data/public/js/webshims/shims/picture.js +1 -0
- data/public/js/webshims/shims/plugins/jquery.ui.position.js +11 -0
- data/public/js/webshims/shims/range-ui.js +1 -0
- data/public/js/webshims/shims/sizzle.js +11 -0
- data/public/js/webshims/shims/sticky.js +1 -0
- data/public/js/webshims/shims/styles/color-picker.png +0 -0
- data/public/js/webshims/shims/styles/forms-ext.css +1 -0
- data/public/js/webshims/shims/styles/forms-picker.css +1 -0
- data/public/js/webshims/shims/styles/progress.gif +0 -0
- data/public/js/webshims/shims/styles/progress.png +0 -0
- data/public/js/webshims/shims/styles/shim-ext.css +1 -0
- data/public/js/webshims/shims/styles/shim.css +1 -0
- data/public/js/webshims/shims/styles/transparent.png +0 -0
- data/public/js/webshims/shims/styles/widget.eot +0 -0
- data/public/js/webshims/shims/styles/widget.svg +12 -0
- data/public/js/webshims/shims/styles/widget.ttf +0 -0
- data/public/js/webshims/shims/styles/widget.woff +0 -0
- data/public/js/webshims/shims/swf/JarisFLVPlayer.swf +0 -0
- data/public/js/webshims/shims/swfmini-embed.js +1 -0
- data/public/js/webshims/shims/swfmini.js +6 -0
- data/public/js/webshims/shims/track-ui.js +1 -0
- data/public/js/webshims/shims/track.js +1 -0
- data/public/js/webshims/shims/url.js +1 -0
- data/public/js/webshims/shims/usermedia-core.js +1 -0
- data/public/js/webshims/shims/usermedia-shim.js +1 -0
- data/sequenceserver.gemspec +16 -13
- data/views/400.erb +28 -0
- data/views/500.erb +35 -19
- data/views/_options.erb +6 -15
- data/views/result.erb +218 -0
- data/views/search.erb +354 -151
- metadata +254 -62
- data/example.config.yml +0 -39
- data/lib/sequenceserver/customisation.rb +0 -60
- data/lib/sequenceserver/database_formatter.rb +0 -190
- data/lib/sequenceserver/helpers.rb +0 -136
- data/lib/sequenceserver/sequencehelpers.rb +0 -93
- data/lib/sequenceserver/sinatralikeloggerformatter.rb +0 -12
- data/lib/sequenceserver/version.rb +0 -9
- data/public/css/beige.css.css +0 -254
- data/public/css/bootstrap.dropdown.css +0 -29
- data/public/css/bootstrap.icons.css +0 -155
- data/public/css/bootstrap.modal.css +0 -28
- data/public/js/bootstrap.dropdown.js +0 -92
- data/public/js/bootstrap.modal.js +0 -7
- data/public/js/bootstrap.transition.js +0 -7
- data/public/js/jquery-scrollspy.js +0 -98
- data/public/js/jquery.activity.js +0 -10
- data/public/js/jquery.enablePlaceholder.min.js +0 -10
- data/public/js/store.min.js +0 -2
- data/public/sequence.html +0 -28
- data/tests/database/nucleotide/Sinvicta2-2-3.cdna.subset.fasta +0 -5486
- data/tests/database/nucleotide/Sinvicta2-2-3.cdna.subset.fasta.nhr +0 -0
- data/tests/database/nucleotide/Sinvicta2-2-3.cdna.subset.fasta.nin +0 -0
- data/tests/database/nucleotide/Sinvicta2-2-3.cdna.subset.fasta.nsq +0 -0
- data/tests/database/protein/Sinvicta2-2-3.prot.subset.fasta +0 -6449
- data/tests/database/protein/Sinvicta2-2-3.prot.subset.fasta.phr +0 -0
- data/tests/database/protein/Sinvicta2-2-3.prot.subset.fasta.pin +0 -0
- data/tests/database/protein/Sinvicta2-2-3.prot.subset.fasta.psq +0 -0
- data/tests/run +0 -26
- data/tests/test_sequencehelpers.rb +0 -77
- data/tests/test_sequenceserver_blast.rb +0 -60
- data/tests/test_ui.rb +0 -104
- data/tests/ui.specs.todo +0 -10
data/views/search.erb
CHANGED
@@ -4,215 +4,418 @@
|
|
4
4
|
<title>SequenceServer: Custom BLAST Server</title>
|
5
5
|
<meta name="author" content="Anurag Priyam" />
|
6
6
|
<meta name="author" content="Ben J. Woodcroft" />
|
7
|
+
<meta name="author" content="Vivek Rai" />
|
7
8
|
<meta name="author" content="Yannick Wurm" />
|
8
9
|
<meta name="author" content="Cedric Wurm" />
|
9
10
|
<meta name="description" content="Custom BLAST server provided by SequenceServer (http://www.sequenceserver.com)"/>
|
10
11
|
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type"/>
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
<
|
17
|
-
<
|
18
|
-
<
|
19
|
-
<
|
20
|
-
<
|
21
|
-
<script type="text/javascript" src="<%= uri('/js/sequenceserver.blast.js') %>"></script>
|
22
|
-
|
23
|
-
<%# without a space after erb's closing tag, a / gets appended to css' path %>
|
24
|
-
<link rel="stylesheet" media="screen" type="text/css" href="<%= uri('/css/bootstrap.min.css') %>" />
|
25
|
-
<link rel="stylesheet" media="screen" type="text/css" href="<%= uri('/css/bootstrap.dropdown.css') %>" />
|
26
|
-
<link rel="stylesheet" media="screen" type="text/css" href="<%= uri('/css/bootstrap.modal.css') %>" />
|
27
|
-
<link rel="stylesheet" media="screen" type="text/css" href="<%= uri('/css/bootstrap.icons.css') %>" />
|
28
|
-
<link rel="stylesheet" media="screen" type="text/css" href="<%= uri('/css/custom.css') %>" />
|
12
|
+
|
13
|
+
<!--[if lt IE 9]>
|
14
|
+
<script src="js/html5shiv.js"></script>
|
15
|
+
<![endif]-->
|
16
|
+
|
17
|
+
<link href='http://fonts.googleapis.com/css?family=Roboto:400' rel='stylesheet' type='text/css'>
|
18
|
+
<link href='http://fonts.googleapis.com/css?family=Open+Sans:400,700' rel='stylesheet' type='text/css'>
|
19
|
+
<link rel="stylesheet" media="screen" type="text/css" href="css/bootstrap.min.css"/>
|
20
|
+
<link rel="stylesheet" media="screen" type="text/css" href="css/font-awesome.min.css"/>
|
21
|
+
<link rel="stylesheet" media="screen" type="text/css" href="css/custom.css"/>
|
29
22
|
</head>
|
30
23
|
|
31
24
|
<body>
|
32
|
-
<div
|
25
|
+
<div
|
26
|
+
class="navbar">
|
27
|
+
<div
|
28
|
+
class="container">
|
29
|
+
<a
|
30
|
+
class="navbar-brand"
|
31
|
+
href="http://sequenceserver.com" target="_blank">
|
32
|
+
SequenceServer
|
33
|
+
<small>
|
34
|
+
BLAST searching made easy!
|
35
|
+
</small>
|
36
|
+
</a>
|
37
|
+
</div>
|
38
|
+
</div>
|
39
|
+
|
40
|
+
<div
|
41
|
+
class="dnd-overlay"
|
42
|
+
style="display: none;">
|
43
|
+
<div
|
44
|
+
class="container dnd-overlay-container">
|
45
|
+
<div
|
46
|
+
class="row">
|
47
|
+
<div
|
48
|
+
class="col-md-offset-2 col-md-10">
|
49
|
+
<p
|
50
|
+
class="dnd-overlay-drop"
|
51
|
+
style="display: none;">
|
52
|
+
<i class="fa fa-2x fa-file-o"></i>
|
53
|
+
Drop query sequence file here
|
54
|
+
</p>
|
55
|
+
<p
|
56
|
+
class="dnd-overlay-overwrite"
|
57
|
+
style="display: none;">
|
58
|
+
<i class="fa fa-2x fa-file-o"></i>
|
59
|
+
<span style="color: red;">Overwrite</span> query sequence file
|
60
|
+
</p>
|
61
|
+
|
62
|
+
<div
|
63
|
+
class="dnd-errors">
|
64
|
+
<div
|
65
|
+
class="dnd-error"
|
66
|
+
id="dnd-multi-notification"
|
67
|
+
style="display: none;">
|
68
|
+
<div
|
69
|
+
class="col-md-6 col-md-offset-3">
|
70
|
+
One file at a time please.
|
71
|
+
</div>
|
72
|
+
</div>
|
73
|
+
|
74
|
+
<div
|
75
|
+
class="dnd-error"
|
76
|
+
id="dnd-large-file-notification"
|
77
|
+
style="display: none;">
|
78
|
+
<div
|
79
|
+
class="col-md-6 col-md-offset-3">
|
80
|
+
Too big a file. Can only do less than 10 MB. >_<
|
81
|
+
</div>
|
82
|
+
</div>
|
83
|
+
|
84
|
+
<div
|
85
|
+
class="dnd-error"
|
86
|
+
id="dnd-format-notification"
|
87
|
+
style="display: none;">
|
88
|
+
<div
|
89
|
+
class="col-md-6 col-md-offset-3">
|
90
|
+
Only FASTA files please.
|
91
|
+
</div>
|
92
|
+
</div>
|
93
|
+
</div>
|
94
|
+
</div>
|
95
|
+
</div>
|
96
|
+
</div>
|
97
|
+
</div>
|
98
|
+
|
99
|
+
<div
|
100
|
+
class="container">
|
33
101
|
<noscript>
|
34
|
-
<div
|
102
|
+
<div
|
103
|
+
class="nojs-error">
|
35
104
|
<h3>SequenceServer can't work without JavaScript.</h3>
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
105
|
+
<ul>
|
106
|
+
<li>Please see if you can enable JavaScript in your browser's preferences.</li>
|
107
|
+
<li>If your browser doesn't support JavaScript, please consider upgrading to the latest version or using Firefox or Chrome.</li>
|
108
|
+
</ul>
|
40
109
|
</div>
|
41
110
|
</noscript>
|
42
111
|
|
43
|
-
<
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
<div
|
51
|
-
|
52
|
-
|
53
|
-
|
112
|
+
<form
|
113
|
+
class="form-horizontal" id="blast"
|
114
|
+
method="post" action="#result">
|
115
|
+
<div
|
116
|
+
class="form-group">
|
117
|
+
<div
|
118
|
+
class="col-md-12">
|
119
|
+
<div
|
120
|
+
class="sequence-controls hidden">
|
121
|
+
<button
|
122
|
+
type="button"
|
123
|
+
class="btn btn-sm btn-default" id="btn-sequence-clear"
|
124
|
+
title="Clear query sequence(s).">
|
125
|
+
<span id="sequence-file"></span>
|
126
|
+
<i class="fa fa-times"></i>
|
127
|
+
</button>
|
128
|
+
</div>
|
129
|
+
<div
|
130
|
+
class="sequence">
|
131
|
+
<textarea
|
132
|
+
class="form-control text-monospace" name="sequence" id="sequence"
|
133
|
+
rows="10"
|
134
|
+
autofocus="true"
|
135
|
+
spellcheck="false"
|
136
|
+
placeholder="Paste query sequence(s) or drag file containing query sequence(s) here ..." ></textarea>
|
54
137
|
</div>
|
55
138
|
</div>
|
139
|
+
</div>
|
56
140
|
|
57
|
-
|
58
|
-
|
141
|
+
<div
|
142
|
+
class="notifications">
|
143
|
+
<div
|
144
|
+
class="notification"
|
145
|
+
id="nucleotide-sequence-notification"
|
146
|
+
style="display: none;">
|
147
|
+
<div
|
148
|
+
class="alert-info col-md-6 col-md-offset-3">
|
59
149
|
Detected: nucleotide sequence(s).
|
60
150
|
</div>
|
151
|
+
</div>
|
61
152
|
|
62
|
-
|
153
|
+
<div
|
154
|
+
class="notification"
|
155
|
+
id="protein-sequence-notification"
|
156
|
+
style="display: none;">
|
157
|
+
<div
|
158
|
+
class="alert-info col-md-6 col-md-offset-3">
|
63
159
|
Detected: protein sequence(s).
|
64
160
|
</div>
|
161
|
+
</div>
|
65
162
|
|
66
|
-
|
163
|
+
<div
|
164
|
+
class="notification"
|
165
|
+
id="mixed-sequence-notification"
|
166
|
+
style="display: none;">
|
167
|
+
<div
|
168
|
+
class="alert-danger col-md-10 col-md-offset-1">
|
67
169
|
Detected: mixed nucleotide and protein sequences. We can't handle that. Please try one sequence at a time.
|
68
170
|
</div>
|
69
171
|
</div>
|
70
172
|
|
71
|
-
|
173
|
+
</div>
|
72
174
|
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
</label>
|
85
|
-
<% end %>
|
86
|
-
</div>
|
87
|
-
</fieldset>
|
175
|
+
<div
|
176
|
+
class="form-group databases-container">
|
177
|
+
<%# sort => same ordering of nucleotide and protein datbases %>
|
178
|
+
<% databases.keys.sort.each do |type| %>
|
179
|
+
<div
|
180
|
+
class="<%= databases[(databases.keys - [type]).first] ? 'col-md-6' : 'col-md-12' %>">
|
181
|
+
<div
|
182
|
+
class="panel panel-default">
|
183
|
+
<div
|
184
|
+
class="panel-heading">
|
185
|
+
<h4><%= type.capitalize %> databases</h4>
|
88
186
|
</div>
|
187
|
+
<ul
|
188
|
+
class="list-group databases <%= type %>">
|
189
|
+
<% databases[type].sort_by(&:title).each do |database| %>
|
190
|
+
<li class="list-group-item">
|
191
|
+
<div
|
192
|
+
class="checkbox">
|
193
|
+
<label>
|
194
|
+
<input type="checkbox" name="databases[]" value="<%=database.id%>" data-type="<%=database.type%>" />
|
195
|
+
<%= database.title or database.name %>
|
196
|
+
</label>
|
197
|
+
</div>
|
198
|
+
</li>
|
199
|
+
<% end %>
|
200
|
+
</ul>
|
89
201
|
</div>
|
90
202
|
</div>
|
203
|
+
<% end %>
|
204
|
+
</div>
|
91
205
|
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
206
|
+
<div
|
207
|
+
class="form-group">
|
208
|
+
<div
|
209
|
+
class="col-md-8">
|
210
|
+
<div
|
211
|
+
class="form-group advanced">
|
212
|
+
<label
|
213
|
+
class="col-md-3 control-label"
|
214
|
+
for="advanced">
|
215
|
+
Advanced Parameters:
|
216
|
+
</label>
|
217
|
+
<div
|
218
|
+
class="col-md-9 input-group">
|
219
|
+
<input
|
220
|
+
type="text"
|
221
|
+
class="form-control" name="advanced" id="advanced"
|
222
|
+
title="View, and enter advanced parameters."
|
223
|
+
placeholder="eg: -evalue 1.0e-5 -num_alignments 100"/>
|
224
|
+
<div class="input-group-addon cursor-pointer" data-toggle="modal" data-toggle="modal" data-target="#help">
|
225
|
+
<i class="fa fa-question"></i>
|
226
|
+
</div>
|
107
227
|
</div>
|
108
228
|
</div>
|
109
229
|
</div>
|
110
230
|
|
111
|
-
<
|
231
|
+
<div
|
232
|
+
class="col-md-4">
|
233
|
+
<div
|
234
|
+
class="btn-group btn-block" id="methods">
|
235
|
+
<button
|
236
|
+
type="submit"
|
237
|
+
id="method" class="btn btn-primary col-md-12"
|
238
|
+
title="Use Ctrl+Enter as shortcut."
|
239
|
+
disabled="disabled">
|
240
|
+
blast
|
241
|
+
</button>
|
242
|
+
</div>
|
243
|
+
</div>
|
244
|
+
</div>
|
245
|
+
</form>
|
112
246
|
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
<input class="span8" type="text" name="advanced" id="advanced" title="View, and enter advanced parameters." placeholder="eg: -evalue 1.0e-5 -num_alignments 100"/>
|
119
|
-
<span class="icon-question-sign" data-toggle="modal" href="#help"></span>
|
120
|
-
</div>
|
247
|
+
<div
|
248
|
+
class="result" id="result"
|
249
|
+
style="display: none;">
|
250
|
+
</div>
|
251
|
+
</div> <!-- /container -->
|
121
252
|
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
253
|
+
<div
|
254
|
+
class="footer" id="footer">
|
255
|
+
<hr>
|
256
|
+
<p
|
257
|
+
class="text-center">
|
258
|
+
<a
|
259
|
+
href='http://www.sequenceserver.com'>
|
260
|
+
<%=
|
261
|
+
quote = [
|
262
|
+
"Custom BLAST web interface by SequenceServer.",
|
263
|
+
"SequenceServer: Local BLAST with bespoke html interface.",
|
264
|
+
"Set up custom BLAST interface with SequenceServer.",
|
265
|
+
"Easy BLASTing with SequenceServer."
|
266
|
+
][rand(4)]
|
267
|
+
%>
|
268
|
+
</a>
|
269
|
+
<a
|
270
|
+
class="twitter-share-button"
|
271
|
+
href="https://twitter.com/share"
|
272
|
+
data-url="http://www.sequenceserver.com" data-text="<%= quote %>" data-via="yeban" data-hashtags="bioinformatics">
|
273
|
+
Tweet
|
274
|
+
</a>
|
275
|
+
<%#<div class="g-plusone" data-annotation="none" data-href="http://www.sequenceserver.com"></div>%>
|
135
276
|
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
277
|
+
<br>
|
278
|
+
Please Cite:
|
279
|
+
<a href='http://www.sequenceserver.com'>
|
280
|
+
Priyam, Woodcroft, Rai & Wurm, <strong>SequenceServer</strong> (<em>in prep</em>)</a>
|
281
|
+
</a>
|
282
|
+
& relevant data sources.
|
283
|
+
</p>
|
284
|
+
</div>
|
285
|
+
|
286
|
+
<div
|
287
|
+
id="error"
|
288
|
+
class="modal fade"
|
289
|
+
tabindex="-1">
|
290
|
+
</div> <!-- error -->
|
291
|
+
|
292
|
+
<div
|
293
|
+
class="modal fade" id="error-no-response">
|
294
|
+
<div
|
295
|
+
class="modal-dialog">
|
296
|
+
<div
|
297
|
+
class="modal-content">
|
298
|
+
<div
|
299
|
+
class="modal-header">
|
300
|
+
<h3>Server didn't respond</h3>
|
145
301
|
</div>
|
146
|
-
</form>
|
147
302
|
|
148
|
-
|
149
|
-
|
303
|
+
<div
|
304
|
+
class="modal-body">
|
305
|
+
<p>
|
306
|
+
Could be a temporary network issue, or the service might be
|
307
|
+
configured to "time out" long requests.
|
308
|
+
</p>
|
309
|
+
|
310
|
+
<p>
|
311
|
+
Please try again
|
312
|
+
later, or report to the admin or <a
|
313
|
+
href="https://groups.google.com/forum/?fromgroups#!forum/sequenceserver">SequenceServer
|
314
|
+
Google Group</a> (if you are the admin) if problem persists.
|
315
|
+
</p>
|
150
316
|
</div>
|
151
|
-
</div>
|
152
317
|
|
153
|
-
|
154
|
-
|
318
|
+
<div
|
319
|
+
class="modal-footer">
|
320
|
+
<button class="btn btn-danger" data-dismiss="modal">Okay</button>
|
155
321
|
</div>
|
156
322
|
</div>
|
323
|
+
</div>
|
324
|
+
</div> <!-- error-no-response -->
|
157
325
|
|
158
|
-
|
159
|
-
|
160
|
-
|
326
|
+
<div
|
327
|
+
class="modal fade" id="help"
|
328
|
+
tabindex="-1">
|
329
|
+
<div
|
330
|
+
class="modal-dialog modal-lg">
|
331
|
+
<div
|
332
|
+
class="modal-content">
|
333
|
+
<div
|
334
|
+
class="modal-header">
|
335
|
+
<h3>Advanced Options</h3>
|
161
336
|
</div>
|
162
|
-
<div
|
163
|
-
|
164
|
-
|
165
|
-
<p id="error-message"></p>
|
337
|
+
<div
|
338
|
+
class="modal-body">
|
339
|
+
<%= erb :_options %>
|
166
340
|
</div>
|
167
|
-
<div
|
168
|
-
|
341
|
+
<div
|
342
|
+
class="modal-footer">
|
343
|
+
<button
|
344
|
+
class="btn btn-default btn-primary"
|
345
|
+
data-dismiss="modal">
|
346
|
+
Got it!
|
347
|
+
</button>
|
169
348
|
</div>
|
170
349
|
</div>
|
350
|
+
</div>
|
351
|
+
</div> <!-- advanced options -->
|
171
352
|
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
353
|
+
<div
|
354
|
+
class="modal" id="spinner"
|
355
|
+
tabindex="-1"
|
356
|
+
data-backdrop="static" data-keyboard="false">
|
357
|
+
<div
|
358
|
+
class="modal-dialog">
|
359
|
+
<div
|
360
|
+
class="modal-content">
|
361
|
+
<div
|
362
|
+
class="modal-body text-center">
|
363
|
+
<h2>
|
364
|
+
BLAST-ing ...
|
365
|
+
</h2>
|
366
|
+
<i class="fa fa-spinner fa-5x fa-spin"></i>
|
367
|
+
<p>
|
368
|
+
<br>
|
369
|
+
This could take some time depending on the size of your query and
|
370
|
+
database(s).
|
371
|
+
</p>
|
372
|
+
</div>
|
183
373
|
</div>
|
184
|
-
</div> <!-- /page -->
|
185
|
-
</div> <!-- /container -->
|
186
|
-
|
187
|
-
<div id="social" class="modal hide fade">
|
188
|
-
<div class="modal-header">
|
189
|
-
<h3 id="error-short">Looks like you are fond of SequenceServer :).</h3>
|
190
374
|
</div>
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
375
|
+
</div> <!-- spinner -->
|
376
|
+
|
377
|
+
<div
|
378
|
+
id="sequence-viewer" class="modal"
|
379
|
+
tabindex=-1>
|
380
|
+
<div
|
381
|
+
class="modal-dialog">
|
382
|
+
<div
|
383
|
+
class="modal-content">
|
384
|
+
<div
|
385
|
+
class="modal-header">
|
386
|
+
<h3>View and download sequence</h3>
|
387
|
+
</div>
|
388
|
+
|
389
|
+
<div
|
390
|
+
class="modal-body">
|
197
391
|
</div>
|
198
|
-
|
199
|
-
|
392
|
+
|
393
|
+
<div
|
394
|
+
class="spinner">
|
395
|
+
<i class="fa fa-spinner fa-3x fa-spin"></i>
|
396
|
+
</div>
|
397
|
+
|
398
|
+
<div
|
399
|
+
class="modal-footer">
|
200
400
|
</div>
|
201
401
|
</div>
|
202
402
|
</div>
|
203
|
-
|
204
|
-
<button class="btn btn-primary" data-dismiss="modal">Done</button>
|
205
|
-
</div>
|
206
|
-
</div> <!-- /social -->
|
403
|
+
</div> <!-- sequence viewing -->
|
207
404
|
|
208
|
-
<!--
|
405
|
+
<!-- JS -->
|
406
|
+
<script type="text/javascript" src="js/underscore.min.js"></script>
|
407
|
+
<script type="text/javascript" src="js/jquery.js"></script>
|
408
|
+
<script type="text/javascript" src="js/webshims/polyfiller.js"></script>
|
209
409
|
<script type="text/javascript">
|
210
|
-
(
|
211
|
-
var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
|
212
|
-
po.src = 'https://apis.google.com/js/plusone.js';
|
213
|
-
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
|
214
|
-
})();
|
410
|
+
$.webshims.polyfill('forms');
|
215
411
|
</script>
|
412
|
+
<script type="text/javascript" src="js/jquery-ui.js"></script>
|
413
|
+
<script type="text/javascript" src="js/bootstrap.min.js"></script>
|
414
|
+
<script type="text/javascript" src="js/d3.v3.min.js"></script>
|
415
|
+
<script type="text/javascript" src="js/sequenceserver.js"></script>
|
416
|
+
<script type="text/javascript" src="js/sequenceserver.blast.js"></script>
|
417
|
+
<script type="text/javascript" src="js/jquery.t.js"></script>
|
418
|
+
<script type="text/javascript" src="js/sequence.js"></script>
|
216
419
|
|
217
420
|
<!-- twitter -->
|
218
421
|
<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>
|