https://github.com/carnival-data/carnival-demo-biomedical
Demonstration Carnival Micronaut application.
Science Score: 13.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
-
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (11.9%) to scientific vocabulary
Keywords
Repository
Demonstration Carnival Micronaut application.
Basic Info
Statistics
- Stars: 2
- Watchers: 6
- Forks: 0
- Open Issues: 5
- Releases: 0
Topics
Metadata Files
README.md
Carnival-Micronaut
Carnival is a graph framework that allows for a large variety of ETL and analysis tasks related to relational data and property graphs. For this demonstration project, we will show how to use Carnival to harmonize relational data from various sources into a Carnival property graph, and present some of the ways the Carnival graph can be manipulated and analyzed. We use the the Carnival and Micronaut frameworks to create a JVM application that harmonizes relational clinical data from several sources into a Neo4J graph database, and presents a restful API to access and manipulate the data.
This demonstration been set up as a Docker multi-container project, with a container that holds the Carnival/Micronaut server applications and other containers that have databases with test data.
- Instructions on running the entire project are found below.
- A developer walkthrough of Carnival application can be found here: Developer Walkthrough
Running the Project
Quickstart
To just run the demo, do the following:
``` Install git Install Docker Desktop git clone https://github.com/carnival-data/carnival-demo-biomedical.git cd carnival-demo-biomedical docker compose build docker compose up
Open a browser to check API endpoints: http://localhost:5858 http://localhost:5858/casepatients http://localhost:5858/controlpatients
ctrl+c to stop ```
Detailed Setup
Prerequisites: Docker and git
On Windows and Mac, install Docker Desktop.
Note that as non-profit institutions, we can use the free "Personal" license.
Docker Licensing FAQ I am a researcher at a university (or another not-for-profit institution); do I or my research assistants need to purchase a Pro, Team, or Business subscription to use Docker Desktop?
No. You and your assistants may use Docker Desktop for free with a Docker Personal subscription.
1. Clone Carnival Micronaut
git clone https://github.com/carnival-data/carnival-demo-biomedical.git
cd carnival-demo-biomedical
2. Build and run the app
docker compose build
docker compose up
After a few minutes, there should be a server running at http://localhost:5858.
API endpoints will serve JSON responses containing the case and control cohorts (API Documentation):
http://localhost:5858/case_patients
http://localhost:5858/control_patients
Set up instructions for running the app with less Docker
Prerequisite: JDK 11, Docker, git
1. Clone Carnival Micronaut
git clone https://github.com/carnival-data/carnival-demo-biomedical.git
cd carnival-demo-biomedical
2. Start the database using Docker
``` docker compose build db docker compose up db
To run in the background as a daemon use:
docker compose up -d db
```
3. Build and run the app
./gradlew run
After a few minutes, there should be a server running at http://localhost:5858.
Testing with Docker
Run tests with the following:
docker compose -f docker-compose-test.yml up
This will run the unit tests. The test results will be printed in the docker log. An exit code of 0 will be returned if the tests pass, otherwise a non-zero code will be returned.
Viewing source data in Postgres
Once docker has been started using docker compose up, the database can be browsed using database GUI tool like DBeaver with the credentials:
* Host: localhost
* Port: 5433, or as specified in .env
* Database: EHR
* Username: postgres
* Password: postgres
Owner
- Name: Carnival
- Login: carnival-data
- Kind: organization
- Repositories: 2
- Profile: https://github.com/carnival-data
GitHub Events
Total
- Issues event: 1
- Push event: 1
Last Year
- Issues event: 1
- Push event: 1
Dependencies
- io.micronaut.groovy:micronaut-runtime-groovy * implementation
- io.micronaut:micronaut-http-client * implementation
- io.micronaut:micronaut-validation * implementation
- javax.annotation:javax.annotation-api * implementation
- ch.qos.logback:logback-classic * runtimeOnly
- adoptopenjdk/openjdk11-openj9 jdk-11.0.1.13-alpine-slim build
- base latest build
- gradle ${GRADLE_VERSION} build
- actions/checkout v3 composite