Skip to content

Commit

Permalink
Merge branch 'master' into 2748_backwards_substituents
Browse files Browse the repository at this point in the history
  • Loading branch information
jblack-mestre authored Feb 20, 2025
2 parents 1ee3db5 + 6bf742c commit 86f42d1
Show file tree
Hide file tree
Showing 161 changed files with 19,328 additions and 1,507 deletions.
4 changes: 2 additions & 2 deletions .ci/version.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
1.29.0
1.30.0
dev
2

f8cca60fc0f22fd07fb4842fefbc4277ce2ac10e181c357e6585da30c2da7899
b3178f37128cd9ff392394f299a2b92d2eed1a0be48bbe06155570c92633a223
2 changes: 1 addition & 1 deletion .github/workflows/indigo-ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -738,7 +738,7 @@ jobs:
with:
java-version: ${{ matrix.java-version }}
- name: Cache Maven packages
uses: actions/cache@v2
uses: actions/cache@v4
with:
path: ~/.m2
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
Expand Down
507 changes: 506 additions & 1 deletion CHANGELOG.md

Large diffs are not rendered by default.

159 changes: 127 additions & 32 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
![Build Status](https://github.com/epam/indigo/workflows/CI/badge.svg)
[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)

# EPAM Indigo projects #
Expand Down Expand Up @@ -28,7 +27,7 @@ Changelog could be found in [CHANGELOG.md](/CHANGELOG.md).


## Download ##
<https://lifescience.opensource.epam.com/download/indigo/index.html>
<https://lifescience.opensource.epam.com/download/indigo.html>

### Bindings in public repositories:
* .NET: <https://www.nuget.org/packages/Indigo.Net>
Expand All @@ -52,50 +51,137 @@ correct references you need to use CMake configurations from the build_scripts d

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: `python -m pip install wheel`
- setuptools version less than 72.0.0 package installed. Command: `python -m pip install setuptools==68.0.0`
- waitress package installed (to run backend API test). Command: `python -m pip install waitress`
- flasgger package installed (to run backend API test). Command: `python -m pip install flasgger`
- psycopg2 package installed (to run backend API test). Command: `python -m pip install psycopg2`
- sqlalchemy package installed (to run backend API test). Command: `python -m pip install sqlalchemy`
- numpy package installed (to run backend API test). Command: `python -m pip install numpy`
- celery package installed (to run backend API test). Command: `python -m pip install celery`
- marshmallow package installed (to run backend API test). Command: `python -m pip install marshmallow`
- redis package installed (to run backend API test). Command: `python -m pip install redis`
- flask_httpauth package installed (to run backend API test). Command: `python -m pip install flask_httpauth`
- pyparsing package installed (to run backend API test). Command: `python -m pip install pyparsing`
- requests package installed (to run backend API test). Command: `python -m pip install requests`

> On Linux use python3 insted of python. Using virtual environment might be required as well.

## Build instruction ##

Create build folder and use cmake with desired options. For instance:
>On Windows use cmd to run the commands.
```
Indigo/build>cmake .. -DBUILD_INDIGO=ON -DBUILD_INDIGO_WRAPPERS=ON -DBUILD_INDIGO_UTILS=ON
```
1) Create build folder
```
mkdir build
```
2) Move to build folder
```
cd build
```
To build Indigo from console:
```
Indigo/build>cmake --build . --config Release --target all
```
2) Run CMake to configure the project with desired options. For instance:
```
cmake .. -DBUILD_INDIGO=ON -DBUILD_INDIGO_WRAPPERS=ON -DBUILD_INDIGO_UTILS=ON
```
or any of the following targets could be specified: --target { indigo-dotnet | indigo-java | indigo-python }
Build results could be collected from Indigo/dist folder.
3) Build Indigo from console:
```
cmake --build . --config Release --target <target name>
```
## Run tests ##
Replace _**\<target name\>**_ with any of the following targets you need:
- **ALL_BUILD** (on Windows)
- **all** (on Linux)
- **indigo-dotnet**
- **indigo-java**
- **indigo-python**
Befo run any test you have to build and install indigo-python
1) Build indigo-python using '--target all' or '--target indigo=python'.
Package should be in 'build' directory, it will be named like 'epam.indigo-version-arch.whl'
3) Install package using pip `python -m pip uninstall epam.indigo -y ; python -m pip install dist/epam.indigo-version-arch.whl`
> Build results could be collected from Indigo/dist folder.
Run integration test using `python api/tests/integration/test.py -t 1` for all test, or `python api/tests/integration/test.py -t 1 -p test_name` to run tests by mask `test_name`.
> 'indigo-python' target is commonly used.
To run backend API test:
1) Install epam-indigo
2) Install waitress `python pip install waitress`
## Run tests ##
Befor running any test you have to build and install indigo-python
1) Build indigo-python using `--target indigo-python` or `--target ALL_BUILD`(on Windows) or `--target all`(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-*\<version-arch\>*.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: `python -m pip uninstall <path-to-.whl-file> -y`
```
python -m pip install <path-to-.whl-file>
```
> Replace _**\<path-to-.whl-file>**_ with the right path to .whl package. For instance: `python -m pip install ../api/python/dist/epam.indigo-1.29.0.dev2-py3-none-win_amd64.whl`
3) Run integration test
>to run all test
```
python api/tests/integration/test.py -t 1
```
>to run tests by mask use `test_name`
```
python api/tests/integration/test.py -t 1 -p test_name
```
### To run backend API test:
1) Build and install indigo-python
2) Set environment variable by running this command:
> for Linux
```
export INDIGO_SERVICE_URL=http://localhost:5000/v2
```
> for Windows in PowerShell
```
$env:INDIGO_SERVICE_URL="http://localhost:5000/v2"
```
3) Run backend service :
* `cd utils/indigo-service/backend/service`
* `cp v2/common/config.py .`
* `waitress-serve --listen="127.0.0.1:5000 [::1]:5000" app:app` you may use any port instead of 5000
```
cd utils/indigo-service/backend/service
```
```
cp v2/common/config.py .
```
```
waitress-serve --listen="127.0.0.1:5000 [::1]:5000" app:app
```
> you may use any port instead of 5000
4) Run backend API test:
* set environment variable `export INDIGO_SERVICE_URL=http://localhost:5000/v2` (in powershell `$env:INDIGO_SERVICE_URL="http://localhost:5000/v2"`)
* run test `python utils/indigo-service/backend/service/tests/api/indigo_test.py` use `-k test_name` to run test by pattern.
```
python utils/indigo-service/backend/service/tests/api/indigo_test.py`
```
> use `-k test_name` to run test by pattern.
## How to build Indigo-WASM ##
Expand Down Expand Up @@ -137,11 +223,20 @@ Make sure it's running from path:
* Install emscripten sdk (https://github.com/emscripten-core/emsdk)
```
>git clone https://github.com/emscripten-core/emsdk.git
>cd emsdk
>./emsdk install latest
>./emsdk activate latest
>source ./emsdk_env.sh
git clone https://github.com/emscripten-core/emsdk.git
```
```
cd emsdk
```
```
./emsdk install latest
```
```
./emsdk activate latest
```
```
source ./emsdk_env.sh
```
Note: On Windows, run `emsdk` instead of `./emsdk`, and `emsdk_env.bat` instead of source `./emsdk_env.sh`, use `cmd` instead of `powershell`.
Expand Down Expand Up @@ -172,4 +267,4 @@ Now build:
```
>emcmake cmake .. -DCMAKE_BUILD_TYPE=Debug -G Ninja
>ninja indigo-ketcher-js-test
```
```
2 changes: 1 addition & 1 deletion api/c/indigo/src/indigo_match.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -985,7 +985,7 @@ int indigoIterateMatches(int target_matcher, int query)
{
IndigoMoleculeSubstructureMatcher& matcher = IndigoMoleculeSubstructureMatcher::cast(obj);

if (matcher.tau_params.method != BASIC && matcher.mode == IndigoMoleculeSubstructureMatcher::TAUTOMER)
if (matcher.mode == IndigoMoleculeSubstructureMatcher::TAUTOMER && matcher.tau_params.method != BASIC)
{
std::unique_ptr<IndigoTautomerSubstructureMatchIter> match_iter(
matcher.getTautomerMatchIterator(self, query, true, self.max_embeddings, matcher.tau_params.method));
Expand Down
2 changes: 1 addition & 1 deletion api/dotnet/src/Indigo.Net.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

<PropertyGroup>
<TargetFrameworks>netstandard2.0</TargetFrameworks>
<Version>1.29.0-dev.2</Version>
<Version>1.30.0-dev.2</Version>
<Authors>EPAM Systems Life Science Department</Authors>
<Company>EPAM Systems</Company>
<Description>Universal cheminformatics toolkit</Description>
Expand Down
2 changes: 1 addition & 1 deletion api/http/requirements.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
anyio==3.7.0
asgiref==3.7.1
click==8.1.3
epam.indigo==1.29.0.dev2
epam.indigo==1.30.0.dev2
fastapi==0.95.2
h11==0.14.0
idna==3.7
Expand Down
2 changes: 1 addition & 1 deletion api/http/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@

setup_kwargs = {
"name": "indigo-service",
"version": "1.29.0.dev2",
"version": "1.30.0.dev2",
"description": "",
"long_description": None,
"author": "Ruslan Khyurri",
Expand Down
2 changes: 1 addition & 1 deletion api/indigo-version.cmake
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
set(INDIGO_DEFAULT_VERSION "1.29.0-dev.2")
set(INDIGO_DEFAULT_VERSION "1.30.0-dev.2")
set(INDIGO_MAX_REVISION 1000)
find_package(Git)
if(GIT_EXECUTABLE)
Expand Down
2 changes: 1 addition & 1 deletion api/java/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>${maven.compiler.source}</maven.compiler.target>
<revision>1.29.0-dev.2</revision>
<revision>1.30.0-dev.2</revision>
</properties>

<licenses>
Expand Down
2 changes: 1 addition & 1 deletion api/python/indigo/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,4 @@
from .indigo.indigo_exception import IndigoException # noqa
from .indigo.indigo_object import IndigoObject # noqa

__version__ = "1.29.0.dev2"
__version__ = "1.30.0.dev2"
2 changes: 1 addition & 1 deletion api/python/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@

setup(
name="epam.indigo",
version="1.29.0.dev2",
version="1.30.0.dev2",
description="Indigo universal cheminformatics toolkit",
author="EPAM Systems Life Science Department",
author_email="lifescience.opensource@epam.com",
Expand Down
2 changes: 1 addition & 1 deletion api/r/DESCRIPTION
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
Package: rindigo
Version: 1.29.0-dev.2
Version: 1.30.0-dev.2
Date: 2020-12-10
Title: R Package for Indigo Toolkit
Authors@R: c(person(given = "Mikhail", family = "Kviatkovskii", role = c("cre"),
Expand Down
94 changes: 94 additions & 0 deletions api/tests/integration/ref/basic/test_smiles.py.out
Original file line number Diff line number Diff line change
Expand Up @@ -365,3 +365,97 @@ M END

C1c2cc3cc4ccc5cc6Cc7cc8ccc1c1c9c%10c%11c(c6c7c%10c81)c5c4c%11c3c29
C1c2cc3cc4ccc5cc6Cc7cc8ccc1c1c9c%10c%11c(c6c7c%10c81)c5c4c%11c3c29
*Cl |$_AV:;3$,$R1;$|
*Cl |$R1;$|

-INDIGO-01000000002D

2 1 0 0 0 0 0 0 0 0999 V2000
0.0000 0.0000 0.0000 R1 0 0 0 0 0 0 0 0 0 0 0 0
0.0000 0.0000 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0
1 2 1 0 0 0 0
M END

C*CC |$;;;R$|
C*CC |$;A;;R$|

-INDIGO-01000000002D

4 3 0 0 0 0 0 0 0 0999 V2000
0.0000 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
0.0000 0.0000 0.0000 A 0 0 0 0 0 0 0 0 0 0 0 0
0.0000 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
0.0000 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
1 2 1 0 0 0 0
2 3 1 0 0 0 0
3 4 1 0 0 0 0
A 4
R
M END

C*CC |$;;R$|
C*CC |$;A;R;$|

-INDIGO-01000000002D

4 3 0 0 0 0 0 0 0 0999 V2000
0.0000 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
0.0000 0.0000 0.0000 A 0 0 0 0 0 0 0 0 0 0 0 0
0.0000 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
0.0000 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
1 2 1 0 0 0 0
2 3 1 0 0 0 0
3 4 1 0 0 0 0
A 3
R
M END

C*CC |$;R$|
C*CC |$;R;;$|

-INDIGO-01000000002D

4 3 0 0 0 0 0 0 0 0999 V2000
0.0000 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
0.0000 0.0000 0.0000 R 0 0 0 0 0 0 0 0 0 0 0 0
0.0000 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
0.0000 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
1 2 1 0 0 0 0
2 3 1 0 0 0 0
3 4 1 0 0 0 0
M END

C*CC |$R$|
C*CC |$R;A;;$|

-INDIGO-01000000002D

4 3 0 0 0 0 0 0 0 0999 V2000
0.0000 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
0.0000 0.0000 0.0000 A 0 0 0 0 0 0 0 0 0 0 0 0
0.0000 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
0.0000 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
1 2 1 0 0 0 0
2 3 1 0 0 0 0
3 4 1 0 0 0 0
A 1
R
M END

C*CC |$R$|
C*CC |$R;A;;$|

-INDIGO-01000000002D

4 3 0 0 0 0 0 0 0 0999 V2000
0.0000 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
0.0000 0.0000 0.0000 A 0 0 0 0 0 0 0 0 0 0 0 0
0.0000 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
0.0000 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
1 2 1 0 0 0 0
2 3 1 0 0 0 0
3 4 1 0 0 0 0
A 1
R
M END

Loading

0 comments on commit 86f42d1

Please sign in to comment.