Skip to content

hubmapconsortium/ccf-asct-reporter

Repository files navigation

HuBMAP CCF ASCT+B Reporter

The CCF ASCT Reporter is a basic visualization tool for displaying the flattened ASCT tables built using Angular 10.

Build Status license

HuBMAP CCF Reporter

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

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:

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

Partonomy Tree

Hovering over a node

Node Hover

Clicking on a node

Node Click

Report

Report

Indented List

Indented List

Info Sheet

Info Bottom Sheet

Debug Log

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!

License

MIT