Repository 'riboplot'
hg clone https://toolshed.g2.bx.psu.edu/repos/vimalkumarvelayudhan/riboplot

Changeset 14:628f82e72d72 (2015-08-26)
Previous changeset 13:8a87a2c44d09 (2015-08-21) Next changeset 15:b78a5ba760b1 (2015-08-27)
Commit message:
Version as released on PyPI 0.1.0
modified:
AUTHORS.rst
CONTRIBUTING.rst
HISTORY.rst
MANIFEST.in
README.rst
docs/_static/alabaster.css_t
docs/authors.rst
docs/conf.py
docs/contributing.rst
docs/history.rst
docs/index.rst
docs/installation.rst
docs/readme.rst
docs/riboplot.rst
docs/todo.rst
docs/usage.rst
requirements.txt
riboplot.egg-info/PKG-INFO
riboplot.egg-info/SOURCES.txt
riboplot/config.py
riboplot/ribocount.py
riboplot/riboplot.py
setup.py
tests/test_ribocount.py
tests/test_riboplot.py
added:
.editorconfig
docs/_static/riboplot-logo.png
riboplot.egg-info/entry_points.txt
riboplot.egg-info/requires.txt
riboplot/data/css/asc.gif
riboplot/data/css/bg.gif
riboplot/data/css/custom.css
riboplot/data/css/desc.gif
riboplot/data/css/normalize.css
riboplot/data/css/skeleton.css
riboplot/data/js/custom.js
riboplot/data/js/jquery-1.11.3.min.js
riboplot/data/js/jquery-1.11.3.min.map
riboplot/data/js/jquery.tablesorter.min.js
riboplot/data/ribocount.html
riboplot/data/ribocount_index.html
riboplot/data/riboplot.html
riboplot/scripts/run_coverage.sh
riboplot/scripts/run_ribocount_sample.sh
riboplot/scripts/run_riboplot_sample.sh
riboplot/scripts/run_tests.sh
tests/README.rst
removed:
data/css/asc.gif
data/css/bg.gif
data/css/custom.css
data/css/desc.gif
data/css/normalize.css
data/css/skeleton.css
data/js/custom.js
data/js/jquery-1.11.3.min.js
data/js/jquery-1.11.3.min.map
data/js/jquery.tablesorter.min.js
data/ribocount.html
data/ribocount_index.html
data/riboplot.html
run_coverage.sh
run_ribocount_sample.sh
run_riboplot_sample.sh
run_tests.sh
b
diff -r 8a87a2c44d09 -r 628f82e72d72 .editorconfig
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/.editorconfig Wed Aug 26 16:37:10 2015 +0100
[
@@ -0,0 +1,21 @@
+# http://editorconfig.org
+
+root = true
+
+[*]
+indent_style = space
+indent_size = 4
+trim_trailing_whitespace = true
+insert_final_newline = true
+charset = utf-8
+end_of_line = lf
+
+[*.bat]
+indent_style = tab
+end_of_line = crlf
+
+[LICENSE]
+insert_final_newline = false
+
+[Makefile]
+indent_style = tab
\ No newline at end of file
b
diff -r 8a87a2c44d09 -r 628f82e72d72 AUTHORS.rst
--- a/AUTHORS.rst Fri Aug 21 12:37:54 2015 +0100
+++ b/AUTHORS.rst Wed Aug 26 16:37:10 2015 +0100
b
@@ -1,1 +1,13 @@
-docs/authors.rst
\ No newline at end of file
+=======
+Credits
+=======
+
+Development Lead
+----------------
+
+* Vimalkumar Velayudhan <vimalkumarvelayudhan@gmail.com>
+
+Contributors
+------------
+
+None yet. Why not be the first?
\ No newline at end of file
b
diff -r 8a87a2c44d09 -r 628f82e72d72 CONTRIBUTING.rst
--- a/CONTRIBUTING.rst Fri Aug 21 12:37:54 2015 +0100
+++ b/CONTRIBUTING.rst Wed Aug 26 16:37:10 2015 +0100
b
@@ -1,1 +1,111 @@
-docs/contributing.rst
\ No newline at end of file
+============
+Contributing
+============
+
+Contributions are welcome, and they are greatly appreciated! Every
+little bit helps, and credit will always be given.
+
+You can contribute in many ways:
+
+Types of Contributions
+----------------------
+
+Report Bugs
+~~~~~~~~~~~
+
+Report bugs at https://github.com/vimalkumarvelayudhan/riboplot/issues.
+
+If you are reporting a bug, please include:
+
+* Your operating system name and version.
+* Any details about your local setup that might be helpful in troubleshooting.
+* Detailed steps to reproduce the bug.
+
+Fix Bugs
+~~~~~~~~
+
+Look through the GitHub issues for bugs. Anything tagged with "bug"
+is open to whoever wants to implement it.
+
+Implement Features
+~~~~~~~~~~~~~~~~~~
+
+Look through the GitHub issues for features. Anything tagged with "feature"
+is open to whoever wants to implement it.
+
+Write Documentation
+~~~~~~~~~~~~~~~~~~~
+
+RiboPlot could always use more documentation, whether as part of the
+official RiboPlot docs, in docstrings, or even on the web in blog posts,
+articles, and such.
+
+Submit Feedback
+~~~~~~~~~~~~~~~
+
+The best way to send feedback is to file an issue at https://github.com/vimalkumarvelayudhan/riboplot/issues.
+
+If you are proposing a feature:
+
+* Explain in detail how it would work.
+* Keep the scope as narrow as possible, to make it easier to implement.
+* Remember that this is a volunteer-driven project, and that contributions
+  are welcome :)
+
+Get Started!
+------------
+
+Ready to contribute? Here's how to set up `riboplot` for local development.
+
+1. Fork the `riboplot` repo on GitHub.
+2. Clone your fork locally::
+
+    $ git clone git@github.com:your_name_here/riboplot.git
+
+3. Install your local copy into a virtualenv. Assuming you have virtualenvwrapper installed, this is how you set up your fork for local development::
+
+    $ mkvirtualenv riboplot
+    $ cd riboplot/
+    $ python setup.py develop
+
+4. Create a branch for local development::
+
+    $ git checkout -b name-of-your-bugfix-or-feature
+
+   Now you can make your changes locally.
+
+5. When you're done making changes, check that your changes pass flake8 and the tests, including testing other Python versions with tox::
+
+    $ flake8 riboplot tests
+    $ python setup.py test
+    $ tox
+
+   To get flake8 and tox, just pip install them into your virtualenv.
+
+6. Commit your changes and push your branch to GitHub::
+
+    $ git add .
+    $ git commit -m "Your detailed description of your changes."
+    $ git push origin name-of-your-bugfix-or-feature
+
+7. Submit a pull request through the GitHub website.
+
+Pull Request Guidelines
+-----------------------
+
+Before you submit a pull request, check that it meets these guidelines:
+
+1. The pull request should include tests.
+2. If the pull request adds functionality, the docs should be updated. Put
+   your new functionality into a function with a docstring, and add the
+   feature to the list in README.rst.
+3. The pull request should work for Python 2.6, 2.7, 3.3, and 3.4, and for PyPy. Check
+   https://travis-ci.org/vimalkumarvelayudhan/riboplot/pull_requests
+   and make sure that the tests pass for all supported Python versions.
+
+Tips
+----
+
+To run a subset of tests::
+
+    $ python -m unittest tests.test_riboplot
\ No newline at end of file
b
diff -r 8a87a2c44d09 -r 628f82e72d72 HISTORY.rst
--- a/HISTORY.rst Fri Aug 21 12:37:54 2015 +0100
+++ b/HISTORY.rst Wed Aug 26 16:37:10 2015 +0100
b
@@ -1,1 +1,9 @@
-docs/history.rst
\ No newline at end of file
+.. :changelog:
+
+History
+=======
+
+0.1.0 (2015-08-24)
+---------------------
+
+* First release on PyPI.
b
diff -r 8a87a2c44d09 -r 628f82e72d72 MANIFEST.in
--- a/MANIFEST.in Fri Aug 21 12:37:54 2015 +0100
+++ b/MANIFEST.in Wed Aug 26 16:37:10 2015 +0100
[
@@ -1,11 +1,2 @@
-include AUTHORS.rst
-include CONTRIBUTING.rst
-include HISTORY.rst
-include LICENSE
-include README.rst
-
-recursive-include tests *
-recursive-exclude * __pycache__
 recursive-exclude * *.py[co]
-
-recursive-include docs *.rst conf.py Makefile make.bat
\ No newline at end of file
+exclude riboplot/riboplot_multi.py
b
diff -r 8a87a2c44d09 -r 628f82e72d72 README.rst
--- a/README.rst Fri Aug 21 12:37:54 2015 +0100
+++ b/README.rst Wed Aug 26 16:37:10 2015 +0100
b
@@ -1,1 +1,28 @@
-docs/readme.rst
\ No newline at end of file
+===============================
+RiboPlot
+===============================
+
+.. image:: https://img.shields.io/travis/vimalkumarvelayudhan/riboplot.svg
+        :target: https://travis-ci.org/vimalkumarvelayudhan/riboplot
+
+.. image:: https://img.shields.io/pypi/v/riboplot.svg
+        :target: https://pypi.python.org/pypi/riboplot
+
+
+RiboPlot includes programs to plot and output Ribo-Seq read counts from an alignment file (BAM format).
+
+There are two programs in the package:
+
+**riboplot**
+    Plot and output read counts (csv) for a single transcript.
+
+**ribocount**
+    Output read counts for all transcripts in an alignment.
+
+For help on using these programs, please refer to :ref:`usage`.
+
+
+Free software: GPL license.
+
+Documentation: https://riboplot.readthedocs.org.
+
b
diff -r 8a87a2c44d09 -r 628f82e72d72 data/css/asc.gif
b
Binary file data/css/asc.gif has changed
b
diff -r 8a87a2c44d09 -r 628f82e72d72 data/css/bg.gif
b
Binary file data/css/bg.gif has changed
b
diff -r 8a87a2c44d09 -r 628f82e72d72 data/css/custom.css
--- a/data/css/custom.css Fri Aug 21 12:37:54 2015 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
b
@@ -1,61 +0,0 @@
-.info {
-    font-weight: normal;
-}
-
-.text-muted {
-    font-size: 0.6em;
-    text-align: center;
-    color: #555555;
-}
-
-#main {
-    text-align: center;
-}
-
-#page-title {
-    margin-top: 5%;
-}
-
-/* tables */
-table.tablesorter {
-    border: 1px solid #eeeeee;
-}
-
-table.tablesorter thead tr .header {
-    background-image: url(bg.gif);
-    background-repeat: no-repeat;
-    background-position: center right;
-    cursor: pointer;
-}
-
-table.tablesorter thead tr .headerSortUp {
-    background-image: url(asc.gif);
-}
-
-table.tablesorter thead tr .headerSortDown {
-    background-image: url(desc.gif);
-}
-
-table.tablesorter thead tr .headerSortDown, table.tablesorter thead tr .headerSortUp {
-    background-color: #eeeeee;
-}
-
-table.tablesorter tbody {
-    font-family: monospace;
-}
-
-#overlay {
-    top: 20px;
-    left: 50%;
-    position: absolute;
-    margin-left: -170px;
-    width: 250px;
-    text-align: center;
-    display: none;
-    margin-top: -10px;
-    background: #F6FF00;
-    color: #515151;
-    padding: 3px;
-    border-radius: 5px;
-    box-shadow: 3px 3px 3px #eeeeee;
-}
\ No newline at end of file
b
diff -r 8a87a2c44d09 -r 628f82e72d72 data/css/desc.gif
b
Binary file data/css/desc.gif has changed
b
diff -r 8a87a2c44d09 -r 628f82e72d72 data/css/normalize.css
--- a/data/css/normalize.css Fri Aug 21 12:37:54 2015 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
b'@@ -1,427 +0,0 @@\n-/*! normalize.css v3.0.2 | MIT License | git.io/normalize */\n-\n-/**\n- * 1. Set default font family to sans-serif.\n- * 2. Prevent iOS text size adjust after orientation change, without disabling\n- *    user zoom.\n- */\n-\n-html {\n-  font-family: sans-serif; /* 1 */\n-  -ms-text-size-adjust: 100%; /* 2 */\n-  -webkit-text-size-adjust: 100%; /* 2 */\n-}\n-\n-/**\n- * Remove default margin.\n- */\n-\n-body {\n-  margin: 0;\n-}\n-\n-/* HTML5 display definitions\n-   ========================================================================== */\n-\n-/**\n- * Correct `block` display not defined for any HTML5 element in IE 8/9.\n- * Correct `block` display not defined for `details` or `summary` in IE 10/11\n- * and Firefox.\n- * Correct `block` display not defined for `main` in IE 11.\n- */\n-\n-article,\n-aside,\n-details,\n-figcaption,\n-figure,\n-footer,\n-header,\n-hgroup,\n-main,\n-menu,\n-nav,\n-section,\n-summary {\n-  display: block;\n-}\n-\n-/**\n- * 1. Correct `inline-block` display not defined in IE 8/9.\n- * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.\n- */\n-\n-audio,\n-canvas,\n-progress,\n-video {\n-  display: inline-block; /* 1 */\n-  vertical-align: baseline; /* 2 */\n-}\n-\n-/**\n- * Prevent modern browsers from displaying `audio` without controls.\n- * Remove excess height in iOS 5 devices.\n- */\n-\n-audio:not([controls]) {\n-  display: none;\n-  height: 0;\n-}\n-\n-/**\n- * Address `[hidden]` styling not present in IE 8/9/10.\n- * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22.\n- */\n-\n-[hidden],\n-template {\n-  display: none;\n-}\n-\n-/* Links\n-   ========================================================================== */\n-\n-/**\n- * Remove the gray background color from active links in IE 10.\n- */\n-\n-a {\n-  background-color: transparent;\n-}\n-\n-/**\n- * Improve readability when focused and also mouse hovered in all browsers.\n- */\n-\n-a:active,\n-a:hover {\n-  outline: 0;\n-}\n-\n-/* Text-level semantics\n-   ========================================================================== */\n-\n-/**\n- * Address styling not present in IE 8/9/10/11, Safari, and Chrome.\n- */\n-\n-abbr[title] {\n-  border-bottom: 1px dotted;\n-}\n-\n-/**\n- * Address style set to `bolder` in Firefox 4+, Safari, and Chrome.\n- */\n-\n-b,\n-strong {\n-  font-weight: bold;\n-}\n-\n-/**\n- * Address styling not present in Safari and Chrome.\n- */\n-\n-dfn {\n-  font-style: italic;\n-}\n-\n-/**\n- * Address variable `h1` font-size and margin within `section` and `article`\n- * contexts in Firefox 4+, Safari, and Chrome.\n- */\n-\n-h1 {\n-  font-size: 2em;\n-  margin: 0.67em 0;\n-}\n-\n-/**\n- * Address styling not present in IE 8/9.\n- */\n-\n-mark {\n-  background: #ff0;\n-  color: #000;\n-}\n-\n-/**\n- * Address inconsistent and variable font size in all browsers.\n- */\n-\n-small {\n-  font-size: 80%;\n-}\n-\n-/**\n- * Prevent `sub` and `sup` affecting `line-height` in all browsers.\n- */\n-\n-sub,\n-sup {\n-  font-size: 75%;\n-  line-height: 0;\n-  position: relative;\n-  vertical-align: baseline;\n-}\n-\n-sup {\n-  top: -0.5em;\n-}\n-\n-sub {\n-  bottom: -0.25em;\n-}\n-\n-/* Embedded content\n-   ========================================================================== */\n-\n-/**\n- * Remove border when inside `a` element in IE 8/9/10.\n- */\n-\n-img {\n-  border: 0;\n-}\n-\n-/**\n- * Correct overflow not hidden in IE 9/10/11.\n- */\n-\n-svg:not(:root) {\n-  overflow: hidden;\n-}\n-\n-/* Grouping content\n-   ========================================================================== */\n-\n-/**\n- * Address margin not present in IE 8/9 and Safari.\n- */\n-\n-figure {\n-  margin: 1em 40px;\n-}\n-\n-/**\n- * Address differences between Firefox and other browsers.\n- */\n-\n-hr {\n-  -moz-box-sizing: content-box;\n-  box-sizing: content-box;\n-  height: 0;\n-}\n-\n-/**\n- * Contain overflow in all browsers.\n- */\n-\n-pre {\n-  overflow: auto;\n-}\n-\n-/**\n- * Address odd `em`-unit font size rendering in all browsers.\n- */\n-\n-code,\n-kbd,\n-pre,\n-samp {\n-  font-family: monospace, monospace;\n-  font-size: 1em;\n-}\n-\n-/* Forms\n-   ======================================'..b' of disabled elements.\n- * 2. Correct font properties not being inherited.\n- * 3. Address margins set differently in Firefox 4+, Safari, and Chrome.\n- */\n-\n-button,\n-input,\n-optgroup,\n-select,\n-textarea {\n-  color: inherit; /* 1 */\n-  font: inherit; /* 2 */\n-  margin: 0; /* 3 */\n-}\n-\n-/**\n- * Address `overflow` set to `hidden` in IE 8/9/10/11.\n- */\n-\n-button {\n-  overflow: visible;\n-}\n-\n-/**\n- * Address inconsistent `text-transform` inheritance for `button` and `select`.\n- * All other form control elements do not inherit `text-transform` values.\n- * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.\n- * Correct `select` style inheritance in Firefox.\n- */\n-\n-button,\n-select {\n-  text-transform: none;\n-}\n-\n-/**\n- * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`\n- *    and `video` controls.\n- * 2. Correct inability to style clickable `input` types in iOS.\n- * 3. Improve usability and consistency of cursor style between image-type\n- *    `input` and others.\n- */\n-\n-button,\n-html input[type="button"], /* 1 */\n-input[type="reset"],\n-input[type="submit"] {\n-  -webkit-appearance: button; /* 2 */\n-  cursor: pointer; /* 3 */\n-}\n-\n-/**\n- * Re-set default cursor for disabled elements.\n- */\n-\n-button[disabled],\n-html input[disabled] {\n-  cursor: default;\n-}\n-\n-/**\n- * Remove inner padding and border in Firefox 4+.\n- */\n-\n-button::-moz-focus-inner,\n-input::-moz-focus-inner {\n-  border: 0;\n-  padding: 0;\n-}\n-\n-/**\n- * Address Firefox 4+ setting `line-height` on `input` using `!important` in\n- * the UA stylesheet.\n- */\n-\n-input {\n-  line-height: normal;\n-}\n-\n-/**\n- * It\'s recommended that you don\'t attempt to style these elements.\n- * Firefox\'s implementation doesn\'t respect box-sizing, padding, or width.\n- *\n- * 1. Address box sizing set to `content-box` in IE 8/9/10.\n- * 2. Remove excess padding in IE 8/9/10.\n- */\n-\n-input[type="checkbox"],\n-input[type="radio"] {\n-  box-sizing: border-box; /* 1 */\n-  padding: 0; /* 2 */\n-}\n-\n-/**\n- * Fix the cursor style for Chrome\'s increment/decrement buttons. For certain\n- * `font-size` values of the `input`, it causes the cursor style of the\n- * decrement button to change from `default` to `text`.\n- */\n-\n-input[type="number"]::-webkit-inner-spin-button,\n-input[type="number"]::-webkit-outer-spin-button {\n-  height: auto;\n-}\n-\n-/**\n- * 1. Address `appearance` set to `searchfield` in Safari and Chrome.\n- * 2. Address `box-sizing` set to `border-box` in Safari and Chrome\n- *    (include `-moz` to future-proof).\n- */\n-\n-input[type="search"] {\n-  -webkit-appearance: textfield; /* 1 */\n-  -moz-box-sizing: content-box;\n-  -webkit-box-sizing: content-box; /* 2 */\n-  box-sizing: content-box;\n-}\n-\n-/**\n- * Remove inner padding and search cancel button in Safari and Chrome on OS X.\n- * Safari (but not Chrome) clips the cancel button when the search input has\n- * padding (and `textfield` appearance).\n- */\n-\n-input[type="search"]::-webkit-search-cancel-button,\n-input[type="search"]::-webkit-search-decoration {\n-  -webkit-appearance: none;\n-}\n-\n-/**\n- * Define consistent border, margin, and padding.\n- */\n-\n-fieldset {\n-  border: 1px solid #c0c0c0;\n-  margin: 0 2px;\n-  padding: 0.35em 0.625em 0.75em;\n-}\n-\n-/**\n- * 1. Correct `color` not being inherited in IE 8/9/10/11.\n- * 2. Remove padding so people aren\'t caught out if they zero out fieldsets.\n- */\n-\n-legend {\n-  border: 0; /* 1 */\n-  padding: 0; /* 2 */\n-}\n-\n-/**\n- * Remove default vertical scrollbar in IE 8/9/10/11.\n- */\n-\n-textarea {\n-  overflow: auto;\n-}\n-\n-/**\n- * Don\'t inherit the `font-weight` (applied by a rule above).\n- * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.\n- */\n-\n-optgroup {\n-  font-weight: bold;\n-}\n-\n-/* Tables\n-   ========================================================================== */\n-\n-/**\n- * Remove most spacing between table cells.\n- */\n-\n-table {\n-  border-collapse: collapse;\n-  border-spacing: 0;\n-}\n-\n-td,\n-th {\n-  padding: 0;\n-}\n\\ No newline at end of file\n'
b
diff -r 8a87a2c44d09 -r 628f82e72d72 data/css/skeleton.css
--- a/data/css/skeleton.css Fri Aug 21 12:37:54 2015 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
b'@@ -1,419 +0,0 @@\n-/*\n-* Skeleton V2.0.4\n-* Copyright 2014, Dave Gamache\n-* www.getskeleton.com\n-* Free to use under the MIT license.\n-* http://www.opensource.org/licenses/mit-license.php\n-* 12/29/2014\n-*/\n-\n-\n-/* Table of contents\n-\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\n-- Grid\n-- Base Styles\n-- Typography\n-- Links\n-- Buttons\n-- Forms\n-- Lists\n-- Code\n-- Tables\n-- Spacing\n-- Utilities\n-- Clearing\n-- Media Queries\n-*/\n-\n-\n-/* Grid\n-\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93 */\n-.container {\n-  position: relative;\n-  width: 100%;\n-  max-width: 960px;\n-  margin: 0 auto;\n-  padding: 0 20px;\n-  box-sizing: border-box; }\n-.column,\n-.columns {\n-  width: 100%;\n-  float: left;\n-  box-sizing: border-box; }\n-\n-/* For devices larger than 400px */\n-@media (min-width: 400px) {\n-  .container {\n-    width: 85%;\n-    padding: 0; }\n-}\n-\n-/* For devices larger than 550px */\n-@media (min-width: 550px) {\n-  .container {\n-    width: 80%; }\n-  .column,\n-  .columns {\n-    margin-left: 4%; }\n-  .column:first-child,\n-  .columns:first-child {\n-    margin-left: 0; }\n-\n-  .one.column,\n-  .one.columns                    { width: 4.66666666667%; }\n-  .two.columns                    { width: 13.3333333333%; }\n-  .three.columns                  { width: 22%;            }\n-  .four.columns                   { width: 30.6666666667%; }\n-  .five.columns                   { width: 39.3333333333%; }\n-  .six.columns                    { width: 48%;            }\n-  .seven.columns                  { width: 56.6666666667%; }\n-  .eight.columns                  { width: 65.3333333333%; }\n-  .nine.columns                   { width: 74.0%;          }\n-  .ten.columns                    { width: 82.6666666667%; }\n-  .eleven.columns                 { width: 91.3333333333%; }\n-  .twelve.columns                 { width: 100%; margin-left: 0; }\n-\n-  .one-third.column               { width: 30.6666666667%; }\n-  .two-thirds.column              { width: 65.3333333333%; }\n-\n-  .one-half.column                { width: 48%; }\n-\n-  /* Offsets */\n-  .offset-by-one.column,\n-  .offset-by-one.columns          { margin-left: 8.66666666667%; }\n-  .offset-by-two.column,\n-  .offset-by-two.columns          { margin-left: 17.3333333333%; }\n-  .offset-by-three.column,\n-  .offset-by-three.columns        { margin-left: 26%;            }\n-  .offset-by-four.column,\n-  .offset-by-four.columns         { margin-left: 34.6666666667%; }\n-  .offset-by-five.column,\n-  .offset-by-five.columns         { margin-left: 43.3333333333%; }\n-  .offset-by-six.column,\n-  .offset-by-six.columns          { margin-left: 52%;            }\n-  .offset-by-seven.column,\n-  .offset-by-seven.columns        { margin-left: 60.6666666667%; }\n-  .offset-by-eight.column,\n-  .offset-by-eight.columns        { margin-left: 69.3333333333%; }\n-  .offset-by-nine.column,\n-  .offset-by-nine.columns         { margin-left: 78.0%;          }\n-  .offset-by-ten.column,\n-  .offset-by-ten.columns          { margin-left: 86.6666666667%; }\n-  .offset-by-eleven.column,\n-  .offset-by-eleven.columns       { margin-left: 95.3333333333%; }\n-\n-  .offset-by-one-third.column,\n-  .offset-by-one-third.columns    { margin-left: 34.6666666667%; }\n-  .offset-by-two-thirds.column,\n-  .offset-by-two-thirds.columns   { margin-left: 69.3333333333%; }\n-\n-  .offset-by-one-half.column,\n-  .offset-by-one-half.columns     { margin-left: 52%; }\n-\n-}\n-\n-\n-/* Base Styles\n-\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93 */\n-/* NOTE\n-html is set to 62.5% so that all the REM measurements throughout Skeleton\n-are based on 10px sizing. So basically 1.5rem = 15px :) */\n-html {\n-  font-size: 62.5%; }\n-body {\n-  font-size: 1.5em; /* currently ems cause chrome bug '..b'none; }\n-textarea {\n-  min-height: 65px;\n-  padding-top: 6px;\n-  padding-bottom: 6px; }\n-input[type="email"]:focus,\n-input[type="number"]:focus,\n-input[type="search"]:focus,\n-input[type="text"]:focus,\n-input[type="tel"]:focus,\n-input[type="url"]:focus,\n-input[type="password"]:focus,\n-textarea:focus,\n-select:focus {\n-  border: 1px solid #33C3F0;\n-  outline: 0; }\n-label,\n-legend {\n-  display: block;\n-  margin-bottom: .5rem;\n-  font-weight: 600; }\n-fieldset {\n-  padding: 0;\n-  border-width: 0; }\n-input[type="checkbox"],\n-input[type="radio"] {\n-  display: inline; }\n-label > .label-body {\n-  display: inline-block;\n-  margin-left: .5rem;\n-  font-weight: normal; }\n-\n-\n-/* Lists\n-\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93 */\n-ul {\n-  list-style: circle inside; }\n-ol {\n-  list-style: decimal inside; }\n-ol, ul {\n-  padding-left: 0;\n-  margin-top: 0; }\n-ul ul,\n-ul ol,\n-ol ol,\n-ol ul {\n-  margin: 1.5rem 0 1.5rem 3rem;\n-  font-size: 90%; }\n-li {\n-  margin-bottom: 1rem; }\n-\n-\n-/* Code\n-\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93 */\n-code {\n-  padding: .2rem .5rem;\n-  margin: 0 .2rem;\n-  font-size: 90%;\n-  white-space: nowrap;\n-  background: #F1F1F1;\n-  border: 1px solid #E1E1E1;\n-  border-radius: 4px; }\n-pre > code {\n-  display: block;\n-  padding: 1rem 1.5rem;\n-  white-space: pre; }\n-\n-\n-/* Tables\n-\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93 */\n-th,\n-td {\n-  padding: 12px 15px;\n-  text-align: left;\n-  border-bottom: 1px solid #E1E1E1; }\n-\n-/*th:first-child,\n-td:first-child {\n-  padding-left: 0; }\n-th:last-child,\n-td:last-child {\n-  padding-right: 0; }\n-*/\n-\n-/* Spacing\n-\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93 */\n-button,\n-.button {\n-  margin-bottom: 1rem; }\n-input,\n-textarea,\n-select,\n-fieldset {\n-  margin-bottom: 1.5rem; }\n-pre,\n-blockquote,\n-dl,\n-figure,\n-table,\n-p,\n-ul,\n-ol,\n-form {\n-  margin-bottom: 2.5rem; }\n-\n-\n-/* Utilities\n-\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93 */\n-.u-full-width {\n-  width: 100%;\n-  box-sizing: border-box; }\n-.u-max-full-width {\n-  max-width: 100%;\n-  box-sizing: border-box; }\n-.u-pull-right {\n-  float: right; }\n-.u-pull-left {\n-  float: left; }\n-\n-\n-/* Misc\n-\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93 */\n-hr {\n-  margin-top: 3rem;\n-  margin-bottom: 3.5rem;\n-  border-width: 0;\n-  border-top: 1px solid #E1E1E1; }\n-\n-\n-/* Clearing\n-\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93 */\n-\n-/* Self Clearing Goodness */\n-.container:after,\n-.row:after,\n-.u-cf {\n-  content: "";\n-  display: table;\n-  clear: both; }\n-\n-\n-/* Media Queries\n-\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93 */\n-/*\n-Note: The best way to structure the use of media queries is to create the queries\n-near the relevant code. For example, if you wanted to change the styles for buttons\n-on small devices, paste the mobile query code up in the buttons section and style it\n-there.\n-*/\n-\n-\n-/* Larger than mobile */\n-@media (min-width: 400px) {}\n-\n-/* Larger than phablet (also point when grid becomes active) */\n-@media (min-width: 550px) {}\n-\n-/* Larger than tablet */\n-@media (min-width: 750px) {}\n-\n-/* Larger than desktop */\n-@media (min-width: 1000px) {}\n-\n-/* Larger than Desktop HD */\n-@media (min-width: 1200px) {}\n'
b
diff -r 8a87a2c44d09 -r 628f82e72d72 data/js/custom.js
--- a/data/js/custom.js Fri Aug 21 12:37:54 2015 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
@@ -1,11 +0,0 @@
-$(document).ready(function()
-{
-    $("#counts-table").tablesorter({sortList: [[2,1]]});
-        //assign the sortStart event
-    $("#counts-table").bind("sortStart", function() {
-        $("#overlay").show();
-    }).bind("sortEnd",function() {
-        $("#overlay").hide();
-    });
-}
-);
b
diff -r 8a87a2c44d09 -r 628f82e72d72 data/js/jquery-1.11.3.min.js
--- a/data/js/jquery-1.11.3.min.js Fri Aug 21 12:37:54 2015 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
b'@@ -1,5 +0,0 @@\n-/*! jQuery v1.11.3 | (c) 2005, 2015 jQuery Foundation, Inc. | jquery.org/license */\n-!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k={},l="1.11.3",m=function(a,b){return new m.fn.init(a,b)},n=/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g,o=/^-ms-/,p=/-([\\da-z])/gi,q=function(a,b){return b.toUpperCase()};m.fn=m.prototype={jquery:l,constructor:m,selector:"",length:0,toArray:function(){return d.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=m.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return m.each(this,a,b)},map:function(a){return this.pushStack(m.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},m.extend=m.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||m.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(e=arguments[h]))for(d in e)a=g[d],c=e[d],g!==c&&(j&&c&&(m.isPlainObject(c)||(b=m.isArray(c)))?(b?(b=!1,f=a&&m.isArray(a)?a:[]):f=a&&m.isPlainObject(a)?a:{},g[d]=m.extend(j,f,c)):void 0!==c&&(g[d]=c));return g},m.extend({expando:"jQuery"+(l+Math.random()).replace(/\\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===m.type(a)},isArray:Array.isArray||function(a){return"array"===m.type(a)},isWindow:function(a){return null!=a&&a==a.window},isNumeric:function(a){return!m.isArray(a)&&a-parseFloat(a)+1>=0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},isPlainObject:function(a){var b;if(!a||"object"!==m.type(a)||a.nodeType||m.isWindow(a))return!1;try{if(a.constructor&&!j.call(a,"constructor")&&!j.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}if(k.ownLast)for(b in a)return j.call(a,b);for(b in a);return void 0===b||j.call(a,b)},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(b){b&&m.trim(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(o,"ms-").replace(p,q)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=r(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(n,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(r(Object(a))?m.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){var d;if(b){if(g)return g.call(b,a,c);for(d=b.length,c=c?0>c?Math.max(0,d+c):c:0;d>c;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,b){var c=+b.length,d=0,e=a.length;while(c>d)a[e++]=b[d++];if(c!==c)while(void 0!==b[d])a[e++]=b[d++];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=r(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(f=a[b],b=a,a=f),'..b'0]="json",f=a[e],a[e]=function(){g=arguments},d.always(function(){a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,_b.push(e)),g&&m.isFunction(f)&&f(g[0]),g=f=void 0}),"script"):void 0}),m.parseHTML=function(a,b,c){if(!a||"string"!=typeof a)return null;"boolean"==typeof b&&(c=b,b=!1),b=b||y;var d=u.exec(a),e=!c&&[];return d?[b.createElement(d[1])]:(d=m.buildFragment([a],b,e),e&&e.length&&m(e).remove(),m.merge([],d.childNodes))};var bc=m.fn.load;m.fn.load=function(a,b,c){if("string"!=typeof a&&bc)return bc.apply(this,arguments);var d,e,f,g=this,h=a.indexOf(" ");return h>=0&&(d=m.trim(a.slice(h,a.length)),a=a.slice(0,h)),m.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(f="POST"),g.length>0&&m.ajax({url:a,type:f,dataType:"html",data:b}).done(function(a){e=arguments,g.html(d?m("<div>").append(m.parseHTML(a)).find(d):a)}).complete(c&&function(a,b){g.each(c,e||[a.responseText,b,a])}),this},m.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){m.fn[b]=function(a){return this.on(b,a)}}),m.expr.filters.animated=function(a){return m.grep(m.timers,function(b){return a===b.elem}).length};var cc=a.document.documentElement;function dc(a){return m.isWindow(a)?a:9===a.nodeType?a.defaultView||a.parentWindow:!1}m.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=m.css(a,"position"),l=m(a),n={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=m.css(a,"top"),i=m.css(a,"left"),j=("absolute"===k||"fixed"===k)&&m.inArray("auto",[f,i])>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),m.isFunction(b)&&(b=b.call(a,c,h)),null!=b.top&&(n.top=b.top-h.top+g),null!=b.left&&(n.left=b.left-h.left+e),"using"in b?b.using.call(a,n):l.css(n)}},m.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){m.offset.setOffset(this,a,b)});var b,c,d={top:0,left:0},e=this[0],f=e&&e.ownerDocument;if(f)return b=f.documentElement,m.contains(b,e)?(typeof e.getBoundingClientRect!==K&&(d=e.getBoundingClientRect()),c=dc(f),{top:d.top+(c.pageYOffset||b.scrollTop)-(b.clientTop||0),left:d.left+(c.pageXOffset||b.scrollLeft)-(b.clientLeft||0)}):d},position:function(){if(this[0]){var a,b,c={top:0,left:0},d=this[0];return"fixed"===m.css(d,"position")?b=d.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),m.nodeName(a[0],"html")||(c=a.offset()),c.top+=m.css(a[0],"borderTopWidth",!0),c.left+=m.css(a[0],"borderLeftWidth",!0)),{top:b.top-c.top-m.css(d,"marginTop",!0),left:b.left-c.left-m.css(d,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||cc;while(a&&!m.nodeName(a,"html")&&"static"===m.css(a,"position"))a=a.offsetParent;return a||cc})}}),m.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,b){var c=/Y/.test(b);m.fn[a]=function(d){return V(this,function(a,d,e){var f=dc(a);return void 0===e?f?b in f?f[b]:f.document.documentElement[d]:a[d]:void(f?f.scrollTo(c?m(f).scrollLeft():e,c?e:m(f).scrollTop()):a[d]=e)},a,d,arguments.length,null)}}),m.each(["top","left"],function(a,b){m.cssHooks[b]=La(k.pixelPosition,function(a,c){return c?(c=Ja(a,b),Ha.test(c)?m(a).position()[b]+"px":c):void 0})}),m.each({Height:"height",Width:"width"},function(a,b){m.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){m.fn[d]=function(d,e){var f=arguments.length&&(c||"boolean"!=typeof d),g=c||(d===!0||e===!0?"margin":"border");return V(this,function(b,c,d){var e;return m.isWindow(b)?b.document.documentElement["client"+a]:9===b.nodeType?(e=b.documentElement,Math.max(b.body["scroll"+a],e["scroll"+a],b.body["offset"+a],e["offset"+a],e["client"+a])):void 0===d?m.css(b,c,g):m.style(b,c,d,g)},b,f?d:void 0,f,null)}})}),m.fn.size=function(){return this.length},m.fn.andSelf=m.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return m});var ec=a.jQuery,fc=a.$;return m.noConflict=function(b){return a.$===m&&(a.$=fc),b&&a.jQuery===m&&(a.jQuery=ec),m},typeof b===K&&(a.jQuery=a.$=m),m});\n'
b
diff -r 8a87a2c44d09 -r 628f82e72d72 data/js/jquery-1.11.3.min.map
--- a/data/js/jquery-1.11.3.min.map Fri Aug 21 12:37:54 2015 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
b'@@ -1,1 +0,0 @@\n-{"version":3,"file":"jquery-1.11.3.min.js","sources":["jquery-1.11.3.js"],"names":["global","factory","module","exports","document","w","Error","window","this","noGlobal","deletedIds","slice","concat","push","indexOf","class2type","toString","hasOwn","hasOwnProperty","support","version","jQuery","selector","context","fn","init","rtrim","rmsPrefix","rdashAlpha","fcamelCase","all","letter","toUpperCase","prototype","jquery","constructor","length","toArray","call","get","num","pushStack","elems","ret","merge","prevObject","each","callback","args","map","elem","i","apply","arguments","first","eq","last","len","j","end","sort","splice","extend","src","copyIsArray","copy","name","options","clone","target","deep","isFunction","isPlainObject","isArray","undefined","expando","Math","random","replace","isReady","error","msg","noop","obj","type","Array","isWindow","isNumeric","parseFloat","isEmptyObject","key","nodeType","e","ownLast","globalEval","data","trim","execScript","camelCase","string","nodeName","toLowerCase","value","isArraylike","text","makeArray","arr","results","Object","inArray","max","second","grep","invert","callbackInverse","matches","callbackExpect","arg","guid","proxy","tmp","now","Date","split","Sizzle","Expr","getText","isXML","tokenize","compile","select","outermostContext","sortInput","hasDuplicate","setDocument","docElem","documentIsHTML","rbuggyQSA","rbuggyMatches","contains","preferredDoc","dirruns","done","classCache","createCache","tokenCache","compilerCache","sortOrder","a","b","MAX_NEGATIVE","pop","push_native","list","booleans","whitespace","characterEncoding","identifier","attributes","pseudos","rwhitespace","RegExp","rcomma","rcombinators","rattributeQuotes","rpseudo","ridentifier","matchExpr","ID","CLASS","TAG","ATTR","PSEUDO","CHILD","bool","needsContext","rinputs","rheader","rnative","rquickExpr","rsibling","rescape","runescape","funescape","_","escaped","escapedWhitespace","high","String","fromCharCode","unloadHandler","childNodes","els","seed","match","m","groups","old","nid","newContext","newSelector","ownerDocument","exec","getElementById","parentNode","id","getElementsByTagName","getElementsByClassName","qsa","test","getAttribute","setAttribute","toSelector","testContext","join","querySelectorAll","qsaError","removeAttribute","keys","cache","cacheLength","shift","markFunction","assert","div","createElement","removeChild","addHandle","attrs","handler","attrHandle","siblingCheck","cur","diff","sourceIndex","nextSibling","createInputPseudo","createButtonPseudo","createPositionalPseudo","argument","matchIndexes","documentElement","node","hasCompare","parent","doc","defaultView","top","addEventListener","attachEvent","className","appendChild","createComment","getById","getElementsByName","find","filter","attrId","getAttributeNode","tag","innerHTML","input","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","compareDocumentPosition","adown","bup","compare","sortDetached","aup","ap","bp","unshift","expr","elements","attr","val","specified","uniqueSort","duplicates","detectDuplicates","sortStable","textContent","firstChild","nodeValue","selectors","createPseudo","relative",">","dir"," ","+","~","preFilter","excess","unquoted","nodeNameSelector","pattern","operator","check","result","what","simple","forward","ofType","xml","outerCache","nodeIndex","start","useCache","lastChild","pseudo","setFilters","idx","matched","not","matcher","unmatched","has","innerText","lang","elemLang","hash","location","root","focus","activeElement","hasFocus","href","tabIndex","enabled","disabled","checked","selected","selectedIndex","empty","header","button","even","odd","lt","gt","radio","checkbox","file","password","image","submit","reset","filters","parseOnly","tokens","soFar","preFilters","cached","addCombinator","combinator","base","checkNonElements","doneName","oldCache","newCache","elementMatcher","matchers","multipleContexts","cont'..b'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"}\n\\ No newline at end of file\n'
b
diff -r 8a87a2c44d09 -r 628f82e72d72 data/js/jquery.tablesorter.min.js
--- a/data/js/jquery.tablesorter.min.js Fri Aug 21 12:37:54 2015 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
b'@@ -1,4 +0,0 @@\n-\n-(function($){$.extend({tablesorter:new\n-function(){var parsers=[],widgets=[];this.defaults={cssHeader:"header",cssAsc:"headerSortUp",cssDesc:"headerSortDown",cssChildRow:"expand-child",sortInitialOrder:"asc",sortMultiSortKey:"shiftKey",sortForce:null,sortAppend:null,sortLocaleCompare:true,textExtraction:"simple",parsers:{},widgets:[],widgetZebra:{css:["even","odd"]},headers:{},widthFixed:false,cancelSelection:true,sortList:[],headerList:[],dateFormat:"us",decimal:\'/\\.|\\,/g\',onRenderHeader:null,selectorHeaders:\'thead th\',debug:false};function benchmark(s,d){log(s+","+(new Date().getTime()-d.getTime())+"ms");}this.benchmark=benchmark;function log(s){if(typeof console!="undefined"&&typeof console.debug!="undefined"){console.log(s);}else{alert(s);}}function buildParserCache(table,$headers){if(table.config.debug){var parsersDebug="";}if(table.tBodies.length==0)return;var rows=table.tBodies[0].rows;if(rows[0]){var list=[],cells=rows[0].cells,l=cells.length;for(var i=0;i<l;i++){var p=false;if($.metadata&&($($headers[i]).metadata()&&$($headers[i]).metadata().sorter)){p=getParserById($($headers[i]).metadata().sorter);}else if((table.config.headers[i]&&table.config.headers[i].sorter)){p=getParserById(table.config.headers[i].sorter);}if(!p){p=detectParserForColumn(table,rows,-1,i);}if(table.config.debug){parsersDebug+="column:"+i+" parser:"+p.id+"\\n";}list.push(p);}}if(table.config.debug){log(parsersDebug);}return list;};function detectParserForColumn(table,rows,rowIndex,cellIndex){var l=parsers.length,node=false,nodeValue=false,keepLooking=true;while(nodeValue==\'\'&&keepLooking){rowIndex++;if(rows[rowIndex]){node=getNodeFromRowAndCellIndex(rows,rowIndex,cellIndex);nodeValue=trimAndGetNodeText(table.config,node);if(table.config.debug){log(\'Checking if value was empty on row:\'+rowIndex);}}else{keepLooking=false;}}for(var i=1;i<l;i++){if(parsers[i].is(nodeValue,table,node)){return parsers[i];}}return parsers[0];}function getNodeFromRowAndCellIndex(rows,rowIndex,cellIndex){return rows[rowIndex].cells[cellIndex];}function trimAndGetNodeText(config,node){return $.trim(getElementText(config,node));}function getParserById(name){var l=parsers.length;for(var i=0;i<l;i++){if(parsers[i].id.toLowerCase()==name.toLowerCase()){return parsers[i];}}return false;}function buildCache(table){if(table.config.debug){var cacheTime=new Date();}var totalRows=(table.tBodies[0]&&table.tBodies[0].rows.length)||0,totalCells=(table.tBodies[0].rows[0]&&table.tBodies[0].rows[0].cells.length)||0,parsers=table.config.parsers,cache={row:[],normalized:[]};for(var i=0;i<totalRows;++i){var c=$(table.tBodies[0].rows[i]),cols=[];if(c.hasClass(table.config.cssChildRow)){cache.row[cache.row.length-1]=cache.row[cache.row.length-1].add(c);continue;}cache.row.push(c);for(var j=0;j<totalCells;++j){cols.push(parsers[j].format(getElementText(table.config,c[0].cells[j]),table,c[0].cells[j]));}cols.push(cache.normalized.length);cache.normalized.push(cols);cols=null;};if(table.config.debug){benchmark("Building cache for "+totalRows+" rows:",cacheTime);}return cache;};function getElementText(config,node){var text="";if(!node)return"";if(!config.supportsTextContent)config.supportsTextContent=node.textContent||false;if(config.textExtraction=="simple"){if(config.supportsTextContent){text=node.textContent;}else{if(node.childNodes[0]&&node.childNodes[0].hasChildNodes()){text=node.childNodes[0].innerHTML;}else{text=node.innerHTML;}}}else{if(typeof(config.textExtraction)=="function"){text=config.textExtraction(node);}else{text=$(node).text();}}return text;}function appendToTable(table,cache){if(table.config.debug){var appendTime=new Date()}var c=cache,r=c.row,n=c.normalized,totalRows=n.length,checkCell=(n[0].length-1),tableBody=$(table.tBodies[0]),rows=[];for(var i=0;i<totalRows;i++){var pos=n[i][checkCell];rows.push(r[pos]);if(!table.config.appender){var l=r[pos].length;for(var j=0;j<l;j++){tableBody[0].appendChild(r[pos][j]);}}}if(table.config.appender){table.config.appende'..b'rtList.length>0){$this.trigger("sorton",[config.sortList]);}applyWidget(this);});};this.addParser=function(parser){var l=parsers.length,a=true;for(var i=0;i<l;i++){if(parsers[i].id.toLowerCase()==parser.id.toLowerCase()){a=false;}}if(a){parsers.push(parser);};};this.addWidget=function(widget){widgets.push(widget);};this.formatFloat=function(s){var i=parseFloat(s);return(isNaN(i))?0:i;};this.formatInt=function(s){var i=parseInt(s);return(isNaN(i))?0:i;};this.isDigit=function(s,config){return/^[-+]?\\d*$/.test($.trim(s.replace(/[,.\']/g,\'\')));};this.clearTableBody=function(table){if($.browser.msie){function empty(){while(this.firstChild)this.removeChild(this.firstChild);}empty.apply(table.tBodies[0]);}else{table.tBodies[0].innerHTML="";}};}});$.fn.extend({tablesorter:$.tablesorter.construct});var ts=$.tablesorter;ts.addParser({id:"text",is:function(s){return true;},format:function(s){return $.trim(s.toLocaleLowerCase());},type:"text"});ts.addParser({id:"digit",is:function(s,table){var c=table.config;return $.tablesorter.isDigit(s,c);},format:function(s){return $.tablesorter.formatFloat(s);},type:"numeric"});ts.addParser({id:"currency",is:function(s){return/^[\xc2\xa3$\xe2\x82\xac?.]/.test(s);},format:function(s){return $.tablesorter.formatFloat(s.replace(new RegExp(/[\xc2\xa3$\xe2\x82\xac]/g),""));},type:"numeric"});ts.addParser({id:"ipAddress",is:function(s){return/^\\d{2,3}[\\.]\\d{2,3}[\\.]\\d{2,3}[\\.]\\d{2,3}$/.test(s);},format:function(s){var a=s.split("."),r="",l=a.length;for(var i=0;i<l;i++){var item=a[i];if(item.length==2){r+="0"+item;}else{r+=item;}}return $.tablesorter.formatFloat(r);},type:"numeric"});ts.addParser({id:"url",is:function(s){return/^(https?|ftp|file):\\/\\/$/.test(s);},format:function(s){return jQuery.trim(s.replace(new RegExp(/(https?|ftp|file):\\/\\//),\'\'));},type:"text"});ts.addParser({id:"isoDate",is:function(s){return/^\\d{4}[\\/-]\\d{1,2}[\\/-]\\d{1,2}$/.test(s);},format:function(s){return $.tablesorter.formatFloat((s!="")?new Date(s.replace(new RegExp(/-/g),"/")).getTime():"0");},type:"numeric"});ts.addParser({id:"percent",is:function(s){return/\\%$/.test($.trim(s));},format:function(s){return $.tablesorter.formatFloat(s.replace(new RegExp(/%/g),""));},type:"numeric"});ts.addParser({id:"usLongDate",is:function(s){return s.match(new RegExp(/^[A-Za-z]{3,10}\\.? [0-9]{1,2}, ([0-9]{4}|\'?[0-9]{2}) (([0-2]?[0-9]:[0-5][0-9])|([0-1]?[0-9]:[0-5][0-9]\\s(AM|PM)))$/));},format:function(s){return $.tablesorter.formatFloat(new Date(s).getTime());},type:"numeric"});ts.addParser({id:"shortDate",is:function(s){return/\\d{1,2}[\\/\\-]\\d{1,2}[\\/\\-]\\d{2,4}/.test(s);},format:function(s,table){var c=table.config;s=s.replace(/\\-/g,"/");if(c.dateFormat=="us"){s=s.replace(/(\\d{1,2})[\\/\\-](\\d{1,2})[\\/\\-](\\d{4})/,"$3/$1/$2");}else if (c.dateFormat == "pt") {s = s.replace(/(\\d{1,2})[\\/\\-](\\d{1,2})[\\/\\-](\\d{4})/, "$3/$2/$1");} else if(c.dateFormat=="uk"){s=s.replace(/(\\d{1,2})[\\/\\-](\\d{1,2})[\\/\\-](\\d{4})/,"$3/$2/$1");}else if(c.dateFormat=="dd/mm/yy"||c.dateFormat=="dd-mm-yy"){s=s.replace(/(\\d{1,2})[\\/\\-](\\d{1,2})[\\/\\-](\\d{2})/,"$1/$2/$3");}return $.tablesorter.formatFloat(new Date(s).getTime());},type:"numeric"});ts.addParser({id:"time",is:function(s){return/^(([0-2]?[0-9]:[0-5][0-9])|([0-1]?[0-9]:[0-5][0-9]\\s(am|pm)))$/.test(s);},format:function(s){return $.tablesorter.formatFloat(new Date("2000/01/01 "+s).getTime());},type:"numeric"});ts.addParser({id:"metadata",is:function(s){return false;},format:function(s,table,cell){var c=table.config,p=(!c.parserMetadataName)?\'sortValue\':c.parserMetadataName;return $(cell).metadata()[p];},type:"numeric"});ts.addWidget({id:"zebra",format:function(table){if(table.config.debug){var time=new Date();}var $tr,row=-1,odd;$("tr:visible",table.tBodies[0]).each(function(i){$tr=$(this);if(!$tr.hasClass(table.config.cssChildRow))row++;odd=(row%2==0);$tr.removeClass(table.config.widgetZebra.css[odd?0:1]).addClass(table.config.widgetZebra.css[odd?1:0])});if(table.config.debug){$.tablesorter.benchmark("Applying Zebra widget",time);}}});})(jQuery);\n'
b
diff -r 8a87a2c44d09 -r 628f82e72d72 data/ribocount.html
--- a/data/ribocount.html Fri Aug 21 12:37:54 2015 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
b
@@ -1,63 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-
-    <!-- Basic Page Needs
-    –––––––––––––––––––––––––––––––––––––––––––––––––– -->
-    <meta charset="utf-8">
-    <title>Ribo-Seq profile counts</title>
-    <meta name="description" content="">
-    <meta name="author" content="">
-
-    <!-- Mobile Specific Metas
-    –––––––––––––––––––––––––––––––––––––––––––––––––– -->
-    <meta name="viewport" content="width=device-width, initial-scale=1">
-
-    <!-- FONT
-    –––––––––––––––––––––––––––––––––––––––––––––––––– -->
-    <!--<link href="http://fonts.googleapis.com/css?family=Open+Sans:400,300,600"-->
-          <!--rel="stylesheet" type="text/css">-->
-
-    <!-- CSS
-    –––––––––––––––––––––––––––––––––––––––––––––––––– -->
-    <link rel="stylesheet" href="css/normalize.css">
-    <link rel="stylesheet" href="css/skeleton.css">
-    <link rel="stylesheet" href="css/custom.css">
-
-    <!-- Favicon
-    –––––––––––––––––––––––––––––––––––––––––––––––––– -->
-    <link rel="icon" type="image/png" href="images/favicon.png">
-
-</head>
-<body>
-
-<!-- Primary Page Layout
-–––––––––––––––––––––––––––––––––––––––––––––––––– -->
-<div class="container">
-    <div class="row">
-        <div class="twelve columns">
-            <h3 id="page-title">Ribo-Seq profile counts for all transcripts</h3>
-            <h5>Total transcript(s) <span class="info">{count}</span>, Footprint
-                length <span class="info">{length}</span></h5>
-            <div id="overlay">Sorting this large table...</div>
-            <table id="counts-table" class="tablesorter u-full-width">
-                <thead>
-                <tr>
-                    <th>Number</th>
-                    <th>Transcript name</th>
-                    <th>Total reads</th>
-                    <th>Counts (csv file)</th>
-                </tr>
-                </thead>
-                <tbody>
-                {table_content}
-                </tbody>
-            </table>
-        </div>
-    </div>
-</div>
-<script type="text/javascript" src="js/jquery-1.11.3.min.js"></script>
-<script type="text/javascript" src="js/jquery.tablesorter.min.js"></script>
-<script type="text/javascript" src="js/custom.js"></script>
-</body>
-</html>
b
diff -r 8a87a2c44d09 -r 628f82e72d72 data/ribocount_index.html
--- a/data/ribocount_index.html Fri Aug 21 12:37:54 2015 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
b
@@ -1,25 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-
-    <!-- Basic Page Needs
-    –––––––––––––––––––––––––––––––––––––––––––––––––– -->
-    <meta charset="utf-8">
-    <title>Ribo-Seq profile counts</title>
-
-    <!-- Mobile Specific Metas
-    –––––––––––––––––––––––––––––––––––––––––––––––––– -->
-    <meta name="viewport" content="width=device-width, initial-scale=1">
-</head>
-<body>
-
-<h3>Ribocount output</h3>
-<h5>The following zip file contains read counts as CSV files for <em>{count}</em>
-transcripts with read length <em>{read_length}</em>.</h5>
-
-<p>Download: <a href="ribocount_output.zip">ribocount_output.zip</a></p>
-
-<p>Note: To view the list of transcripts and their read counts (in CSV),
-extract the zip file and open "index.html" in a web browser. </p>
-</body>
-</html>
\ No newline at end of file
b
diff -r 8a87a2c44d09 -r 628f82e72d72 data/riboplot.html
--- a/data/riboplot.html Fri Aug 21 12:37:54 2015 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
b
@@ -1,61 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-
-    <!-- Basic Page Needs
-    –––––––––––––––––––––––––––––––––––––––––––––––––– -->
-    <meta charset="utf-8">
-    <title>Ribo-Seq profile plot</title>
-    <meta name="description" content="">
-    <meta name="author" content="">
-
-    <!-- Mobile Specific Metas
-    –––––––––––––––––––––––––––––––––––––––––––––––––– -->
-    <meta name="viewport" content="width=device-width, initial-scale=1">
-
-    <!-- FONT
-    –––––––––––––––––––––––––––––––––––––––––––––––––– -->
-    <!--<link href="http://fonts.googleapis.com/css?family=Open+Sans:400,300,600"-->
-          <!--rel="stylesheet" type="text/css">-->
-
-    <!-- CSS
-    –––––––––––––––––––––––––––––––––––––––––––––––––– -->
-    <link rel="stylesheet" href="css/normalize.css">
-    <link rel="stylesheet" href="css/skeleton.css">
-    <link rel="stylesheet" href="css/custom.css">
-
-    <!-- Favicon
-    –––––––––––––––––––––––––––––––––––––––––––––––––– -->
-    <link rel="icon" type="image/png" href="images/favicon.png">
-
-</head>
-<body>
-
-<!-- Primary Page Layout
-–––––––––––––––––––––––––––––––––––––––––––––––––– -->
-<div class="container">
-    <div class="row">
-        <div id="main" class="twelve columns">
-            <center>
-                <h3>Ribo-Seq profile plot</h3>
-                <p>
-                <img width="100%" class="u-max-full-width" src="riboplot.png"/><br>
-                <p>
-                <h5>Download plots<br>
-                    <a href="riboplot.png">PNG</a>, <a href="riboplot.svg">SVG</a>
-                </h5>
-
-                <h5>Download counts<br>
-                 <a href="RiboCounts.csv">RiboCounts.csv</a>
-                </h5>
-                <p>
-                    <small>
-                        (Right click --> Save link/target as...)
-                    </small>
-                </p>
-            </center>
-        </div>
-    </div>
-</div>
-</body>
-</html>
\ No newline at end of file
b
diff -r 8a87a2c44d09 -r 628f82e72d72 docs/_static/alabaster.css_t
--- a/docs/_static/alabaster.css_t Fri Aug 21 12:37:54 2015 +0100
+++ b/docs/_static/alabaster.css_t Wed Aug 26 16:37:10 2015 +0100
[
@@ -105,8 +105,8 @@
 
 div.sphinxsidebarwrapper p.logo {
     padding: 0;
-    margin: -10px 0 0 0px;
-    text-align: center;
+    margin: -10px 0 10px 0px;
+    text-align: left;
 }
 
 div.sphinxsidebarwrapper h1.logo {
@@ -609,4 +609,4 @@
 
 div.sphinxsidebar #searchbox input[type="submit"] {
     width: 40px;
-}
\ No newline at end of file
+}
b
diff -r 8a87a2c44d09 -r 628f82e72d72 docs/_static/riboplot-logo.png
b
Binary file docs/_static/riboplot-logo.png has changed
b
diff -r 8a87a2c44d09 -r 628f82e72d72 docs/authors.rst
--- a/docs/authors.rst Fri Aug 21 12:37:54 2015 +0100
+++ b/docs/authors.rst Wed Aug 26 16:37:10 2015 +0100
b
@@ -1,13 +1,1 @@
-=======
-Credits
-=======
-
-Development Lead
-----------------
-
-* Vimalkumar Velayudhan <vimalkumarvelayudhan@gmail.com>
-
-Contributors
-------------
-
-None yet. Why not be the first?
\ No newline at end of file
+.. include:: ../AUTHORS.rst
b
diff -r 8a87a2c44d09 -r 628f82e72d72 docs/conf.py
--- a/docs/conf.py Fri Aug 21 12:37:54 2015 +0100
+++ b/docs/conf.py Wed Aug 26 16:37:10 2015 +0100
b
@@ -135,11 +135,11 @@
 
 # A shorter title for the navigation bar.  Default is the same as
 # html_title.
