π Live Demo: This application is publicly available at https://enzengdb.org/
π Documentation: Documentation is available at https://ssec-jhu.github.io/levseq-dash/
Levseq dash is a user-friendly web application that provides a rich and interactive visualization dashboard to a comprehensive sequence-function database tailored to directed evolution experiments designed for individual labs at this phase. The app allows users to explore parent protein structures in 3D, view ligand docking interactions, and analyze variants to determine which mutations lead to enhanced activity. These features streamline the decision-making process, offering a significant improvement over traditional spreadsheet-based approaches. Check it out live at https://enzengdb.org/
- Download & install Docker - see Docker install docs.
- Get the code:
git clone https://github.com/ssec-jhu/levseq-dash.git - cd into repo directory:
cd levseq-dash
This application supports two deployment modes:
- Public-Playground mode
- Local-Instance mode
This mode is the fastest way to run the app and is ideal for demos, testing, and exploration of the curated sample dataset publicly available online at https://enzengdb.org/
Usage:
# Build the docker image
docker build . -t levseq-dash:playground --no-cache
# Run the image
docker run -p 8050:8050 levseq-dash:playground
# App will be running at: http://0.0.0.0:8050Use this mode for setting up an instance in your lab with with persistent, user-controlled data storage.
- First you'll need to open
levseq_dash/app/config/config.yamland configure it for local instance mode. - π‘ Hint: you can just copy/paste the below into
config.yamland modify the values as described in the next steps. - Configure
five-letter-id-prefix.- This should be a unique identifier for your lab or project (e.g. "MYLAB").
- It must be exactly 5 letters long and can only contain alphabetic characters (A-Z, a-z).
- This will be prefixed to all your experiment IDs.
- Configure a
local-data-path:- This is where your experiment data will be stored on your local machine.
- Make sure the directory exists and that you have write permissions to it.
# Set deployment mode to local-instance
deployment-mode: "local-instance"
disk:
# Enable data modification to allow adding/deleting data
enable-data-modification: true
# Set a unique 5-letter prefix for your lab or project
# OR set using environment variable
five-letter-id-prefix: "MYLAB"
# Example: absolute of data on your desktop
local-data-path: "/Users/<username>/Desktop/MyLabData"- Using Docker? You can override these settings at runtime using environment variables as well to setup multiple instances:
- Configure
five-letter-id-prefixusingFIVE_LETTER_ID_PREFIXenvironment variable - Configure
local-data-pathusingDATA_PATHenvironment variable
- Configure
- π‘ Hint: Above environment variables will override values in config.yaml at runtime.
# Build the docker image
docker build . -t levseq-dash:local --no-cache
# Run in local instance mode using settings in config.yaml
docker run -p 8050:8050 levseq-dash:local
OR
# Run in local instance mode with environment variables to override config.yaml settings
docker run -p 8050:8050 \
-v /your/host/data/path:/data \
-e DATA_PATH=/data \
-e FIVE_LETTER_ID_PREFIX=MYLAB \
levseq-dash:local
# App will be running at: http://0.0.0.0:8050-v /your/host/data/path:/data: Mounts a directory from your host machine to the/datadirectory inside the container.-e DATA_PATH=/data: Tells the application to use the/datadirectory for storage.-e FIVE_LETTER_ID_PREFIX=MYLAB: Sets your unique 5-letter lab/project identifier (must be exactly 5 letters, only alphabetic characters).
You can run the app for development, testing, and debugging without docker as well. Set up the config.yaml file setup for local instance mode as shown above. Feel free to enable additional logging and profiling options for debugging and performance testing as needed. This example has all logging options enabled.
deployment-mode: "local-instance"
disk:
# Enable data modification to allow uploads
enable-data-modification: true
# Path for local development (relative to app directory or absolute path)
local-data-path: "data" # or "/absolute/path/to/data"
# 5-letter prefix of your choosing for clear distinction of experiment IDs
five-letter-id-prefix: "DEBUG"
# Logging and profiling settings for development and debugging
logging:
# Enable profiling for sequence alignment performance testing
# Logs timing information for alignment operations (default: false)
sequence-alignment-profiling: true
# Enable detailed logging for data manager operations
# Logs data loading, experiment management operations (default: false)
data-manager: true
# Enable logging for pairwise aligner detailed operations
# Logs alignment algorithm details and performance (default: false)
pairwise-aligner: trueLogging Parameters Explained:
sequence-alignment-profiling: Enables timing logs for sequence alignment operations, useful for performance optimizationdata-manager: Enables detailed logging of data loading, experiment metadata operations, and file I/Opairwise-aligner: Enables verbose logging of the BioPython pairwise alignment algorithm details
Note: These logging settings are primarily for development and debugging. Set all to false in production deployments to reduce log verbosity.
Run the app: With the configuration set, you can run the app directly.
python -m levseq_dash.app.main_app# Install tox if you don't have it already (requires Python)
pip install tox
# Make sure you are in the repo directory
cd levseq-dash
# Install dependencies, run tests, and then run the app
tox -e test exec -- python -m levseq_dash.app.main_dash_app
# This will have Dash running locally on http://127.0.0.1:8050/
# Press Ctrl+c to quitFor additional cmds see the Conda cheat-sheet.
# Download and install either miniconda or anaconda first
# See: https://docs.conda.io/en/latest/miniconda.html#installing
# Or: https://docs.anaconda.com/free/anaconda/install/index.html
# Create new environment
conda create -n <environment_name>
# Activate/switch to new environment
conda activate <environment_name>
# Make sure you are in the repo directory
cd levseq-dash
# Install all required dependencies
pip install -r requirements/all.txt
# Run the app
python -m levseq_dash.app.main_app.py
# App will be running at: http://127.0.0.1:8050/
# Press Ctrl+c to quit
# Deactivate conda when done
conda deactivateTypically, the CI tests run in github actions will use tox to run below. No need to manually run these.
cd levseq-dash- Run tox
tox. This will run all of linting, security, test, docs and package building within tox virtual environments. - To run an individual step, use
tox -e {step}for example:tox -e testtox -e formattox -e py311
We welcome contributions! Please see our Contributing Guide for:
- User Documentation: See docs/source/usage.rst for detailed usage instructions
- Developer Documentation: See docs/source/developer.rst for architecture and development guide
- API Documentation: Auto-generated from code docstrings - build with
tox -e build-docs
To build documentation locally:
tox -e build-docs
open docs/_build/html/index.htmlNote: Documentation is automatically built when you run tox (without arguments).
See LICENSE file for details.


