|
|
--- |
|
|
title: HITL Drug Discovery |
|
|
emoji: 𧬠|
|
|
colorFrom: blue |
|
|
colorTo: purple |
|
|
sdk: gradio |
|
|
sdk_version: 5.49.1 |
|
|
app_file: app.py |
|
|
pinned: false |
|
|
hf_oauth: true |
|
|
hf_oauth_scopes: |
|
|
- inference-api |
|
|
license: apache-2.0 |
|
|
short_description: HITL Drug Discovery with AI Chat and Molecular Analysis |
|
|
--- |
|
|
|
|
|
# 𧬠HITL Drug Discovery Platform |
|
|
|
|
|
An advanced drug discovery platform combining AI-powered chat with molecular visualization and property analysis using [Gradio](https://gradio.app), [RDKit](https://www.rdkit.org/), and the [Hugging Face Inference API](https://huggingface.co/docs/api-inference/index). |
|
|
|
|
|
## π Quick Start |
|
|
|
|
|
### Running the Application |
|
|
```bash |
|
|
# Easy launcher (recommended) |
|
|
python run.py |
|
|
|
|
|
# Direct launch |
|
|
python app.py |
|
|
|
|
|
# Legacy version (backup) |
|
|
python legacy/app_legacy.py |
|
|
``` |
|
|
|
|
|
### Access |
|
|
Once running, open your browser to: **http://localhost:7860** |
|
|
|
|
|
## β¨ Key Features |
|
|
|
|
|
- **π€ AI Chat Assistant**: Expert medicinal chemistry guidance and structure generation |
|
|
- **π¬ Molecular Analysis**: Calculate drug-likeness properties and Lipinski's Rule of Five |
|
|
- **π¨ Interactive Visualization**: High-quality molecular structure rendering with multiple styles |
|
|
- **π Drug Discovery Library**: Curated collection of pharmaceutical compounds |
|
|
- **β‘ Real-time Property Calculation**: Molecular weight, LogP, TPSA, hydrogen bonding, and more |
|
|
- **π Chemical Variations**: Generate multiple visualization styles of molecular structures |
|
|
- **πΎ Bookmarking**: Save and manage favorite molecular structures |
|
|
|
|
|
## ποΈ Project Structure |
|
|
|
|
|
``` |
|
|
HITL_Drug_Discovery/ |
|
|
βββ app.py # Main entry point |
|
|
βββ run.py # Easy launcher script |
|
|
βββ requirements.txt # Dependencies |
|
|
βββ src/ # Modular source code |
|
|
β βββ app.py # Main application orchestrator |
|
|
β βββ molecules/ # Molecular analysis and variations |
|
|
β β βββ analysis.py # Property calculations & validation |
|
|
β β βββ variations.py # Structure variation generation |
|
|
β βββ ai/ # AI services |
|
|
β β βββ services.py # AI chat and structure generation |
|
|
β βββ ui/ # UI components and handlers |
|
|
β β βββ components.py # UI component definitions |
|
|
β β βββ handlers.py # Event handlers and business logic |
|
|
β βββ config/ # Configuration and settings |
|
|
β βββ settings.py # App configuration and styling |
|
|
βββ legacy/ # Legacy monolithic version (backup) |
|
|
βββ app_legacy.py |
|
|
``` |
|
|
|
|
|
## π§ Technical Architecture |
|
|
|
|
|
### Modular Design Benefits |
|
|
- **Maintainability**: Each module has a single responsibility |
|
|
- **Testability**: Individual modules can be tested in isolation |
|
|
- **Scalability**: Easy to add new features without affecting existing code |
|
|
- **Readability**: Clear separation of concerns |
|
|
- **Reusability**: Components can be reused across different parts of the app |
|
|
|
|
|
### Key Modules |
|
|
- **`molecules/analysis.py`**: SMILES validation, property calculations, drug-likeness assessment |
|
|
- **`molecules/variations.py`**: Generation of multiple molecular structure visualizations |
|
|
- **`ai/services.py`**: AI-powered chat responses using Hugging Face models |
|
|
- **`ui/components.py`**: Reusable UI component definitions for Gradio interface |
|
|
- **`ui/handlers.py`**: Event handlers, business logic, and state management |
|
|
|
|
|
## π οΈ Troubleshooting |
|
|
|
|
|
### Virtual Environment Issues |
|
|
```bash |
|
|
# Create virtual environment |
|
|
python -m venv venv |
|
|
|
|
|
# Activate it |
|
|
source venv/bin/activate # On Windows: venv\Scripts\activate |
|
|
|
|
|
# Install dependencies |
|
|
pip install -r requirements.txt |
|
|
``` |
|
|
|
|
|
### Common Issues |
|
|
- **Import Errors**: Make sure you're in the project directory and virtual environment is activated |
|
|
- **Port Already in Use**: The app will automatically use the next available port |
|
|
- **Missing Dependencies**: Run `pip install -r requirements.txt` |
|
|
|
|
|
## π Future Enhancements |
|
|
|
|
|
With the modular structure, it's easy to: |
|
|
- Add new molecular analysis algorithms |
|
|
- Implement additional AI models |
|
|
- Create new UI components |
|
|
- Add database integration |
|
|
- Implement user authentication |
|
|
- Add API endpoints |
|
|
- Create unit tests for each module |
|
|
|