A molecular validation tool to ensure chemical structures satisfy chemical rules
ChemInspector is a molecular checker that validates chemical structures to ensure they satisfy chemical rules.
Since this package is not published to npm, you can install it directly from GitHub:
npm install git+https://github.com/epam/cheminspector.gitIf you want to contribute to the project or run it locally:
- Node.js (v14 or later)
- pnpm
pnpm installpnpm run buildRun in one terminal:
pnpm run devAfter changing files, the demo will update automatically.
To execute tests run
pnpm run testTo update Ketcher, run:
pnpm run update-ketcherSee the corresponding Knowledge Base page for detailed API documentation.
For instructions on how to add new validation rules, see the Creating a New Rule guide.
For instructions on how to apply rules, see the Apply rules guide.
List of available Rule Descriptions may be found here.
Data model described on this page.
- 📦 Typescript - Typed JavaScript
- 🔄 Inversify - Dependency injection container
- ⚗️ Indigo WASM - Chemistry toolkit
- 🔥 Vite - Next generation frontend tooling
- 🧹 ESlint - Linting utility
- ✨ Prettier - Code formatter
- 🧪 Vitest - Testing framework
ChemInspector is organized into three 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).
- 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
