# ChemInspector **Repository Path**: mirrors_epam/ChemInspector ## Basic Information - **Project Name**: ChemInspector - **Description**: Linting tool for chemical structures - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-09-12 - **Last Updated**: 2025-12-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ๐ ChemInspector
A molecular validation tool to ensure chemical structures satisfy chemical rules
[](./LICENSE) [](https://www.typescriptlang.org/) ## ๐ Table of Contents - [Definition](#-definition) - [Installation](#-installation) - [Usage](#-usage) - [API](#-api) - [Development](#-development) - [Technology Stack](#-technology-stack) - [Package Structure](#-package-structure) ## ๐งช Definition ChemInspector is a molecular checker that validates chemical structures to ensure they satisfy chemical rules.  ## ๐ Installation ### Using the Package Since this package is not published to npm, you can install it directly from GitHub: #### Using npm ```bash npm install git+https://github.com/epam/cheminspector.git ``` ### Development Setup If you want to contribute to the project or run it locally: #### Prerequisites - Node.js (v14 or later) - pnpm #### Install Dependencies ```bash pnpm install ``` #### Build the Package ```bash pnpm run build ``` ## ๐ ๏ธ Usage ### Development Mode #### Update Demo in Run-time Run in one terminal: ```bash pnpm run dev ``` After changing files, the demo will update automatically. ### Local Testing To execute tests run ```bash pnpm run test ``` ### Ketcher Update To update Ketcher, run: ```bash pnpm run update-ketcher ``` ## ๐ API See the corresponding Knowledge Base page for detailed [API documentation](https://github.com/epam/cheminspector/wiki/API). ## ๐ป Development For instructions on how to add new validation rules, see the [Creating a New Rule](./creating-new-rule.md) guide. For instructions on how to apply rules, see the [Apply rules](https://github.com/epam/cheminspector/wiki/How-to:-Apply-rules) guide. List of available Rule Descriptions may be found [here](https://github.com/epam/cheminspector/wiki/Rules). Data model described on this [page](https://github.com/epam/cheminspector/wiki/Data-Model). ### Technology Stack #### Dependencies - ๐ฆ [Typescript](https://www.typescriptlang.org/) - Typed JavaScript - ๐ [Inversify](https://inversify.io/) - Dependency injection container - โ๏ธ [Indigo WASM](https://www.pnpmjs.com/package/indigo-ketcher) - Chemistry toolkit #### Development Tools - ๐ฅ [Vite](https://vitejs.dev/) - Next generation frontend tooling - ๐งน [ESlint](https://eslint.org/) - Linting utility - โจ [Prettier](https://prettier.io/) - Code formatter - ๐งช [Vitest](https://vitest.dev/) - Testing framework ### Package Structure ChemInspector is organized into three main modules: #### ๐งฉ Main Modules - **inspecto** - Source code for ChemInspector API - **rules** - Source code for RulesManager and rules - **utils** - Set of useful functions to support calculations The modules "inspecto" and "rules" are built using IoC design principles to provide low coupling for dependencies (using DI technique). #### ๐ Architecture Components - **processor** - Entry point for the package or responsible for a particular business domain/process (e.g., "Rules") - **provider** - Wrapper around APIs with physical I/O (file system, etc.), 3rd party libs, and APIs with remote services - **infrastructure** - Required project structure entities (injection tokens, TS types, etc.) - **models** - Required entities for Data Modeling ## ๐ License [Apache](./LICENSE)