Skip to content

utpoln/bioquery-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BioQuery API

A production-grade Spring Boot REST API for querying protein-disease associations derived from biomedical databases (UniProt, DisGeNET, OMIM, MalaCards). Built as part of the VisFlow 2.0 biomedical workflow research infrastructure.

Tech Stack

  • Java 17 + Spring Boot 3.2
  • Spring Data JPA + PostgreSQL
  • OpenAPI 3 / Swagger UI
  • JUnit 5 + Mockito (unit + integration tests)
  • Docker + Docker Compose
  • GitHub Actions CI

Endpoints

Method Endpoint Description
GET /api/v1/proteins List all proteins (paginated)
GET /api/v1/proteins/{uniprotId} Get protein with disease associations
GET /api/v1/proteins/search?q= Search by gene name, protein name, UniProt ID
GET /api/v1/proteins/by-disease?disease= Find proteins by disease name
POST /api/v1/proteins Create protein record
PUT /api/v1/proteins/{uniprotId} Update protein
DELETE /api/v1/proteins/{uniprotId} Delete protein
POST /api/v1/proteins/{uniprotId}/diseases Add disease association
GET /api/v1/proteins/{uniprotId}/diseases Get disease associations (optional minScore filter)

Quick Start

# Start PostgreSQL + API
docker compose up

# API available at http://localhost:8080
# Swagger UI at http://localhost:8080/swagger-ui.html
# OpenAPI spec at http://localhost:8080/api-docs

Run Tests

mvn test

Local Development (without Docker)

# Start PostgreSQL locally, then:
export DB_URL=jdbc:postgresql://localhost:5432/bioquery
export DB_USER=bioquery
export DB_PASS=bioquery
mvn spring-boot:run

Project Structure

src/
├── main/java/com/kallol/bioquery/
│   ├── controller/     # REST endpoints
│   ├── service/        # Business logic
│   ├── repository/     # JPA repositories
│   ├── model/          # JPA entities
│   ├── dto/            # Request/Response DTOs
│   ├── exception/      # Custom exceptions + global handler
│   └── config/         # OpenAPI config
└── test/java/com/kallol/bioquery/
    ├── controller/     # MockMvc integration tests
    └── service/        # Mockito unit tests

Research Context

This API serves as the data access layer for the BioFlow Pipeline and supports the VisFlow 2.0 declarative workflow system (ACM SSDBM 2025).

About

Production Spring Boot 3 REST API for protein-disease association queries — JPA/PostgreSQL, OpenAPI, JUnit 5, Docker, GitHub Actions CI

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors