Sanger sequencing analysis web app. View the publication or try the app online.
The TraceTrack application serves for automatic batch analysis of Sanger sequencing trace files. It accepts a set of trace files and a reference file, performs alignments of trace sequences to corresponding reference sequences and displays an overview of resulting alignments.
For more information on how to use the app, see the "Help" page in the application itself.
See https://docs.docker.com/docker-for-mac/install/
make docker-build
make docker-run
To build and run, you can use:
make docker-build docker-run
After your code is updated, you will need to stop the services, run build and start again. See the next section for info on running locally with flask auto-reload.
Frontend is available through your browser at http://localhost:5001/
See https://docs.conda.io/en/latest/miniconda.html
You can install Redis using Brew.
# Install dependencies using environment.yml
make install
# Update environment with:
make update-env
You will have to run each service in a separate terminal (Use Cmd+T to open a new tab):
# Run Redis server
make redis
# In a separate terminal, run celery worker queue
make celery
# In a separate terminal, run flask web server
make web
After your code is updated, the flask web service should refresh automatically. However, the celery service needs to be stopped and started manually, so you will need to do that if you update code that is executed from the workers.
Frontend is available through your browser at http://localhost:5001/
- Dockerfile
- Makefile
- README.md
- CHANGELOG.md Descriptions of release versions
- tracetrack
- flask_server.py Basic app functionality, processing uploaded files
- server_utils.py Functionality for displaying, downloading and exporting data
- alignment_utils.py Contains functions for sequence processing and alignment using Clustal Omega
- tasks.py Task for task queue
- celeryconfig.py Configuration of task queue
- loading_data.py Loading and processing input files functionality
- web.py CLI for running with no task queue
- entities
- alignment.py Contains Alignment class
- aligned.py Contains AlignedTrace and AlignedReference classes
- errors.py Contains exception classes
- record.py Contains classes Feature, Record, TraceSeqRecord and find_quality_ends function
- reference_db.py Contains ReferenceDb class and methods from reading reference sequences from files
- sequence_position.py Contains SequencePosition class
- templates
- index.html Source for main page of application, contains functionality for uploading files
- layout.html General layout of page
- help.html Help page
- loading.html Page displayed while loading results
- results.html Source for page for displaying results table with alignments
- settings.html Source of page for choosing alignment settings, such as quality trimming
- welcome.htlm Source for welcome page
- static
- stylesheet.css Defines style classes for use in the templates
- trace_viewer.js Script for showing trace file chromatograms
- table_display.js Javascript functions for setting up results table
- data
- example1 Contains example trace files and reference sequence tables
- tests
- test_alignment.py Tests for alignment module
- test_loading_data.py Tests for loading_data module
- resources Data for tests
- environment.yml
- docker-compose.yml Configuration of task queue container
- setup.py Script for tracetrack package installation
- jenkins