|
1 |
| -# Cheminformatics Microservice |
| 1 | +# Cheminformatics Microservice & UI |
2 | 2 |
|
3 | 3 | <p align="center">
|
4 | 4 | <a href="https://api.naturalproducts.net/" target="_blank">
|
|
17 | 17 | <a href="https://www.tensorflow.org"><img src="https://img.shields.io/badge/TensorFlow-2.10.1-FF6F00.svg?style=flat&logo=tensorflow" alt="tensorflow"></a>
|
18 | 18 | <a href="https://cdk.github.io"><img src="https://img.shields.io/badge/Powered%20by-CDK-blue.svg?style=flat&logo=chem" alt="Powered by CDK"></a>
|
19 | 19 | <a href="https://www.rdkit.org/"><img src="https://img.shields.io/badge/Powered%20by-RDKit-3838ff.svg?logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAFVBMVEXc3NwUFP8UPP9kZP+MjP+0tP////9ZXZotAAAAAXRSTlMAQObYZgAAAAFiS0dEBmFmuH0AAAAHdElNRQfmAwsPGi+MyC9RAAAAQElEQVQI12NgQABGQUEBMENISUkRLKBsbGwEEhIyBgJFsICLC0iIUdnExcUZwnANQWfApKCK4doRBsKtQFgKAQC5Ww1JEHSEkAAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAyMi0wMy0xMVQxNToyNjo0NyswMDowMDzr2J4AAAAldEVYdGRhdGU6bW9kaWZ5ADIwMjItMDMtMTFUMTU6MjY6NDcrMDA6MDBNtmAiAAAAAElFTkSuQmCC" alt="RDKit badge"></a>
|
| 20 | + <a href="https://reactjs.org/"><img src="https://img.shields.io/badge/React-18.2.0-61DAFB.svg?style=flat&logo=react" alt="React"></a> |
| 21 | + <a href="https://tailwindcss.com/"><img src="https://img.shields.io/badge/Tailwind%20CSS-3.3.5-38B2AC.svg?style=flat&logo=tailwind-css" alt="Tailwind CSS"></a> |
20 | 22 | </p>
|
21 | 23 |
|
22 | 24 | <p align="center">
|
|
26 | 28 | </p>
|
27 | 29 |
|
28 | 30 | <p align="center">
|
29 |
| - <a href="https://fastapi.tiangolo.com/"><img src="https://img.shields.io/badge/Framework-FastAPI-blue?style" alt="framework"></a> |
| 31 | + <a href="https://fastapi.tiangolo.com/"><img src="https://img.shields.io/badge/Backend-FastAPI-blue?style" alt="backend framework"></a> |
30 | 32 | <a href="https://api.naturalproducts.net/v1/docs#/"><img src="https://img.shields.io/badge/docs-fastapi-blue" alt="FastAPI Documentation"></a>
|
31 | 33 | <a href="https://cheminformatics-microservice.readthedocs.io/en/latest/?badge=latest"><img src="https://readthedocs.org/projects/cheminformatics-microservice/badge/?version=latest" alt="Documentation Status"></a>
|
32 | 34 | <a href="https://codecov.io/gh/Steinbeck-Lab/cheminformatics-microservice"><img src="https://codecov.io/gh/Steinbeck-Lab/cheminformatics-microservice/graph/badge.svg?token=5BIQJPNCBA" alt="codecov"></a>
|
|
35 | 37 |
|
36 | 38 | ## 🌐 Overview
|
37 | 39 |
|
38 |
| -A set of microservices to support cheminformatics through API calls. It primarily works with SMILES-based inputs and offers functionalities such as: |
| 40 | +A comprehensive cheminformatics solution consisting of: |
39 | 41 |
|
40 |
| -- Translating between different machine-readable representations |
41 |
| -- Calculating Natural Product (NP) likeliness scores |
42 |
| -- Visualizing chemical structures |
43 |
| -- Generating descriptors |
| 42 | +1. **Backend Microservices API** that provides cheminformatics functionality through API calls: |
| 43 | + - Translating between different machine-readable representations |
| 44 | + - Calculating Natural Product (NP) likeliness scores |
| 45 | + - Visualizing chemical structures |
| 46 | + - Generating descriptors |
| 47 | + - Hosting instances of [DECIMER](https://github.com/Kohulan/DECIMER-Image_Transformer) for optical chemical structure recognition |
| 48 | + |
| 49 | +2. **Modern React Frontend** that provides an intuitive user interface for: |
| 50 | + - Chemical structure analysis and validation |
| 51 | + - Format conversion (SMILES, InChI, IUPAC, etc.) |
| 52 | + - 2D and 3D molecular visualization |
| 53 | + - Optical Chemical Structure Recognition (OCSR) |
| 54 | + - Molecular property calculation |
44 | 55 |
|
45 |
| -Additionally, it hosts instances of: |
46 |
| -- [DECIMER](https://github.com/Kohulan/DECIMER-Image_Transformer): A deep learning model for optical chemical structure recognition |
47 | 56 | > Important Note: STOUT (Smiles-TO-iUpac-Translator) is currently unavailable due to legal issues.
|
48 | 57 |
|
49 | 58 | ## 📚 Documentation
|
50 | 59 |
|
| 60 | +### Backend API |
| 61 | + |
51 | 62 | Comprehensive documentation is available at: [https://docs.api.naturalproducts.net/](https://docs.api.naturalproducts.net/)
|
52 | 63 |
|
53 | 64 | ### API Swagger Docs
|
54 | 65 |
|
55 | 66 | - Production: [https://api.naturalproducts.net/latest/docs](https://api.naturalproducts.net/latest/docs)
|
56 | 67 | - Development: [https://dev.api.naturalproducts.net/latest/docs](https://dev.api.naturalproducts.net/latest/docs)
|
57 | 68 |
|
58 |
| -## 💻 Installation |
| 69 | +## ⚛️ Frontend Application |
| 70 | + |
| 71 | +The frontend application provides a modern, user-friendly interface to the cheminformatics microservices. |
| 72 | + |
| 73 | +### Key Features |
| 74 | + |
| 75 | +- **Chemical Analysis Tools:** |
| 76 | + - Structure validation and standardization |
| 77 | + - Molecular descriptor calculation |
| 78 | + - Stereoisomer generation |
| 79 | + - Natural product likeness scoring |
| 80 | + - Functional group detection (Ertl) |
| 81 | + - Tautomer standardization |
| 82 | + - HOSE code generation |
| 83 | + - Tanimoto similarity calculation |
| 84 | + |
| 85 | +- **Format Conversion:** |
| 86 | + - SMILES to various chemical formats (InChI, InChIKey, SELFIES, etc.) |
| 87 | + - IUPAC name to SMILES conversion |
| 88 | + - 2D/3D coordinate generation (Molblock) |
| 89 | + |
| 90 | +- **Molecule Depiction:** |
| 91 | + - 2D molecule visualization with customizable settings |
| 92 | + - Interactive 3D molecule visualization |
| 93 | + - Batch depiction for multiple molecules |
| 94 | + |
| 95 | +- **OCSR (Optical Chemical Structure Recognition):** |
| 96 | + - Convert chemical structure images to SMILES notation |
| 97 | + |
| 98 | +### Technical Stack |
| 99 | + |
| 100 | +- **React 18:** Core UI library |
| 101 | +- **React Router 6:** Client-side routing |
| 102 | +- **Tailwind CSS:** Utility-first styling |
| 103 | +- **Framer Motion:** Enhanced UI animations |
| 104 | +- **Axios:** API communication |
| 105 | +- **React Dropzone:** File upload handling |
| 106 | + |
| 107 | +### Frontend Architecture |
| 108 | + |
| 109 | +- **Component-Based Design:** Modular components for reusability and maintainability |
| 110 | +- **Service Layer:** Specialized services for API interaction |
| 111 | +- **Context API:** Global state management for theme, recent molecules, etc. |
| 112 | +- **Responsive Design:** Mobile-first approach with responsive layouts |
| 113 | +- **Dark/Light Theme:** Full theme support with Tailwind dark mode |
| 114 | + |
| 115 | +### Installation & Setup (Frontend) |
| 116 | + |
| 117 | +```bash |
| 118 | +# Clone the repository |
| 119 | +git clone https://github.com/Steinbeck-Lab/cheminformatics-microservice.git |
| 120 | +cd cheminformatics-microservice/frontend |
| 121 | + |
| 122 | +# Install dependencies |
| 123 | +npm install |
| 124 | + |
| 125 | +# Start development server |
| 126 | +npm start |
| 127 | + |
| 128 | +# Build for production |
| 129 | +npm run build |
| 130 | +``` |
| 131 | + |
| 132 | +For detailed frontend configuration options, see the [Frontend Documentation](https://docs.api.naturalproducts.net/frontend.html). |
| 133 | + |
| 134 | +## 💻 Backend Installation |
59 | 135 |
|
60 | 136 | You can run Cheminformatics Microservice in multiple ways:
|
61 | 137 |
|
|
0 commit comments