Eaglescope

Eaglescope: an interactive visualization and cohort selection tool for biomedical data exploration. - Published in JOSS (2024)

https://github.com/sharmalab/eaglescope

Science Score: 95.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 1 DOI reference(s) in JOSS metadata
  • Academic publication links
  • Committers with academic emails
    1 of 8 committers (12.5%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
    Published in Journal of Open Source Software

Keywords from Contributors

mesh

Scientific Fields

Engineering Computer Science - 60% confidence
Artificial Intelligence and Machine Learning Computer Science - 40% confidence
Last synced: 4 months ago · JSON representation

Repository

Hierarchical and Cohort Visualization

Basic Info
  • Host: GitHub
  • Owner: sharmalab
  • License: bsd-3-clause
  • Language: JavaScript
  • Default Branch: main
  • Homepage:
  • Size: 141 MB
Statistics
  • Stars: 10
  • Watchers: 4
  • Forks: 18
  • Open Issues: 16
  • Releases: 5
Created over 6 years ago · Last pushed 4 months ago
Metadata Files
Readme License Code of conduct

README.md

Eaglescope

Eaglescope is a configurable code-free interactive visualization and cohort definition and analysis tool designed for biomedical data exploration. It is designed to be hosted flexibly without the need for a dedicated server, and creates an interactive dashboard based upon a configuration file and either an API or data file. It uses visualizations of sets of features to describe and enable contextual filtering of the data. This allows for users to understand deeper patterns or anomalies within the data, and to create datasets specifically tuned to their requirements effortlessly. Eaglescope is typically utilized either as a tool to create refined datasets tailored for training and validating machine learning AI models, or as a central hub for further exploration, allowing users to seamlessly navigate to biomedical viewers such as DICOM or whole slide imaging (WSI) platforms.

Interactive Contextual Visualizations

Development

Reporting Issues: If you find a bug or have a feature request, please open an issue on Eaglescope's GitHub Issues page. Be sure to provide a clear description of the problem, steps to reproduce, and any relevant screenshots.

Pull Requests: If you’d like to propose additions, changes, or improvements, please submit a pull request against the main branch. Make sure to provide a clear description of your changes and any relevant context. Screenshots for visual changes are appreicated (before and after), as well as any tests performed.

Please see our code of conduct for the expectations for all open source community members.

Install dependencies by running npm install

Use develop mode by running npm run dev

Build ./dist for use with a static web server by running npm run build

To run code style checks, run npm run lint or to also try to automatically fix some issues, run npm run lint:fix.

To run unit and functional tests, which are also run automatically using github actions, run npm run test which runs the tests in this folder.

Setup and Configuration

The simplest way to set up eaglescope is to build (npm run build) then host the contents of ./dist/ using a static web server such as rapache or python -m http.server. Additionally, configuration and data resources are already on the web with appropriate cross origin headers, you can simply navigate to https://sharmalab.github.io/eaglescope/?configurl=(configuration json file).

Each Eaglescope dashboard needs a configuration url which contains global information for the dashboard, information about the data resource and how to read it, and configuration for each visualization.

CONFIGURATION FIELD DESCRIPTION EXAMPLE VALUE
HOME_URL What url the “home” button directs to. "https://github.com/sharmalab/eaglescope/"
TITLE The title in the header and browser tab for this dashboard. "Eaglescope Demo | Wines"
UNIT_OF_GRID_VIEW The unit size in pixels for the x and y values for visualization size. [200,200]
MARGIN_OF_GRID_VIEW The unit size in pixels for margins around visualizations. [10,10]
HAS_SETTINGS Whether to render the settings button to modify the dashboard temporarily. Any “truthy” value is true, otherwise do not include this field.
RESIZABLE Whether to allow users to resize visualizations. Any “truthy” value is true, otherwise do not include this field.
DRAGGABLE Whether to allow users to reorder and reposition visualizations. Any “truthy” value is true, otherwise do not include this field.
DATA_RESOURCE_URL The url or path for the API or file for this dashboard’s data. “http://localhost:1234/config/wines.csv”
DATA_FORMAT Which parsing method to use; can be ‘json’ or ‘csv’. “csv” or “json”
LAYOUT If set, split visualizations with a matching "designation" will be put in a special row/column on top/left. "left", or "top": default behavior is no split.
LAYOUT_SIZE When LAYOUT is set, the size of the top/left section across that dimension. css-like string; default is "300px"

Additionally, the field “VISUALIZATIONVIEWCONFIGURATION” contains a list of visualization config, where each element in the list represents one visualization. Most visualizations support the following fields:

CONFIGURATION FIELD DESCRIPTION EXAMPLE VALUE
id Unique reference to each visualization “chart_4”
title Rendered title "Volatile and Citric Acidity"
description Comments for the chart “Compare these fields”
chartType Which visualization to render. Must be an implemented chart type. See this link (https://github.com/sharmalab/eaglescope/blob/90d6dd1f6c9d0af3d27d740c1eb9e5011608ac1d/source/components/VisualTools/VisTypeComponents.js#L10) for a list of chart types.
fields Maps fields from their name in the data resource to the fields the chart uses, usually \ “x”, “y” { "x": "volatile acidity", "y": "citric acid" }
size The size of the visualization in units of UNIT_OF_GRID_VIEW from the dashboard configuration. [2, 1]
expandWidth If truthy, override width of chart to num cols in the layout. 42
priority When rendering, how to order. Higher priority floats up. 42
designation When LAYOUT is set to split, set to "left" or "top" to put in the non-default area; don't set to leave in the main area. Do not mismatch left and top across LAYOUT and designation, or affected charts not render at all. left

Visualization Types

Chart Type Use for Photo Fields
PIE_CHART Proportions for distinct values of x. Pie Chart x
BAR_CHART Total count of distinct values of x. Bar Chart x
HISTOGRAM Binned continuous values of x, with binsCount bins. Histogram x
SCATTER_CHART The relationship between two generally continuous variables. Scatter Chart x and y for the spatial axes values
PARALLEL_COORDINATES Data points as lines going through a set of variables. Parallel Coordinates y: an array of each field to render in order.
KM_CURVE Shows heatmap-like density in a 2D space of x, y. Event, time, and group as objects including field and title. Also, eventValue, and censoredValue.
DENSITY_2D Shows observation density in a 2D space of x, y. Density 2D x and y for the spatial axes values
HEATMAP Uses color to show mean value of z for discrete-grouped observations by x and y. Heatmap x and y for spatial arrangement of values, z for colors
HORIZONTAL_BAR_CHART A horizontal bar chart. x and y for the spatial axes values
VIS_DATA_TABLE A tabular representation of data for columns supplied. Data Table (list of objects representing fields to show in table)

Interactive Demo Site

Eaglescope Demo

Owner

  • Name: sharmalab
  • Login: sharmalab
  • Kind: organization

JOSS Publication

Eaglescope: an interactive visualization and cohort selection tool for biomedical data exploration.
Published
November 15, 2024
Volume 9, Issue 103, Page 6837
Authors
Ryan Birmingham ORCID
Emory University, United States of America
Nan Li ORCID
Emory University, United States of America
Tony Pan ORCID
Emory University, United States of America
Yahia Zakaria ORCID
Independent Researcher, Egypt
Editor
Charlotte Soneson ORCID
Tags
javascript interactive visualization data exploration biomedical research data analysis

GitHub Events

Total
  • Create event: 13
  • Issues event: 2
  • Release event: 2
  • Watch event: 1
  • Delete event: 19
  • Issue comment event: 11
  • Push event: 73
  • Pull request event: 13
Last Year
  • Create event: 13
  • Issues event: 2
  • Release event: 2
  • Watch event: 1
  • Delete event: 19
  • Issue comment event: 11
  • Push event: 73
  • Pull request event: 13

Committers

Last synced: 5 months ago

All Time
  • Total Commits: 295
  • Total Committers: 8
  • Avg Commits per committer: 36.875
  • Development Distribution Score (DDS): 0.203
Past Year
  • Commits: 36
  • Committers: 2
  • Avg Commits per committer: 18.0
  • Development Distribution Score (DDS): 0.028
Top Committers
Name Email Commits
Ryan Birmingham b****m@r****s 235
Nan Li n****i@e****u 22
Yahia Zakaria y****0@g****m 19
Jasox NaN l****j@g****m 9
Mohamed Nasser n****2@g****m 7
dependabot[bot] 4****] 1
Pranav p****6@g****m 1
ArthurMor4is a****s@g****m 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 4 months ago

All Time
  • Total issues: 22
  • Total pull requests: 78
  • Average time to close issues: 4 months
  • Average time to close pull requests: about 2 months
  • Total issue authors: 5
  • Total pull request authors: 8
  • Average comments per issue: 0.86
  • Average comments per pull request: 0.51
  • Merged pull requests: 52
  • Bot issues: 0
  • Bot pull requests: 18
Past Year
  • Issues: 3
  • Pull requests: 18
  • Average time to close issues: 1 day
  • Average time to close pull requests: 9 days
  • Issue authors: 1
  • Pull request authors: 3
  • Average comments per issue: 0.33
  • Average comments per pull request: 0.5
  • Merged pull requests: 10
  • Bot issues: 0
  • Bot pull requests: 7
Top Authors
Issue Authors
  • birm (24)
  • sebastian-raubach (3)
  • marshadkhn (1)
  • malikrafsan (1)
  • Omlahid (1)
Pull Request Authors
  • birm (54)
  • dependabot[bot] (24)
  • yahia3200 (12)
  • MohamedNasser8 (4)
  • nanli-emory (3)
  • ArthurMor4is (2)
  • bemijonathan (2)
  • pranavvp16 (1)
Top Labels
Issue Labels
bug (3) enhancement (2)
Pull Request Labels
dependencies (24)

Dependencies

Dockerfile docker
  • node 8-alpine build
package-lock.json npm
  • 1147 dependencies
package.json npm
  • eslint ^8.18.0 development
  • eslint-config-airbnb ^19.0.4 development
  • eslint-config-prettier ^8.5.0 development
  • eslint-plugin-import ^2.26.0 development
  • eslint-plugin-jsx-a11y ^6.5.1 development
  • eslint-plugin-prettier ^4.0.0 development
  • eslint-plugin-react ^7.30.1 development
  • eslint-plugin-react-hooks ^4.6.0 development
  • parcel-plugin-static-files-copy ^2.5.1 development
  • prettier ^2.7.1 development
  • sass ^1.32.6 development
  • @fortawesome/fontawesome ^1.1.8
  • @fortawesome/fontawesome-free-solid ^5.0.13
  • @fortawesome/fontawesome-svg-core ^6.1.2
  • @fortawesome/free-regular-svg-icons ^6.1.2
  • @fortawesome/free-solid-svg-icons ^6.1.2
  • @fortawesome/react-fontawesome ^0.2.0
  • @types/sortablejs ^1.10.6
  • array-move ^3.0.1
  • bootstrap ^5.2.0
  • crossfilter2 ^1.5.4
  • d3 ^5.16.0
  • jquery ^3.5.1
  • lodash ^4.17.21
  • mdbreact ^5.2.0
  • parcel-bundler ^1.12.4
  • popper.js ^1.16.1
  • prop-types ^15.8.1
  • react ^18.2.0
  • react-bootstrap ^2.4.0
  • react-dom ^18.2.0
  • react-draggable ^4.4.5
  • react-grid-layout ^1.3.4
  • react-resizable ^3.0.4
  • react-router-dom ^5.2.0
  • react-sortable-hoc ^1.11.0
  • react-sortablejs ^6.0.0
  • react-virtualized ^9.22.3
  • react-virtualized-image-measurer ^0.4.0
  • sortablejs ^1.13.0
  • style 0.0.3
  • vega ^5.19.1
  • vega-embed ^6.15.0
  • vega-lite ^4.17.0
.github/workflows/build_dist.yml actions
  • JamesIves/github-pages-deploy-action v4 composite
  • actions/checkout v3 composite
.github/workflows/draft-paper.yml actions
  • actions/checkout v4 composite
  • actions/upload-artifact v1 composite
  • openjournals/openjournals-draft-action master composite
.github/workflows/lint_test.yml actions
  • actions/checkout v2 composite
  • actions/setup-node v2 composite
.github/workflows/smoke_test.yml actions
  • actions/checkout v2 composite
  • actions/setup-node v2 composite