-#html_short_title = None
+html_short_title = 'RiboPlot'
 
 # The name of an image file (relative to this directory) to place at the
 # top of the sidebar.
-#html_logo = None
+html_logo = '_static/riboplot-logo.png'
 
 # The name of an image file (within the static path) to use as favicon
 # of the docs.  This file should be a Windows icon file (.ico) being
@@ -154,7 +154,7 @@
 
 # If not '', a 'Last updated on:' timestamp is inserted at every page
 # bottom, using the given strftime format.
-#html_last_updated_fmt = '%b %d, %Y'
+html_last_updated_fmt = '%b %d, %Y'
 
 # If true, SmartyPants will be used to convert quotes and dashes to
 # typographically correct entities.
b
diff -r 8a87a2c44d09 -r 628f82e72d72 docs/contributing.rst
--- a/docs/contributing.rst Fri Aug 21 12:37:54 2015 +0100
+++ b/docs/contributing.rst Wed Aug 26 16:37:10 2015 +0100
b
@@ -1,111 +1,1 @@
-============
-Contributing
-============
-
-Contributions are welcome, and they are greatly appreciated! Every
-little bit helps, and credit will always be given.
-
-You can contribute in many ways:
-
-Types of Contributions
-----------------------
-
-Report Bugs
-~~~~~~~~~~~
-
-Report bugs at https://github.com/vimalkumarvelayudhan/riboplot/issues.
-
-If you are reporting a bug, please include:
-
-* Your operating system name and version.
-* Any details about your local setup that might be helpful in troubleshooting.
-* Detailed steps to reproduce the bug.
-
-Fix Bugs
-~~~~~~~~
-
-Look through the GitHub issues for bugs. Anything tagged with "bug"
-is open to whoever wants to implement it.
-
-Implement Features
-~~~~~~~~~~~~~~~~~~
-
-Look through the GitHub issues for features. Anything tagged with "feature"
-is open to whoever wants to implement it.
-
-Write Documentation
-~~~~~~~~~~~~~~~~~~~
-
-RiboPlot could always use more documentation, whether as part of the
-official RiboPlot docs, in docstrings, or even on the web in blog posts,
-articles, and such.
-
-Submit Feedback
-~~~~~~~~~~~~~~~
-
-The best way to send feedback is to file an issue at https://github.com/vimalkumarvelayudhan/riboplot/issues.
-
-If you are proposing a feature:
-
-* Explain in detail how it would work.
-* Keep the scope as narrow as possible, to make it easier to implement.
-* Remember that this is a volunteer-driven project, and that contributions
-  are welcome :)
-
-Get Started!
-------------
-
-Ready to contribute? Here's how to set up `riboplot` for local development.
-
-1. Fork the `riboplot` repo on GitHub.
-2. Clone your fork locally::
-
-    $ git clone git@github.com:your_name_here/riboplot.git
-
-3. Install your local copy into a virtualenv. Assuming you have virtualenvwrapper installed, this is how you set up your fork for local development::
-
-    $ mkvirtualenv riboplot
-    $ cd riboplot/
-    $ python setup.py develop
-
-4. Create a branch for local development::
-
-    $ git checkout -b name-of-your-bugfix-or-feature
-
-   Now you can make your changes locally.
-
-5. When you're done making changes, check that your changes pass flake8 and the tests, including testing other Python versions with tox::
-
-    $ flake8 riboplot tests
-    $ python setup.py test
-    $ tox
-
-   To get flake8 and tox, just pip install them into your virtualenv.
-
-6. Commit your changes and push your branch to GitHub::
-
-    $ git add .
-    $ git commit -m "Your detailed description of your changes."
-    $ git push origin name-of-your-bugfix-or-feature
-
-7. Submit a pull request through the GitHub website.
-
-Pull Request Guidelines
------------------------
-
-Before you submit a pull request, check that it meets these guidelines:
-
-1. The pull request should include tests.
-2. If the pull request adds functionality, the docs should be updated. Put
-   your new functionality into a function with a docstring, and add the
-   feature to the list in README.rst.
-3. The pull request should work for Python 2.6, 2.7, 3.3, and 3.4, and for PyPy. Check
-   https://travis-ci.org/vimalkumarvelayudhan/riboplot/pull_requests
-   and make sure that the tests pass for all supported Python versions.
-
-Tips
-----
-
-To run a subset of tests::
-
-    $ python -m unittest tests.test_riboplot
\ No newline at end of file
+.. include:: ../CONTRIBUTING.rst
b
diff -r 8a87a2c44d09 -r 628f82e72d72 docs/history.rst
--- a/docs/history.rst Fri Aug 21 12:37:54 2015 +0100
+++ b/docs/history.rst Wed Aug 26 16:37:10 2015 +0100
b
@@ -1,9 +1,1 @@
-.. :changelog:
-
-History
-=======
-
-0.1.0 (2015-08-05)
----------------------
-
-* First release on PyPI.
+.. include:: ../HISTORY.rst
b
diff -r 8a87a2c44d09 -r 628f82e72d72 docs/index.rst
--- a/docs/index.rst Fri Aug 21 12:37:54 2015 +0100
+++ b/docs/index.rst Wed Aug 26 16:37:10 2015 +0100
b
@@ -15,9 +15,16 @@
    installation
    usage
    contributing
