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.
-
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
-
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}
- Install dependencies:
npm i
- To run both client and server (concurrently):
npm run dev
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
To run unit tests:
npm test