back to home

epam / Indigo

Universal cheminformatics toolkit, utilities and database search tools

378 stars
119 forks
665 issues
C++PythonJava

AI Architecture Analysis

This repository is indexed by RepoMind. By analyzing epam/Indigo in our AI interface, you can instantly generate complete architecture diagrams, visualize control flows, and perform automated security audits across the entire codebase.

Our Agentic Context Augmented Generation (Agentic CAG) engine loads full source files into context on-demand, avoiding the fragmentation of traditional RAG systems. Ask questions about the architecture, dependencies, or specific features to see it in action.

Source files are only loaded when you start an analysis to optimize performance.

Embed this Badge

Showcase RepoMind's analysis directly in your repository's README.

[![Analyzed by RepoMind](https://img.shields.io/badge/Analyzed%20by-RepoMind-4F46E5?style=for-the-badge)](https://repomind.in/repo/epam/Indigo)
Preview:Analyzed by RepoMind

Repository Overview (README excerpt)

Crawler view

EPAM Indigo projects # Copyright (c) 2009-2022 EPAM Systems, Inc. Licensed under the Apache License version 2.0 Introduction ## This repository includes: • Bingo: Chemistry search engine for Oracle, Microsoft SQL Server and PostgreSQL databases • Bingo-Elastic: Set of APIs for efficient chemistry search in Elasticsearch • Java API. Full README is available here • Python API. Full README is available here • Indigo: Universal cheminformatics library with bindings to .NET, Java, Python, R and WebAssembly, and the following tools: • Legio: GUI application for combinatorial chemistry • ChemDiff: Visual comparison of two SDF or SMILES files • indigo-depict: Molecule and reaction rendering utility • indigo-cano: Canonical SMILES generator • indigo-deco: R-Group deconvolution utility Detailed documentation is available at Changelog could be found in CHANGELOG.md. Download ## Bindings in public repositories: • .NET: • Java: • Python: Source code organization ## Main directory structure layout: • : Indigo API sources • : Bingo sources • : Core algorithms and data structures sources • : sources for third-party libraries • : utilities sources Each project is placed in the corresponding directory with CMakeList.txt configuration file, that does not include other projects. In order to build the whole project with the correct references you need to use CMake configurations from the build_scripts directory. Develop using dev container This is an alternative setup solution next to have it on your PC directly. It builds on having the tools in a docker container and VSCode acts as a client. Prerequisites • Docker Desktop (or docker engine if you prefer) • VSCode Installation Steps • Clone this repository • Open in VSCode • Follow recommendation to install the Dev Container Extension • Open in Dev Container The first time takes some minutes but afterwards you can directly develop from VSCode. ***Remark for Windows Users:*** Its a known limitation that on windows the overlay driver is super slow, so if you want to have a fast IDE, clone your container into a volume rather than natively on the client or in your WSL distribution. Preinstalled build tools ## To build the project from the sources, the following tools should be installed: >Required: • GIT 1.8.2+ • C/C++ compilers with C++14 support (GCC, Clang and MSVC are officially supported) • CMake 3.4+ • Python 3.6+ >Required to build all targets: • JDK 1.8+ • .NET Standard 2.0+ >Required to build Indigo-WASM: • Emscripten SDK • Ninja **Dependencies:** > **Python** • wheel package installed. Command: • setuptools version less than 72.0.0 package installed. Command: • waitress package installed (to run backend API test). Command: • flasgger package installed (to run backend API test). Command: • psycopg2 package installed (to run backend API test). Command: • sqlalchemy package installed (to run backend API test). Command: • numpy package installed (to run backend API test). Command: • celery package installed (to run backend API test). Command: • marshmallow package installed (to run backend API test). Command: • redis package installed (to run backend API test). Command: • flask_httpauth package installed (to run backend API test). Command: • pyparsing package installed (to run backend API test). Command: • requests package installed (to run backend API test). Command: > On Linux use python3 insted of python. Using virtual environment might be required as well. Build instruction ## >On Windows use cmd to run the commands. 1) Create build folder 2) Move to build folder 2) Run CMake to configure the project with desired options. For instance: 3) Build Indigo from console: Replace _**\ **_ with any of the following targets you need: • **ALL_BUILD** (on Windows) • **all** (on Linux) • **indigo-dotnet** • **indigo-java** • **indigo-python** > Build results could be collected from Indigo/dist folder. > 'indigo-python' target is commonly used. Run tests ## Befor running any test you have to build and install indigo-python 1) Build indigo-python using or (on Windows) or (on Linux). See Build instruction above. > - On Windows the package should be in 'Indigo/api/python/dist' folder > - On Linux it is located in 'Indigo\dist' folder > Package will be named like 'epam.indigo-*\ *.whl'. For instance: *epam.indigo-1.29.0.dev2-py3-none-win_amd64.whl* 2) Install package using pip > - If Indigo package has been already installed, uninstall it with the following command: > Replace _**\ **_ with the right path to .whl package. For instance: 3) Run integration test >to run all test >to run tests by mask use To run backend API test: 1) Build and install indigo-python 2) Set environment variable by running this command: > for Linux > for Windows in PowerShell 3) Run backend service : > you may use any port instead of 5000 4) Run backend API test: > use to run test by pattern. How to build Indigo-WASM ## Build tools prerequisites ### • Git Make sure git is running from path: • Python (https://www.python.org/downloads/) Make sure python is running from path: • cmake (https://cmake.org/download/) Make sure cmake is running from path: • Install ninja (https://github.com/ninja-build/ninja/releases) Download corresponding ninja-xxx.zip and unpack to folder on path. Make sure it's running from path: • Install emscripten sdk (https://github.com/emscripten-core/emsdk) Note: On Windows, run instead of , and instead of source , use instead of . Get Indigo sources ### Clone (or checkout) Indigo repository Build Indigo ### For each new session, set environment anew: If fresh build: Now build: How to build conda package ## Prepare conda build environment as described at https://docs.conda.io/projects/conda-build/en/stable/install-conda-build.html Change directory to >cd conda-recipe >INDIGO_VERSION=1.29.0 conda build . >cd conda-recipe >set INDIGO_VERSION=1.29.0 >conda build . >conda install anaconda-client >anaconda…