Important
- This experiment was developed on the instruction of HDRUK's Disease Atlas team, a project being built alongside the BHF Data Science Centre and NHS Digital
This repository implements a WebGl2-based FDG graph to enable users to navigate each of the diseases/medications defined within the Atlas of Human Disease; both drawing and graph layout is handled on the GPU.
-
Data ingress
- Discuss with web team as to which method of data fetching they would prefer, e.g. iterative API queries supported by some endpoint to retrieve node/edge/disease/medication data, or would we prefer to serialise & compress data before streaming to client via IPC?
- Fetching methods & processing will need to be updated once a decision is realised
-
Finalise implementation
- Review current functionality, iterate on design & interactivity guided by feedback from HDRUK et al
- Complete gpu implementation required for production, e.g. state management & caching shaders
- Merge Python data processor with this monorepo
-
Finalise package
- Inquire about bundler & test framework preference of downstream consumers:
- Add bundler, set up publication GH action
- Consider adding e2e testing and unit tests,
- Cleanup project incl. finalising documentation
- Add CI/CD, storybook +/- docusaurus/TSdoc etc
- Inquire about bundler & test framework preference of downstream consumers:
The project structure is composed as a monorepo, or turborepo, such that:
graph TD
A["@atlas-explorer"] --> B[apps]
B --> C[docs]
B --> D[web]
A --> E[packages]
E --> F["@atlas-explorer/graphs"]
E --> G["@atlas-explorer/force-graph"]
The project is broadly divided into the following directories:
-
apps- example integration(s) and/or a generated documentation app -
packages- component packages
This application was developed with:
| Type | Details |
|---|---|
| Stack | NextJS & React |
| Languages | TypeScript & GLSL |
| Tooling | Turbo, ESLint & Prettier |
Caution
Please note that you will need the Atlas dataset to use this app:
- This app requires the pre-processed
state.explorer.jsonfile to display datapoints (or 3x input data files when simulating) - For BHF/HDRUK users, please find a pre-prepared example in the assoc. files accessible via the Citrix VM
-
Install git
- Instructions on installing
gitfor different platforms can be found here
- Instructions on installing
-
Download the Javascript runtime
-
Open a terminal and navigate to a directory in which you'd like to install the app, e.g.
cd /some/path/to/folder -
Enter the following into your terminal to clone the repository:
$ git clone https://github.com/JackScanlon/atlas-explorer.gitCaution
- Production build instructions TBC, need to determine which build & bundlers tools are most familiar to the downstream consumers
-
Open a terminal and navigate to the project directory, e.g.
cd /path/to/atlas-explorer -
Install the application dependencies first by running the following:
$ npm install- To host the app locally enter the following:
$ npm run dev- The application will now be accessible at http://localhost:3000