Coral is a web-based visual analysis tool for creating and characterizing cohorts.
This repository described how to setup a Coral instance. Please have a look into the Coral repository for more information on Coral.
Coral is based on the Target Discovery Platform and Phovea framework, runs the backend with Phovea Server, and uses multiple other plugins. To ease the set up process, this repository describes all required components for the front and back end of Coral, as used by the public Coral instances:
Coral Branch | app | status |
---|---|---|
main | https://coral.caleydoapp.org | |
develop | https://coral-daily.caleydoapp.org |
A running Coral instance consists of:
-
Frontend = Coral web app, using:
- tdp_core, as framework with session management, data connectors, and more; see TDP Documentation
- phovea_clue, to track interaction provenance; see doi:10.1111/cgf.12925
- phovea_ui, for basic UI components
- phovea_security_flask, for security and user handling
- phovea_security_store_generated, to automatically create dummy users
-
Backend = Phovea Server, a python server using these plugins:
- coral, server side plugin to create cohorts in the database and read their data
- tdp_core, as framework for db communication
- tdp_publicdb, connector to access the data used in the public Coral instance.
- phovea_security_flask and phovea_security_store_generated, again for user handling
- phovea_clue, server side part for provenance tracking
- phovea_data_redis and phovea_data_mongo, as connectors to respective db types
- A redis databse is used for ID mapping
- A mongo database is used to store the provenance and session data
-
Database = A Postgres database with the data to analyse and where the created cohorts get stored.
Follow the steps below the set up a workspace with the above components.
- Make sure that you meet all the prerequisites described in the Wiki
- The phovea generator will check out repositories and setup a workspace for you. Check the package.json for the generator version compatible with this build.
- To prepare the workpace, run:
yo phovea:setup-workspace coral_product -b main
- Follow the instructions of the generator and Coral will be ready to use.
- The database credentials and location are not included in the repositories. Provde them via the
config.jon
file at the root of the workspace:
{
"tdp_publicdb" : {
"dburl": "postgresql://read_user:password@postgres.db.url/database_name"
},
"coral": {
"dburl": "postgresql://read_write_user:password@postgres.db.url/database_name"
}
}
That's it! 🎉
For any questions or problems, wirte us an email to coral@caleydo.org or create an issue on GitHub.
Updating an exisiting workspace is a straight forward process:
- Fetch the latest commits from the repositories in your workspace. There is a
forEach
script to ease the process. Run:./forEach git pull
- Incorporate possible changes into the workspace:
yo phovea:update
- If necessary, update npm dependencies :
npm install
- Restart Docker and webpack builds.
This repository is part of Phovea, a platform for developing web-based visualization applications.
For tutorials, API docs, and more information about the build and deployment process, see the documentation page.