HuBMAP CCF ASCT+B Reporter
The CCF ASCT Reporter is a basic visualization tool for displaying the flattened ASCT tables built using Angular 10.
Overview
The CCF ASCT+B Reporter includes a partonomy tree that presents relationships between various anatomical structures and substructures, that is combined with their respective cell types and biomarkers via a bimodal network. The reporter also presents an indented list tree for a more traditional look. Along with visualizing, the reporter has a report generator that enlists various meta data for the visualized ASCT table, which is download-able. There is also an in-house debug logger that lists any issues related to the data provided in the table. The reporter is also accompanied by a backend server, ASCT+B API.
Links
- Production Site: https://hubmapconsortium.github.io/ccf-asct-reporter/ (staging)
- Documentation: https://hubmapconsortium.github.io/ccf-asct-reporter/docs (staging)
- ASCT+B API: https://mmpyikxkcp.us-east-2.awsapprunner.com (staging)
- Change Log: CHANGELOG.md
Installation
$ git clone https://github.com/hubmapconsortium/ccf-asct-reporter
$ cd ccf-asct-reporter
# Reporter
$ npm install
$ ng serve
# linting
$ ng lint
# API
$ cd asctb-api
$ npm install
$ npm start # default port is 5000
# linting
$ npm run lint
$ npm run lint-fix
Deployment
Deployment is accomplished via GitHub Actions based on the branch. The main
branch deploys to production (both the web application and ASCT+B API server) and develop
deploys to staging.
Details
Currently supported ASCT Tables
Below are a list of ASCT+B tables supported by the Reporter:
- Bone Marrow & Blood
- Brain
- Heart
- Intestine, Large
- Kidney
- Lung
- Lymph Nodes
- Skin
- Spleen
- Thymus
- Vasculature
Features
- Visualization
- Compare
- Playground
- Indented List
- Report Generator
- Indented List
- Search
- Export
- Visualization Functions
- Visualization Controls
Documentation
Click here to view the documentation.
ASCT+B API
The reporter is also accompanied by a backend server ASCT+B API. In the event of Google Sheets blocking requests by the Reporter or any error, the Reporter fetches the data from the ASCT+B API which runs a simple Node script to fetch the data from Google Sheets. By supplying the SheetId and GID to the ASCT+B API, the data from the flattened tables can be retrieved. If for some reason the ASCT+B API also fails to retrieve the data, the Reporter falls to its system cache, which contains a snapshot of the flattened tables.
The Miner can also be used as a stand-alone tool to retrieve the data from the flattened Google sheets. Below is the API that you'll have to use,
https://asctb-api.herokuapp.com/v2/<sheetID>/<gid>
This will either return the data, or will return a 500
HTTP code.
Deploying
Since the ASCT+B API is a dynamic script, Heroku has been used to deploy the server. Heroky is free to use for this usage. Deployment is accomplished via GitHub Actions based on the branch. The main
branch deploys to production and develop
deploys to staging.
Screenshots of the ASCT+B Reporter
Visualization
Hovering over a node
Clicking on a node
Report
Indented List
Info Sheet
Debug Log
Contributing
If you'd like to contribute, follow the steps below,
$ git clone https://github.com/hubmapconsortium/ccf-asct-reporter
$ cd ccf-asct-reporter
$ git checkout -b <new_branch_name>
Commit the changes to the new feature branch and make a pull request!