sequenceserver 1.0.0.pre.2 → 1.0.0.pre.3
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/Gemfile +1 -1
- data/README.md +18 -4
- data/bin/sequenceserver +219 -124
- data/lib/sequenceserver.rb +156 -153
- data/lib/sequenceserver/blast.rb +163 -432
- data/lib/sequenceserver/blast/exceptions.rb +27 -0
- data/lib/sequenceserver/blast/hit.rb +32 -0
- data/lib/sequenceserver/blast/hsp.rb +260 -0
- data/lib/sequenceserver/blast/query.rb +28 -0
- data/lib/sequenceserver/blast/report.rb +123 -0
- data/lib/sequenceserver/config.rb +94 -0
- data/lib/sequenceserver/database.rb +89 -49
- data/lib/sequenceserver/exceptions.rb +154 -0
- data/lib/sequenceserver/links.rb +1 -1
- data/lib/sequenceserver/logger.rb +5 -7
- data/lib/sequenceserver/sequence.rb +40 -39
- data/public/css/bootstrap.min.css +5 -7
- data/public/css/custom.css +28 -27
- data/public/dist/css/sequenceserver.min.css +1 -0
- data/public/dist/css/sequenceserver.min.css.gz +0 -0
- data/public/dist/fonts/FontAwesome.otf +0 -0
- data/public/dist/fonts/fontawesome-webfont.eot +0 -0
- data/public/dist/fonts/fontawesome-webfont.svg +565 -0
- data/public/dist/fonts/fontawesome-webfont.ttf +0 -0
- data/public/dist/fonts/fontawesome-webfont.woff +0 -0
- data/public/dist/fonts/fontawesome-webfont.woff2 +0 -0
- data/public/dist/js/sequenceserver.min.js +12 -0
- data/public/dist/js/sequenceserver.min.js.gz +0 -0
- data/public/dist/js/shims/FlashCanvas/canvas2png.js +1 -0
- data/public/dist/js/shims/FlashCanvas/flashcanvas.js +1 -0
- data/public/dist/js/shims/FlashCanvas/flashcanvas.swf +0 -0
- data/public/dist/js/shims/FlashCanvasPro/canvas2png.js +1 -0
- data/public/dist/js/shims/FlashCanvasPro/flash10canvas.swf +0 -0
- data/public/dist/js/shims/FlashCanvasPro/flash9canvas.swf +0 -0
- data/public/dist/js/shims/FlashCanvasPro/flashcanvas.js +1 -0
- data/public/dist/js/shims/canvas-blob.js +1 -0
- data/public/dist/js/shims/color-picker.js +2 -0
- data/public/dist/js/shims/combos/1.js +6 -0
- data/public/dist/js/shims/combos/10.js +2 -0
- data/public/dist/js/shims/combos/11.js +2 -0
- data/public/dist/js/shims/combos/12.js +6 -0
- data/public/dist/js/shims/combos/13.js +1 -0
- data/public/dist/js/shims/combos/14.js +1 -0
- data/public/dist/js/shims/combos/15.js +2 -0
- data/public/dist/js/shims/combos/16.js +7 -0
- data/public/dist/js/shims/combos/17.js +2 -0
- data/public/dist/js/shims/combos/18.js +3 -0
- data/public/dist/js/shims/combos/2.js +7 -0
- data/public/dist/js/shims/combos/21.js +2 -0
- data/public/dist/js/shims/combos/22.js +1 -0
- data/public/dist/js/shims/combos/23.js +6 -0
- data/public/dist/js/shims/combos/25.js +2 -0
- data/public/dist/js/shims/combos/27.js +1 -0
- data/public/dist/js/shims/combos/28.js +1 -0
- data/public/dist/js/shims/combos/29.js +1 -0
- data/public/dist/js/shims/combos/3.js +1 -0
- data/public/dist/js/shims/combos/30.js +2 -0
- data/public/dist/js/shims/combos/31.js +1 -0
- data/public/dist/js/shims/combos/33.js +1 -0
- data/public/dist/js/shims/combos/34.js +1 -0
- data/public/dist/js/shims/combos/4.js +1 -0
- data/public/dist/js/shims/combos/5.js +2 -0
- data/public/dist/js/shims/combos/6.js +2 -0
- data/public/dist/js/shims/combos/7.js +7 -0
- data/public/dist/js/shims/combos/8.js +7 -0
- data/public/dist/js/shims/combos/9.js +2 -0
- data/public/dist/js/shims/combos/97.js +1 -0
- data/public/dist/js/shims/combos/98.js +1 -0
- data/public/dist/js/shims/combos/99.js +1 -0
- data/public/dist/js/shims/details.js +1 -0
- data/public/dist/js/shims/dom-extend.js +1 -0
- data/public/dist/js/shims/es5.js +1 -0
- data/public/dist/js/shims/es6.js +1 -0
- data/public/dist/js/shims/excanvas.js +1 -0
- data/public/dist/js/shims/filereader-xhr.js +1 -0
- data/public/dist/js/shims/form-combat.js +1 -0
- data/public/dist/js/shims/form-core.js +1 -0
- data/public/dist/js/shims/form-datalist-lazy.js +1 -0
- data/public/dist/js/shims/form-datalist.js +1 -0
- data/public/dist/js/shims/form-fixrangechange.js +1 -0
- data/public/dist/js/shims/form-inputmode.js +1 -0
- data/public/dist/js/shims/form-message.js +1 -0
- data/public/dist/js/shims/form-native-extend.js +1 -0
- data/public/dist/js/shims/form-number-date-api.js +1 -0
- data/public/dist/js/shims/form-number-date-ui.js +1 -0
- data/public/dist/js/shims/form-shim-extend.js +1 -0
- data/public/dist/js/shims/form-shim-extend2.js +1 -0
- data/public/dist/js/shims/form-validation.js +1 -0
- data/public/dist/js/shims/form-validators.js +1 -0
- data/public/dist/js/shims/forms-picker.js +1 -0
- data/public/dist/js/shims/geolocation.js +1 -0
- data/public/dist/js/shims/i18n/formcfg-ar.js +1 -0
- data/public/dist/js/shims/i18n/formcfg-ch-CN.js +1 -0
- data/public/dist/js/shims/i18n/formcfg-cs.js +1 -0
- data/public/dist/js/shims/i18n/formcfg-de.js +1 -0
- data/public/dist/js/shims/i18n/formcfg-el.js +1 -0
- data/public/dist/js/shims/i18n/formcfg-en.js +1 -0
- data/public/dist/js/shims/i18n/formcfg-es.js +1 -0
- data/public/dist/js/shims/i18n/formcfg-fa.js +1 -0
- data/public/dist/js/shims/i18n/formcfg-fr.js +1 -0
- data/public/dist/js/shims/i18n/formcfg-he.js +1 -0
- data/public/dist/js/shims/i18n/formcfg-hi.js +1 -0
- data/public/dist/js/shims/i18n/formcfg-hu.js +1 -0
- data/public/dist/js/shims/i18n/formcfg-it.js +1 -0
- data/public/dist/js/shims/i18n/formcfg-ja.js +1 -0
- data/public/dist/js/shims/i18n/formcfg-lt.js +1 -0
- data/public/dist/js/shims/i18n/formcfg-nl.js +1 -0
- data/public/dist/js/shims/i18n/formcfg-pl.js +1 -0
- data/public/dist/js/shims/i18n/formcfg-pt-BR.js +1 -0
- data/public/dist/js/shims/i18n/formcfg-pt-PT.js +1 -0
- data/public/dist/js/shims/i18n/formcfg-pt.js +1 -0
- data/public/dist/js/shims/i18n/formcfg-ru.js +1 -0
- data/public/dist/js/shims/i18n/formcfg-sv.js +1 -0
- data/public/dist/js/shims/i18n/formcfg-zh-CN.js +1 -0
- data/public/dist/js/shims/i18n/formcfg-zh-TW.js +1 -0
- data/public/dist/js/shims/jme/alternate-media.js +1 -0
- data/public/dist/js/shims/jme/base.js +1 -0
- data/public/dist/js/shims/jme/controls.css +1 -0
- data/public/dist/js/shims/jme/jme.eot +0 -0
- data/public/dist/js/shims/jme/jme.svg +36 -0
- data/public/dist/js/shims/jme/jme.ttf +0 -0
- data/public/dist/js/shims/jme/jme.woff +0 -0
- data/public/dist/js/shims/jme/mediacontrols-lazy.js +1 -0
- data/public/dist/js/shims/jme/mediacontrols.js +1 -0
- data/public/dist/js/shims/jme/playlist.js +1 -0
- data/public/dist/js/shims/jpicker/images/AlphaBar.png +0 -0
- data/public/dist/js/shims/jpicker/images/Bars.png +0 -0
- data/public/dist/js/shims/jpicker/images/Maps.png +0 -0
- data/public/dist/js/shims/jpicker/images/NoColor.png +0 -0
- data/public/dist/js/shims/jpicker/images/bar-opacity.png +0 -0
- data/public/dist/js/shims/jpicker/images/map-opacity.png +0 -0
- data/public/dist/js/shims/jpicker/images/mappoint.gif +0 -0
- data/public/dist/js/shims/jpicker/images/picker.gif +0 -0
- data/public/dist/js/shims/jpicker/images/preview-opacity.png +0 -0
- data/public/dist/js/shims/jpicker/images/rangearrows.gif +0 -0
- data/public/dist/js/shims/jpicker/jpicker.css +1 -0
- data/public/dist/js/shims/matchMedia.js +3 -0
- data/public/dist/js/shims/mediacapture-picker.js +1 -0
- data/public/dist/js/shims/mediacapture.js +1 -0
- data/public/dist/js/shims/mediaelement-core.js +1 -0
- data/public/dist/js/shims/mediaelement-debug.js +1 -0
- data/public/dist/js/shims/mediaelement-jaris.js +1 -0
- data/public/dist/js/shims/mediaelement-native-fix.js +1 -0
- data/public/dist/js/shims/mediaelement-yt.js +1 -0
- data/public/dist/js/shims/moxie/flash/Moxie.cdn.swf +0 -0
- data/public/dist/js/shims/moxie/flash/Moxie.min.swf +0 -0
- data/public/dist/js/shims/moxie/js/moxie-html4.js +3 -0
- data/public/dist/js/shims/moxie/js/moxie-swf.js +2 -0
- data/public/dist/js/shims/picture.js +1 -0
- data/public/dist/js/shims/plugins/jquery.ui.position.js +11 -0
- data/public/dist/js/shims/range-ui.js +1 -0
- data/public/dist/js/shims/sizzle.js +11 -0
- data/public/dist/js/shims/sticky.js +1 -0
- data/public/dist/js/shims/styles/color-picker.png +0 -0
- data/public/dist/js/shims/styles/forms-ext.css +1 -0
- data/public/dist/js/shims/styles/forms-picker.css +1 -0
- data/public/dist/js/shims/styles/progress.gif +0 -0
- data/public/dist/js/shims/styles/progress.png +0 -0
- data/public/dist/js/shims/styles/shim-ext.css +1 -0
- data/public/dist/js/shims/styles/shim.css +1 -0
- data/public/dist/js/shims/styles/transparent.png +0 -0
- data/public/dist/js/shims/styles/widget.eot +0 -0
- data/public/dist/js/shims/styles/widget.svg +12 -0
- data/public/dist/js/shims/styles/widget.ttf +0 -0
- data/public/dist/js/shims/styles/widget.woff +0 -0
- data/public/dist/js/shims/swf/JarisFLVPlayer.swf +0 -0
- data/public/dist/js/shims/swfmini-embed.js +1 -0
- data/public/dist/js/shims/swfmini.js +6 -0
- data/public/dist/js/shims/track-ui.js +1 -0
- data/public/dist/js/shims/track.js +1 -0
- data/public/dist/js/shims/url.js +1 -0
- data/public/dist/js/shims/usermedia-core.js +1 -0
- data/public/dist/js/shims/usermedia-shim.js +1 -0
- data/public/dist/js/webshims/shims/FlashCanvas/canvas2png.js +1 -0
- data/public/dist/js/webshims/shims/FlashCanvas/flashcanvas.js +1 -0
- data/public/dist/js/webshims/shims/FlashCanvas/flashcanvas.swf +0 -0
- data/public/dist/js/webshims/shims/FlashCanvasPro/canvas2png.js +1 -0
- data/public/dist/js/webshims/shims/FlashCanvasPro/flash10canvas.swf +0 -0
- data/public/dist/js/webshims/shims/FlashCanvasPro/flash9canvas.swf +0 -0
- data/public/dist/js/webshims/shims/FlashCanvasPro/flashcanvas.js +1 -0
- data/public/dist/js/webshims/shims/canvas-blob.js +1 -0
- data/public/dist/js/webshims/shims/color-picker.js +2 -0
- data/public/dist/js/webshims/shims/combos/1.js +6 -0
- data/public/dist/js/webshims/shims/combos/10.js +2 -0
- data/public/dist/js/webshims/shims/combos/11.js +2 -0
- data/public/dist/js/webshims/shims/combos/12.js +6 -0
- data/public/dist/js/webshims/shims/combos/13.js +1 -0
- data/public/dist/js/webshims/shims/combos/14.js +1 -0
- data/public/dist/js/webshims/shims/combos/15.js +2 -0
- data/public/dist/js/webshims/shims/combos/16.js +7 -0
- data/public/dist/js/webshims/shims/combos/17.js +2 -0
- data/public/dist/js/webshims/shims/combos/18.js +3 -0
- data/public/dist/js/webshims/shims/combos/2.js +7 -0
- data/public/dist/js/webshims/shims/combos/21.js +2 -0
- data/public/dist/js/webshims/shims/combos/22.js +1 -0
- data/public/dist/js/webshims/shims/combos/23.js +6 -0
- data/public/dist/js/webshims/shims/combos/25.js +2 -0
- data/public/dist/js/webshims/shims/combos/27.js +1 -0
- data/public/dist/js/webshims/shims/combos/28.js +1 -0
- data/public/dist/js/webshims/shims/combos/29.js +1 -0
- data/public/dist/js/webshims/shims/combos/3.js +1 -0
- data/public/dist/js/webshims/shims/combos/30.js +2 -0
- data/public/dist/js/webshims/shims/combos/31.js +1 -0
- data/public/dist/js/webshims/shims/combos/33.js +1 -0
- data/public/dist/js/webshims/shims/combos/34.js +1 -0
- data/public/dist/js/webshims/shims/combos/4.js +1 -0
- data/public/dist/js/webshims/shims/combos/5.js +2 -0
- data/public/dist/js/webshims/shims/combos/6.js +2 -0
- data/public/dist/js/webshims/shims/combos/7.js +7 -0
- data/public/dist/js/webshims/shims/combos/8.js +7 -0
- data/public/dist/js/webshims/shims/combos/9.js +2 -0
- data/public/dist/js/webshims/shims/combos/97.js +1 -0
- data/public/dist/js/webshims/shims/combos/98.js +1 -0
- data/public/dist/js/webshims/shims/combos/99.js +1 -0
- data/public/dist/js/webshims/shims/details.js +1 -0
- data/public/dist/js/webshims/shims/dom-extend.js +1 -0
- data/public/dist/js/webshims/shims/es5.js +1 -0
- data/public/dist/js/webshims/shims/es6.js +1 -0
- data/public/dist/js/webshims/shims/excanvas.js +1 -0
- data/public/dist/js/webshims/shims/filereader-xhr.js +1 -0
- data/public/dist/js/webshims/shims/form-combat.js +1 -0
- data/public/dist/js/webshims/shims/form-core.js +1 -0
- data/public/dist/js/webshims/shims/form-datalist-lazy.js +1 -0
- data/public/dist/js/webshims/shims/form-datalist.js +1 -0
- data/public/dist/js/webshims/shims/form-fixrangechange.js +1 -0
- data/public/dist/js/webshims/shims/form-inputmode.js +1 -0
- data/public/dist/js/webshims/shims/form-message.js +1 -0
- data/public/dist/js/webshims/shims/form-native-extend.js +1 -0
- data/public/dist/js/webshims/shims/form-number-date-api.js +1 -0
- data/public/dist/js/webshims/shims/form-number-date-ui.js +1 -0
- data/public/dist/js/webshims/shims/form-shim-extend.js +1 -0
- data/public/dist/js/webshims/shims/form-shim-extend2.js +1 -0
- data/public/dist/js/webshims/shims/form-validation.js +1 -0
- data/public/dist/js/webshims/shims/form-validators.js +1 -0
- data/public/dist/js/webshims/shims/forms-picker.js +1 -0
- data/public/dist/js/webshims/shims/geolocation.js +1 -0
- data/public/dist/js/webshims/shims/i18n/formcfg-ar.js +1 -0
- data/public/dist/js/webshims/shims/i18n/formcfg-ch-CN.js +1 -0
- data/public/dist/js/webshims/shims/i18n/formcfg-cs.js +1 -0
- data/public/dist/js/webshims/shims/i18n/formcfg-de.js +1 -0
- data/public/dist/js/webshims/shims/i18n/formcfg-el.js +1 -0
- data/public/dist/js/webshims/shims/i18n/formcfg-en.js +1 -0
- data/public/dist/js/webshims/shims/i18n/formcfg-es.js +1 -0
- data/public/dist/js/webshims/shims/i18n/formcfg-fa.js +1 -0
- data/public/dist/js/webshims/shims/i18n/formcfg-fr.js +1 -0
- data/public/dist/js/webshims/shims/i18n/formcfg-he.js +1 -0
- data/public/dist/js/webshims/shims/i18n/formcfg-hi.js +1 -0
- data/public/dist/js/webshims/shims/i18n/formcfg-hu.js +1 -0
- data/public/dist/js/webshims/shims/i18n/formcfg-it.js +1 -0
- data/public/dist/js/webshims/shims/i18n/formcfg-ja.js +1 -0
- data/public/dist/js/webshims/shims/i18n/formcfg-lt.js +1 -0
- data/public/dist/js/webshims/shims/i18n/formcfg-nl.js +1 -0
- data/public/dist/js/webshims/shims/i18n/formcfg-pl.js +1 -0
- data/public/dist/js/webshims/shims/i18n/formcfg-pt-BR.js +1 -0
- data/public/dist/js/webshims/shims/i18n/formcfg-pt-PT.js +1 -0
- data/public/dist/js/webshims/shims/i18n/formcfg-pt.js +1 -0
- data/public/dist/js/webshims/shims/i18n/formcfg-ru.js +1 -0
- data/public/dist/js/webshims/shims/i18n/formcfg-sv.js +1 -0
- data/public/dist/js/webshims/shims/i18n/formcfg-zh-CN.js +1 -0
- data/public/dist/js/webshims/shims/i18n/formcfg-zh-TW.js +1 -0
- data/public/dist/js/webshims/shims/jme/alternate-media.js +1 -0
- data/public/dist/js/webshims/shims/jme/base.js +1 -0
- data/public/dist/js/webshims/shims/jme/controls.css +1 -0
- data/public/dist/js/webshims/shims/jme/jme.eot +0 -0
- data/public/dist/js/webshims/shims/jme/jme.svg +36 -0
- data/public/dist/js/webshims/shims/jme/jme.ttf +0 -0
- data/public/dist/js/webshims/shims/jme/jme.woff +0 -0
- data/public/dist/js/webshims/shims/jme/mediacontrols-lazy.js +1 -0
- data/public/dist/js/webshims/shims/jme/mediacontrols.js +1 -0
- data/public/dist/js/webshims/shims/jme/playlist.js +1 -0
- data/public/dist/js/webshims/shims/jpicker/images/AlphaBar.png +0 -0
- data/public/dist/js/webshims/shims/jpicker/images/Bars.png +0 -0
- data/public/dist/js/webshims/shims/jpicker/images/Maps.png +0 -0
- data/public/dist/js/webshims/shims/jpicker/images/NoColor.png +0 -0
- data/public/dist/js/webshims/shims/jpicker/images/bar-opacity.png +0 -0
- data/public/dist/js/webshims/shims/jpicker/images/map-opacity.png +0 -0
- data/public/dist/js/webshims/shims/jpicker/images/mappoint.gif +0 -0
- data/public/dist/js/webshims/shims/jpicker/images/picker.gif +0 -0
- data/public/dist/js/webshims/shims/jpicker/images/preview-opacity.png +0 -0
- data/public/dist/js/webshims/shims/jpicker/images/rangearrows.gif +0 -0
- data/public/dist/js/webshims/shims/jpicker/jpicker.css +1 -0
- data/public/dist/js/webshims/shims/matchMedia.js +3 -0
- data/public/dist/js/webshims/shims/mediacapture-picker.js +1 -0
- data/public/dist/js/webshims/shims/mediacapture.js +1 -0
- data/public/dist/js/webshims/shims/mediaelement-core.js +1 -0
- data/public/dist/js/webshims/shims/mediaelement-debug.js +1 -0
- data/public/dist/js/webshims/shims/mediaelement-jaris.js +1 -0
- data/public/dist/js/webshims/shims/mediaelement-native-fix.js +1 -0
- data/public/dist/js/webshims/shims/mediaelement-yt.js +1 -0
- data/public/dist/js/webshims/shims/moxie/flash/Moxie.cdn.swf +0 -0
- data/public/dist/js/webshims/shims/moxie/flash/Moxie.min.swf +0 -0
- data/public/dist/js/webshims/shims/moxie/js/moxie-html4.js +3 -0
- data/public/dist/js/webshims/shims/moxie/js/moxie-swf.js +2 -0
- data/public/dist/js/webshims/shims/picture.js +1 -0
- data/public/dist/js/webshims/shims/plugins/jquery.ui.position.js +11 -0
- data/public/dist/js/webshims/shims/range-ui.js +1 -0
- data/public/dist/js/webshims/shims/sizzle.js +11 -0
- data/public/dist/js/webshims/shims/sticky.js +1 -0
- data/public/dist/js/webshims/shims/styles/color-picker.png +0 -0
- data/public/dist/js/webshims/shims/styles/forms-ext.css +1 -0
- data/public/dist/js/webshims/shims/styles/forms-picker.css +1 -0
- data/public/dist/js/webshims/shims/styles/progress.gif +0 -0
- data/public/dist/js/webshims/shims/styles/progress.png +0 -0
- data/public/dist/js/webshims/shims/styles/shim-ext.css +1 -0
- data/public/dist/js/webshims/shims/styles/shim.css +1 -0
- data/public/dist/js/webshims/shims/styles/transparent.png +0 -0
- data/public/dist/js/webshims/shims/styles/widget.eot +0 -0
- data/public/dist/js/webshims/shims/styles/widget.svg +12 -0
- data/public/dist/js/webshims/shims/styles/widget.ttf +0 -0
- data/public/dist/js/webshims/shims/styles/widget.woff +0 -0
- data/public/dist/js/webshims/shims/swf/JarisFLVPlayer.swf +0 -0
- data/public/dist/js/webshims/shims/swfmini-embed.js +1 -0
- data/public/dist/js/webshims/shims/swfmini.js +6 -0
- data/public/dist/js/webshims/shims/track-ui.js +1 -0
- data/public/dist/js/webshims/shims/track.js +1 -0
- data/public/dist/js/webshims/shims/url.js +1 -0
- data/public/dist/js/webshims/shims/usermedia-core.js +1 -0
- data/public/dist/js/webshims/shims/usermedia-shim.js +1 -0
- data/public/js/bootstrap.min.js +3 -8
- data/public/js/jquery-ui.min.js +6 -0
- data/public/js/jquery.min.js +4 -0
- data/public/js/jquery.t.js +4 -4
- data/public/js/sequenceserver.blast.js +20 -18
- data/public/js/sequenceserver.js +116 -74
- data/sequenceserver.gemspec +20 -16
- data/views/400.erb +2 -1
- data/views/500.erb +6 -1
- data/views/result.erb +38 -18
- data/views/search.erb +49 -32
- metadata +389 -11
- data/public/img/glyphicons-halflings-white.png +0 -0
- data/public/img/glyphicons-halflings.png +0 -0
- data/public/js/jquery-ui.js +0 -14987
- data/public/js/jquery.js +0 -5
- data/public/js/jquery.scrollspy.js +0 -74
- data/public/sequence.min.js +0 -1
data/public/js/sequenceserver.js
CHANGED
@@ -1,59 +1,83 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
1
|
+
/**
|
2
|
+
* Load necessary polyfills.
|
3
|
+
*/
|
4
|
+
$.webshims.polyfill('forms');
|
5
|
+
|
6
|
+
|
7
|
+
/**
|
8
|
+
* Simple, small jQuery extensions for convenience.
|
9
|
+
*/
|
10
|
+
(function ($) {
|
11
|
+
/**
|
12
|
+
* Disable an element.
|
13
|
+
*
|
14
|
+
* Sets `disabled` property to `true` and adds `disabled` class.
|
15
|
+
*/
|
16
|
+
$.fn.disable = function () {
|
5
17
|
return this.prop('disabled', true).addClass('disabled');
|
6
18
|
};
|
7
|
-
})( jQuery );
|
8
19
|
|
9
|
-
|
10
|
-
|
11
|
-
|
20
|
+
/**
|
21
|
+
* Enable an element.
|
22
|
+
*
|
23
|
+
* Sets `disabled` property to `false` and removes `disabled` class
|
24
|
+
* if present.
|
25
|
+
*/
|
26
|
+
$.fn.enable = function () {
|
12
27
|
return this.prop('disabled', false).removeClass('disabled');
|
13
28
|
};
|
14
|
-
})( jQuery );
|
15
29
|
|
16
|
-
|
17
|
-
|
18
|
-
|
30
|
+
/**
|
31
|
+
* Check an element.
|
32
|
+
*
|
33
|
+
* Sets `checked` property to `true`.
|
34
|
+
*/
|
35
|
+
$.fn.check = function () {
|
36
|
+
return this.prop('checked', true);
|
37
|
+
};
|
38
|
+
|
39
|
+
/**
|
40
|
+
* Un-check an element.
|
41
|
+
*
|
42
|
+
* Sets `checked` property to `false`.
|
43
|
+
*/
|
44
|
+
$.fn.uncheck = function () {
|
19
45
|
return this.prop('checked', false);
|
20
46
|
};
|
21
|
-
})( jQuery );
|
22
47
|
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
48
|
+
|
49
|
+
/**
|
50
|
+
* Initialise Bootstrap tooltip on an element with presets. Takes title.
|
51
|
+
*/
|
52
|
+
$.fn._tooltip = $.fn.tooltip;
|
53
|
+
$.fn.tooltip = function (options) {
|
54
|
+
this
|
55
|
+
._tooltip('destroy')
|
56
|
+
._tooltip($.extend({
|
57
|
+
container: 'body',
|
58
|
+
placement: 'left'
|
59
|
+
}, options));
|
27
60
|
};
|
28
|
-
})( jQuery );
|
29
61
|
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
$.fn.wiggle = function() {
|
62
|
+
|
63
|
+
/**
|
64
|
+
* Wiggle an element.
|
65
|
+
*
|
66
|
+
* Used for wiggling BLAST button.
|
67
|
+
*/
|
68
|
+
$.fn.wiggle = function () {
|
37
69
|
this.finish().effect("bounce", {
|
38
70
|
direction: 'left',
|
39
71
|
distance: 24,
|
40
72
|
times: 4,
|
41
73
|
}, 250);
|
42
74
|
};
|
43
|
-
}(jQuery));
|
44
75
|
|
45
|
-
(function( $ ){
|
46
|
-
//(pre-)check the only active database checkbox
|
47
|
-
$.onedb = function(selector) {
|
48
|
-
active_dbs = $(".databases input[type=checkbox]").not(":disabled")
|
49
|
-
if (active_dbs.length == 1){
|
50
|
-
active_dbs.check()
|
51
|
-
}
|
52
|
-
return active_dbs;
|
53
|
-
};
|
54
|
-
})( jQuery );
|
55
76
|
|
56
|
-
|
77
|
+
/**
|
78
|
+
* Check's every 100 ms if an element's value has changed. Triggers
|
79
|
+
* `change` event on the element if it has.
|
80
|
+
*/
|
57
81
|
$.fn.poll = function () {
|
58
82
|
var that = this;
|
59
83
|
var val = null;
|
@@ -109,6 +133,17 @@ if (!SS) {
|
|
109
133
|
}).join('');
|
110
134
|
};
|
111
135
|
|
136
|
+
/**
|
137
|
+
* Pre-check the only active database checkbox.
|
138
|
+
*/
|
139
|
+
SS.onedb = function () {
|
140
|
+
var database_checkboxes = $(".databases input:checkbox");
|
141
|
+
if (database_checkboxes.length === 1) {
|
142
|
+
database_checkboxes.check();
|
143
|
+
}
|
144
|
+
};
|
145
|
+
|
146
|
+
|
112
147
|
SS.generateGraphicalOverview = function () {
|
113
148
|
$("[data-graphit='overview']").each(function () {
|
114
149
|
var $this = $(this);
|
@@ -130,32 +165,27 @@ if (!SS) {
|
|
130
165
|
$a
|
131
166
|
.enable()
|
132
167
|
.attr('href', SS.generateURI(sequence_ids, $a.data().databases))
|
133
|
-
.tooltip('destroy')
|
134
168
|
.tooltip({
|
135
|
-
placement: 'left',
|
136
169
|
title: num_hits + " hit(s)."
|
137
170
|
});
|
138
171
|
return;
|
139
172
|
}
|
140
173
|
|
141
|
-
if (num_hits
|
142
|
-
$a
|
143
|
-
.tooltip('destroy')
|
144
|
-
.tooltip({
|
145
|
-
placement: 'left',
|
174
|
+
if (num_hits === 0) {
|
175
|
+
$a.tooltip({
|
146
176
|
title: "No hit to download."
|
147
177
|
});
|
148
178
|
}
|
149
179
|
|
150
180
|
if (num_hits > 30) {
|
151
|
-
$a
|
152
|
-
.tooltip('destroy')
|
153
|
-
.tooltip({
|
154
|
-
placement: 'left',
|
181
|
+
$a.tooltip({
|
155
182
|
title: "Can't download more than 30 hits."
|
156
183
|
});
|
157
184
|
}
|
158
|
-
|
185
|
+
|
186
|
+
$a
|
187
|
+
.disable()
|
188
|
+
.removeAttr('href');
|
159
189
|
};
|
160
190
|
|
161
191
|
/* Update the FASTA downloader button's state appropriately.
|
@@ -177,30 +207,22 @@ if (!SS) {
|
|
177
207
|
$a
|
178
208
|
.enable()
|
179
209
|
.attr('href', SS.generateURI(sequence_ids, $a.data().databases))
|
180
|
-
.tooltip('destroy')
|
181
210
|
.tooltip({
|
182
|
-
placement: 'left',
|
183
211
|
title: num_checked + " hit(s) selected."
|
184
212
|
})
|
185
213
|
.find('span').html(num_checked);
|
186
214
|
return;
|
187
215
|
}
|
188
216
|
|
189
|
-
if (num_checked
|
217
|
+
if (num_checked === 0) {
|
190
218
|
$n.empty();
|
191
|
-
$a
|
192
|
-
.tooltip('destroy')
|
193
|
-
.tooltip({
|
194
|
-
placement: 'left',
|
219
|
+
$a.tooltip({
|
195
220
|
title: "No hit selected."
|
196
221
|
});
|
197
222
|
}
|
198
223
|
|
199
224
|
if (num_checked > 30) {
|
200
|
-
$a
|
201
|
-
.tooltip('destroy')
|
202
|
-
.tooltip({
|
203
|
-
placement: 'left',
|
225
|
+
$a.tooltip({
|
204
226
|
title: "Can't download more than 30 hits."
|
205
227
|
});
|
206
228
|
}
|
@@ -228,11 +250,32 @@ if (!SS) {
|
|
228
250
|
});
|
229
251
|
};
|
230
252
|
|
231
|
-
SS.
|
253
|
+
SS.setupTooltips = function () {
|
232
254
|
$('.pos-label').each(function () {
|
233
255
|
$(this).tooltip({
|
234
|
-
|
235
|
-
|
256
|
+
placement: 'right'
|
257
|
+
});
|
258
|
+
});
|
259
|
+
|
260
|
+
$('.downloads a').each(function () {
|
261
|
+
$(this).tooltip();
|
262
|
+
});
|
263
|
+
};
|
264
|
+
|
265
|
+
SS.setupDownloadLinks = function () {
|
266
|
+
$('.download').on('click', function (event) {
|
267
|
+
event.preventDefault();
|
268
|
+
event.stopPropagation();
|
269
|
+
|
270
|
+
if (event.target.disabled) return;
|
271
|
+
|
272
|
+
var url = this.href;
|
273
|
+
$.get(url)
|
274
|
+
.done(function (data) {
|
275
|
+
window.location.href = url;
|
276
|
+
})
|
277
|
+
.fail(function (jqXHR, status, error) {
|
278
|
+
SS.showErrorModal(jqXHR, function () {});
|
236
279
|
});
|
237
280
|
});
|
238
281
|
};
|
@@ -246,7 +289,7 @@ if (!SS) {
|
|
246
289
|
"&database_ids=" + database_ids + '&download=fasta';
|
247
290
|
|
248
291
|
return url;
|
249
|
-
}
|
292
|
+
};
|
250
293
|
|
251
294
|
SS.showErrorModal = function (jqXHR, beforeShow) {
|
252
295
|
setTimeout(function () {
|
@@ -258,7 +301,7 @@ if (!SS) {
|
|
258
301
|
$("#error-no-response").modal();
|
259
302
|
}
|
260
303
|
}, 500);
|
261
|
-
}
|
304
|
+
};
|
262
305
|
|
263
306
|
SS.init = function () {
|
264
307
|
this.$sequence = $('#sequence');
|
@@ -267,7 +310,6 @@ if (!SS) {
|
|
267
310
|
|
268
311
|
SS.blast.init();
|
269
312
|
};
|
270
|
-
|
271
313
|
}()); //end SS module
|
272
314
|
|
273
315
|
/**
|
@@ -498,7 +540,7 @@ $(document).ready(function(){
|
|
498
540
|
reader.onerror = function (e) {
|
499
541
|
// Couldn't read. Means dropped stuff wasn't FASTA file.
|
500
542
|
dndError('dnd-format');
|
501
|
-
}
|
543
|
+
};
|
502
544
|
reader.readAsText(file);
|
503
545
|
});
|
504
546
|
// end drag-and-drop
|
@@ -522,10 +564,10 @@ $(document).ready(function(){
|
|
522
564
|
// Handle clearing query sequences(s) when x button is pressed.
|
523
565
|
$('#btn-sequence-clear').click(function (e) {
|
524
566
|
$('#sequence').val("").focus();
|
525
|
-
})
|
567
|
+
});
|
526
568
|
|
527
|
-
//
|
528
|
-
|
569
|
+
// Pre-select if only one database available.
|
570
|
+
SS.onedb();
|
529
571
|
|
530
572
|
// Handles the form submission when Ctrl+Enter is pressed anywhere on page
|
531
573
|
$(document).bind("keydown", function (e) {
|
@@ -559,11 +601,11 @@ $(document).ready(function(){
|
|
559
601
|
$('.databases').on('database_type_changed', function (event, type) {
|
560
602
|
switch (type) {
|
561
603
|
case 'protein':
|
562
|
-
$('.databases.nucleotide input:checkbox').
|
604
|
+
$('.databases.nucleotide input:checkbox').disable();
|
563
605
|
$('.databases.nucleotide .checkbox').addClass('disabled');
|
564
606
|
break;
|
565
607
|
case 'nucleotide':
|
566
|
-
$('.databases.protein input:checkbox').
|
608
|
+
$('.databases.protein input:checkbox').disable();
|
567
609
|
$('.databases.protein .checkbox').addClass('disabled');
|
568
610
|
break;
|
569
611
|
default:
|
@@ -666,7 +708,6 @@ $(document).ready(function(){
|
|
666
708
|
SS.selectHit(this);
|
667
709
|
});
|
668
710
|
|
669
|
-
|
670
711
|
$('#blast').submit(function(){
|
671
712
|
//parse AJAX URL
|
672
713
|
var action = $(this).attr('action');
|
@@ -708,7 +749,8 @@ $(document).ready(function(){
|
|
708
749
|
SS.updateDownloadFastaOfAllLink();
|
709
750
|
SS.updateDownloadFastaOfSelectedLink();
|
710
751
|
SS.updateSequenceViewerLinks();
|
711
|
-
SS.
|
752
|
+
SS.setupTooltips();
|
753
|
+
SS.setupDownloadLinks();
|
712
754
|
|
713
755
|
$('body').scrollspy({target: '.sidebar'});
|
714
756
|
|
data/sequenceserver.gemspec
CHANGED
@@ -1,33 +1,37 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
# meta
|
3
3
|
s.name = 'sequenceserver'
|
4
|
-
s.version = '1.0.0-
|
5
|
-
s.authors = ['Anurag Priyam', 'Ben J Woodcroft',
|
4
|
+
s.version = '1.0.0-3'
|
5
|
+
s.authors = ['Anurag Priyam', 'Ben J Woodcroft',
|
6
|
+
'Vivek Rai', 'Yannick Wurm']
|
6
7
|
s.email = ['anurag08priyam@gmail.com', 'b.woodcroft@uq.edu.au']
|
7
8
|
s.homepage = 'http://sequenceserver.com'
|
8
9
|
s.license = 'SequenceServer (custom)'
|
9
10
|
|
10
11
|
s.summary = 'BLAST search made easy!'
|
11
12
|
s.description = <<DESC
|
12
|
-
SequenceServer lets you rapidly set up a BLAST+ server with an intuitive user
|
13
|
+
SequenceServer lets you rapidly set up a BLAST+ server with an intuitive user
|
14
|
+
interface for use locally or over the web.
|
13
15
|
DESC
|
14
16
|
|
15
17
|
# dependencies
|
16
|
-
s.add_dependency('thin', '~> 1.6.2')
|
17
|
-
s.add_dependency('sinatra', '~> 1.4.5')
|
18
|
-
s.add_dependency('ox', '~> 2.1.1')
|
19
|
-
s.add_dependency('slop', '~> 3.6.0')
|
20
|
-
|
21
|
-
s.add_development_dependency('rack-test',
|
22
|
-
s.add_development_dependency('rspec',
|
23
|
-
s.add_development_dependency('rake',
|
24
|
-
s.add_development_dependency('rubocop',
|
25
|
-
s.add_development_dependency('capybara',
|
26
|
-
s.add_development_dependency('capybara-webkit',
|
18
|
+
s.add_dependency('thin', '~> 1.6', '>= 1.6.2')
|
19
|
+
s.add_dependency('sinatra', '~> 1.4', '>= 1.4.5')
|
20
|
+
s.add_dependency('ox', '~> 2.1', '>= 2.1.1')
|
21
|
+
s.add_dependency('slop', '~> 3.6', '>= 3.6.0')
|
22
|
+
|
23
|
+
s.add_development_dependency('rack-test', '~> 0.6', '>= 0.6.2')
|
24
|
+
s.add_development_dependency('rspec', '~> 2.8', '>= 2.8.0')
|
25
|
+
s.add_development_dependency('rake', '~> 10.3', '>= 10.3.2')
|
26
|
+
s.add_development_dependency('rubocop', '~> 0.28', '>= 0.28.0')
|
27
|
+
s.add_development_dependency('capybara', '~> 2.4', '>= 2.4.4')
|
28
|
+
s.add_development_dependency('capybara-webkit', '~> 1.3', '>= 1.3.0')
|
29
|
+
s.add_development_dependency('codeclimate-test-reporter')
|
27
30
|
|
28
31
|
# gem
|
29
|
-
s.files = Dir['lib/**/*'] + Dir['views/**/*'] + Dir['public/**/*']
|
30
|
-
s.files = s.files + ['config.ru'
|
32
|
+
s.files = Dir['lib/**/*'] + Dir['views/**/*'] + Dir['public/**/*']
|
33
|
+
s.files = s.files + ['config.ru'] + Dir['tests/**/*']
|
34
|
+
s.files = s.files + ['Gemfile', 'sequenceserver.gemspec']
|
31
35
|
s.files = s.files + ['LICENSE.txt', 'LICENSE.Apache.txt', 'README.md']
|
32
36
|
s.executables = ['sequenceserver']
|
33
37
|
s.require_paths = ['lib']
|
data/views/400.erb
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
<div
|
6
6
|
class="modal-header">
|
7
7
|
<h3>
|
8
|
-
Oops!
|
8
|
+
Oops! Request Failed
|
9
9
|
</h3>
|
10
10
|
</div>
|
11
11
|
|
@@ -19,6 +19,7 @@
|
|
19
19
|
<div
|
20
20
|
class="modal-footer">
|
21
21
|
<button
|
22
|
+
type="button"
|
22
23
|
class="btn btn-default btn-danger"
|
23
24
|
data-dismiss="modal">
|
24
25
|
Close
|
data/views/500.erb
CHANGED
data/views/result.erb
CHANGED
@@ -16,8 +16,9 @@
|
|
16
16
|
</small>
|
17
17
|
</h3>
|
18
18
|
<span
|
19
|
-
class="label label-reset
|
20
|
-
title="<%= "Query #{query.number}." %>"
|
19
|
+
class="label label-reset pos-label"
|
20
|
+
title="<%= "Query #{query.number}." %>"
|
21
|
+
data-toggle="tooltip">
|
21
22
|
<%= "#{query.number} / #{report.queries.length}"%>
|
22
23
|
</span>
|
23
24
|
</div>
|
@@ -47,8 +48,8 @@
|
|
47
48
|
<tr>
|
48
49
|
<td class="text-left"><%= h + 1 %>.</td>
|
49
50
|
<td> <a href="<%="#Query_#{query.number}_hit_#{hit.number}"%>"><%= "#{hit.id}" %></a> </td>
|
50
|
-
<td class="text-right"><%=
|
51
|
-
<td class="text-right"><%=
|
51
|
+
<td class="text-right"><%= prettify_float hit.score %></td>
|
52
|
+
<td class="text-right"><%= prettify_float hit.evalue %></td>
|
52
53
|
</tr>
|
53
54
|
<% end %>
|
54
55
|
</tbody>
|
@@ -71,8 +72,9 @@
|
|
71
72
|
</span>
|
72
73
|
</h4>
|
73
74
|
<span
|
74
|
-
class="label label-reset
|
75
|
-
title="<%= "Query #{query.number}. Hit #{hit.number}
|
75
|
+
class="label label-reset pos-label"
|
76
|
+
title="<%= "Query #{query.number}. Hit #{hit.number} of #{query.hits.length}." %>"
|
77
|
+
data-toggle="tooltip">
|
76
78
|
<%= "#{hit.number} / #{query.hits.length}"%>
|
77
79
|
</span>
|
78
80
|
</div>
|
@@ -91,19 +93,19 @@
|
|
91
93
|
<table
|
92
94
|
class="table table-condensed hsp-stats">
|
93
95
|
<thead>
|
94
|
-
<%
|
96
|
+
<% hsp.stats.keys.each do |key| %>
|
95
97
|
<th> <%= key %> </th>
|
96
98
|
<% end %>
|
97
99
|
</thead>
|
98
100
|
<tbody>
|
99
101
|
<tr>
|
100
|
-
<%
|
101
|
-
<td> <%= value %> </th>
|
102
|
+
<% hsp.stats.values.each do |value| %>
|
103
|
+
<td> <%= prettify value %> </th>
|
102
104
|
<% end %>
|
103
105
|
</tr>
|
104
106
|
</tbody>
|
105
107
|
</table>
|
106
|
-
<div class="alignment"><%=
|
108
|
+
<div class="alignment"><%= hsp.pp %></div>
|
107
109
|
</div>
|
108
110
|
<% end %>
|
109
111
|
<div class="hit-links text-right">
|
@@ -177,32 +179,50 @@ Total letters in queried databases: <%= report.stats[1] %>
|
|
177
179
|
</h4>
|
178
180
|
</div>
|
179
181
|
<ul
|
180
|
-
class="list-unstyled list-padded">
|
182
|
+
class="downloads list-unstyled list-padded">
|
181
183
|
<li>
|
182
184
|
<a
|
183
|
-
|
184
|
-
class="download-fasta-of-all"
|
185
|
+
class="download download-fasta-of-all disabled"
|
185
186
|
data-databases="<%= report.querydb.map(&:id).join(' ') %>">
|
186
187
|
FASTA of all hits
|
187
188
|
</a>
|
188
189
|
</li>
|
189
190
|
<li>
|
190
191
|
<a
|
191
|
-
class="download-fasta-of-selected disabled"
|
192
|
+
class="download download-fasta-of-selected disabled"
|
192
193
|
data-databases="<%= report.querydb.map(&:id).join(' ') %>">
|
193
194
|
FASTA of <span class="text-bold"></span> selected hit(s)
|
194
195
|
</a>
|
195
196
|
</li>
|
196
197
|
<li>
|
197
198
|
<a
|
198
|
-
class="
|
199
|
-
|
199
|
+
class="download"
|
200
|
+
title="12 columns: query and subject ID; alignment length,
|
201
|
+
mismatches, gaps, identity, start and end coordinates,
|
202
|
+
e value and bitscore."
|
203
|
+
data-toggle="tooltip"
|
204
|
+
href="get_report/?report=<%= File.basename(report.archive_file) %>&format=tsv_commented&type=std">
|
205
|
+
Standard tabular report
|
200
206
|
</a>
|
201
207
|
</li>
|
202
208
|
<li>
|
203
209
|
<a
|
204
|
-
class="
|
205
|
-
|
210
|
+
class="download"
|
211
|
+
title="44 columns: query and subject ID, GI, accessions,
|
212
|
+
and length; alignment details; taxonomy details of subject
|
213
|
+
sequence(s) and query coverage per subject and per HSP."
|
214
|
+
data-toggle="tooltip"
|
215
|
+
href="get_report/?report=<%= File.basename(report.archive_file) %>&format=tsv_commented&download=true&specifiers=qseqid qgi qacc sseqid sallseqid sgi sallgi sacc sallacc qstart qend sstart send qseq sseq evalue bitscore score length length pident nident mismatch positive gapopen gaps ppos frames qframe hframe btop staxids sscinames scomnames sblastnames sskingdoms stitle salltitles sstrand qcovs qcovhsp&type=full">
|
216
|
+
Full tabular report
|
217
|
+
</a>
|
218
|
+
</li>
|
219
|
+
<li>
|
220
|
+
<a
|
221
|
+
class="download"
|
222
|
+
title="Results in XML format."
|
223
|
+
data-toggle="tooltip"
|
224
|
+
href="get_report/?report=<%= File.basename(report.archive_file) %>&format=xml&type=full">
|
225
|
+
Full XML report
|
206
226
|
</a>
|
207
227
|
</li>
|
208
228
|
</ul>
|