Commit Graph

52 Commits

Author SHA1 Message Date
Manan Goel
bfc4b3a230 Kekulization error create scaffold network (#3195)
* Fixes #3153
Added logic to handle cases where there is C+ aromatic atom by adding an explicit hydrogen to it

* Improved tests by adding checks if the scaffold network is created correctly

* Replaced implemented linear search by pre-implemented STL find function
2020-06-02 05:55:41 +02: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
dc7cc84a0c Fix typo [ci skip] 2019-10-17 17:45:50 +09:00
Ric
a6b26253ff Fix (most of) mem problems (#2123)
* do not use new on loggers

* del pointers in testDistGeom

* Update Dict hasNonPOD status on bulk update

* delete new Dicts in memtest1.cpp

* fixes in MolSuppliers and testFMCS

* PeriodicTable singleton as unique_ptr

* fix EEM_arrays leak

* fix leaks in testPBF

* fix ParamCollection leak in test UFF

* fix leaks in MMFF

* clear prop dict before read in in pickler

* fix leaks in testFreeSASA

* fix leaks in test3D

* modernize Dict.h & SmilesParse.cpp

* fix leaks in testQuery

* fix leaks in testCrystalFF

* fix leaks in cxsmilesTest

* fix leaks in Catalog & mol cat test

* fix leaks in ShapeUtils & tests

* fix leaks in testSubgraphs1

* fix leaks testFingerprintGenerators

* fix leaks in Catalog/FilterCatalog

* fix leaks in graphmolqueryTest

* these changes reduce bison parse leaks

* fixed leaks in testChirality.cpp

* fix leaks + 2 tests in testMolWriter

* fix 4m leaks in substructLibraryTest

* small improvements to molTautomerTest; still leaks

* fix leaks in testRGroupDecomp

* fix leaks in test; parser still leaks

* fix leaks in itertest

* fix 4m leaks in testDepictor

* fixes in smatest; still leaking due to parser

* fixes in testSLNParse; still leaking due to parser

* flex/bison: always add atoms with ownership; smarts error cleanup

* fix leaks in testReaction

* fix leaks in testSubstructMatch

* fix leaks in resMolSupplierTest

* fix leaks in testChemTransforms + bug in ChemTransforms

* fix leaks in testPickler

* fix leaks in testMolTransform

* fix leaks in testFragCatalog

* fix leak in testSLNParse. Still leaks due to Smiles

* fixed most leaks in testMolSupplier

* pre bison fix

* fix some atom & bond parse problems; others still fail

* bison smiles & smarts, atoms & bonds more or less fixed

* fix leaks in molopstest.cpp

* fix leaks in testFingerprints, MACCS.cpp & AtomPairs.cpp

* fix leaks in moldraw2Dtest1

* fix leaks in testDescriptors

* fix leaks in testInchi

* fix leaks in testUFFForceFieldHelpers

* fix leaks in hanoiTest & new_canon.h

* fix leaks in testMMFFForceField

* fix leaks in graphmolTest1

* fix leaks in testMMFFForceFieldHelpers

* fix leaks in testDistGeomHelpers

* fix leaks in testMolAlign

* initialize occupancy & temp facto with default values

* fix leak in TautomerTransform

* updated suppressions

* fix testStructChecker

* fix logging & py tests

* fix TautomerTransform class/struct issue

* remove misplaced delete in testSLNParse

* deinit in testAvalonLib1

* fix Avalon-triggered(?) bug in StructChecker/Pattern.cpp

* fix random testMolWriter/Supplier fails

- diversify output file names to avoid clashing.
- unify Writers close/destruct behavior.
- flushing/closing in tests.

* use reset in FFs Params.cpp

* comments on testMMFFForceField

* unrequired 'if's added to mol suppliers

* correct cast in FilterCatalog.h

* use unique_ptr in MACCS Patterns

* remove unrequred if in new_canon

* update & move suppressions
2018-10-29 14:33:26 +00: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
Brian Kelley
5fe9bbb780 Adds ability to read and parse marvin smarts in mol blocks 2017-12-22 08:20:31 -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
f6ced134f0 a number of other small changes from manually reviewing the PR 2017-04-22 17:24:57 +02: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
270f7b76e5 Partial support for reading CXSMILES (#1237)
* add a SmilesParserParams object to prepare for this

* add a SmilesParserParams object to prepare for this

* add tests for the SmilesParseParmas

* support name parsing, should it be the default?

* rename CXNSmiles to CXSmiles;
add a spirit parser for CXSmiles coordinate that is at least syntax correct

* abandon boost::spirit for now; crude atom token parser

* support params in smiles parser (not tested, may not build)

* can read coords and atom labels along with mol names; crude, but works

* read coordinate bonds

* remove some compiler warnings with VS2015

* remove a bunch of compiler warnings on windows

* remove more warnings on windows

* remove more warnings on windows

* backup commit: first pass at parsing query features

* radical spec parsing

* handle attachment points using atom mapping

* switch to a named property for atom labels

* fix handling of the "A" atom query

* add functions to construct A and Q queries (needs more work)

* fix a problem created while cleaning up warnings earlier

* add some additional convenience functions for making generic atoms.
Still need M and to recognize these while writing CXSMILES

* add M queries; update some tests

* fix a linux compile problem

* get the cxsmiles stuff working in python; basic testing

* support "M" in CXSMILES
2017-01-31 13:50:36 -05:00
Brian Kelley
71a0ae32b2 Adds replaceCore function that takes a matchVect (#1013)
* Adds replaceCore function that takes a matchVect

* Fixes error reporting, adds tests

* Switches PRECONDITION to ValueError exceptions

* Fixes MatchVectType annoyance in swig.  Don't know why this is necessary.

* Silences warnings

* Adds working doctests and better explanations.
2016-08-17 04:40:59 +02:00
Brian Kelley
fe7d4fefb3 Dev/chemtransforms chirality (#1006)
* Adds useChirality to replaceCore, fixes atom ordering
  n.b. when replaceDummies==False and labelByIndex==True
   the indices used are the indices of the dummy atom,
   previously they were the atoms the dummy was connected
   to.

* Adds useChirality to the remaining functions in ChemTransforms

* Adds a mess o tests

* Fixes labelByIndex=false ordering for dummies

* Removes debugging statements
2016-08-09 04:41:36 +02:00
Greg Landrum
e08e0d16d8 first pass, using google style 2015-11-14 14:58:11 +01:00
Brian Kelley
6ebbeb3bd3 Major conversion of std::string API to const std::string & 2015-09-25 15:15:59 -04:00
Greg Landrum
97d8b8a7db this was a similar bug to #584 2015-08-27 10:13:46 +02:00
Riccardo Vianello
7c346d7c2e Code/RDBoost/Exceptions.h moved to Code/RDGeneral 2015-03-16 22:31:48 +01:00
Brian Kelley
95a92282d1 Dictionary access is saniztized and optimized.
o rdkit gains a RDKit::common_properties namespace that contains common string value properties

 o Dict.h and below gain getPropIfPresent that attempts to retrieve a property and returns
  true/false on success or failure.  This is used to optimize access.

 o rdkit learns how to pass property keys by reference, not value.

A new namespace has been added to RDKit, common_properties
that contains the std::string values for commonly used
properties.  This helps to avoid typos in string values
but also avoids a creation of std::strings from character
values.  All accessors (has/get/clear and getPropIfPresent) now pass
the key by reference.

Additionally, getPropIfPresent removes the double lookup
of hasProp/getProp which can be a significant speedup
in the smiles and smarts parsers (10-20%)
2015-01-15 12:23:29 -05:00
Greg Landrum
302b84960b improve docs;
cleanup some compiler warnings;
add parseQueryDefText()
2014-05-03 06:45:35 +02:00
Greg Landrum
d7971cc40c Fixes #171 2013-12-06 06:54:31 +01:00
Greg Landrum
5a340dd454 Fix a typo 2013-03-01 06:53:17 +00:00
Greg Landrum
00655e7bd6 backup commit; may not build 2013-01-29 06:28:31 +00:00
Greg Landrum
03ef0e6f1b Add support for merging recursive queries on the C++ side
(contribution from Sereina Riniker)

A pure Python version of this was in the tutorial material from the RDKit UGM.
2013-01-08 15:13:01 +00:00
Greg Landrum
68e370d581 initial pass at a fix for sf.net issu275 2012-12-18 17:16:06 +00:00
Greg Landrum
bef74c1c81 initial support for reading query files. Python wrapper still needs to be done. 2012-12-17 10:28:35 +00:00
Greg Landrum
57572918de add initial support for addRecursiveQueries to ChemTransforms.
active and tested in C++ and python, in the SWIG wrapper but untested.
still needs linux and windows builds.
2012-12-17 09:06:02 +00:00
Greg Landrum
cfaea83d7d optimizations for molecule construction 2012-08-27 04:52:27 +00:00
Greg Landrum
93f6445e01 minor cleanup to RWMol::insertMol; add combineMols to ChemTransforms 2012-07-10 04:00:46 +00:00
Greg Landrum
2e5b33e2fd fix and test issue 3537675 2012-07-02 03:07:02 +00:00
Greg Landrum
e7d25d7973 tests passing except reactions 2012-04-21 04:40:55 +00:00
Greg Landrum
a99ad44859 clean up some compiler warnings 2011-12-31 15:58:57 +00:00
Greg Landrum
3b751bad46 fix and test issue 3453144 2011-12-13 04:56:56 +00:00
Greg Landrum
3ba11316b2 initial pass at requiring core-dummy matches in replaceCore; remove an extra header import from MolOps.cpp 2011-03-28 06:13:48 +00:00
Greg Landrum
633be739b0 - fix an edge case with disconnected molecules in the MurckoDecompose code.
- test that empty results are handled properly in MurckoDecompose.
2011-03-04 06:37:26 +00:00
Greg Landrum
e1e1e5929d fix assignment of dummy positions in replaceCore 2011-03-03 05:02:13 +00:00
Greg Landrum
d6741adc22 make some types more explicit in MolOps.h (easier SWIG wrapping)
support finding non-specfied chiral centers
remove vestigial GetFragmentSmiles() function
additional flexibility in AllChem.TransformMol()
2011-02-24 08:00:39 +00:00
Greg Landrum
4ca59a1987 clean up conformer handling in ChemTransforms 2011-02-22 06:16:23 +00:00
Greg Landrum
e2521dccbc add murcko decomposition;
be sure pathToSubmol copies over coordinates
2011-02-21 06:43:53 +00:00
Greg Landrum
f3fbef45c5 update copyright statements 2010-09-26 17:04:37 +00:00
Greg Landrum
2805355f34 First pass at the rewrite:
this gets rid of all the "preceding atom" code and passes all tests on linux

builds on other OS's and more extensive regression testing is required
2010-05-31 14:08:11 +00:00
Greg Landrum
57cd641e50 in replaceCore: support labelling dummies with the index of the corresponding atom in the core 2008-11-06 09:10:38 +00:00
Greg Landrum
b36e6a911f fix a drawing bug
update release notes and docs
implement the new dummy atom stuff in ChemTransforms
expose lists of atom rings and bond rings from RingInfo
2008-05-14 20:20:52 +00:00
Greg Landrum
1d40302dcb This builds and tests correctly with msvc8. Linux and msvc7 tests are still required.
The primary changes consist of cleaning up edge cases that lead to memory errors (under VC8 with debugging turned out)
2008-02-16 05:25:53 +00:00
Greg Landrum
5b550374cb fix problems with chirality and replaceCore 2008-01-30 15:39:46 +00:00
Greg Landrum
a788e29511 merge the changes from the CanonicalizerRework30Nov branch in.
The changes are revs 451:498.
2008-01-30 14:53:04 +00:00
Greg Landrum
3e6cb74075 cleanup and documentation changes 2007-11-14 06:09:52 +00:00
Greg Landrum
5da5c9f7a6 add support for not removing dummies out from the core 2007-10-24 16:36:17 +00:00