Skip to content

epam/ChemInspector

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🔍 ChemInspector

A molecular validation tool to ensure chemical structures satisfy chemical rules

License: Apache TypeScript

📋 Table of Contents

🧪 Definition

ChemInspector is a molecular checker that validates chemical structures to ensure they satisfy chemical rules.

Scheme, describing how ChemInspector is working

🚀 Installation

Using the Package

Since this package is not published to npm, you can install it directly from GitHub:

Using npm

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

pnpm install

Build the Package

pnpm run build

🛠️ Usage

Development Mode

Update Demo in Run-time

Run in one terminal:

pnpm run dev

After changing files, the demo will update automatically.

Local Testing

To execute tests run

pnpm run test

Ketcher Update

To update Ketcher, run:

pnpm run update-ketcher

📘 API

See the corresponding Knowledge Base page for detailed API documentation.

💻 Development

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.

Technology Stack

Dependencies

Development Tools

  • 🔥 Vite - Next generation frontend tooling
  • 🧹 ESlint - Linting utility
  • Prettier - Code formatter
  • 🧪 Vitest - 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

About

Linting tool for chemical structures

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 9