Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

aging-slayers/hackathon

Open more actions menu

Repository files navigation

Longevity hackathon

This is a project to showcase results obtained for the Longevity hackathon

Drug Research Platform

A Streamlit-based web application for biomedical drug research and discovery, integrating multiple pharmaceutical and biomedical databases for comprehensive drug analysis and exploration.

🚀 Features

  • Multi-Database Integration: Combines data from DrKG, DrugBank, MeSH, SIDER, DOID, and HGNC
  • Interactive Web Interface: Built with Streamlit for intuitive data exploration
  • Containerized Deployment: Docker-based setup for consistent environments
  • Knowledge Graph Analysis: Leverages drug repurposing knowledge graphs
  • Disease Ontology Integration: Incorporates structured disease classifications

📋 Prerequisites

  • Docker and Docker Compose
  • Make (optional, for convenience commands)
  • Minimum 4GB RAM recommended
  • At least 2GB free disk space for data and containers

🗂️ Data Structure

The application integrates the following biomedical databases:

data/
├── doid/                    # Disease Ontology
│   └── doid.obo            # Disease classifications and relationships
├── drkg/                    # Drug Repurposing Knowledge Graph
│   ├── drkg.tsv            # Main knowledge graph data
│   ├── graph.gml           # Graph structure file
│   ├── relation_glossary.tsv # Relationship definitions
│   └── relation_glossary.xlsx
├── drugbank/                # DrugBank Database
│   └── drugbank_vocabulary.csv # Drug nomenclature and metadata
├── hgnc/                    # Human Gene Nomenclature Committee
│   └── HGNC_complete_set.tsv # Official gene symbols and names
├── mesh/                    # Medical Subject Headings
│   └── desc2025.xml        # Medical terminology hierarchy
├── sider/                   # Side Effect Resource
│   └── meddra_all_indications.tsv # Drug side effects and indications
├── drugbank_vocabulary.csv  # Additional drug vocabulary
└── entity_name_mapping.json # Entity name mappings across databases

Database Sources

Google Drive Access files

Place the following files in the access/ directory to enable Google Drive access: access/service_account.json. Instructions on creating a Google Drive client and connecting it to the code can be found here.

🛠️ Installation & Setup

Option 1: Using Make (Recommended)

# Clone the repository
git clone <repository-url>
cd <project-directory>

# Build and start all services
make

Option 2: Using Docker Compose Directly

Don't forget to place Google Drive client JSON file.

# Set environment variables
export UID=$(id -u)
export GID=$(id -g)

# Build and start
./run.sh

🚀 Usage

Accessing the Application

Once the containers are running, access the Streamlit application at:

http://localhost:8501

Available Make Commands

make help     # Show all available commands
make build    # Build all containers
make up       # Start containers in detached mode
make down     # Stop all containers
make logs     # View container logs
make ps       # Show container status
make restart  # Restart services
make clean    # Clean volumes (⚠️ removes data)

Development Commands

# Access container shell
make shell SERVICE=streamlit_app

# View logs in real-time
make logs

# Restart specific service
make restart SERVICE=streamlit_app

🔧 Configuration

Port Configuration

  • Streamlit App: Port 8501 (configurable in docker-compose.yml)

Volume Mounts

  • ./streamlit_app/app/streamlit_app (Application code)
  • ./data/app/data (Database files)
  • ./access/app/access (Access control files)

📁 Project Structure

.
├── docker-compose.yml      # Docker services configuration
├── Dockerfile             # Container build instructions
├── Makefile               # Development convenience commands
├── requirements.txt       # Python dependencies
├── project_config.py      # Project configuration
├── streamlit_app/         # Streamlit application code
│   └── root_page.py       # Main application entry point
├── app/                   # Core application modules
├── research_scripts/      # Research and analysis scripts
├── data/                  # Database files (see structure above)
└── access/                # Access control and authentication

🤝 Contributing

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature-name
  3. Make your changes
  4. Test with: make build && make up
  5. Submit a pull request

📄 License

This project is licensed under the MIT License.

📧 Contact

Maintainers: mikhail.solovyanov@gmail.com

About

Final project of the Longevity hackathon

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Morty Proxy This is a proxified and sanitized view of the page, visit original site.