Commit Graph

52 Commits

Author SHA1 Message Date
Brian Kelley
693796d7af Enhance molzip to properly handle RGroupDecompositions (#7202)
* Fix zipping of rgroup decomps with broken rings

* Add utility to molzip rgroup rows

* Add RGroupRow molzip

* Fix typo in example and test

* Fix warning on integer size

* Don't use ssize_t

* a couple of suggestions

* Update Code/GraphMol/ChemTransforms/MolFragmenter.cpp

Co-authored-by: Greg Landrum <greg.landrum@gmail.com>

* Update Code/GraphMol/ChemTransforms/MolFragmenter.cpp

Co-authored-by: Greg Landrum <greg.landrum@gmail.com>

* Move molzip rgroup row from RGroupDecomp to ChemTransforms

* Fix exports

---------

Co-authored-by: Brian Kelley <bkelley@relaytx.com>
Co-authored-by: greg landrum <greg.landrum@gmail.com>
2024-03-19 17:02:45 +01:00
Ric
8176f5c962 Fail CI builds on compiler warnings + some fixes (#6675)
* enable Werror on Mac and Linux

* do not fail on boost multiprecision pessimizing move

* fix eigen array_bounds warning

* Fix unused arg in Rascal MCS

* fix range-loop-construct warning in Rascal MCES

* fix sign mismatched comparison

* drop unused lambda capture

* allow FMCS timeout test more time under Debug (not a warning!)

* fix fwd declaration of struct RascalClusterOptions

* fix deallocator mismatch

* fix two minor leaks

* fix a real leak

* more minor leaks

* fix another real leak, plus some potential ones

* fix std::move preventing copy ellision

* allow longer run time for debug builds

* make maxBondMatchPairs and getLargestFragSize unsigned int

* make snake case camel case

* update to current master, fix new warnings

* update again and more fixes

* add #include <optional>

* fix char array deallocation

* update and fixes in Marvin writer

* unsigned int

* more copy ellision fixes

* more copy ellision fixes, and typos

* and some more
2023-09-02 04:38:45 +02:00
Ric
57a1ba473b Fixes #6034 (#6035)
* fix + test

* move updatePropertyCache call into fragmentOnBonds
2023-02-02 05:00:47 +01:00
Gareth Jones
bb8bc57d05 Add depiction coordinates to molzip (#5993)
* Test routine working

* Fix python molzip signature clash

* Update SWIG bindings

* Add C++ and Python documentation

* Add C++ and Python documentation
2023-01-28 04:46:39 +01:00
Ric
0d8ad69541 fix warnings (#5561) 2022-09-14 06:36:42 +02:00
Brian Kelley
4e8f9e11f5 Molzip: save bond dir when zipping (#5445)
* MolZip now saves the bonddir when zipping

* Add test for saving bonddir in MolZip

* Save either the first or second bond dir, fix the test to actually test

* Add more comprehensive bonddir checking and atom reordering

* Fix the atom swaps after the consistency check

Co-authored-by: Brian Kelley <bkelley@relaytx.com>
2022-07-26 05:44:47 +02:00
Brian Kelley
07d9a2f915 MolZip: add atom property labels for mol-zipping (#5446)
Co-authored-by: Brian Kelley <bkelley@relaytx.com>
2022-07-24 06:26:50 +02:00
Brian Kelley
5cdcaa933a Fix segfault in mol zip (#5338)
* Fixes #5335

* fix invariant message

* Fix github issue number

* Simplify CHECK_INVARIANT logic and remove debugging output from tests
2022-06-01 05:06:34 +02:00
Brian Kelley
079d845f5a Add sanitize option to molzip (#5069)
* Add sanitize option to molzip

* fix typo

* Change MolzipParams.santize to enforceValenceRules
2022-03-16 06:02:35 +01:00
Greg Landrum
3a82159b57 Cleanup some problems found during an ASAN build (#4054)
* MolFragmenter: fix a leak when exceptions are thrown

* DistGeomHelpers: fix leaks when exceptions are thrown

* SubstructLibrary: fix usage of invalid memory

* clear up leaks found during ASAN testing
2021-04-21 10:22:04 -04:00
Greg Landrum
2e3f31990d Allow batch editing of molecules: removal only (#3875)
* backup

* simple first pass, passes all tests

* cleanup a bunch of existing uses

* ensure that we can safely add atoms/bonds while in edit mode

* add context manager on python side

* handle exceptions properly in those

* changes in response to review
2021-03-11 05:10:43 +01:00
Greg Landrum
0e89b2dbea cleanup a bunch of compiler warnings (#3849)
* cleanup a bunch of g++ warnings

* make it work with clang

* remove some additional warnings based on CI builds

* fix that version number

* stop being verbose when building
2021-02-26 05:10:02 +01:00
Ric
703fe5a225 Remove boost::foreach from public headers (#3820)
* remove include from headers

* update implementation files

* completely remove BOOST_FOREACH (#7)

* convert those changes to use auto

* get rid of all usage of BOOST_FOREACH

Co-authored-by: Greg Landrum <greg.landrum@gmail.com>
2021-02-17 14:15:48 +01:00
Brian Kelley
cf9ea71384 First pass at MolZip (now with bond stereo!) (#3644)
* First pass at MolZip (sans bond stereo)

* Add support for bond stereo zipping

* Add molzip swig wrappers

* Add simple python wrapper/tests

* Remove smiles round tripping now that fragmentOnBonds is fixed

* Responses to review

* AtomMaps and Isotopes must explicitly be set

* Add molzip single molecule api isotope test

* Add missing %newobject

* Add better python docs, label test

* fix docs add a test for molzip

* Update Code/GraphMol/ChemTransforms/MolFragmenter.cpp

Co-authored-by: Greg Landrum <greg.landrum@gmail.com>

* Add missing case breaks

* Add more preconditions, move mark and restore to private functions

* Remove unused and redunddant code

* optimize get_other_atom

* Add single arg molzip test

* Update Code/GraphMol/Wrap/rough_test.py

Co-authored-by: Greg Landrum <greg.landrum@gmail.com>

Co-authored-by: Greg Landrum <greg.landrum@gmail.com>
2020-12-25 05:15:12 +01:00
Brian Kelley
81481d5c6d BondStereo info lost in FragmentOnBonds() (#3649)
* Fix bondstereo when fragmenting molecules with cis/trans E/Z

* Apply suggestions from code review

Co-authored-by: Greg Landrum <greg.landrum@gmail.com>

* Add more tests for bond stereo

* Add test to ensure non-stereo atom bond breaks are preserved

* Remove extraneous test, fix another

Co-authored-by: Greg Landrum <greg.landrum@gmail.com>
2020-12-18 13:13:47 +01:00
Brian Kelley
66fa3c3a86 Reverts acciental molzip push 2020-12-08 17:04:07 -05:00
Brian Kelley
2509558db2 Add catchall to case statement 2020-12-08 10:25:29 -05:00
Brian Kelley
52bf58e254 Response to review: invert a and b molecules in tests. Fix bug found. 2020-12-08 10:23:53 -05:00
Brian Kelley
23ad0f8b84 Addd fragment on bonds and isotope labelling 2020-11-22 19:39:43 -05:00
Brian Kelley
847426faa2 Final algorithm implementation 2020-11-21 17:08:28 -05:00
Brian Kelley
08e0c714d7 First pass at molzip 2020-11-16 14:55:30 -05:00
Greg Landrum
45b9aef28b clang-tidy modernize-use-default-member-init and modernize-use-emplace (#3190)
* run clang-tidy with modernize-use-default-member-init

* results from modernize-use-emplace

* one uniform initialization per line
otherwise SWIG is unhappy

Co-authored-by: Brian Kelley <fustigator@gmail.com>
2020-05-28 09:07:58 +02:00
Greg Landrum
d41752d558 run clang-tidy with readability-braces-around-statements (#2899)
* run clang-tidy with readability-braces-around-statements
clang-format the results
clean up all the parts that clang-tidy-8 broke

* fix problem on windows
2020-01-25 14:19:32 +01:00
Greg Landrum
ec366c1ab7 Dev/pvs studio cleanups2 (#2877)
* a round of cleanups courtesy of PVS studio

* add a test to make sure that a warning is a false alarm

* bug fix

* Fix a UFF bug

* more PVS studio cleanups

* next round of PVS studio cleanups

* completely remove the chances for that bug

* changes in response to review

* add an additional test
+ a bit of reformatting that snuck in
2020-01-22 15:10:58 +01:00
Eisuke Kawashima
5cd27a242f Fix typo (#2862)
* Fix typo

* Reflect the comments

* Fix more typos
2019-12-31 06:43:27 +01:00
Greg Landrum
ea0e8f674e Preserve bond direction in fragmentOnBonds (#2484)
* Sketch of a solution to preserve bond direction in fragmentOnBonds

* A bit of cleanup work based on Andrew's original commit for #1039
Add a couple of tests too

* forgot to save a file before the commit
2019-06-10 13:08:50 -04:00
Brian Kelley
373a89021e Change boost int types to std types (#2233) 2019-01-22 17:45:03 +01:00
Dan N
8bed437c5f Addresses several minor warning messages during the build (#1935)
* Address minor compilation warning messages

Addresses trivial compilation warning messages:

    [ 11%] Building CXX object Code/GraphMol/CMakeFiles/GraphMol.dir/AddHs.cpp.o
    rdkit/Code/GraphMol/AddHs.cpp:497:9: warning: unused variable 'dblBond' [-Wunused-variable]
      Bond *dblBond = nullptr;
            ^
    1 warning generated.

    [ 11%] Building CXX object Code/GraphMol/CMakeFiles/GraphMol.dir/Chirality.cpp.o
    rdkit/Code/GraphMol/Chirality.cpp:1738:62: warning: unused parameter 'mol' [-Wunused-parameter]
    bool isBondCandidateForStereo(const Bond *bond, const ROMol &mol) {
                                                                 ^
    1 warning generated.

    [ 44%] Building CXX object Code/GraphMol/CMakeFiles/graphmolMolOpsTest.dir/molopstest.cpp.o
    rdkit/Code/GraphMol/molopstest.cpp:4694:12: warning: unused variable 'nm' [-Wunused-variable]
        ROMol *nm = MolOps::renumberAtoms(*m, nVect);
               ^
    rdkit/Code/GraphMol/molopstest.cpp:6941:16: warning: unused variable 'm' [-Wunused-variable]
            RWMol *m = SmilesToMol(smiles);
                   ^
    2 warnings generated.

    [ 42%] Building CXX object Code/GraphMol/CMakeFiles/graphmoltestPicklerGlobalSetting.dir/testPicklerGlobalSettings.cpp.o
    rdkit/Code/GraphMol/testPicklerGlobalSettings.cpp:257:14: warning: unused parameter 'argc' [-Wunused-parameter]
    int main(int argc, char *argv[]) {
                 ^
    rdkit/Code/GraphMol/testPicklerGlobalSettings.cpp:257:26: warning: unused parameter 'argv' [-Wunused-parameter]
    int main(int argc, char *argv[]) {
                             ^
    2 warnings generated.

    [ 55%] Building CXX object Code/GraphMol/FilterCatalog/CMakeFiles/FilterCatalog.dir/FunctionalGroupHierarchy.cpp.o
    rdkit/Code/GraphMol/FilterCatalog/FunctionalGroupHierarchy.cpp:176:20: warning: unused variable 'NUM_FUNCS' [-Wunused-const-variable]
    const unsigned int NUM_FUNCS =
                       ^
    1 warning generated.

    [ 84%] Building CXX object Code/GraphMol/StructChecker/CMakeFiles/StructChecker.dir/ReCharge.cpp.o
    rdkit/Code/GraphMol/StructChecker/ReCharge.cpp:405:17: warning: unused variable 'atom' [-Wunused-variable]
        const Atom &atom = *Mol.getAtomWithIdx(i);
                    ^
    1 warning generated.

    [ 84%] Building CXX object Code/GraphMol/StructChecker/CMakeFiles/StructChecker.dir/Tautomer.cpp.o
    rdkit/Code/GraphMol/StructChecker/Tautomer.cpp:61:12: warning: comparison of integers of different signs: 'int' and 'unsigned int' [-Wsign-compare]
        if (-1 == ti || -1 == tj) continue;
            ~~ ^  ~~
    rdkit/Code/GraphMol/StructChecker/Tautomer.cpp:61:24: warning: comparison of integers of different signs: 'int' and 'unsigned int' [-Wsign-compare]
        if (-1 == ti || -1 == tj) continue;
                        ~~ ^  ~~
    2 warnings generated.

    [ 88%] Building CXX object Code/GraphMol/RGroupDecomposition/CMakeFiles/testRGroupDecomp.dir/testRGroupDecomp.cpp.o
    rdkit/Code/GraphMol/RGroupDecomposition/testRGroupDecomp.cpp:428:9: warning: unused variable 'res' [-Wunused-variable]
        int res = decomp.add(*mol);
            ^
    1 warning generated.

    [ 96%] Building CXX object Code/SimDivPickers/CMakeFiles/testSimDivPickers.dir/testPickers.cpp.o
    rdkit/Code/SimDivPickers/testPickers.cpp:19:10: warning: using integer absolute value function 'abs' when argument is of floating point type [-Wabsolute-value]
      return abs((double)i - (double)j);
             ^
    rdkit/Code/SimDivPickers/testPickers.cpp:19:10: note: use function 'std::abs' instead
      return abs((double)i - (double)j);
             ^~~
             std::abs
    1 warning generated.

* Close open file handles during build set-up

Under Python3, the update_pains.py file generated warning
messages like:

    == Done updating pains files
    /Code/GraphMol/FilterCatalog/update_pains.py:140: ResourceWarning:
unclosed file <_io.TextIOWrapper
name='/Code/GraphMol/FilterCatalog/../../../Data/Pains/wehi_pains.csv'
mode='r' encoding='UTF-8'>
      for smiles, name in csv.reader(open(PAINS_CSV)):
    /Code/GraphMol/FilterCatalog/update_pains.py:169: ResourceWarning:
unclosed file <_io.TextIOWrapper
name='/Code/GraphMol/FilterCatalog/pains_a.in' mode='r'
encoding='UTF-8'>
      t = open(filename).read()
    /Code/GraphMol/FilterCatalog/update_pains.py:169: ResourceWarning:
unclosed file <_io.TextIOWrapper
name='/Code/GraphMol/FilterCatalog/pains_b.in' mode='r'
encoding='UTF-8'>
      t = open(filename).read()
    /Code/GraphMol/FilterCatalog/update_pains.py:169: ResourceWarning:
unclosed file <_io.TextIOWrapper
name='/Code/GraphMol/FilterCatalog/pains_c.in' mode='r'
encoding='UTF-8'>
      t = open(filename).read()
2018-06-26 13:57:22 -07:00
Greg Landrum
f6bbba411d Fix github1734 (#1741)
* Fixes #1734
still want some additional testing though

* formatting

* typo

* add python tests

* response to review
re-enable some forgotten tests
2018-02-15 20:24:40 -05:00
Greg Landrum
ba12d98ad0 Removes ATOM/BOND_SPTR in boost::graph in favor of raw pointers (#1713)
* Removes ATOM/BOND_SPTR in boost::graph in favor of raw pointers

* Actually delete atoms and bonds...

* RWMol::clear now calls destroy to handle atom/bond deletion

* Changes broken Atom lookup for windows/gcc

* Adds tests for running with valgrind

* Adds test designed for valgrind and molecule deletions

* Removes RNG, actually tests bond deletions

* update swig wrappers

* deal with most recent changes on the main branch
2018-01-07 14:19:47 -05:00
Greg Landrum
636a0f6e69 Cleanup a bunch of compiler warnings (#1697)
* remove a bunch of compiler warnings

* remove some more warnings on windows (there are still plenty to go...)
2017-12-22 12:59:52 +01:00
Greg Landrum
915cf08faa run clang-format with c++-11 style over that 2017-04-22 17:19:10 +02:00
Greg Landrum
7c0bb0b743 clang-tidy output 2017-04-22 17:09:24 +02:00
Greg Landrum
b0f140a55c Fixes #511 2016-03-29 16:56:15 +02:00
Greg Landrum
e08e0d16d8 first pass, using google style 2015-11-14 14:58:11 +01:00
Brian Kelley
403a3d6b7c Suppresses Boost warnings 2015-10-18 13:41:03 -04:00
Brian Kelley
6ebbeb3bd3 Major conversion of std::string API to const std::string & 2015-09-25 15:15:59 -04:00
Riccardo Vianello
7c346d7c2e Code/RDBoost/Exceptions.h moved to Code/RDGeneral 2015-03-16 22:31:48 +01:00
Greg Landrum
7fa02f748b Fixes #430 2015-02-04 13:45:47 +01:00
Greg Landrum
2fbea33612 Fixes #429 2015-02-04 10:20:13 +01:00
Greg Landrum
3f23c91eba did not have the version for breakSomeBonds() quite right 2014-11-22 10:42:17 +01:00
Greg Landrum
1725e22cca allow tracking the number of cuts made by the fragmentation code on a per-atom basis 2014-11-22 07:57:39 +01:00
Greg Landrum
2187437649 fix a couple typos 2014-07-07 15:57:27 +02:00
Greg Landrum
288feb7a8a support partial fragmentation on bonds;
Fixes #288
2014-07-02 05:47:02 +02:00
Greg Landrum
f5cf3322fe code cleanup: removing compiler warnings 2014-05-08 06:06:07 +02:00
Greg Landrum
6c354852d1 small cleanups 2013-11-07 10:57:18 +01:00
Greg Landrum
95c6c7f261 fragmentOnBonds() fix 2013-11-02 07:17:42 +01:00
Greg Landrum
ea42bf5465 BRICS-related bug fixes 2013-02-05 04:56:10 +00:00
Greg Landrum
89398a10c2 make sure computed props get cleared 2013-01-31 04:54:28 +00:00
Greg Landrum
84d6ddb3f3 add fragmentOnBRICSBonds() 2013-01-30 06:31:06 +00:00