+   todo
    authors
    history
 
+API:
+
+.. toctree::
+
+   modules
+
 Indices and tables
 ==================
 
b
diff -r 8a87a2c44d09 -r 628f82e72d72 docs/installation.rst
--- a/docs/installation.rst Fri Aug 21 12:37:54 2015 +0100
+++ b/docs/installation.rst Wed Aug 26 16:37:10 2015 +0100
b
@@ -1,7 +1,6 @@
 ============
 Installation
 ============
-
 At the command line::
 
     $ easy_install riboplot
@@ -9,4 +8,14 @@
 Or, if you have virtualenvwrapper installed::
 
     $ mkvirtualenv riboplot
-    $ pip install riboplot
\ No newline at end of file
+    $ pip install riboplot
+
+.. note:: 
+
+    RNA coverage plot requires `bedtools <https://github.com/arq5x/bedtools2>`_ to be installed. 
+    
+    This release of riboplot has been tested with bedtools version ``2.17.0``.
+
+    On Ubuntu and derivatives, bedtools can be installed from the repositories using::
+
+        sudo apt-get install bedtools
b
diff -r 8a87a2c44d09 -r 628f82e72d72 docs/readme.rst
--- a/docs/readme.rst Fri Aug 21 12:37:54 2015 +0100
+++ b/docs/readme.rst Wed Aug 26 16:37:10 2015 +0100
b
@@ -1,28 +1,1 @@
-===============================
-RiboPlot
-===============================
-
-.. image:: https://img.shields.io/travis/vimalkumarvelayudhan/riboplot.svg
-        :target: https://travis-ci.org/vimalkumarvelayudhan/riboplot
-
-.. image:: https://img.shields.io/pypi/v/riboplot.svg
-        :target: https://pypi.python.org/pypi/riboplot
-
-
-RiboPlot includes programs to plot and output Ribo-Seq read counts from an alignment file (BAM format).
-
-There are two programs in the package:
-
-**riboplot**
-    Plot and output read counts (csv) for a single transcript.
-
-**ribocount**
-    Output read counts for all transcripts in an alignment.
-
-For help on using these programs, please refer to :ref:`usage`.
-
-
-Free software: BSD license.
-
-Documentation: https://riboplot.readthedocs.org.
-
+.. include:: ../README.rst
b
diff -r 8a87a2c44d09 -r 628f82e72d72 docs/riboplot.rst
--- a/docs/riboplot.rst Fri Aug 21 12:37:54 2015 +0100
+++ b/docs/riboplot.rst Wed Aug 26 16:37:10 2015 +0100
b
@@ -36,15 +36,6 @@
     :undoc-members:
     :show-inheritance:
 
-riboplot.riboplot_multi module
-------------------------------
-
-.. automodule:: riboplot.riboplot_multi
-    :members:
-    :undoc-members:
-    :show-inheritance:
-
-
 Module contents
 ---------------
 
b
diff -r 8a87a2c44d09 -r 628f82e72d72 docs/todo.rst
--- a/docs/todo.rst Fri Aug 21 12:37:54 2015 +0100
+++ b/docs/todo.rst Wed Aug 26 16:37:10 2015 +0100
b
@@ -1,38 +1,6 @@
-Outline
--------
-Log information by default
-Errors to stderr
+Todo
+----
+* No way to check if input BAM is RNA-Seq/Ribo-Seq (plot will still be generated in either case).
+* Check if BAM is sorted.
 
 
-Arguments
----------
--b ribo_file
--f transcriptome_fasta 
--t transcript_name
--n rna_file
--l read_length
--s read_offset
--m html_file
--o output_path
--d debug
-
-Tests
------
-
-Check arguments
-...............
-* BAM file valid (should be indexed for fetch to work)
-* FASTA file should be valid
-* Transcript name should exist in both BAM and FASTA (riboplot: yes, ribocount: no).
-* If RNA file is provided, bedtools should exist in PATH
-* Read length should be a valid integer (must exist in BAM)
-* Read offset - positive integer (can't exceed ?)
-* Should be possible to get codon positions.
-
-
-Notes
------
-* No way to check if input BAM is RNA-Seq/Ribo-Seq (plot will still be generated in either case)
-* No way to check if BAM is sorted
-
-
b
diff -r 8a87a2c44d09 -r 628f82e72d72 docs/usage.rst
--- a/docs/usage.rst Fri Aug 21 12:37:54 2015 +0100
+++ b/docs/usage.rst Wed Aug 26 16:37:10 2015 +0100
[
@@ -10,57 +10,60 @@
 
 Parameters
 ..........
-1. Ribo-Seq alignment file (Sorted BAM file)
 
-   A Bowtie 1 output (BAM) from an alignment of Ribo-Seq data to the transcriptome. This BAM
-   file should be sorted. This can be done using one of the following methods.
+1. Ribo-Seq alignment file (Sorted BAM file)
+++++++++++++++++++++++++++++++++++++++++++++
+A Bowtie 1 output (BAM) from an alignment of Ribo-Seq data to the transcriptome. This BAM
+file should be sorted. This can be done using one of the following methods.
 
-   1. RiboGalaxy -> Sort Data -> Sort BAM dataset.
-   2. ``samtools sort input.bam inputsorted``
+1. RiboGalaxy_ -> Sort Data -> Sort BAM dataset.
+2. ``samtools sort input.bam inputsorted``
 
 2. Transcriptome (FASTA)
-
-   A FASTA format file with sequences of the transcripts.
+++++++++++++++++++++++++
+A FASTA format file with sequences of the transcripts.
 
 3. Name of the transcript to plot (Text)
-
-   The name of the transcript to plot **should** match the name in the transcriptome (FASTA)
-   and the Ribo-Seq/RNA-Seq alignment (BAM).
+++++++++++++++++++++++++++++++++++++++++
+The name of the transcript to plot **should** match the name in the transcriptome (FASTA)
+and the Ribo-Seq/RNA-Seq alignment (BAM).
 
 4. RNA coverage [optional] (Sorted BAM file)
-
-   If you have RNA-Seq data (sorted BAM), you can select the option to plot RNA coverage.
+++++++++++++++++++++++++++++++++++++++++++++
+If you have RNA-Seq data (sorted BAM), you can select the option to plot RNA coverage.
 
 5. Read lengths to consider [Optional] (Integer - 0 or greater)
-
-   If this option is provided, only Ribo-Seq data of the given length is considered.
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+If this option is provided, only Ribo-Seq data of the given length is considered.
 
 6. Offset [optional] (Integer - 0 or greater)
-
-   If this option is provided, this offset is added to the read alignment positions.
++++++++++++++++++++++++++++++++++++++++++++++
+If this option is provided, this offset is added to the read alignment positions.
 
 Output
 ......
 1. Plots (PNG and SVG)
+++++++++++++++++++++++
+Ribo-Seq read counts as a bar plot in 3 frames (color codes: 1: red, 2: green, 3: blue)
 
-   Ribo-Seq read counts as a bar plot in 3 frames (color codes: 1: red, 2: green, 3: blue)
+RNA coverage as a gray background (if the RNA coverage option was selected).
 
-   RNA coverage as a gray background (if the RNA coverage option was selected).
+The open reading frame architecture appears below the plot with start (ATG) and stop codons ('TAA', 'TAG', 'TGA') in all 3 frames.
 
-   The open reading frame architecture appears below the plot with start (ATG) and stop codons ('TAA', 'TAG', 'TGA') in all 3 frames.
+The color codes are start (white) and stop (dark gray).
 
-   The color codes are start (white) and stop (dark gray).
+.. image:: ../images/riboplot.png
 
-   .. image:: ../images/riboplot.png
-
-2. RiboSeq read counts in 3 frames for each position in the transcript (CSV)
+2. RiboSeq read counts (CSV)
+++++++++++++++++++++++++++++
+In 3 frames for each position in the transcript.
 
 
 Command line
 ............
 ``riboplot`` can also be run on the command line. The usage is ::
 
-    usage: python riboplot.py [-h] -b RIBO_FILE -f TRANSCRIPTOME_FASTA -t TEXT
+    usage: riboplot [-h] -b RIBO_FILE -f TRANSCRIPTOME_FASTA -t TEXT
                     [-n RNA_FILE] [-l INTEGER] [-s INTEGER] [-m HTML_FILE]
                     [-o OUTPUT_PATH] [-d]
 
@@ -105,29 +108,29 @@
 Parameters
 ..........
 1. Ribo-Seq alignment file (Sorted BAM file)
+++++++++++++++++++++++++++++++++++++++++++++
+A Bowtie 1 output (BAM) from an alignment of Ribo-Seq data to the transcriptome. This BAM
+file should be sorted. This can be done using one of the following methods.
 
-   A Bowtie 1 output (BAM) from an alignment of Ribo-Seq data to the transcriptome. This BAM
-   file should be sorted. This can be done using one of the following methods.
-
-   1. RiboGalaxy -> Sort Data -> Sort BAM dataset.
-   2. ``samtools sort input.bam inputsorted``
+1. RiboGalaxy_ -> Sort Data -> Sort BAM dataset.
+2. ``samtools sort input.bam inputsorted``
 
 2. Transcriptome (FASTA)
-
-   A FASTA format file with sequences of the transcripts.
+++++++++++++++++++++++++
+A FASTA format file with sequences of the transcripts.
 
 3. Read lengths to consider [optional] (Integer - 0 or greater)
-
-   If this option is provided, only Ribo-Seq data of the given length is considered.
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+If this option is provided, only Ribo-Seq data of the given length is considered.
 
 4. Offset [optional] (Integer - 0 or greater)
-
-   If this option is provided, this offset is added to the read alignment positions.
++++++++++++++++++++++++++++++++++++++++++++++
+If this option is provided, this offset is added to the read alignment positions.
 
 Output
 ......
 Read counts for all transcripts in the alignment (ZIP)
-
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
 The output file ``ribocount_output.zip`` should first be uncompressed. This will generate
 a folder called ``ribocount_output``. Open ``index.html`` in a web browser to view the results of ribocount.
 
@@ -140,7 +143,7 @@
 ............
 ``ribocount`` can also be run on the command line. The usage is ::
 
-    usage: python ribocount.py [-h] -b RIBO_FILE -f TRANSCRIPTOME_FASTA [-l INTEGER]
+    usage: ribocount [-h] -b RIBO_FILE -f TRANSCRIPTOME_FASTA [-l INTEGER]
     [-s INTEGER] [-m HTML_FILE] [-o OUTPUT_PATH] [-d]
 
     Output read counts for all transcripts
@@ -172,3 +175,6 @@
         -f TRANSCRIPTOME_FASTA, --transcriptome_fasta TRANSCRIPTOME_FASTA
             FASTA format file of the transcriptome
 
+.. links
+.. _RiboGalaxy: http://ribogalaxy.ucc.ie
+
b
diff -r 8a87a2c44d09 -r 628f82e72d72 requirements.txt
--- a/requirements.txt Fri Aug 21 12:37:54 2015 +0100
+++ b/requirements.txt Wed Aug 26 16:37:10 2015 +0100
b
@@ -1,1 +1,12 @@
-wheel==0.23.0
\ No newline at end of file
+argparse==1.2.1
+backports.ssl-match-hostname==3.4.0.2
+certifi==2015.04.28
+matplotlib==1.3.1
+nose==1.3.7
+numpy==1.9.2
+pyparsing==2.0.3
+pysam==0.8.3
+python-dateutil==2.4.2
+six==1.9.0
+tornado==4.2.1
+wsgiref==0.1.2
b
diff -r 8a87a2c44d09 -r 628f82e72d72 riboplot.egg-info/PKG-INFO
--- a/riboplot.egg-info/PKG-INFO Fri Aug 21 12:37:54 2015 +0100
+++ b/riboplot.egg-info/PKG-INFO Wed Aug 26 16:37:10 2015 +0100
b
@@ -5,7 +5,7 @@
 Home-page: https://github.com/vimalkumarvelayudhan/riboplot
 Author: Vimalkumar Velayudhan
 Author-email: vimalkumarvelayudhan@gmail.com
-License: BSD
+License: GPL
 Description: ===============================
         RiboPlot
         ===============================
@@ -30,7 +30,7 @@
         For help on using these programs, please refer to :ref:`usage`.
         
         
-        Free software: BSD license.
+        Free software: GPL license.
         
         Documentation: https://riboplot.readthedocs.org.
         
@@ -41,7 +41,7 @@
         History
         =======
         
-        0.1.0 (2015-08-05)
+        0.1.0 (2015-08-24)
         ---------------------
         
         * First release on PyPI.
@@ -55,6 +55,3 @@
 Classifier: Programming Language :: Python :: 2
 Classifier: Programming Language :: Python :: 2.6
 Classifier: Programming Language :: Python :: 2.7
-Classifier: Programming Language :: Python :: 3
-Classifier: Programming Language :: Python :: 3.3
-Classifier: Programming Language :: Python :: 3.4
b
diff -r 8a87a2c44d09 -r 628f82e72d72 riboplot.egg-info/SOURCES.txt
--- a/riboplot.egg-info/SOURCES.txt Fri Aug 21 12:37:54 2015 +0100
+++ b/riboplot.egg-info/SOURCES.txt Wed Aug 26 16:37:10 2015 +0100
b
@@ -24,30 +24,37 @@
 riboplot/ribocore.py
 riboplot/ribocount.py
 riboplot/riboplot.py
-riboplot/riboplot_multi.py
 riboplot.egg-info/PKG-INFO
 riboplot.egg-info/SOURCES.txt
 riboplot.egg-info/dependency_links.txt
+riboplot.egg-info/entry_points.txt
 riboplot.egg-info/not-zip-safe
+riboplot.egg-info/requires.txt
 riboplot.egg-info/top_level.txt
-tests/.test_ribocount.py.swp
+riboplot/data/css
+riboplot/data/js
+riboplot/data/ribocount.html
+riboplot/data/ribocount_index.html
+riboplot/data/riboplot.html
+riboplot/data/css/asc.gif
+riboplot/data/css/bg.gif
+riboplot/data/css/custom.css
+riboplot/data/css/desc.gif
+riboplot/data/css/normalize.css
+riboplot/data/css/skeleton.css
+riboplot/data/js/custom.js
+riboplot/data/js/jquery-1.11.3.min.js
+riboplot/data/js/jquery-1.11.3.min.map
+riboplot/data/js/jquery.tablesorter.min.js
+riboplot/scripts/run_coverage.sh
+riboplot/scripts/run_ribocount_sample.sh
+riboplot/scripts/run_riboplot_sample.sh
+riboplot/scripts/run_tests.sh
+tests/README.rst
 tests/__init__.py
 tests/test_ribocount.py
 tests/test_riboplot.py
 tests/.ropeproject/config.py
 tests/.ropeproject/globalnames
 tests/.ropeproject/history
-tests/.ropeproject/objectdb
-tests/data/5hRPF.bam
-tests/data/5hRPF.bam.bai
-tests/data/5hRPFsorted.bam
-tests/data/5hRPFsorted.bam.bai
-tests/data/5hmRNA.bam
-tests/data/5hmRNAsorted.bam
-tests/data/ribocount.html
-tests/data/ribocount_index.html
-tests/data/riboplot.html
-tests/data/unrelated.fna
-tests/data/unrelated.fna.fai
-tests/data/zebrafish.fna
-tests/data/zebrafish.fna.fai
\ No newline at end of file
+tests/.ropeproject/objectdb
\ No newline at end of file
b
diff -r 8a87a2c44d09 -r 628f82e72d72 riboplot.egg-info/entry_points.txt
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/riboplot.egg-info/entry_points.txt Wed Aug 26 16:37:10 2015 +0100
[
@@ -0,0 +1,4 @@
+[console_scripts]
+riboplot = riboplot.riboplot:run
+ribocount = riboplot.ribocount:run
+
b
diff -r 8a87a2c44d09 -r 628f82e72d72 riboplot.egg-info/requires.txt
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/riboplot.egg-info/requires.txt Wed Aug 26 16:37:10 2015 +0100
b
@@ -0,0 +1,2 @@
+matplotlib==1.3.1
+pysam==0.8.3
\ No newline at end of file
b
diff -r 8a87a2c44d09 -r 628f82e72d72 riboplot/config.py
--- a/riboplot/config.py Fri Aug 21 12:37:54 2015 +0100
+++ b/riboplot/config.py Wed Aug 26 16:37:10 2015 +0100
[
@@ -6,14 +6,15 @@
     # get the running directory of this file, move one level up to get the
     # application directory
     APP_DIR = os.path.split(os.path.dirname(os.path.abspath(__file__)))[0]
+    PKG_DATA_DIR = os.path.join(APP_DIR, 'riboplot', 'data')
 
 
 class TestingConfig(Config):
     """Testing configuration"""
-    DATA_DIR = os.path.join(Config.APP_DIR, 'tests/data')
+    TEST_DATA_DIR = os.path.join(Config.APP_DIR, 'tests/data')
 
 
 class ProductionConfig(Config):
     """Production configuration"""
-    # not used now
-    DATA_DIR = os.path.join(Config.APP_DIR, 'data')
+    # Additional variables can be listed here
+    pass
b
diff -r 8a87a2c44d09 -r 628f82e72d72 riboplot/data/css/asc.gif
b
Binary file riboplot/data/css/asc.gif has changed
b
diff -r 8a87a2c44d09 -r 628f82e72d72 riboplot/data/css/bg.gif
b
Binary file riboplot/data/css/bg.gif has changed
b
diff -r 8a87a2c44d09 -r 628f82e72d72 riboplot/data/css/custom.css
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/riboplot/data/css/custom.css Wed Aug 26 16:37:10 2015 +0100
b
@@ -0,0 +1,61 @@
+.info {
+    font-weight: normal;
+}
+
+.text-muted {
+    font-size: 0.6em;
+    text-align: center;
+    color: #555555;
+}
+
+#main {
+    text-align: center;
+}
+
+#page-title {
+    margin-top: 5%;
+}
+
+/* tables */
+table.tablesorter {
+    border: 1px solid #eeeeee;
+}
+
+table.tablesorter thead tr .header {
+    background-image: url(bg.gif);
+    background-repeat: no-repeat;
+    background-position: center right;
+    cursor: pointer;
+}
+
+table.tablesorter thead tr .headerSortUp {
+    background-image: url(asc.gif);
+}
+
+table.tablesorter thead tr .headerSortDown {
+    background-image: url(desc.gif);
+}
+
+table.tablesorter thead tr .headerSortDown, table.tablesorter thead tr .headerSortUp {
+    background-color: #eeeeee;
+}
+
+table.tablesorter tbody {
+    font-family: monospace;
+}
+
+#overlay {
+    top: 20px;
+    left: 50%;
+    position: absolute;
+    margin-left: -170px;
+    width: 250px;
+    text-align: center;
+    display: none;
+    margin-top: -10px;
+    background: #F6FF00;
+    color: #515151;
+    padding: 3px;
+    border-radius: 5px;
+    box-shadow: 3px 3px 3px #eeeeee;
+}
\ No newline at end of file
b
diff -r 8a87a2c44d09 -r 628f82e72d72 riboplot/data/css/desc.gif
b
Binary file riboplot/data/css/desc.gif has changed
b
diff -r 8a87a2c44d09 -r 628f82e72d72 riboplot/data/css/normalize.css
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/riboplot/data/css/normalize.css Wed Aug 26 16:37:10 2015 +0100
[
b'@@ -0,0 +1,427 @@\n+/*! normalize.css v3.0.2 | MIT License | git.io/normalize */\n+\n+/**\n+ * 1. Set default font family to sans-serif.\n+ * 2. Prevent iOS text size adjust after orientation change, without disabling\n+ *    user zoom.\n+ */\n+\n+html {\n+  font-family: sans-serif; /* 1 */\n+  -ms-text-size-adjust: 100%; /* 2 */\n+  -webkit-text-size-adjust: 100%; /* 2 */\n+}\n+\n+/**\n+ * Remove default margin.\n+ */\n+\n+body {\n+  margin: 0;\n+}\n+\n+/* HTML5 display definitions\n+   ========================================================================== */\n+\n+/**\n+ * Correct `block` display not defined for any HTML5 element in IE 8/9.\n+ * Correct `block` display not defined for `details` or `summary` in IE 10/11\n+ * and Firefox.\n+ * Correct `block` display not defined for `main` in IE 11.\n+ */\n+\n+article,\n+aside,\n+details,\n+figcaption,\n+figure,\n+footer,\n+header,\n+hgroup,\n+main,\n+menu,\n+nav,\n+section,\n+summary {\n+  display: block;\n+}\n+\n+/**\n+ * 1. Correct `inline-block` display not defined in IE 8/9.\n+ * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.\n+ */\n+\n+audio,\n+canvas,\n+progress,\n+video {\n+  display: inline-block; /* 1 */\n+  vertical-align: baseline; /* 2 */\n+}\n+\n+/**\n+ * Prevent modern browsers from displaying `audio` without controls.\n+ * Remove excess height in iOS 5 devices.\n+ */\n+\n+audio:not([controls]) {\n+  display: none;\n+  height: 0;\n+}\n+\n+/**\n+ * Address `[hidden]` styling not present in IE 8/9/10.\n+ * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22.\n+ */\n+\n+[hidden],\n+template {\n+  display: none;\n+}\n+\n+/* Links\n+   ========================================================================== */\n+\n+/**\n+ * Remove the gray background color from active links in IE 10.\n+ */\n+\n+a {\n+  background-color: transparent;\n+}\n+\n+/**\n+ * Improve readability when focused and also mouse hovered in all browsers.\n+ */\n+\n+a:active,\n+a:hover {\n+  outline: 0;\n+}\n+\n+/* Text-level semantics\n+   ========================================================================== */\n+\n+/**\n+ * Address styling not present in IE 8/9/10/11, Safari, and Chrome.\n+ */\n+\n+abbr[title] {\n+  border-bottom: 1px dotted;\n+}\n+\n+/**\n+ * Address style set to `bolder` in Firefox 4+, Safari, and Chrome.\n+ */\n+\n+b,\n+strong {\n+  font-weight: bold;\n+}\n+\n+/**\n+ * Address styling not present in Safari and Chrome.\n+ */\n+\n+dfn {\n+  font-style: italic;\n+}\n+\n+/**\n+ * Address variable `h1` font-size and margin within `section` and `article`\n+ * contexts in Firefox 4+, Safari, and Chrome.\n+ */\n+\n+h1 {\n+  font-size: 2em;\n+  margin: 0.67em 0;\n+}\n+\n+/**\n+ * Address styling not present in IE 8/9.\n+ */\n+\n+mark {\n+  background: #ff0;\n+  color: #000;\n+}\n+\n+/**\n+ * Address inconsistent and variable font size in all browsers.\n+ */\n+\n+small {\n+  font-size: 80%;\n+}\n+\n+/**\n+ * Prevent `sub` and `sup` affecting `line-height` in all browsers.\n+ */\n+\n+sub,\n+sup {\n+  font-size: 75%;\n+  line-height: 0;\n+  position: relative;\n+  vertical-align: baseline;\n+}\n+\n+sup {\n+  top: -0.5em;\n+}\n+\n+sub {\n+  bottom: -0.25em;\n+}\n+\n+/* Embedded content\n+   ========================================================================== */\n+\n+/**\n+ * Remove border when inside `a` element in IE 8/9/10.\n+ */\n+\n+img {\n+  border: 0;\n+}\n+\n+/**\n+ * Correct overflow not hidden in IE 9/10/11.\n+ */\n+\n+svg:not(:root) {\n+  overflow: hidden;\n+}\n+\n+/* Grouping content\n+   ========================================================================== */\n+\n+/**\n+ * Address margin not present in IE 8/9 and Safari.\n+ */\n+\n+figure {\n+  margin: 1em 40px;\n+}\n+\n+/**\n+ * Address differences between Firefox and other browsers.\n+ */\n+\n+hr {\n+  -moz-box-sizing: content-box;\n+  box-sizing: content-box;\n+  height: 0;\n+}\n+\n+/**\n+ * Contain overflow in all browsers.\n+ */\n+\n+pre {\n+  overflow: auto;\n+}\n+\n+/**\n+ * Address odd `em`-unit font size rendering in all browsers.\n+ */\n+\n+code,\n+kbd,\n+pre,\n+samp {\n+  font-family: monospace, monospace;\n+  font-size: 1em;\n+}\n+\n+/* Forms\n+   ======================================'..b' of disabled elements.\n+ * 2. Correct font properties not being inherited.\n+ * 3. Address margins set differently in Firefox 4+, Safari, and Chrome.\n+ */\n+\n+button,\n+input,\n+optgroup,\n+select,\n+textarea {\n+  color: inherit; /* 1 */\n+  font: inherit; /* 2 */\n+  margin: 0; /* 3 */\n+}\n+\n+/**\n+ * Address `overflow` set to `hidden` in IE 8/9/10/11.\n+ */\n+\n+button {\n+  overflow: visible;\n+}\n+\n+/**\n+ * Address inconsistent `text-transform` inheritance for `button` and `select`.\n+ * All other form control elements do not inherit `text-transform` values.\n+ * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.\n+ * Correct `select` style inheritance in Firefox.\n+ */\n+\n+button,\n+select {\n+  text-transform: none;\n+}\n+\n+/**\n+ * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`\n+ *    and `video` controls.\n+ * 2. Correct inability to style clickable `input` types in iOS.\n+ * 3. Improve usability and consistency of cursor style between image-type\n+ *    `input` and others.\n+ */\n+\n+button,\n+html input[type="button"], /* 1 */\n+input[type="reset"],\n+input[type="submit"] {\n+  -webkit-appearance: button; /* 2 */\n+  cursor: pointer; /* 3 */\n+}\n+\n+/**\n+ * Re-set default cursor for disabled elements.\n+ */\n+\n+button[disabled],\n+html input[disabled] {\n+  cursor: default;\n+}\n+\n+/**\n+ * Remove inner padding and border in Firefox 4+.\n+ */\n+\n+button::-moz-focus-inner,\n+input::-moz-focus-inner {\n+  border: 0;\n+  padding: 0;\n+}\n+\n+/**\n+ * Address Firefox 4+ setting `line-height` on `input` using `!important` in\n+ * the UA stylesheet.\n+ */\n+\n+input {\n+  line-height: normal;\n+}\n+\n+/**\n+ * It\'s recommended that you don\'t attempt to style these elements.\n+ * Firefox\'s implementation doesn\'t respect box-sizing, padding, or width.\n+ *\n+ * 1. Address box sizing set to `content-box` in IE 8/9/10.\n+ * 2. Remove excess padding in IE 8/9/10.\n+ */\n+\n+input[type="checkbox"],\n+input[type="radio"] {\n+  box-sizing: border-box; /* 1 */\n+  padding: 0; /* 2 */\n+}\n+\n+/**\n+ * Fix the cursor style for Chrome\'s increment/decrement buttons. For certain\n+ * `font-size` values of the `input`, it causes the cursor style of the\n+ * decrement button to change from `default` to `text`.\n+ */\n+\n+input[type="number"]::-webkit-inner-spin-button,\n+input[type="number"]::-webkit-outer-spin-button {\n+  height: auto;\n+}\n+\n+/**\n+ * 1. Address `appearance` set to `searchfield` in Safari and Chrome.\n+ * 2. Address `box-sizing` set to `border-box` in Safari and Chrome\n+ *    (include `-moz` to future-proof).\n+ */\n+\n+input[type="search"] {\n+  -webkit-appearance: textfield; /* 1 */\n+  -moz-box-sizing: content-box;\n+  -webkit-box-sizing: content-box; /* 2 */\n+  box-sizing: content-box;\n+}\n+\n+/**\n+ * Remove inner padding and search cancel button in Safari and Chrome on OS X.\n+ * Safari (but not Chrome) clips the cancel button when the search input has\n+ * padding (and `textfield` appearance).\n+ */\n+\n+input[type="search"]::-webkit-search-cancel-button,\n+input[type="search"]::-webkit-search-decoration {\n+  -webkit-appearance: none;\n+}\n+\n+/**\n+ * Define consistent border, margin, and padding.\n+ */\n+\n+fieldset {\n+  border: 1px solid #c0c0c0;\n+  margin: 0 2px;\n+  padding: 0.35em 0.625em 0.75em;\n+}\n+\n+/**\n+ * 1. Correct `color` not being inherited in IE 8/9/10/11.\n+ * 2. Remove padding so people aren\'t caught out if they zero out fieldsets.\n+ */\n+\n+legend {\n+  border: 0; /* 1 */\n+  padding: 0; /* 2 */\n+}\n+\n+/**\n+ * Remove default vertical scrollbar in IE 8/9/10/11.\n+ */\n+\n+textarea {\n+  overflow: auto;\n+}\n+\n+/**\n+ * Don\'t inherit the `font-weight` (applied by a rule above).\n+ * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.\n+ */\n+\n+optgroup {\n+  font-weight: bold;\n+}\n+\n+/* Tables\n+   ========================================================================== */\n+\n+/**\n+ * Remove most spacing between table cells.\n+ */\n+\n+table {\n+  border-collapse: collapse;\n+  border-spacing: 0;\n+}\n+\n+td,\n+th {\n+  padding: 0;\n+}\n\\ No newline at end of file\n'
b
diff -r 8a87a2c44d09 -r 628f82e72d72 riboplot/data/css/skeleton.css
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/riboplot/data/css/skeleton.css Wed Aug 26 16:37:10 2015 +0100
[
b'@@ -0,0 +1,419 @@\n+/*\n+* Skeleton V2.0.4\n+* Copyright 2014, Dave Gamache\n+* www.getskeleton.com\n+* Free to use under the MIT license.\n+* http://www.opensource.org/licenses/mit-license.php\n+* 12/29/2014\n+*/\n+\n+\n+/* Table of contents\n+\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\n+- Grid\n+- Base Styles\n+- Typography\n+- Links\n+- Buttons\n+- Forms\n+- Lists\n+- Code\n+- Tables\n+- Spacing\n+- Utilities\n+- Clearing\n+- Media Queries\n+*/\n+\n+\n+/* Grid\n+\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93 */\n+.container {\n+  position: relative;\n+  width: 100%;\n+  max-width: 960px;\n+  margin: 0 auto;\n+  padding: 0 20px;\n+  box-sizing: border-box; }\n+.column,\n+.columns {\n+  width: 100%;\n+  float: left;\n+  box-sizing: border-box; }\n+\n+/* For devices larger than 400px */\n+@media (min-width: 400px) {\n+  .container {\n+    width: 85%;\n+    padding: 0; }\n+}\n+\n+/* For devices larger than 550px */\n+@media (min-width: 550px) {\n+  .container {\n+    width: 80%; }\n+  .column,\n+  .columns {\n+    margin-left: 4%; }\n+  .column:first-child,\n+  .columns:first-child {\n+    margin-left: 0; }\n+\n+  .one.column,\n+  .one.columns                    { width: 4.66666666667%; }\n+  .two.columns                    { width: 13.3333333333%; }\n+  .three.columns                  { width: 22%;            }\n+  .four.columns                   { width: 30.6666666667%; }\n+  .five.columns                   { width: 39.3333333333%; }\n+  .six.columns                    { width: 48%;            }\n+  .seven.columns                  { width: 56.6666666667%; }\n+  .eight.columns                  { width: 65.3333333333%; }\n+  .nine.columns                   { width: 74.0%;          }\n+  .ten.columns                    { width: 82.6666666667%; }\n+  .eleven.columns                 { width: 91.3333333333%; }\n+  .twelve.columns                 { width: 100%; margin-left: 0; }\n+\n+  .one-third.column               { width: 30.6666666667%; }\n+  .two-thirds.column              { width: 65.3333333333%; }\n+\n+  .one-half.column                { width: 48%; }\n+\n+  /* Offsets */\n+  .offset-by-one.column,\n+  .offset-by-one.columns          { margin-left: 8.66666666667%; }\n+  .offset-by-two.column,\n+  .offset-by-two.columns          { margin-left: 17.3333333333%; }\n+  .offset-by-three.column,\n+  .offset-by-three.columns        { margin-left: 26%;            }\n+  .offset-by-four.column,\n+  .offset-by-four.columns         { margin-left: 34.6666666667%; }\n+  .offset-by-five.column,\n+  .offset-by-five.columns         { margin-left: 43.3333333333%; }\n+  .offset-by-six.column,\n+  .offset-by-six.columns          { margin-left: 52%;            }\n+  .offset-by-seven.column,\n+  .offset-by-seven.columns        { margin-left: 60.6666666667%; }\n+  .offset-by-eight.column,\n+  .offset-by-eight.columns        { margin-left: 69.3333333333%; }\n+  .offset-by-nine.column,\n+  .offset-by-nine.columns         { margin-left: 78.0%;          }\n+  .offset-by-ten.column,\n+  .offset-by-ten.columns          { margin-left: 86.6666666667%; }\n+  .offset-by-eleven.column,\n+  .offset-by-eleven.columns       { margin-left: 95.3333333333%; }\n+\n+  .offset-by-one-third.column,\n+  .offset-by-one-third.columns    { margin-left: 34.6666666667%; }\n+  .offset-by-two-thirds.column,\n+  .offset-by-two-thirds.columns   { margin-left: 69.3333333333%; }\n+\n+  .offset-by-one-half.column,\n+  .offset-by-one-half.columns     { margin-left: 52%; }\n+\n+}\n+\n+\n+/* Base Styles\n+\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93 */\n+/* NOTE\n+html is set to 62.5% so that all the REM measurements throughout Skeleton\n+are based on 10px sizing. So basically 1.5rem = 15px :) */\n+html {\n+  font-size: 62.5%; }\n+body {\n+  font-size: 1.5em; /* currently ems cause chrome bug '..b'none; }\n+textarea {\n+  min-height: 65px;\n+  padding-top: 6px;\n+  padding-bottom: 6px; }\n+input[type="email"]:focus,\n+input[type="number"]:focus,\n+input[type="search"]:focus,\n+input[type="text"]:focus,\n+input[type="tel"]:focus,\n+input[type="url"]:focus,\n+input[type="password"]:focus,\n+textarea:focus,\n+select:focus {\n+  border: 1px solid #33C3F0;\n+  outline: 0; }\n+label,\n+legend {\n+  display: block;\n+  margin-bottom: .5rem;\n+  font-weight: 600; }\n+fieldset {\n+  padding: 0;\n+  border-width: 0; }\n+input[type="checkbox"],\n+input[type="radio"] {\n+  display: inline; }\n+label > .label-body {\n+  display: inline-block;\n+  margin-left: .5rem;\n+  font-weight: normal; }\n+\n+\n+/* Lists\n+\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93 */\n+ul {\n+  list-style: circle inside; }\n+ol {\n+  list-style: decimal inside; }\n+ol, ul {\n+  padding-left: 0;\n+  margin-top: 0; }\n+ul ul,\n+ul ol,\n+ol ol,\n+ol ul {\n+  margin: 1.5rem 0 1.5rem 3rem;\n+  font-size: 90%; }\n+li {\n+  margin-bottom: 1rem; }\n+\n+\n+/* Code\n+\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93 */\n+code {\n+  padding: .2rem .5rem;\n+  margin: 0 .2rem;\n+  font-size: 90%;\n+  white-space: nowrap;\n+  background: #F1F1F1;\n+  border: 1px solid #E1E1E1;\n+  border-radius: 4px; }\n+pre > code {\n+  display: block;\n+  padding: 1rem 1.5rem;\n+  white-space: pre; }\n+\n+\n+/* Tables\n+\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93 */\n+th,\n+td {\n+  padding: 12px 15px;\n+  text-align: left;\n+  border-bottom: 1px solid #E1E1E1; }\n+\n+/*th:first-child,\n+td:first-child {\n+  padding-left: 0; }\n+th:last-child,\n+td:last-child {\n+  padding-right: 0; }\n+*/\n+\n+/* Spacing\n+\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93 */\n+button,\n+.button {\n+  margin-bottom: 1rem; }\n+input,\n+textarea,\n+select,\n+fieldset {\n+  margin-bottom: 1.5rem; }\n+pre,\n+blockquote,\n+dl,\n+figure,\n+table,\n+p,\n+ul,\n+ol,\n+form {\n+  margin-bottom: 2.5rem; }\n+\n+\n+/* Utilities\n+\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93 */\n+.u-full-width {\n+  width: 100%;\n+  box-sizing: border-box; }\n+.u-max-full-width {\n+  max-width: 100%;\n+  box-sizing: border-box; }\n+.u-pull-right {\n+  float: right; }\n+.u-pull-left {\n+  float: left; }\n+\n+\n+/* Misc\n+\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93 */\n+hr {\n+  margin-top: 3rem;\n+  margin-bottom: 3.5rem;\n+  border-width: 0;\n+  border-top: 1px solid #E1E1E1; }\n+\n+\n+/* Clearing\n+\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93 */\n+\n+/* Self Clearing Goodness */\n+.container:after,\n+.row:after,\n+.u-cf {\n+  content: "";\n+  display: table;\n+  clear: both; }\n+\n+\n+/* Media Queries\n+\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93\xe2\x80\x93 */\n+/*\n+Note: The best way to structure the use of media queries is to create the queries\n+near the relevant code. For example, if you wanted to change the styles for buttons\n+on small devices, paste the mobile query code up in the buttons section and style it\n+there.\n+*/\n+\n+\n+/* Larger than mobile */\n+@media (min-width: 400px) {}\n+\n+/* Larger than phablet (also point when grid becomes active) */\n+@media (min-width: 550px) {}\n+\n+/* Larger than tablet */\n+@media (min-width: 750px) {}\n+\n+/* Larger than desktop */\n+@media (min-width: 1000px) {}\n+\n+/* Larger than Desktop HD */\n+@media (min-width: 1200px) {}\n'
b
diff -r 8a87a2c44d09 -r 628f82e72d72 riboplot/data/js/custom.js
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/riboplot/data/js/custom.js Wed Aug 26 16:37:10 2015 +0100
[
@@ -0,0 +1,11 @@
+$(document).ready(function()
+{
+    $("#counts-table").tablesorter({sortList: [[2,1]]});
+        //assign the sortStart event
+    $("#counts-table").bind("sortStart", function() {
+        $("#overlay").show();
+    }).bind("sortEnd",function() {
+        $("#overlay").hide();
+    });
+}
+);
b
diff -r 8a87a2c44d09 -r 628f82e72d72 riboplot/data/js/jquery-1.11.3.min.js
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/riboplot/data/js/jquery-1.11.3.min.js Wed Aug 26 16:37:10 2015 +0100
[
b'@@ -0,0 +1,5 @@\n+/*! jQuery v1.11.3 | (c) 2005, 2015 jQuery Foundation, Inc. | jquery.org/license */\n+!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k={},l="1.11.3",m=function(a,b){return new m.fn.init(a,b)},n=/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g,o=/^-ms-/,p=/-([\\da-z])/gi,q=function(a,b){return b.toUpperCase()};m.fn=m.prototype={jquery:l,constructor:m,selector:"",length:0,toArray:function(){return d.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=m.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return m.each(this,a,b)},map:function(a){return this.pushStack(m.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},m.extend=m.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||m.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(e=arguments[h]))for(d in e)a=g[d],c=e[d],g!==c&&(j&&c&&(m.isPlainObject(c)||(b=m.isArray(c)))?(b?(b=!1,f=a&&m.isArray(a)?a:[]):f=a&&m.isPlainObject(a)?a:{},g[d]=m.extend(j,f,c)):void 0!==c&&(g[d]=c));return g},m.extend({expando:"jQuery"+(l+Math.random()).replace(/\\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===m.type(a)},isArray:Array.isArray||function(a){return"array"===m.type(a)},isWindow:function(a){return null!=a&&a==a.window},isNumeric:function(a){return!m.isArray(a)&&a-parseFloat(a)+1>=0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},isPlainObject:function(a){var b;if(!a||"object"!==m.type(a)||a.nodeType||m.isWindow(a))return!1;try{if(a.constructor&&!j.call(a,"constructor")&&!j.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}if(k.ownLast)for(b in a)return j.call(a,b);for(b in a);return void 0===b||j.call(a,b)},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(b){b&&m.trim(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(o,"ms-").replace(p,q)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=r(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(n,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(r(Object(a))?m.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){var d;if(b){if(g)return g.call(b,a,c);for(d=b.length,c=c?0>c?Math.max(0,d+c):c:0;d>c;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,b){var c=+b.length,d=0,e=a.length;while(c>d)a[e++]=b[d++];if(c!==c)while(void 0!==b[d])a[e++]=b[d++];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=r(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(f=a[b],b=a,a=f),'..b'0]="json",f=a[e],a[e]=function(){g=arguments},d.always(function(){a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,_b.push(e)),g&&m.isFunction(f)&&f(g[0]),g=f=void 0}),"script"):void 0}),m.parseHTML=function(a,b,c){if(!a||"string"!=typeof a)return null;"boolean"==typeof b&&(c=b,b=!1),b=b||y;var d=u.exec(a),e=!c&&[];return d?[b.createElement(d[1])]:(d=m.buildFragment([a],b,e),e&&e.length&&m(e).remove(),m.merge([],d.childNodes))};var bc=m.fn.load;m.fn.load=function(a,b,c){if("string"!=typeof a&&bc)return bc.apply(this,arguments);var d,e,f,g=this,h=a.indexOf(" ");return h>=0&&(d=m.trim(a.slice(h,a.length)),a=a.slice(0,h)),m.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(f="POST"),g.length>0&&m.ajax({url:a,type:f,dataType:"html",data:b}).done(function(a){e=arguments,g.html(d?m("<div>").append(m.parseHTML(a)).find(d):a)}).complete(c&&function(a,b){g.each(c,e||[a.responseText,b,a])}),this},m.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){m.fn[b]=function(a){return this.on(b,a)}}),m.expr.filters.animated=function(a){return m.grep(m.timers,function(b){return a===b.elem}).length};var cc=a.document.documentElement;function dc(a){return m.isWindow(a)?a:9===a.nodeType?a.defaultView||a.parentWindow:!1}m.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=m.css(a,"position"),l=m(a),n={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=m.css(a,"top"),i=m.css(a,"left"),j=("absolute"===k||"fixed"===k)&&m.inArray("auto",[f,i])>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),m.isFunction(b)&&(b=b.call(a,c,h)),null!=b.top&&(n.top=b.top-h.top+g),null!=b.left&&(n.left=b.left-h.left+e),"using"in b?b.using.call(a,n):l.css(n)}},m.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){m.offset.setOffset(this,a,b)});var b,c,d={top:0,left:0},e=this[0],f=e&&e.ownerDocument;if(f)return b=f.documentElement,m.contains(b,e)?(typeof e.getBoundingClientRect!==K&&(d=e.getBoundingClientRect()),c=dc(f),{top:d.top+(c.pageYOffset||b.scrollTop)-(b.clientTop||0),left:d.left+(c.pageXOffset||b.scrollLeft)-(b.clientLeft||0)}):d},position:function(){if(this[0]){var a,b,c={top:0,left:0},d=this[0];return"fixed"===m.css(d,"position")?b=d.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),m.nodeName(a[0],"html")||(c=a.offset()),c.top+=m.css(a[0],"borderTopWidth",!0),c.left+=m.css(a[0],"borderLeftWidth",!0)),{top:b.top-c.top-m.css(d,"marginTop",!0),left:b.left-c.left-m.css(d,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||cc;while(a&&!m.nodeName(a,"html")&&"static"===m.css(a,"position"))a=a.offsetParent;return a||cc})}}),m.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,b){var c=/Y/.test(b);m.fn[a]=function(d){return V(this,function(a,d,e){var f=dc(a);return void 0===e?f?b in f?f[b]:f.document.documentElement[d]:a[d]:void(f?f.scrollTo(c?m(f).scrollLeft():e,c?e:m(f).scrollTop()):a[d]=e)},a,d,arguments.length,null)}}),m.each(["top","left"],function(a,b){m.cssHooks[b]=La(k.pixelPosition,function(a,c){return c?(c=Ja(a,b),Ha.test(c)?m(a).position()[b]+"px":c):void 0})}),m.each({Height:"height",Width:"width"},function(a,b){m.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){m.fn[d]=function(d,e){var f=arguments.length&&(c||"boolean"!=typeof d),g=c||(d===!0||e===!0?"margin":"border");return V(this,function(b,c,d){var e;return m.isWindow(b)?b.document.documentElement["client"+a]:9===b.nodeType?(e=b.documentElement,Math.max(b.body["scroll"+a],e["scroll"+a],b.body["offset"+a],e["offset"+a],e["client"+a])):void 0===d?m.css(b,c,g):m.style(b,c,d,g)},b,f?d:void 0,f,null)}})}),m.fn.size=function(){return this.length},m.fn.andSelf=m.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return m});var ec=a.jQuery,fc=a.$;return m.noConflict=function(b){return a.$===m&&(a.$=fc),b&&a.jQuery===m&&(a.jQuery=ec),m},typeof b===K&&(a.jQuery=a.$=m),m});\n'
b
diff -r 8a87a2c44d09 -r 628f82e72d72 riboplot/data/js/jquery-1.11.3.min.map
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/riboplot/data/js/jquery-1.11.3.min.map Wed Aug 26 16:37:10 2015 +0100
[
b'@@ -0,0 +1,1 @@\n+{"version":3,"file":"jquery-1.11.3.min.js","sources":["jquery-1.11.3.js"],"names":["global","factory","module","exports","document","w","Error","window","this","noGlobal","deletedIds","slice","concat","push","indexOf","class2type","toString","hasOwn","hasOwnProperty","support","version","jQuery","selector","context","fn","init","rtrim","rmsPrefix","rdashAlpha","fcamelCase","all","letter","toUpperCase","prototype","jquery","constructor","length","toArray","call","get","num","pushStack","elems","ret","merge","prevObject","each","callback","args","map","elem","i","apply","arguments","first","eq","last","len","j","end","sort","splice","extend","src","copyIsArray","copy","name","options","clone","target","deep","isFunction","isPlainObject","isArray","undefined","expando","Math","random","replace","isReady","error","msg","noop","obj","type","Array","isWindow","isNumeric","parseFloat","isEmptyObject","key","nodeType","e","ownLast","globalEval","data","trim","execScript","camelCase","string","nodeName","toLowerCase","value","isArraylike","text","makeArray","arr","results","Object","inArray","max","second","grep","invert","callbackInverse","matches","callbackExpect","arg","guid","proxy","tmp","now","Date","split","Sizzle","Expr","getText","isXML","tokenize","compile","select","outermostContext","sortInput","hasDuplicate","setDocument","docElem","documentIsHTML","rbuggyQSA","rbuggyMatches","contains","preferredDoc","dirruns","done","classCache","createCache","tokenCache","compilerCache","sortOrder","a","b","MAX_NEGATIVE","pop","push_native","list","booleans","whitespace","characterEncoding","identifier","attributes","pseudos","rwhitespace","RegExp","rcomma","rcombinators","rattributeQuotes","rpseudo","ridentifier","matchExpr","ID","CLASS","TAG","ATTR","PSEUDO","CHILD","bool","needsContext","rinputs","rheader","rnative","rquickExpr","rsibling","rescape","runescape","funescape","_","escaped","escapedWhitespace","high","String","fromCharCode","unloadHandler","childNodes","els","seed","match","m","groups","old","nid","newContext","newSelector","ownerDocument","exec","getElementById","parentNode","id","getElementsByTagName","getElementsByClassName","qsa","test","getAttribute","setAttribute","toSelector","testContext","join","querySelectorAll","qsaError","removeAttribute","keys","cache","cacheLength","shift","markFunction","assert","div","createElement","removeChild","addHandle","attrs","handler","attrHandle","siblingCheck","cur","diff","sourceIndex","nextSibling","createInputPseudo","createButtonPseudo","createPositionalPseudo","argument","matchIndexes","documentElement","node","hasCompare","parent","doc","defaultView","top","addEventListener","attachEvent","className","appendChild","createComment","getById","getElementsByName","find","filter","attrId","getAttributeNode","tag","innerHTML","input","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","compareDocumentPosition","adown","bup","compare","sortDetached","aup","ap","bp","unshift","expr","elements","attr","val","specified","uniqueSort","duplicates","detectDuplicates","sortStable","textContent","firstChild","nodeValue","selectors","createPseudo","relative",">","dir"," ","+","~","preFilter","excess","unquoted","nodeNameSelector","pattern","operator","check","result","what","simple","forward","ofType","xml","outerCache","nodeIndex","start","useCache","lastChild","pseudo","setFilters","idx","matched","not","matcher","unmatched","has","innerText","lang","elemLang","hash","location","root","focus","activeElement","hasFocus","href","tabIndex","enabled","disabled","checked","selected","selectedIndex","empty","header","button","even","odd","lt","gt","radio","checkbox","file","password","image","submit","reset","filters","parseOnly","tokens","soFar","preFilters","cached","addCombinator","combinator","base","checkNonElements","doneName","oldCache","newCache","elementMatcher","matchers","multipleContexts","cont'..b'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"}\n\\ No newline at end of file\n'
b
diff -r 8a87a2c44d09 -r 628f82e72d72 riboplot/data/js/jquery.tablesorter.min.js
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/riboplot/data/js/jquery.tablesorter.min.js Wed Aug 26 16:37:10 2015 +0100
[
b'@@ -0,0 +1,4 @@\n+\n+(function($){$.extend({tablesorter:new\n+function(){var parsers=[],widgets=[];this.defaults={cssHeader:"header",cssAsc:"headerSortUp",cssDesc:"headerSortDown",cssChildRow:"expand-child",sortInitialOrder:"asc",sortMultiSortKey:"shiftKey",sortForce:null,sortAppend:null,sortLocaleCompare:true,textExtraction:"simple",parsers:{},widgets:[],widgetZebra:{css:["even","odd"]},headers:{},widthFixed:false,cancelSelection:true,sortList:[],headerList:[],dateFormat:"us",decimal:\'/\\.|\\,/g\',onRenderHeader:null,selectorHeaders:\'thead th\',debug:false};function benchmark(s,d){log(s+","+(new Date().getTime()-d.getTime())+"ms");}this.benchmark=benchmark;function log(s){if(typeof console!="undefined"&&typeof console.debug!="undefined"){console.log(s);}else{alert(s);}}function buildParserCache(table,$headers){if(table.config.debug){var parsersDebug="";}if(table.tBodies.length==0)return;var rows=table.tBodies[0].rows;if(rows[0]){var list=[],cells=rows[0].cells,l=cells.length;for(var i=0;i<l;i++){var p=false;if($.metadata&&($($headers[i]).metadata()&&$($headers[i]).metadata().sorter)){p=getParserById($($headers[i]).metadata().sorter);}else if((table.config.headers[i]&&table.config.headers[i].sorter)){p=getParserById(table.config.headers[i].sorter);}if(!p){p=detectParserForColumn(table,rows,-1,i);}if(table.config.debug){parsersDebug+="column:"+i+" parser:"+p.id+"\\n";}list.push(p);}}if(table.config.debug){log(parsersDebug);}return list;};function detectParserForColumn(table,rows,rowIndex,cellIndex){var l=parsers.length,node=false,nodeValue=false,keepLooking=true;while(nodeValue==\'\'&&keepLooking){rowIndex++;if(rows[rowIndex]){node=getNodeFromRowAndCellIndex(rows,rowIndex,cellIndex);nodeValue=trimAndGetNodeText(table.config,node);if(table.config.debug){log(\'Checking if value was empty on row:\'+rowIndex);}}else{keepLooking=false;}}for(var i=1;i<l;i++){if(parsers[i].is(nodeValue,table,node)){return parsers[i];}}return parsers[0];}function getNodeFromRowAndCellIndex(rows,rowIndex,cellIndex){return rows[rowIndex].cells[cellIndex];}function trimAndGetNodeText(config,node){return $.trim(getElementText(config,node));}function getParserById(name){var l=parsers.length;for(var i=0;i<l;i++){if(parsers[i].id.toLowerCase()==name.toLowerCase()){return parsers[i];}}return false;}function buildCache(table){if(table.config.debug){var cacheTime=new Date();}var totalRows=(table.tBodies[0]&&table.tBodies[0].rows.length)||0,totalCells=(table.tBodies[0].rows[0]&&table.tBodies[0].rows[0].cells.length)||0,parsers=table.config.parsers,cache={row:[],normalized:[]};for(var i=0;i<totalRows;++i){var c=$(table.tBodies[0].rows[i]),cols=[];if(c.hasClass(table.config.cssChildRow)){cache.row[cache.row.length-1]=cache.row[cache.row.length-1].add(c);continue;}cache.row.push(c);for(var j=0;j<totalCells;++j){cols.push(parsers[j].format(getElementText(table.config,c[0].cells[j]),table,c[0].cells[j]));}cols.push(cache.normalized.length);cache.normalized.push(cols);cols=null;};if(table.config.debug){benchmark("Building cache for "+totalRows+" rows:",cacheTime);}return cache;};function getElementText(config,node){var text="";if(!node)return"";if(!config.supportsTextContent)config.supportsTextContent=node.textContent||false;if(config.textExtraction=="simple"){if(config.supportsTextContent){text=node.textContent;}else{if(node.childNodes[0]&&node.childNodes[0].hasChildNodes()){text=node.childNodes[0].innerHTML;}else{text=node.innerHTML;}}}else{if(typeof(config.textExtraction)=="function"){text=config.textExtraction(node);}else{text=$(node).text();}}return text;}function appendToTable(table,cache){if(table.config.debug){var appendTime=new Date()}var c=cache,r=c.row,n=c.normalized,totalRows=n.length,checkCell=(n[0].length-1),tableBody=$(table.tBodies[0]),rows=[];for(var i=0;i<totalRows;i++){var pos=n[i][checkCell];rows.push(r[pos]);if(!table.config.appender){var l=r[pos].length;for(var j=0;j<l;j++){tableBody[0].appendChild(r[pos][j]);}}}if(table.config.appender){table.config.appende'..b'rtList.length>0){$this.trigger("sorton",[config.sortList]);}applyWidget(this);});};this.addParser=function(parser){var l=parsers.length,a=true;for(var i=0;i<l;i++){if(parsers[i].id.toLowerCase()==parser.id.toLowerCase()){a=false;}}if(a){parsers.push(parser);};};this.addWidget=function(widget){widgets.push(widget);};this.formatFloat=function(s){var i=parseFloat(s);return(isNaN(i))?0:i;};this.formatInt=function(s){var i=parseInt(s);return(isNaN(i))?0:i;};this.isDigit=function(s,config){return/^[-+]?\\d*$/.test($.trim(s.replace(/[,.\']/g,\'\')));};this.clearTableBody=function(table){if($.browser.msie){function empty(){while(this.firstChild)this.removeChild(this.firstChild);}empty.apply(table.tBodies[0]);}else{table.tBodies[0].innerHTML="";}};}});$.fn.extend({tablesorter:$.tablesorter.construct});var ts=$.tablesorter;ts.addParser({id:"text",is:function(s){return true;},format:function(s){return $.trim(s.toLocaleLowerCase());},type:"text"});ts.addParser({id:"digit",is:function(s,table){var c=table.config;return $.tablesorter.isDigit(s,c);},format:function(s){return $.tablesorter.formatFloat(s);},type:"numeric"});ts.addParser({id:"currency",is:function(s){return/^[\xc2\xa3$\xe2\x82\xac?.]/.test(s);},format:function(s){return $.tablesorter.formatFloat(s.replace(new RegExp(/[\xc2\xa3$\xe2\x82\xac]/g),""));},type:"numeric"});ts.addParser({id:"ipAddress",is:function(s){return/^\\d{2,3}[\\.]\\d{2,3}[\\.]\\d{2,3}[\\.]\\d{2,3}$/.test(s);},format:function(s){var a=s.split("."),r="",l=a.length;for(var i=0;i<l;i++){var item=a[i];if(item.length==2){r+="0"+item;}else{r+=item;}}return $.tablesorter.formatFloat(r);},type:"numeric"});ts.addParser({id:"url",is:function(s){return/^(https?|ftp|file):\\/\\/$/.test(s);},format:function(s){return jQuery.trim(s.replace(new RegExp(/(https?|ftp|file):\\/\\//),\'\'));},type:"text"});ts.addParser({id:"isoDate",is:function(s){return/^\\d{4}[\\/-]\\d{1,2}[\\/-]\\d{1,2}$/.test(s);},format:function(s){return $.tablesorter.formatFloat((s!="")?new Date(s.replace(new RegExp(/-/g),"/")).getTime():"0");},type:"numeric"});ts.addParser({id:"percent",is:function(s){return/\\%$/.test($.trim(s));},format:function(s){return $.tablesorter.formatFloat(s.replace(new RegExp(/%/g),""));},type:"numeric"});ts.addParser({id:"usLongDate",is:function(s){return s.match(new RegExp(/^[A-Za-z]{3,10}\\.? [0-9]{1,2}, ([0-9]{4}|\'?[0-9]{2}) (([0-2]?[0-9]:[0-5][0-9])|([0-1]?[0-9]:[0-5][0-9]\\s(AM|PM)))$/));},format:function(s){return $.tablesorter.formatFloat(new Date(s).getTime());},type:"numeric"});ts.addParser({id:"shortDate",is:function(s){return/\\d{1,2}[\\/\\-]\\d{1,2}[\\/\\-]\\d{2,4}/.test(s);},format:function(s,table){var c=table.config;s=s.replace(/\\-/g,"/");if(c.dateFormat=="us"){s=s.replace(/(\\d{1,2})[\\/\\-](\\d{1,2})[\\/\\-](\\d{4})/,"$3/$1/$2");}else if (c.dateFormat == "pt") {s = s.replace(/(\\d{1,2})[\\/\\-](\\d{1,2})[\\/\\-](\\d{4})/, "$3/$2/$1");} else if(c.dateFormat=="uk"){s=s.replace(/(\\d{1,2})[\\/\\-](\\d{1,2})[\\/\\-](\\d{4})/,"$3/$2/$1");}else if(c.dateFormat=="dd/mm/yy"||c.dateFormat=="dd-mm-yy"){s=s.replace(/(\\d{1,2})[\\/\\-](\\d{1,2})[\\/\\-](\\d{2})/,"$1/$2/$3");}return $.tablesorter.formatFloat(new Date(s).getTime());},type:"numeric"});ts.addParser({id:"time",is:function(s){return/^(([0-2]?[0-9]:[0-5][0-9])|([0-1]?[0-9]:[0-5][0-9]\\s(am|pm)))$/.test(s);},format:function(s){return $.tablesorter.formatFloat(new Date("2000/01/01 "+s).getTime());},type:"numeric"});ts.addParser({id:"metadata",is:function(s){return false;},format:function(s,table,cell){var c=table.config,p=(!c.parserMetadataName)?\'sortValue\':c.parserMetadataName;return $(cell).metadata()[p];},type:"numeric"});ts.addWidget({id:"zebra",format:function(table){if(table.config.debug){var time=new Date();}var $tr,row=-1,odd;$("tr:visible",table.tBodies[0]).each(function(i){$tr=$(this);if(!$tr.hasClass(table.config.cssChildRow))row++;odd=(row%2==0);$tr.removeClass(table.config.widgetZebra.css[odd?0:1]).addClass(table.config.widgetZebra.css[odd?1:0])});if(table.config.debug){$.tablesorter.benchmark("Applying Zebra widget",time);}}});})(jQuery);\n'
b
diff -r 8a87a2c44d09 -r 628f82e72d72 riboplot/data/ribocount.html
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/riboplot/data/ribocount.html Wed Aug 26 16:37:10 2015 +0100
b
@@ -0,0 +1,63 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+
+    <!-- Basic Page Needs
+    –––––––––––––––––––––––––––––––––––––––––––––––––– -->
+    <meta charset="utf-8">
+    <title>Ribo-Seq profile counts</title>
+    <meta name="description" content="">
+    <meta name="author" content="">
+
+    <!-- Mobile Specific Metas
+    –––––––––––––––––––––––––––––––––––––––––––––––––– -->
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+
+    <!-- FONT
+    –––––––––––––––––––––––––––––––––––––––––––––––––– -->
+    <!--<link href="http://fonts.googleapis.com/css?family=Open+Sans:400,300,600"-->
+          <!--rel="stylesheet" type="text/css">-->
+
+    <!-- CSS
+    –––––––––––––––––––––––––––––––––––––––––––––––––– -->
+    <link rel="stylesheet" href="css/normalize.css">
+    <link rel="stylesheet" href="css/skeleton.css">
+    <link rel="stylesheet" href="css/custom.css">
+
+    <!-- Favicon
+    –––––––––––––––––––––––––––––––––––––––––––––––––– -->
+    <link rel="icon" type="image/png" href="images/favicon.png">
+
+</head>
+<body>
+
+<!-- Primary Page Layout
+–––––––––––––––––––––––––––––––––––––––––––––––––– -->
+<div class="container">
+    <div class="row">
+        <div class="twelve columns">
+            <h3 id="page-title">Ribo-Seq profile counts for all transcripts</h3>
+            <h5>Total transcript(s) <span class="info">{count}</span>, Footprint
+                length <span class="info">{length}</span></h5>
+            <div id="overlay">Sorting this large table...</div>
+            <table id="counts-table" class="tablesorter u-full-width">
+                <thead>
+                <tr>
+                    <th>Number</th>
+                    <th>Transcript name</th>
+                    <th>Total reads</th>
+                    <th>Counts (csv file)</th>
+                </tr>
+                </thead>
+                <tbody>
+                {table_content}
+                </tbody>
+            </table>
+        </div>
+    </div>
+</div>
+<script type="text/javascript" src="js/jquery-1.11.3.min.js"></script>
+<script type="text/javascript" src="js/jquery.tablesorter.min.js"></script>
+<script type="text/javascript" src="js/custom.js"></script>
+</body>
+</html>
b
diff -r 8a87a2c44d09 -r 628f82e72d72 riboplot/data/ribocount_index.html
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/riboplot/data/ribocount_index.html Wed Aug 26 16:37:10 2015 +0100
b
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+
+    <!-- Basic Page Needs
+    –––––––––––––––––––––––––––––––––––––––––––––––––– -->
+    <meta charset="utf-8">
+    <title>Ribo-Seq profile counts</title>
+
+    <!-- Mobile Specific Metas
+    –––––––––––––––––––––––––––––––––––––––––––––––––– -->
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+</head>
+<body>
+
+<h3>Ribocount output</h3>
+<h5>The following zip file contains read counts as CSV files for <em>{count}</em>
+transcripts with read length <em>{read_length}</em>.</h5>
+
+<p>Download: <a href="ribocount_output.zip">ribocount_output.zip</a></p>
+
+<p>Note: To view the list of transcripts and their read counts (in CSV),
+extract the zip file and open "index.html" in a web browser. </p>
+</body>
+</html>
\ No newline at end of file
b
diff -r 8a87a2c44d09 -r 628f82e72d72 riboplot/data/riboplot.html
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/riboplot/data/riboplot.html Wed Aug 26 16:37:10 2015 +0100
b
@@ -0,0 +1,61 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+
+    <!-- Basic Page Needs
+    –––––––––––––––––––––––––––––––––––––––––––––––––– -->
+    <meta charset="utf-8">
+    <title>Ribo-Seq profile plot</title>
+    <meta name="description" content="">
+    <meta name="author" content="">
+
+    <!-- Mobile Specific Metas
+    –––––––––––––––––––––––––––––––––––––––––––––––––– -->
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+
+    <!-- FONT
+    –––––––––––––––––––––––––––––––––––––––––––––––––– -->
+    <!--<link href="http://fonts.googleapis.com/css?family=Open+Sans:400,300,600"-->
+          <!--rel="stylesheet" type="text/css">-->
+
+    <!-- CSS
+    –––––––––––––––––––––––––––––––––––––––––––––––––– -->
+    <link rel="stylesheet" href="css/normalize.css">
+    <link rel="stylesheet" href="css/skeleton.css">
+    <link rel="stylesheet" href="css/custom.css">
+
+    <!-- Favicon
+    –––––––––––––––––––––––––––––––––––––––––––––––––– -->
+    <link rel="icon" type="image/png" href="images/favicon.png">
+
+</head>
+<body>
+
+<!-- Primary Page Layout
+–––––––––––––––––––––––––––––––––––––––––––––––––– -->
+<div class="container">
+    <div class="row">
+        <div id="main" class="twelve columns">
+            <center>
+                <h3>Ribo-Seq profile plot</h3>
+                <p>
+                <img width="100%" class="u-max-full-width" src="riboplot.png"/><br>
+                <p>
+                <h5>Download plots<br>
+                    <a href="riboplot.png">PNG</a>, <a href="riboplot.svg">SVG</a>
+                </h5>
+
+                <h5>Download counts<br>
+                 <a href="RiboCounts.csv">RiboCounts.csv</a>
+                </h5>
+                <p>
+                    <small>
+                        (Right click --> Save link/target as...)
+                    </small>
+                </p>
+            </center>
+        </div>
+    </div>
+</div>
+</body>
+</html>
\ No newline at end of file
b
diff -r 8a87a2c44d09 -r 628f82e72d72 riboplot/ribocount.py
--- a/riboplot/ribocount.py Fri Aug 21 12:37:54 2015 +0100
+++ b/riboplot/ribocount.py Wed Aug 26 16:37:10 2015 +0100
b
@@ -129,7 +129,7 @@
         else:
             log.info('No transcripts found')
     else:
-        with open(os.path.join(CONFIG.DATA_DIR, 'ribocount.html')) as g,\
+        with open(os.path.join(CONFIG.PKG_DATA_DIR, 'ribocount.html')) as g,\
                 open(os.path.join(zip_dir, 'index.html'), 'w') as h:
             h.write(g.read().format(count=count, length=read_length, table_content=table_content))
 
@@ -137,7 +137,7 @@
             asset_dir = os.path.join(zip_dir, asset)
             if not os.path.exists(asset_dir):
                 os.mkdir(asset_dir)
-            asset_data_dir = os.path.join(CONFIG.DATA_DIR, asset)
+            asset_data_dir = os.path.join(CONFIG.PKG_DATA_DIR, asset)
             for fname in os.listdir(asset_data_dir):
                 shutil.copy(os.path.join(asset_data_dir, fname),
                             os.path.join(zip_dir, asset, fname))
@@ -152,11 +152,17 @@
         os.chdir('../')
         log.debug('Writing HTML report')
 
-        with open(os.path.join(CONFIG.DATA_DIR, 'ribocount_index.html')) as j, open(args.html_file, 'w') as k:
+        with open(os.path.join(CONFIG.PKG_DATA_DIR, 'ribocount_index.html')) as j, open(args.html_file, 'w') as k:
             k.write(j.read().format(count=count, read_length=read_length))
     log.info('Finished')
 
-if __name__ == '__main__':
+
+def run():
+    """Run program"""
     parsed = create_parser()
     args = parsed.parse_args()
     main(args)
+
+
+if __name__ == '__main__':
+    run()
b
diff -r 8a87a2c44d09 -r 628f82e72d72 riboplot/riboplot.py
--- a/riboplot/riboplot.py Fri Aug 21 12:37:54 2015 +0100
+++ b/riboplot/riboplot.py Wed Aug 26 16:37:10 2015 +0100
[
@@ -227,14 +227,14 @@
     plt.savefig(os.path.join(output_path, 'riboplot.svg'))
     plt.savefig(os.path.join(output_path, 'riboplot.png'), dpi=300)
 
-    with open(os.path.join(CONFIG.DATA_DIR, 'riboplot.html')) as g, open(os.path.join(output_path, html_file), 'w') as h:
+    with open(os.path.join(CONFIG.PKG_DATA_DIR, 'riboplot.html')) as g, open(os.path.join(output_path, html_file), 'w') as h:
         h.write(g.read().format(transcript_name=transcript_name))
 
     css_dir = os.path.join(output_path, 'css')
     if not os.path.exists(css_dir):
         os.mkdir(css_dir)
 
-    css_data_dir = os.path.join(CONFIG.DATA_DIR, 'css')
+    css_data_dir = os.path.join(CONFIG.PKG_DATA_DIR, 'css')
     for fname in os.listdir(css_data_dir):
         shutil.copy(os.path.join(css_data_dir, fname), os.path.join(output_path, 'css', fname))
 
@@ -273,7 +273,7 @@
         '\n'.join(['{:<20}: {}'.format(k, v) for k, v in vars(args).items()])))
 
     # error messages (simple format) are written to html file
-    fh = logging.FileHandler(args.html_file)
+    fh = logging.FileHandler(html_file)
     fh.setLevel(logging.ERROR)
     fh.setFormatter(ErrorLogFormatter('%(message)s'))
     log.addHandler(fh)
@@ -342,7 +342,13 @@
                      html_file=args.html_file, output_path=args.output_path)
     log.info('Finished!')
 
-if __name__ == '__main__':
+
+def run():
+    """Run program"""
     parsed = create_parser()
     args = parsed.parse_args()
     main(args)
+
+
+if __name__ == '__main__':
+    run()
b
diff -r 8a87a2c44d09 -r 628f82e72d72 riboplot/scripts/run_coverage.sh
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/riboplot/scripts/run_coverage.sh Wed Aug 26 16:37:10 2015 +0100
b
@@ -0,0 +1,5 @@
+#!/bin/bash
+# Run coverage and geneated HTML reports
+echo "INFO: If this fails with command not found, please install the coverage python package and re-run"
+coverage run --source tests/test_riboplot.py --source riboplot setup.py test
+coverage html
b
diff -r 8a87a2c44d09 -r 628f82e72d72 riboplot/scripts/run_ribocount_sample.sh
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/riboplot/scripts/run_ribocount_sample.sh Wed Aug 26 16:37:10 2015 +0100
b
@@ -0,0 +1,6 @@
+#!/bin/bash
+# A sample ribocount run with a Ribo-Seq sorted BAM format alignment
+# and a FASTA file of the transcriptome.
+echo "Please run this script from the main package directory else this would fail"
+ribocount -b tests/data/5hRPFsorted.bam -f tests/data/zebrafish.fna 
+
b
diff -r 8a87a2c44d09 -r 628f82e72d72 riboplot/scripts/run_riboplot_sample.sh
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/riboplot/scripts/run_riboplot_sample.sh Wed Aug 26 16:37:10 2015 +0100
b
@@ -0,0 +1,8 @@
+#!/bin/bash
+# A sample riboplot run with a sorted Ribo-Seq BAM file, FASTA file of 
+# the transcriptome and a transcript.
+
+echo "Please run this script from the main package directory else this would fail"
+riboplot -b tests/data/5hRPFsorted.bam -f tests/data/zebrafish.fna \
+    -t 'gi|148357119|ref|NM_001098396.1|' -n tests/data/5hmRNAsorted.bam
+
b
diff -r 8a87a2c44d09 -r 628f82e72d72 riboplot/scripts/run_tests.sh
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/riboplot/scripts/run_tests.sh Wed Aug 26 16:37:10 2015 +0100
b
@@ -0,0 +1,5 @@
+#!/bin/bash
+# Run all tests
+
+echo "Please run this script from the main package directory else this would fail"
+python setup.py test
b
diff -r 8a87a2c44d09 -r 628f82e72d72 run_coverage.sh
--- a/run_coverage.sh Fri Aug 21 12:37:54 2015 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
b
@@ -1,2 +0,0 @@
-coverage run --source tests/test_riboplot.py --source riboplot setup.py test
-coverage html
b
diff -r 8a87a2c44d09 -r 628f82e72d72 run_ribocount_sample.sh
--- a/run_ribocount_sample.sh Fri Aug 21 12:37:54 2015 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
b
@@ -1,4 +0,0 @@
-#!/bin/bash
-python riboplot/ribocount.py -b tests/data/5hRPFsorted.bam \
-    -f tests/data/zebrafish.fna 
-
b
diff -r 8a87a2c44d09 -r 628f82e72d72 run_riboplot_sample.sh
--- a/run_riboplot_sample.sh Fri Aug 21 12:37:54 2015 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
b
@@ -1,6 +0,0 @@
-#!/bin/bash
-python riboplot/riboplot.py -b tests/data/5hRPFsorted.bam \
-    -f tests/data/zebrafish.fna \
-    -t 'gi|148357119|ref|NM_001098396.1|' \
-#    -n tests/data/5hmRNAsorted.bam
-
b
diff -r 8a87a2c44d09 -r 628f82e72d72 run_tests.sh
--- a/run_tests.sh Fri Aug 21 12:37:54 2015 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
b
@@ -1,2 +0,0 @@
-#!/bin/bash
-python setup.py test
b
diff -r 8a87a2c44d09 -r 628f82e72d72 setup.py
--- a/setup.py Fri Aug 21 12:37:54 2015 +0100
+++ b/setup.py Wed Aug 26 16:37:10 2015 +0100
[
@@ -14,9 +14,7 @@
 with open('HISTORY.rst') as history_file:
     history = history_file.read().replace('.. :changelog:', '')
 
-requirements = [
-    # TODO: put package requirements here
-]
+requirements = ['matplotlib==1.3.1', 'pysam==0.8.3']
 
 test_requirements = [
     # TODO: put package test requirements here
@@ -35,23 +33,27 @@
     ],
     package_dir={'riboplot':
                  'riboplot'},
-    include_package_data=True,
     install_requires=requirements,
-    license="BSD",
+    license="GPL",
     zip_safe=False,
     keywords='riboplot',
     classifiers=[
         'Development Status :: 2 - Pre-Alpha',
         'Intended Audience :: Developers',
-        'License :: OSI Approved :: BSD License',
+        'License :: OSI Approved :: GNU General Public License (GPL)',
         'Natural Language :: English',
         "Programming Language :: Python :: 2",
         'Programming Language :: Python :: 2.6',
         'Programming Language :: Python :: 2.7',
-        'Programming Language :: Python :: 3',
-        'Programming Language :: Python :: 3.3',
-        'Programming Language :: Python :: 3.4',
     ],
     test_suite='tests',
-    tests_require=test_requirements
-)
\ No newline at end of file
+    tests_require=test_requirements,
+    entry_points={
+        'console_scripts': [
+            'riboplot = riboplot.riboplot:run',
+            'ribocount = riboplot.ribocount:run']
+    },
+    package_data={'riboplot': ['data/*.html', 'data/css/*.gif', 'data/css/*.css',
+                               'data/js/*.js', 'data/js/*.map', 'scripts/*.sh']},
+    exclude_package_data={'tests': ['data/*.bam', 'data/*.bai', 'data/*.fna', 'data/*.fai']}
+)
b
diff -r 8a87a2c44d09 -r 628f82e72d72 tests/README.rst
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/README.rst Wed Aug 26 16:37:10 2015 +0100
b
@@ -0,0 +1,7 @@
+README - test data for riboplot
+===============================
+As the test data files are huge, they are not distribued with the program. 
+
+You can download them from 
+http://ribogalaxy.ucc.ie/library/browse_libraries?sort=name&f-description=All&f-name=All&operation=browse&id=a799d38679e985db
+
b
diff -r 8a87a2c44d09 -r 628f82e72d72 tests/test_ribocount.py
--- a/tests/test_ribocount.py Fri Aug 21 12:37:54 2015 +0100
+++ b/tests/test_ribocount.py Wed Aug 26 16:37:10 2015 +0100
b
@@ -8,12 +8,12 @@
 CONFIG = ribocount.CONFIG = riboplot.config.TestingConfig()
 logging.disable(logging.CRITICAL)
 
-RIBO_FILE = os.path.join(CONFIG.DATA_DIR, '5hRPFsorted.bam')
-RNA_FILE = os.path.join(CONFIG.DATA_DIR, '5hmRNAsorted.bam')
+RIBO_FILE = os.path.join(CONFIG.TEST_DATA_DIR, '5hRPFsorted.bam')
+RNA_FILE = os.path.join(CONFIG.TEST_DATA_DIR, '5hmRNAsorted.bam')
 TRANSCRIPT_NAME = 'gi|148357119|ref|NM_001098396.1|'
-TRANSCRIPTOME_FASTA = os.path.join(CONFIG.DATA_DIR, 'zebrafish.fna')
-TRANSCRIPTOME_FASTA_MINUS1 = os.path.join(CONFIG.DATA_DIR, 'zebrafish_minus1.fna')
-UNRELATED_FASTA = os.path.join(CONFIG.DATA_DIR, 'unrelated.fna')
+TRANSCRIPTOME_FASTA = os.path.join(CONFIG.TEST_DATA_DIR, 'zebrafish.fna')
+TRANSCRIPTOME_FASTA_MINUS1 = os.path.join(CONFIG.TEST_DATA_DIR, 'zebrafish_minus1.fna')
+UNRELATED_FASTA = os.path.join(CONFIG.TEST_DATA_DIR, 'unrelated.fna')
 
 
 class RiboCountTestCase(unittest.TestCase):
b
diff -r 8a87a2c44d09 -r 628f82e72d72 tests/test_riboplot.py
--- a/tests/test_riboplot.py Fri Aug 21 12:37:54 2015 +0100
+++ b/tests/test_riboplot.py Wed Aug 26 16:37:10 2015 +0100
[
@@ -10,11 +10,11 @@
 CONFIG = riboplot.CONFIG = riboplot.config.TestingConfig()
 logging.disable(logging.CRITICAL)
 
-RIBO_FILE = os.path.join(CONFIG.DATA_DIR, '5hRPFsorted.bam')
-RNA_FILE = os.path.join(CONFIG.DATA_DIR, '5hmRNAsorted.bam')
+RIBO_FILE = os.path.join(CONFIG.TEST_DATA_DIR, '5hRPFsorted.bam')
+RNA_FILE = os.path.join(CONFIG.TEST_DATA_DIR, '5hmRNAsorted.bam')
 TRANSCRIPT_NAME = 'gi|148357119|ref|NM_001098396.1|'
-TRANSCRIPTOME_FASTA = os.path.join(CONFIG.DATA_DIR, 'zebrafish.fna')
-TRANSCRIPTOME_FASTA_MINUS1 = os.path.join(CONFIG.DATA_DIR, 'zebrafish_minus1.fna')
+TRANSCRIPTOME_FASTA = os.path.join(CONFIG.TEST_DATA_DIR, 'zebrafish.fna')
+UNRELATED_BAM = os.path.join(CONFIG.TEST_DATA_DIR, 'unrelated.bam')
 
 
 class CheckArgumentsTestCase(unittest.TestCase):
@@ -97,7 +97,7 @@
     def test_missing_transcript_in_bam(self):
         """If a transcript is missing in BAM, an error is raised."""
         # testing with an unrelated BAM file
-        args = self.parser.parse_args(['-b', '/home/vimal/tmp/empty_tp/RiboSeq.bam', '-f', TRANSCRIPTOME_FASTA,
+        args = self.parser.parse_args(['-b', UNRELATED_BAM, '-f', TRANSCRIPTOME_FASTA,
                                        '-t', TRANSCRIPT_NAME])
         self.assertRaises(ribocore.ArgumentError, ribocore.check_required_arguments, args.ribo_file,
                           args.transcriptome_fasta, args.transcript_name)