flowviz
v1.0.5
Published
A framework which provides seamless integration with other phylogenetic tools and frameworks, while allowing workflow scheduling and execution, through the Apache Airflow workflow system.
Downloads
11
Maintainers
Readme
FLOWViZ
FLOWViZ is an integration framework that allows you to seamlessly integrate other phylogenetic tools and frameworks, while providing workflow scheduling and execution, through the Apache Airflow workflow system.
It is composed by two components: an HTTP Express server and a React client, both written in JavaScript.
It is still a work under development! If you find a bug, please report here
With this framework, you can integrate your own phylogenetic tools, by filling a contract where you specify the tool's access, rules and guidelines.
The integrated tools can then be used to build your own customized workflows.
You can also customize each task inside the workflow.
The system architecture was also detailed into an article (page 206), which was submitted and accepted for presentation at the Inforum 2022's conference.
Setup
Configuring database
Install Docker
Download mongo image
docker pull mongo
- Run and create mongo container, exposing port 27017
docker run --name mongodb -d -p 27017:27017 mongo
Add server's dot-env environment variables
Create a file called
.env
inserver/
folder.Fill it with the variables below (remove the curly brackets and change what is in between them):
PRODUCTION={true|false}
SERVER_NAME={server_name}
SERVER_PORT={server_port_number}
DATABASE_ADDRESS={database_address}
DATABASE_PORT={database_port}
AIRFLOW_ADDRESS={airflow_address}
AIRFLOW_PORT={airflow_port}
AIRFLOW_DAG_GENERATOR={airflow_dag_generator_name}
JWT_SECRET={jwt_secret}
AIRFLOW_USERNAME={airflow_username}
AIRFLOW_PASSWORD={airflow_password}
Running on localhost
- Install dependencies:
npm i
- To run both client and server (concurrently):
npm run dev
Running on localhost with tmux
Allows you to isolate each log in a terminal individual session, providing better log visibility than the concurrently way.
- Install tmux
Arch distros:
sudo pacman -Sy tmux
Debian distros:
sudo apt-get update && sudo apt-get install tmux
macOS:
brew install tmux
- Enable tmux mouse scroll (optional)
echo "set -g mouse on" >> ~/.tmux.conf && tmux source-file ~/.tmux.conf
- Execute the start.sh script
Note: if there are no execution permissions, execute:
chmod +x start.sh
Build and start:
./start.sh
Testing
To run unit tests:
npm test