Skip to content

Commit

Permalink
Merge remote-tracking branch 'upstream/master'
Browse files Browse the repository at this point in the history
  • Loading branch information
hsiaoyi0504 committed Apr 19, 2018
2 parents ea5aae1 + 9e6adc6 commit 80af60f
Show file tree
Hide file tree
Showing 169 changed files with 348 additions and 17,607 deletions.
5 changes: 5 additions & 0 deletions .appveyor.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,11 @@ environment:
matrix:
- PYTHON: C:\Python27-x64

branches:
except:
- master
- update_django

# scripts that are called at very beginning, before repo cloning
init:
- git config --global core.autocrlf input
Expand Down
32 changes: 25 additions & 7 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -54,17 +54,35 @@ before_script:
- sudo chmod 666 /var/log/django/i5k.log
- sudo python2 manage.py migrate
- sudo python2 setup.py
- celery -A i5k worker --loglevel=info --concurrency=3 &
- celery beat -A i5k --loglevel=info &
- sleep 5 # give some time for celery starting
- sudo python2 manage.py collectstatic --noinput

# command to run tests
script:
- coverage run --source= ./manage.py test i5k --noinput
- coverage run --source= ./manage.py test blast --noinput
- coverage run --source= ./manage.py test hmmer --noinput
- coverage run --source= ./manage.py test clustal --noinput
- coverage run --source= ./manage.py test blast.tests.ClickAllTestCase --noinput
- coverage run --source= ./manage.py test blast.tests.NucleotideSequenceSimpleTestCase --noinput
- coverage run --source= ./manage.py test blast.tests.NucleotideSequenceComplexTestCase --noinput
- coverage run --source= ./manage.py test blast.tests.PeptideSequenceSimpleTestCase --noinput
- coverage run --source= ./manage.py test blast.tests.PeptideSequenceComplexTestCase --noinput
- coverage run --source= ./manage.py test blast.tests.LoadExampleNucleotideSequenceTestCase --noinput
- coverage run --source= ./manage.py test blast.tests.LoadExamplePeptideSequenceTestCase --noinput
- coverage run --source= ./manage.py test blast.tests.ClickSequenceTypeTestCase --noinput
- coverage run --source= ./manage.py test blast.tests.HoverIntentTestCase --noinput
- coverage run --source= ./manage.py test blast.tests.BlastModelActionTestCase --noinput
- coverage run --source= ./manage.py test blast.tests.BlastAdminTestCase --noinput
- coverage run --source= ./manage.py test blast.tests.BlastBinaryTestCase --noinput
- coverage run --source= ./manage.py test blast.tests.ValidQueryTestCase --noinput
- coverage run --source= ./manage.py test blast.tests.QueryWithNoHitTestCase --noinput
- coverage run --source= ./manage.py test blast.tests.UploadFileTestCase --noinput
- coverage run --source= ./manage.py test blast.tests.JbrowseLinkOutTestCase --noinput
- coverage run --source= ./manage.py test hmmer.tests.HmmerAdminTestCase --noinput
- coverage run --source= ./manage.py test hmmer.tests.LoadSeqExampleTestCase --noinput
- coverage run --source= ./manage.py test hmmer.tests.LoadAlignExampleTestCase --noinput
- coverage run --source= ./manage.py test hmmer.tests.UploadFileTestCase --noinput
- coverage run --source= ./manage.py test hmmer.tests.HmmerViewFunctionTestCase --noinput
- coverage run --source= ./manage.py test hmmer.tests.HmmerBinaryTestCase --noinput
- coverage run --source= ./manage.py test clustal.tests.ClustalLoadExampleTestCase --noinput
- coverage run --source= ./manage.py test clustal.tests.ClustalUploadFileTestCase --noinput
- coverage run --source= ./manage.py test clustal.tests.ClustalBinaryTestCase --noinput
- coverage run --source= ./manage.py test filebrowser --noinput

after_success:
Expand Down
17 changes: 10 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
# Genomic-Workspace

[![Build Status](https://travis-ci.org/NAL-i5K/NAL-genomics-workspace.svg?branch=master)](https://travis-ci.org/NAL-i5K/NAL-genomics-workspace/?branch=master)
[![](https://ci.appveyor.com/api/projects/status/4m6nngj0vrd21st6/branch/master?svg=true)](https://ci.appveyor.com/project/hsiaoyi0504/NAL-genomics-workspace/branch/master)
[![Coverage Status](https://coveralls.io/repos/github/NAL-i5K/NAL-genomics-workspace/badge.svg?branch=master)](https://coveralls.io/github/NAL-i5K/NAL-genomics-workspace?branch=master)
[![codecov](https://codecov.io/gh/NAL-i5K/NAL-genomics-workspace/branch/master/graph/badge.svg)](https://codecov.io/gh/NAL-i5K/NAL-genomics-workspace)
[![Documentation Status](http://readthedocs.org/projects/genomics-workspace/badge/?version=latest)](http://genomics-workspace.readthedocs.io/en/latest/)
Expand All @@ -17,16 +16,18 @@
## Backend

* Implemented in [Python](https://www.python.org/) with [Django](https://www.djangoproject.com/).
* Supports the latest [NCBI BLAST+ executables](http://blast.ncbi.nlm.nih.gov/Blast.cgi?PAGE_TYPE=BlastDocs&DOC_TYPE=Download).
* Supports searches for [blast](http://blast.ncbi.nlm.nih.gov/Blast.cgi?PAGE_TYPE=BlastDocs&DOC_TYPE=Download), [HMMER](http://hmmer.org/), and [Clustal](http://www.clustal.org/).
* Task queue with [RabbitMQ](http://www.rabbitmq.com/).
* Use [PostgreSQL](https://www.postgresql.org/) as databae backend.
* Generates all BLAST output formats for download: Text, CSV, TSV, XML, ASN.1.
* Converts BLAST output to GFF3 by grouping contiguous HSPs with identical query sequence, subject sequence, strand direction and an overlap length less than 6 between neighbouring HSPs under the same match.
* Retrieve previous results with a unique URL for every task.
* Supports both Linux and Windows.
* Supports only on Linux.

# Frontend - Results
## Frontend

The results page is an interactive data viewer, query and subject coverage graphs on the top are drawn dynamically on the HTML5 canvas for every high scoring pair (HSP), tabular output from BLAST+ is displayed in a sortable and searchable table on the bottom right, pairwise text output is displayed on the bottom left panel.

* Fullscreen design dynamically scales to any screen size
* Dynamically draws a unique query coverage graph and a subject coverage graph for every high scoring pair(HSP) on HTML5 canvas.
* Interactive graph updates the page as the user mouse over each aligned segment.
Expand All @@ -35,10 +36,12 @@ The results page is an interactive data viewer, query and subject coverage graph
* Mouse over each row.
* Changes the sorting column.
* Filters the table using the search box.
* Tested on the latest versions of Chrome, Firefox, IE.
* On Windows: Chrome (ver. 36.0), Firefox (ver. 31.0), IE (ver. 11)

# Screenshots
## Screenshots

BLAST Results
![BLAST Results](sphinx_doc/img/blast-results-dynamic.gif)

## Documentation

On [readthedocs.io](http://genomics-workspace.readthedocs.io/en/latest/).
2 changes: 0 additions & 2 deletions app/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,6 @@
from django.views.decorators.csrf import csrf_protect
from django.contrib.auth import login, authenticate, update_session_auth_hash, get_user_model
from django.contrib.auth.views import logout, password_reset_confirm
from django.contrib.contenttypes.models import ContentType
from django.apps import apps
from functools import wraps
from .forms import InfoChangeForm, SetInstitutionForm, RegistrationForm
from .models import Profile
Expand Down
2 changes: 1 addition & 1 deletion blast/templates/blast/results_not_existed.html
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

{% block content %}
{% if isNoHits %}
<h2>No Hits Found</h2>
<h2 id="no-hits">No Hits Found</h2>
<h3>No hits found on your query. <a href="../blast">Try another.</a></h3>
{% elif isExpired %}
<h2>Query Expired</h2>
Expand Down
Loading

0 comments on commit 80af60f

Please sign in to comment.