Bioinformaticians and data scientists, rely on computational frameworks (e.g. snakemake, nextflow, CWL, WDL) to process, analyze and integrate data of various types. Such frameworks allow scientists to combine software and custom tools of different origin in a unified way, which lets them reproduce the results of others, or reuse the same pipeline on different datasets. One of the fundamental issues is that the majority of the users execute multiple pipelines at the same time, or execute a multistep pipeline for a big number of datasets, or both, making it hard to track the execution of the individual steps or monitor which of the processed datasets are complete. panoptes is a tool that monitors the execution of such workflows.
panoptes is a service that can be used by:
Data scientists, bioinformaticians, etc. that want to have a general overview of the progress of their pipelines and the status of their jobs
Administrations that want to monitor their servers
Web developers that want to integrate the service in bigger web applications
Note: panoptes is in early development stage and the first proof of concept server will support only workflows written in snakemake.
Note: In this case the database is stored within the docker image, so every time you restart the server the database will be empty. You would need to mount the volumes to make the database persistent.
In order to run an example workflow please follow the instructions here
panoptes in action
panoptes API
Panoptes provides the following API endpoints:
Endpoint
Method
Description
/api/service-info
GET
Server status
/api/workflows
GET
Get all workflows
/api/workflow/<workflow-id>
GET
Get workflow status
/api/workflow/<workflow-id>/jobs
GET
Get all jobs of a workflow
/api/workflow/<workflow-id>/job/<job-id>
GET
Get job status
/api/workflow/<workflow-id>
PUT
Rename a workflow Expects a dictionary with new name (e.g. {'name': 'my new workflow name'})
/api/workflow/<workflow-id>
DELETE
Delete a workflow
/api/workflows/all
DELETE
Clean up database
To communicate with panoptes the following endpoints are used by snakemake:
Endpoint
Method
Description
/api/service-info
GET
Server status (same as above)
/create_workflow
GET
Get a unique id/name str(uuid.uuid4()) for each workflow
/update_workflow_status
POST
Panoptes receives a dictionary from snakemake that contains: - A log message dictionary - The current timestamp - The unique id/name of the workflow. (e.g. {'msg': repr(msg), 'timestamp': time.asctime(), 'id': id})
Bioinformaticians and data scientists, rely on computational frameworks (e.g. snakemake, nextflow, CWL, WDL) to process, analyze and integrate data of various types. Such frameworks allow scientists to combine software and custom tools of different origin in a unified way, which lets them reproduce the results of others, or reuse the same pipeline on different datasets. One of the fundamental issues is that the majority of the users execute multiple pipelines at the same time, or execute a multistep pipeline for a big number of datasets, or both, making it hard to track the execution of the individual steps or monitor which of the processed datasets are complete. panoptes is a tool that monitors the execution of such workflows.
panoptes is a service that can be used by:
Note: panoptes is in early development stage and the first proof of concept server will support only workflows written in snakemake.
Installation
Requirements:
Local
pypi
Create virtual environment
Activate virtual environment
Install via pypi
conda
Create conda environment
Activate conda environment
Source code
Clone repo
Enter repo
Create virtual environment
Activate virtual environment
Install all requirements
Run the server
By default, server should run on
127.0.0.1:5000, and generate the sqlite database.panoptes.db.Using the development server
Using a WSGI server
Install all necessary packages (see above), plus a WSGI server (e.g. gunicorn or waitress), and run the server:
Containers
Docker
Requirements:
Pull image that is automatically built from bioconda. You can find the latest tag in the following url: https://quay.io/repository/biocontainers/panoptes-ui?tab=tags. For example:
Then run the container with:
Docker compose
Requirements:
Build
Run
Server should run on: http://127.0.0.1:8000
Stop
Singularity
You can also deploy the server with singularity. To do so pull the image with singularity. For example:
And then we can start the server by running:
Run an example workflow
In order to run an example workflow please follow the instructions here
panoptes in action
panoptes API
Panoptes provides the following API endpoints:
/api/service-infoGET/api/workflowsGET/api/workflow/<workflow-id>GET/api/workflow/<workflow-id>/jobsGET/api/workflow/<workflow-id>/job/<job-id>GET/api/workflow/<workflow-id>PUTExpects a dictionary with new name
(e.g.
{'name': 'my new workflow name'})/api/workflow/<workflow-id>DELETE/api/workflows/allDELETETo communicate with panoptes the following endpoints are used by snakemake:
/api/service-infoGET/create_workflowGET/update_workflow_statusPOST- A log message dictionary
- The current timestamp
- The unique id/name of the workflow.
(e.g.
{'msg': repr(msg), 'timestamp': time.asctime(), 'id': id})Contribute
Please see the Contributing instructions.
CI server
Changes in develop or master trigger a GitHub Actions build (and runs tests)
Contact
In case the issues section is not enough for you, you can also contact us via discord