Commit Graph

4593 Commits

Author SHA1 Message Date
Paolo Tosco
dfd7d18f27 Fixes multiple definitions of symbols (#5202)
* fixes multiple definitions of symbols

* changes in response to Greg's suggestion

Co-authored-by: Tosco, Paolo <paolo.tosco@novartis.com>
2022-04-16 07:21:15 +02:00
Ric
918f0221b9 Make atom, bond iterators usable in STL algorithms (#5204)
* add fwditerator features

* add a test
2022-04-15 06:57:57 +02:00
Greg Landrum
7e7fdb0f29 Fixes #5196 (#5201)
* Fixes #5196

This fixes the bug as reported, but there's more work to do in order to get the other cases

* cleanup

* fix assignStereochemistry()

* Fixes #5200

* move those functions to the public API

* fix assignStereochemistry

* cleanup

* refactoring in response to review
2022-04-15 05:13:45 +02:00
David Cosgrove
44a91e190b Add test for string rectangle clashing with vector bwtween bonded atoms. (#5186)
* Add test for string rectangle clashing with vector bwtween bonded atoms.

* Restrict the test to double bonds.

* Fix test for no-Freetype build.

Co-authored-by: David Cosgrove <david@cozchemix.co.uk>
2022-04-12 13:55:15 +02:00
Greg Landrum
939d8c3c02 Move to C++17 (#5155)
* bump to c++17

* remove binary_function

* update our boost::hash implementation too
2022-04-12 13:53:07 +02:00
Ric
3b2916c9a4 Fixes #5172 (#5181)
* add test

* fix LogStateSetter

* fix BlockLogs() usage in Draw module

* allow BlockLogs() as a contestmgr

* move test to more suitable location

* guarantee log restoration on __exit__

* skip test if logs cannot be grabbed before block
2022-04-12 05:57:25 +02:00
Alan Kerstjens
a860d16700 Add multi-template isMoleculeXOfReaction overloads (#5171)
* Add multi-template isMoleculeXOfReaction overloads

* Refactored isMoleculeXOfReaction overloads to remove code duplication

* Added tests for multi-template isMoleculeXOfReaction overloads

* Added negative tests for isMoleculeXOfReaction

Co-authored-by: Alan Kerstjens <alan.kerstjens@uantwerpen.be>
2022-04-12 05:32:24 +02:00
Greg Landrum
4fafb72212 update release notes, do deprecations (#5161) 2022-04-08 04:51:07 +02:00
Greg Landrum
419c2c3dfa Fixes #5122 (#5175) 2022-04-08 04:50:30 +02:00
Ric
c02e35d4e7 Fixes #5142 (#5164)
* add a test

* update more atomic num == 0 rules
2022-04-07 16:51:48 +02:00
Greg Landrum
67409c3acf Fixes #5152 (#5153)
Also adds a typeLabel to the bond order queries so that they are easier to recognize
2022-04-04 06:07:57 +02:00
Paolo Tosco
cbd9574522 modified the JS tests to comply with older nodejs versions (#5148)
Co-authored-by: Tosco, Paolo <paolo.tosco@novartis.com>
2022-03-31 19:27:11 +02:00
Brian Kelley
7f033d4a5e Fixes #4992 (#5126)
* Fixes #4992

* Turn off multithreadedsdmolreader test if not built

* Update Code/GraphMol/Wrap/rough_test.py

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

* Update Code/GraphMol/Wrap/rough_test.py

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

Co-authored-by: Brian Kelley <bkelley@relaytx.com>
Co-authored-by: Greg Landrum <greg.landrum@gmail.com>
2022-03-25 16:18:42 +01:00
Gareth Jones
b50bce4ed0 Swig MolDraw2D cairo (#5128)
* MolDraw2DCairo working in SWIG

* C# test
2022-03-24 05:54:12 +01:00
Greg Landrum
b05714d0d2 Fixes #5104 (#5114) 2022-03-23 08:19:15 -04:00
Greg Landrum
d614cf1528 Fixes #5108 (#5113) 2022-03-23 06:09:55 +01:00
Paolo Tosco
67d8dd3dcd Add a couple of depiction helper functions and some JS bindings (#5115)
* - adds normalizeDepiction() and Python wrappers
- adds straightenDepiction() and Python wrappers
- adds an early check for R-labels to be in the accepted range to avoid throwing an exception later on
- adds a kekulize flag to process_details() to enable depicting molecules which fail to kekulize from JavaScript
- adds JavaScript functions to get fingerprints as Uint8Array
- adds JavaScript function to generate pickled molecule as Uint8Array
- adds JavaScript function to restore molecule from Uint8Array pickled
- adds has_coords() JavaScript function
- adds set_new_coords() to set JSMol coordinates in-place
- adds get_mol_copy() to obtain a JSMol copy

* fix build failures

* changes in response to review

Co-authored-by: Tosco, Paolo <paolo.tosco@novartis.com>
2022-03-22 14:18:30 +01:00
Greg Landrum
2ae44cd468 support flexicanvas in the MinimalLib (#5109) 2022-03-21 04:52:22 +01:00
Greg Landrum
51b03fcdcb Fixes #5095 (#5096)
* Fixes #5095

* add some casts to make that a bit less disruptive

* go back to the simpler form for constructing the test table

* fix release notes

* do cleanup step too

* updates in response to review
2022-03-17 16:36:30 +01:00
Eisuke Kawashima
ba6d8e0d3b clang-tidy: readability-simplify-boolean-expr (#4639) 2022-03-17 13:50:50 +01:00
Greg Landrum
0945850816 add #include <utility> (#5060) 2022-03-17 04:56:34 +01:00
Ric
00460547a0 fix + test (#5100) 2022-03-17 04:53:17 +01: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
54ff5ec5dd Add H and X specification to P tautomerization rules (#5077)
Fixes #5008
2022-03-14 04:41:09 +01:00
Greg Landrum
2489b6cdfb Make the RGD code work when rgroupLabelling is Isotope (#5088)
Also fixes an off-by-one problem with the assigned isotope labels
2022-03-14 04:40:22 +01:00
Greg Landrum
36b9669179 modify the way legends are handled with the flexicanvas mode (#5082)
* modify the way legends are handled with the flexicanvas mode

* support partially flexicanvases

* changes in response to review
also update expected hashes
2022-03-13 07:15:16 +01:00
Greg Landrum
fd1752e006 disable Info and Debug logs by default (#5065)
* disable the info and debug logs by default

* adjust tests to the newly disabled logs

* add LogStateSetter

* namespace reorg

* add some tests

* remove vestigial code

* switch to using std::vector
2022-03-12 10:04:28 +01:00
Eisuke Kawashima
27f711a658 Run clang-tidy (readability-braces-around-statements) (#4977)
https://github.com/rdkit/rdkit/pull/3024#discussion_r526549843
2022-03-10 08:00:10 +01:00
Eisuke Kawashima
b53ee20b49 Fix Flake8 erorrs (#4252)
* Fix PEP8 [E101](https://github.com/PyCQA/pycodestyle/blob/2.8.0/docs/intro.rst#error-codes)

* Fix PEP8 [E502](https://github.com/PyCQA/pycodestyle/blob/2.8.0/docs/intro.rst#error-codes)

* Fix PEP8 [E703](https://github.com/PyCQA/pycodestyle/blob/2.8.0/docs/intro.rst#error-codes)

* Fix PEP8 [E711](https://github.com/PyCQA/pycodestyle/blob/2.8.0/docs/intro.rst#error-codes)

* Fix PEP8 [E712](https://github.com/PyCQA/pycodestyle/blob/2.8.0/docs/intro.rst#error-codes)

* Fix PEP8 [E713](https://github.com/PyCQA/pycodestyle/blob/2.8.0/docs/intro.rst#error-codes)

* Fix PEP8 [E722](https://github.com/PyCQA/pycodestyle/blob/2.8.0/docs/intro.rst#error-codes)

* Fix PEP8 [W605](https://github.com/PyCQA/pycodestyle/blob/2.8.0/docs/intro.rst#error-codes)
2022-03-10 06:55:18 +01:00
Ichiru Take
9822e9439c [ENH]: Support greater use of findAtomEnvironmentOfRadiusN() (#4970)
* [WIP-ENH]: Support greater use of `findAtomEnvironmentOfRadiusN()`

This PR is the feature support for PR 4262. I am not so confident when coding the C++ as it is my first time hands-on experience

There are still many thing that should be done but I still need several support

* Update MolOps.cpp

* Fix build error

Fix according to this? https://www.boost.org/doc/libs/1_42_0/libs/python/doc/v2/object.html#object-spec-ctors

* Fix build error

* Fix test2.cpp

* Fix `include` issue

* Fixed as requested

* Update Subgraphs.cpp

* Update Subgraphs.cpp

* Update Subgraphs.cpp

* Fix reported error, correct doc

* Update MolOps.cpp

* Update test and fix error

* Fix default argument

* Fix duplication

* Update Subgraphs.cpp

* Fix test bug

* Updated a test and fix reported error

* Update Subgraphs.cpp

* Fix reported error

* Update test2.cpp

* Fix reported error of memleak and introduce new function

* Fix incorrect variable

* Update test2.cpp

* Update test2.cpp

* Update MolOps.cpp

* Update MolOps.cpp

* Fix algorithm & Add test docs

* Update test2.cpp

* Update Subgraphs.cpp

* New argument `bondDist` - Optimize the `FindAtomEnvFromMToN`

Documentation is syncronized the meaning between C++ and Python

- New argument `bondDist`
- `findAtomEnvironmentOfRadiusMToN()` now called once instead of twice due to the introduction of `bondDist`

* Update Subgraphs.cpp

* Update test2.cpp

* Fix casting

* Correct the test

* Update Subgraphs.cpp

* Remove buggy function and replace argument position

* Update Subgraphs.h

* Fix build failed

* Optimization

Reduce graph expansion if it is the last radius

* Adjust codebase based on review

- Update Copyright
- Add doc to prove optimization

* suggested changes

Co-authored-by: greg landrum <greg.landrum@gmail.com>
2022-03-09 14:01:24 +01:00
Greg Landrum
8559ef7526 Fix #5055 (#5071)
* Fixes #5055
The problem was a hash collision with the invariants

* switch to using a bitset for the invariant instead of a hash
2022-03-09 13:55:37 +01:00
David Cosgrove
cd6c915c9e Fix github 5061. (#5063)
* Fix github 5061.

* Update hash code.

Co-authored-by: David Cosgrove <david@cozchemix.co.uk>
2022-03-07 11:06:51 +01:00
Greg Landrum
4bbbc6611d Add a CXSMILES option to the MolHash (#5058)
* Nonchiral atoms should be removed from StereoGroups

This fixes a bug where atoms which have no chirality were left in StereoGroups

In order to make this work, ROMol::setStereoGroups() needed to be made public.
That shouldn't be a problem since it doesn't change connectivity.

* support CXSmiles extensions in the hashes

* initial tests for that

* some cleanup

* copyright header cleanup

* minor refactoring

* call out the changes in the release notes

* extension and more testing

* add python wrappers
2022-03-03 16:00:38 +01:00
Ric
6418918710 fix MSVC DLL build after moldraw2d refactor (#5046)
* fix build

* recheck

* install DrawTextQt.h

* Some additional cleanup and merge to the current state of master (#8)

* silence warnings in MSVC compliatons (#5044)

* enable the multithreaded LeaderPicker on linux (#5043)

* enable the multithreaded leaderpicker on linux

* response to review

* AtomSymbol needs to have a virtual destructor (#5045)

* AtomSymbol needs to have a virtual destructor

* additional cleanup of virtual functions

* typo fix

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

* Expose MolzipParams::atomSymbols to python (#5054)

* [WIP] Clean up the warning landscape (#5048)

* suppress a bunch of warnings from third-party code
get rid of one warning in RDKit code

* corrections

* fix the maeparser flags

* remove some more inchi warnings with clang

* Further cleanup of the public interface.
Get all the DrawText bits out of the header files used by client code.

Co-authored-by: Brian Kelley <fustigator@gmail.com>

Co-authored-by: Greg Landrum <greg.landrum@gmail.com>
Co-authored-by: Brian Kelley <fustigator@gmail.com>
2022-03-02 17:13:32 +01:00
Greg Landrum
00f23b5047 [WIP] Clean up the warning landscape (#5048)
* suppress a bunch of warnings from third-party code
get rid of one warning in RDKit code

* corrections

* fix the maeparser flags

* remove some more inchi warnings with clang
2022-03-01 05:00:25 +01:00
Brian Kelley
240377115a Expose MolzipParams::atomSymbols to python (#5054) 2022-02-28 06:42:52 +01:00
Brian Kelley
fac62cebe9 AtomSymbol needs to have a virtual destructor (#5045)
* AtomSymbol needs to have a virtual destructor

* additional cleanup of virtual functions

* typo fix

Co-authored-by: greg landrum <greg.landrum@gmail.com>
2022-02-25 21:34:04 +01:00
Greg Landrum
235df5c592 enable the multithreaded LeaderPicker on linux (#5043)
* enable the multithreaded leaderpicker on linux

* response to review
2022-02-25 07:25:48 -05:00
Paolo Tosco
27b92a24ae Fixes JS build broken by #4948 (#5042)
Co-authored-by: Tosco, Paolo <paolo.tosco@novartis.com>
2022-02-24 06:35:32 +01:00
Kaushalesh Shukla
f9bbdc4766 Improving atom colors for dark mode. (#5038)
Changing colors of N, Br and I in dark mode.

Co-authored-by: Kaushalesh Shukla <shukla@schrodinger.com>
2022-02-23 20:01:18 +01:00
Greg Landrum
67f0018e35 Fixes #5036 (#5041) 2022-02-23 06:11:40 -05:00
Greg Landrum
6a449def73 Fixes #4981 (#5030) 2022-02-22 20:35:44 +01:00
David Cosgrove
94cde75973 Make FMCS check bond stereo. (#5009)
* Make FMCS check bond stereo.

* Increase timeouts.

* Remove spare test.

Co-authored-by: David Cosgrove <david@cozchemix.co.uk>
2022-02-22 06:50:17 +01:00
Maciej Wójcikowski
93282a4bcf Drop gist_qmol_ops in upgrade scripts in case it exists (#5021) 2022-02-22 06:49:54 +01:00
Kevin Burk
7bd9f7b434 Remove extra newline from Kekulize error message. (#5022)
* Remove extra newline from Kekulize error message.

* Fix test for exception message.
2022-02-22 04:48:14 +01:00
David Cosgrove
f93016a77f Refactor mol draw2 d (#4948)
* MolDraw2D refactoring
- rename setupMoleculeDraw->initMoleculeDraw
- track whether or not initDrawing() has been called
- centralize calls to initDrawing() and clearDrawing() into initMoleculeDraw()
- update svg hashes in tests

* update some expected test results

* support changing font scale and default scale
add reaction test

* does not work... this is hard

* all tests pass

* do something about legends

* docs

* more tests

* more docs

* cleanup

* going around in circles...
hopefully converging

* cleanup

* Single bond skeleton works.

* Simple bond drawing seems to be working.

* Initial addition of atom symbols.

* Stash of not-quite-working atom symbols prior to major surgery.

* Atom symbols seem to be working.  Major surgery not required, just inverted Y coords at the outset.

* Add classes to atom labels.

* Renamed AtomLabel AtomSymbol.

* Add highlights.

* Fix bug from PR4839.

* Molecule note.

* Added atom notes.

* Added bond notes.

* Extract radicals.

* Annotation via new DrawAnnotation class.

* Add brackets.

* Add linknodes.

* Add close contacts.

* Add attachment points.  Fix wavy lines.

* Draw molecules in grid.

* Tidy.

* Fix radicals when font has hit maxFontSize.
Make getDrawCoords work.

* Draw primitives take atom or draw coords.

* Fix legends.

* More fixing for tests.  DrawMol::setScale now takes font scale as well.

* tidy debug writes

* Variable fraction of panel for legend.

* Better legend positioning.

* Fix sub- and super-script spacing.
Added spaces to Freetype strings.

* Basic reaction drawing.

* Reaction highlighting.

* Minor tweak to reacctions.

* Tweaked reaction DrawMol widths.

* Fix atomTags.

* Fix catch tests except contours.

* Contouring working in catch_tests.cpp.

* Fix catch tests.

* AtomSymbol and DrawAnnotation into MolDraw2D_detail.

* DrawMol and DrawShape into MolDraw2D_detail.

* DrawText inot MolDraw2D_detail.

* Machete out.

* DrawText goes private.

* Move some stuff about, such as StringRect to its own header.

* Python wrapper compiles (but crashes when Draw imported).

* More tidying.  Python DrawArrow failing.

* Linux changes.

* Fixed error in DrawShapeArrow spotted by valgrind.
Fixed some warnings from gcc.

* Maybe fixed DrawArrow.

* Added basic argparse interface.

* Added newlines.

* Changes in response to review.
Non-const args in move constructors and operator=.
Added missing classes to MolDraw2D_detail.
Deleted move operator= where it had been forgotten.
Fixed copyright dates.

* Deleted all default c'tors in derived classes.

* Changes in response to review:
Wedge widths now a proportion of mean bond length in draw coords..
Add padding below legend when positioning it.

* Fix tests.

* Fix the private/protected mess of the new classes.

* Moved doesLineIntersect etc.

* Reinstate original alignString for non-FT drawings.

* More faffing about with reaction layouts.

* Fix font sizes in testGitHub3391.

* Fix atom notes fitting inside fat wedges.

* Fix molecule annotation font size.

* More fixes of rectangle/triangle collision detection.

* Test for highlight linewidth multiplier.

* Use push_back not emplace_back.

* Attempt at better Freetype char spacing.

* Option to turn off TEST_ASSERT. Currently off.

* Fixed embarrassing maths to do with wedge fatness.

* More tidying post-review.

* Document highlight_linewidth_multipliers.

* Expose baseFontSize to Python.

* Changes in response to review.

* Allow DrawMolecules molecules to be drawn to different scales.

* Fix bond sneaking between C:8 in, for example, reactions.

* Fix bad re-factoring.

* Fix globbing.

* Changes in response to review.

* Add invariant check.

* Add draw option to fix font size.

* suggested changes

* Update catch test results.

* Fix expected freetype results.

* Fix non-freetype drawers.

* Fin non-freetype test results.

* get the Qt drawer working too

* Fix disappearing reaction highlights.

* Changes as result of review.

* Fixed non-FreeType hash codes for reaction SVGs.  Extra comment in catch_tests.

* reactant highlighting was clearning properties

* Fix for failing contour python test.

* fix a non-freetype problem

* swig wrappers working

* Bump timeouts in test.

Co-authored-by: greg landrum <greg.landrum@gmail.com>
Co-authored-by: David Cosgrove <david@cozchemix.co.uk>
2022-02-18 16:30:21 +01:00
David Cosgrove
162361e0d2 operator= returns *this. (#5013)
Co-authored-by: David Cosgrove <david@cozchemix.co.uk>
2022-02-16 15:06:02 +01:00
Paolo Tosco
0d8e985c38 queries containing AtomAnd should not be considered atom lists (fixes #5006) (#5007)
Co-authored-by: Tosco, Paolo <paolo.tosco@novartis.com>
2022-02-14 04:58:27 +01:00
Greg Landrum
9626726b85 Fixes #4996 and #4998 (#5001)
* Fixes #4996

also switches to using the GraphMol version of catch_main.cpp so builds are faster

* Fixes #4998

we should probably discuss this one

* compare with previous results
2022-02-12 04:18:17 +01:00
Steve Roughley
ede860ae31 Transform3d documentation (#4997)
* Fixed missing documentation

* Update Code/Geometry/Transform3D.h

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

Co-authored-by: Greg Landrum <greg.landrum@gmail.com>
2022-02-10 08:03:10 +01:00