Skip to content

aging-slayers/hackathon

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

59 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

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: [email protected]

About

Final project of the Longevity hackathon

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors