Code Monkey home page Code Monkey logo

shape-it's Introduction

RDKit

Azure build Status Documentation Status DOI

RDKit is a collection of cheminformatics and machine-learning software written in C++ and Python.

  • BSD license - a business friendly license for open source
  • Core data structures and algorithms in C++
  • Python 3.x wrapper generated using Boost.Python
  • Java and C# wrappers generated with SWIG
  • 2D and 3D molecular operations
  • Descriptor and Fingerprint generation for machine learning
  • Molecular database cartridge for PostgreSQL supporting substructure and similarity searches as well as many descriptor calculators
  • Cheminformatics nodes for KNIME
  • Contrib folder with useful community-contributed software harnessing the power of the RDKit

Community

Code

Web presence

Materials from user group meetings

Documentation

Available on the RDKit page and in the Docs folder on GitHub

Installation

Installation instructions are available in Docs/Book/Install.md.

Binary distributions, anaconda, homebrew

  • binaries for conda python or, if you are using the conda-forge stack, the RDKit is also available from conda-forge.
  • RPMs for RedHat Enterprise Linux, Centos, and Fedora. Contributed by Gianluca Sforna.
  • debs for Ubuntu and other Debian-derived Linux distros. Contributed by the Debichem team.
  • homebrew formula for building on the Mac. Contributed by Eddie Cao.
  • recipes for building using the excellent conda package manager. Contributed by Riccardo Vianello.
  • APKs for Alpine Linux. Contributed by da Verona
  • Wheels at PyPi for all major platforms and python versions. Contributed by Christopher Kuenneth

Projects using RDKit

  • ROBERT - Automated Machine Learning Protocols
  • AQME - Automated Quantum Mechanical Environment
  • chemprop - message passing neural networks for molecular property prediction
  • RMG - Reaction Mechanism Generator
  • RDMC - Reaction Data and Molecular Conformers - package for dealing with reactions, molecules, conformers, mainly in 3D
  • pychemprojections - python library for visualizing various 2D projections of molecules.
  • pychemovality - python library for estimating the ovality of molecules.
  • ChEMBL Structure Pipeline - ChEMBL protocols used to standardise and salt strip molecules.
  • FPSim2 - Simple package for fast molecular similarity searches.
  • Datamol (docs, repo) - A Python library to intuitively manipulate molecules.
  • Scopy (docs, paper) - an integrated negative design Python library for desirable HTS/VS database design
  • stk (docs, paper) - a Python library for building, manipulating, analyzing and automatic design of molecules.
  • gpusimilarity - A Cuda/Thrust implementation of fingerprint similarity searching
  • Samson Connect - Software for adaptive modeling and simulation of nanosystems
  • mol_frame - Chemical Structure Handling for Dask and Pandas DataFrames
  • RDKit.js - The official JavaScript release of RDKit
  • DeepChem - python library for deep learning for chemistry
  • mmpdb - Matched molecular pair database generation and analysis
  • CheTo (paper)- Chemical topic modeling
  • OCEAN (paper)- Optimized cross reactivity estimation
  • ChEMBL Beaker - standalone web server wrapper for RDKit and OSRA
  • ZINC - Free database of commercially-available compounds for virtual screening
  • sdf_viewer.py - an interactive SDF viewer
  • sdf2ppt - Reads an SDFile and displays molecules as image grid in powerpoint/openoffice presentation.
  • MolGears - A cheminformatics tool for bioactive molecules
  • PYPL - Simple cartridge that lets you call Python scripts from Oracle PL/SQL.
  • shape-it-rdkit - Gaussian molecular overlap code shape-it (from silicos it) ported to RDKit backend
  • WONKA - Tool for analysis and interrogation of protein-ligand crystal structures
  • OOMMPPAA - Tool for directed synthesis and data analysis based on protein-ligand crystal structures
  • OCEAN - web-tool for target-prediction of chemical structures which uses ChEMBL as datasource
  • chemfp - very fast fingerprint searching
  • rdkit_ipynb_tools - RDKit Tools for the IPython Notebook
  • Vernalis KNIME nodes
  • Erlwood KNIME nodes
  • AZOrange

License

Code released under the BSD license.

shape-it's People

Contributors

greglandrum avatar hansdewinter avatar iwatobipen avatar jc32173 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

shape-it's Issues

CMake Path Issue when Using RDKit Conda Install

Thanks for making this available through RDKit!

When I compiled the code, I ran into issues with CMake not finding RDKit libs. I believe this is because I have RDKit installed through Anaconda. Specifically I found ${RDKIT_LIBRARIES} was not set and CMake was picking up a Python install outside of the Anaconda installation I was trying to use. The solution was to add more compile flags:

cmake   -D CMAKE_INSTALL_PREFIX=<install location> \
        -D CMAKE_PREFIX_PATH=$CONDA_PREFIX \
        -D BUILD_RDKIT_SUPPORT=ON \
        -D BUILD_PYTHON_SUPPORT=ON \
        -D RDKIT_INCLUDE_DIR=/anaconda3/envs/myenv/include/rdkit \
        -D Boost_INCLUDE_DIR=/anaconda3/envs/myenv/include \
        -D Python3_FIND_STRATEGY=LOCATION \
        -D PYTHON_INSTDIR=lib/python3.6/site-packages ..

After adding the additional flags, I was able to successfully compile the code.

Linking against RDKit requires `-o out.sdf`, but linking against OpenBabel does not

Hi all, thanks for this great package.
I have two builds on different computers - on a Mac linked against RDKit, and on Ubuntu linked against OpenBabel.

Using the OpenBabel build, this command runs fine:

shape-it -r reference.sdf -d testligs0.sdf -s scores.dat

Using the RDKit build, this same command fails with:

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  Shape-it v2.0.0 | Jul  6 2021 06:18:11

  -> GCC:       Clang 11.1.0
  -> RDKit: 2021.03.3

  Copyright 2012 by Silicos-it, a division of Imacosi BVBA

  Shape-it is free software: you can redistribute it and/or modify
  it under the terms of the GNU Lesser General Public License as published
  by the Free Software Foundation, either version 3 of the License, or
  (at your option) any later version.

  Shape-it is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  GNU Lesser General Public License for more details.

  Shape-it is linked against the RDKit (https://www.rdkit.org).
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


COMMAND_LINE OPTIONS:

  -> Reference file:    reference.sdf
  -> Database file:     testligs0.sdf
  -> Output file:       no
  -> Scores file:       scores.dat
  -> Best hits:         no
  -> Scoring only:      no
  -> Extra iterations:  no
  -> Rank by:           Shape-it::Tanimoto
  -> Cutoff:            no
  -> Output reference   yes

libc++abi.dylib: terminating with uncaught exception of type Invar::Invariant: null stream
zsh: abort      shape-it -r reference.sdf -d testligs0.sdf -s scores.dat

This can be fixed by simply including an output, i.e.

shape-it -r reference.sdf -d testligs0.sdf -o out.sdf -s scores.dat

so it's not a real problem to usage, just thought I would note it. Screening large libraries means one might not want to write out all the sdfs.
Thanks!

dbOutWriter error during basic install

Hi, I am trying to compile this under Debian running on WSL2. OpenBabel 3 appears to be correctly recognized yet I seem to get these OpenBabel-related errors:

error: expected primary-expression before ‘>’ token 166 | std::unique_ptr<OpenBabel::OBConversion> dbOutWriter( | ^ /home/evehom/shape-it/src/main.cpp:166:44: error: ‘dbOutWriter’ was not declared in this scope 166 | std::unique_ptr<OpenBabel::OBConversion> dbOutWriter(

See complete install log below.

Any pointers to get it working appreciated. BW/Evert

evehom@everthodell:~$ git clone https://github.com/rdkit/shape-it.git Cloning into 'shape-it'... remote: Enumerating objects: 362, done. remote: Counting objects: 100% (362/362), done. remote: Compressing objects: 100% (137/137), done. remote: Total 362 (delta 243), reused 322 (delta 217), pack-reused 0 Receiving objects: 100% (362/362), 160.46 KiB | 1.71 MiB/s, done. Resolving deltas: 100% (243/243), done. evehom@everthodell:~$ cd shape-it/ evehom@everthodell:~/shape-it$ mkdir build evehom@everthodell:~/shape-it$ cd build/ evehom@everthodell:~/shape-it/build$ cmake .. -- The C compiler identification is GNU 12.2.0 -- The CXX compiler identification is GNU 12.2.0 -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working C compiler: /usr/bin/cc - skipped -- Detecting C compile features -- Detecting C compile features - done -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Check for working CXX compiler: /usr/bin/c++ - skipped -- Detecting CXX compile features -- Detecting CXX compile features - done -- Found Open Babel include files at /usr/local/include/openbabel3 -- Found Open Babel library at /usr/local/lib/libopenbabel.so Setting openbabel found TRUE Installation directory of executable: /usr/local/bin -- Configuring done -- Generating done -- Build files have been written to: /home/evehom/shape-it/build evehom@everthodell:~/shape-it/build$ make [ 5%] Building CXX object CMakeFiles/shapeit_lib.dir/src/alignLib.cpp.o [ 11%] Building CXX object CMakeFiles/shapeit_lib.dir/src/alignmentInfo.cpp.o [ 16%] Building CXX object CMakeFiles/shapeit_lib.dir/src/atomGaussian.cpp.o [ 22%] Building CXX object CMakeFiles/shapeit_lib.dir/src/bestResults.cpp.o [ 27%] Building CXX object CMakeFiles/shapeit_lib.dir/src/coordinate.cpp.o [ 33%] Building CXX object CMakeFiles/shapeit_lib.dir/src/gaussianVolume.cpp.o In file included from /usr/local/include/openbabel3/openbabel/atom.h:35, from /home/evehom/shape-it/src/gaussianVolume.cpp:38: /usr/local/include/openbabel3/openbabel/math/vector3.h: In member function ‘bool OpenBabel::vector3::operator!=(const OpenBabel::vector3&) const’: /usr/local/include/openbabel3/openbabel/math/vector3.h:281:29: warning: ‘bool OpenBabel::vector3::operator==(const OpenBabel::vector3&) const’ is deprecated: Use vector3::IsApprox() instead. [-Wdeprecated-declarations] 281 | return ! ( (*this) == other ); | ^~~~~ /usr/local/include/openbabel3/openbabel/math/vector3.h:274:10: note: declared here 274 | bool operator== ( const vector3& ) const; | ^~~~~~~~ [ 38%] Building CXX object CMakeFiles/shapeit_lib.dir/src/moleculeRotation.cpp.o In file included from /usr/local/include/openbabel3/openbabel/atom.h:35, from /home/evehom/shape-it/src/moleculeRotation.cpp:38: /usr/local/include/openbabel3/openbabel/math/vector3.h: In member function ‘bool OpenBabel::vector3::operator!=(const OpenBabel::vector3&) const’: /usr/local/include/openbabel3/openbabel/math/vector3.h:281:29: warning: ‘bool OpenBabel::vector3::operator==(const OpenBabel::vector3&) const’ is deprecated: Use vector3::IsApprox() instead. [-Wdeprecated-declarations] 281 | return ! ( (*this) == other ); | ^~~~~ /usr/local/include/openbabel3/openbabel/math/vector3.h:274:10: note: declared here 274 | bool operator== ( const vector3& ) const; | ^~~~~~~~ [ 44%] Building CXX object CMakeFiles/shapeit_lib.dir/src/shapeAlignment.cpp.o [ 50%] Building CXX object CMakeFiles/shapeit_lib.dir/src/siMath.cpp.o [ 55%] Building CXX object CMakeFiles/shapeit_lib.dir/src/solutionInfo.cpp.o In file included from /usr/local/include/openbabel3/openbabel/math/matrix3x3.h:26, from /usr/local/include/openbabel3/openbabel/math/transform3d.h:23, from /usr/local/include/openbabel3/openbabel/math/spacegroup.h:23, from /usr/local/include/openbabel3/openbabel/generic.h:29, from /home/evehom/shape-it/src/solutionInfo.cpp:38: /usr/local/include/openbabel3/openbabel/math/vector3.h: In member function ‘bool OpenBabel::vector3::operator!=(const OpenBabel::vector3&) const’: /usr/local/include/openbabel3/openbabel/math/vector3.h:281:29: warning: ‘bool OpenBabel::vector3::operator==(const OpenBabel::vector3&) const’ is deprecated: Use vector3::IsApprox() instead. [-Wdeprecated-declarations] 281 | return ! ( (*this) == other ); | ^~~~~ /usr/local/include/openbabel3/openbabel/math/vector3.h:274:10: note: declared here 274 | bool operator== ( const vector3& ) const; | ^~~~~~~~ [ 61%] Linking CXX shared library libshapeit_lib.so [ 61%] Built target shapeit_lib [ 66%] Building CXX object CMakeFiles/shape-it.dir/src/options.cpp.o [ 72%] Building CXX object CMakeFiles/shape-it.dir/src/main.cpp.o /home/evehom/shape-it/src/main.cpp: In function ‘int main(int, char**)’: /home/evehom/shape-it/src/main.cpp:166:8: error: ‘unique_ptr’ is not a member of ‘std’ 166 | std::unique_ptr<OpenBabel::OBConversion> dbOutWriter( | ^~~~~~~~~~ /home/evehom/shape-it/src/main.cpp:64:1: note: ‘std::unique_ptr’ is defined in header ‘<memory>’; did you forget to ‘#include <memory>’? 63 | #include <shapeAlignment.h> +++ |+#include <memory> 64 | /home/evehom/shape-it/src/main.cpp:166:42: error: expected primary-expression before ‘>’ token 166 | std::unique_ptr<OpenBabel::OBConversion> dbOutWriter( | ^ /home/evehom/shape-it/src/main.cpp:166:44: error: ‘dbOutWriter’ was not declared in this scope 166 | std::unique_ptr<OpenBabel::OBConversion> dbOutWriter( | ^~~~~~~~~~~ make[2]: *** [CMakeFiles/shape-it.dir/build.make:90: CMakeFiles/shape-it.dir/src/main.cpp.o] Error 1 make[1]: *** [CMakeFiles/Makefile2:111: CMakeFiles/shape-it.dir/all] Error 2 make: *** [Makefile:146: all] Error 2 evehom@everthodell:~/shape-it/build$

option scoreOnly cannot work

Expected behavior

When option scoreOnyl is used, it should return the similarity score which is a floating type.

Actual behavior

With the option scoreOnly on, the score value is -nan and the volume of reference and database molecule are 0.

Step to reproduce scoreOnly failure

shape-it -r ex1.sdf -d ex1.sdf -o ex1_aligned.sdf -s ex1_aligned.score --scoreOnly
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  Shape-it v2.0.0 | Aug  9 2022 19:11:26

  -> GCC:       11.2.0
  -> OpenBabel: 3.1.0

  Copyright 2012-2021 by Silicos-it, a division of Imacosi BVBA, Hans De Winter,
     and the Shape-it contributors

  Shape-it is free software: you can redistribute it and/or modify
  it under the terms of the MIT license.

  Shape-it is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  MIT License for more details.

  Shape-it is linked against OpenBabel version 2.
  OpenBabel is free software; you can redistribute it and/or modify
  it under the terms of the GNU General Public License as published by
  the Free Software Foundation version 2 of the License.
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


COMMAND_LINE OPTIONS:

  -> Reference file:    ex1.sdf
  -> Database file:     ex1.sdf
  -> Output file:       ex1_aligned.sdf
  -> Scores file:       ex1_aligned.score
  -> Best hits:         no
  -> Scoring only:      yes
  -> Extra iterations:  no
  -> Rank by:           Shape-it::Tanimoto
  -> Cutoff:            no
  -> Output reference   yes

Processed 1 molecules
1 molecules in 0.022083 seconds (45.2837 molecules per second)

show scoring file:

$ cat ex1_aligned.score
dbName  refName Shape-it::Tanimoto      Shape-it::Tversky_Ref   Shape-it::Tversky_Db    overlap refVolume       dbVolume
EX1     EX1     -nan    -nan    -nan    0       0       0

Reference structure included in output even when option to suppress is used

If I run the command:

shape-it -r mol1.sdf -d mol2.sdf -o mol1-ref-out.sdf -s mol1-ref-score.txt --noRef

The stdout suggest the option to suppress the reference in the output sdf is recognised:

  -> Output reference   no

But the reference structure is included and the scores are not mol1-ref-out.sdf.

Note: This only happens when compiled with RDKit, if I use OpenBabel this options works as expected.

MakeFile issue for RDKit libraries

I am having some troubles compiling the package during 'make' :

anaconda3/envs/my-rdkit/lib/libRDKitGraphMol.so: undefined reference to `std::__cxx11::basic_istringstream<char, std::char_traits, std::allocator >::basic_istringstream()@GLIBCXX_3.4.26'

I was trying to add -D_GLIBCXX_USE_CXX11_ABI=0 in MakeFile, but it didn't help.

++

gcc (GCC) 8.3.1 20191121 (Red Hat 8.3.1-5)
Linux Centos 8
rdkit 2021.03.5

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.