Commit Graph

53 Commits

Author SHA1 Message Date
Greg Landrum
9367e207d5 remove some warnings with -Wextra (#7339) 2024-04-11 11:01:59 +02:00
Greg Landrum
716b38a2d8 Fixes #7140 (#7150)
* Fixes #7140

deprecates the old version and creates a new one in Chirality.h
adds it to the python wrappers

* changes in response to review

* backup

* support custom labels with templates
2024-02-12 15:50:02 +01:00
David Cosgrove
6b916c3e48 Fixes 7036 - middle line of triple bond meeting wedge (#7046)
* Before making a wedged bond meet a single bond, check if they're co-linear and skip if so.

* Write the file before the test so we can still look at it if the test fails.

---------

Co-authored-by: David Cosgrove <david@cozchemix.co.uk>
2024-01-16 06:27:50 +01:00
tadhurst-cdd
d5d4d194ec atropisomer handling added (#6903)
* atropisomer handling added

* fixed non-used variables,  linking directives

* BOOST LIB start/stop fixes, linking fix

* Fixes for RDKIT CI errors

* minimalLib fix

* changed vector<enum> for java builds

* check for extra chars in CIP labeling

* removed wrong deprecated message

* fix ostrstream output error?

* restored _ChiralAtomRank to lowercase first letter

* changes for merged master

* Fixed catch label for new Catch package

* update expected psql results

* get swig wrappers building

* restore MolFileStereochem to FileParsers

* fix java wrapper for reapplyMolBlockWedging

* some suggestions

* move a couple functions out of Bond

* Merge branch 'master' into pr/atropisomers2

* merged master

* Renamed setStereoanyFromSquiggleBond

* atropisomers in cdxml, rationalize atrop wedging, stereoGroups in drawMol

* fix for CI build

* attempt to fix java build in CI

* attempt to fix java build in CI #2

* New routine to remove non-explicit  3D-geneated chirality

* changed to use pair for atrop atoms and related bonds

* Changes as per PR reviews

* PR review respnses

* PR review reponse - more

* Fix merge from master

* fixing java ci after merge

* Updated the help doc for atripisomers

* update the atropisomer docs

* improve the images

* add the source CXSMILES

---------

Co-authored-by: greg landrum <greg.landrum@gmail.com>
2023-12-22 04:58:18 +01:00
David Cosgrove
fbd548ecdd Github6968 (#6979)
* Fix bond highlighting of linear system.

* Hash code & un-comment out code.

* Response to review.
2023-12-18 06:25:23 +01:00
Greg Landrum
036f75bca3 Removed some code duplication between Depictor.cpp and common.h (#6799)
* Revert "Revert "Removed some code duplication between Depictor.cpp and common.h (#6368)" (#6797)"

This reverts commit 824616c5b9.

* security blanket: add back tests of the current usage pattern

* - fixed bug in get_sss_json() (#6806)

- added unit test for the above

Co-authored-by: ptosco <paolo.tosco@novartis.com>

---------

Co-authored-by: Paolo Tosco <paolo.tosco.mail@gmail.com>
Co-authored-by: ptosco <paolo.tosco@novartis.com>
2023-10-18 04:04:45 +02:00
Greg Landrum
824616c5b9 Revert "Removed some code duplication between Depictor.cpp and common.h (#6368)" (#6797)
This reverts commit ddfe708b37.
2023-10-11 06:42:27 +02:00
Paolo Tosco
ddfe708b37 Removed some code duplication between Depictor.cpp and common.h (#6368)
* - implemented alignOnly mode into RDDepict::generateDepictionMatching2DStructure()
- the allowRGroups option now also supports potentially missing R groups (i.e., R groups that do not match any atom, such as those connected to generic aromatic atoms)
- added the adjustMolBlockWedging parameter (which defaults to true)   to invert/clear molblock wedging information as appropriate
- added unit tests for the above new features
- added RDDepict::generateDepictionMatching2DStructure() overloads taking RDDepict::ConstrainedDepictionParams parameter for convenience
- removed some redundant RDDepict:: namespace specifications

* Fix chirality handling when the chiral atom is the first one in a SMARTS (#6730)

* Set _SmilesStart when parsing SMARTS.

* SmartsWriter should also invert first atoms, like SMILES.

* Update test cases now these SMILES match themselves as SMARTS.

* rerun bison

* cleanup a possible repeated define

* When an atom moves from the first to second position winding should flip in SMARTS (i.e. same as SMILES).

---------

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

* Some small cleanups from the UGM Hackathon (#6744)

* move definition of a couple global constants from a .h to a .cpp

* careful removal of some redundant atom PRECONDITIONS

* careful remove of some redundant ROMol PRECONDITIONS
a bit of additional cleanup

* optimization masquerading as modernization

* some more tidying

* a bit more atom cleanup

* change in response to review

* Fixes #6756 (#6780)

* update release notes and cmakelists for beta (#6788)

* move problematic functions to Chirality namespace

* - implemented alignOnly mode into RDDepict::generateDepictionMatching2DStructure()
- the allowRGroups option now also supports potentially missing R groups (i.e., R groups that do not match any atom, such as those connected to generic aromatic atoms)
- added the adjustMolBlockWedging parameter (which defaults to true)   to invert/clear molblock wedging information as appropriate
- added unit tests for the above new features
- added RDDepict::generateDepictionMatching2DStructure() overloads taking RDDepict::ConstrainedDepictionParams parameter for convenience
- removed some redundant RDDepict:: namespace specifications

* move problematic functions to Chirality namespace

* added missing dependency

* let's check what is going wrong

* CoordGen tests should not run if CoordGen support is not available in the build

---------

Co-authored-by: Tosco, Paolo <paolo.tosco@novartis.com>
Co-authored-by: John Mayfield <john@nextmovesoftware.com>
Co-authored-by: greg landrum <greg.landrum@gmail.com>
2023-10-11 06:41:37 +02:00
Greg Landrum
83cf752eb0 extract continuous lines from the conrec code (#6676) 2023-09-15 09:00:26 +02:00
David Cosgrove
9249ca5cc8 Make reaction drawings deal with padding properly. (#6686)
* Make reaction drawings deal with padding properly.

* Move large lambdas into anonymous namespace.
Correct totWidth after scaling plusWidth.

* Update some hashcodes.

* Take out debugging setting.  Bugger.

* Padding on height as well.

* Hash codes.

* Delay padding use in flexiCanvas.

* More centring.

* Light grey background in side_by_side table.

* Tweak agents layout for testReactionCoords.

* Fully ignore missing reagents and products.

* Hash codes.

* Const references.

---------

Co-authored-by: David Cosgrove <david@cozchemix.co.uk>
2023-09-09 06:46:35 +02:00
Ric
9737b10143 fix some more leaks (#6684)
* fix some more leaks

* review comments
2023-09-04 06:38:01 +02:00
David Cosgrove
6f70dc2a7d Github6400 (#6553)
* Fix bug where large padding gave a legend font size of 0.
The padding is now implemented by making a smaller, offset drawing area within the width_ and height_, dimensions drawWidth_, drawHeight_.  The previous drawHeight_ has been replaced by molHeight_.

* Update test results.

* Update hash codes.

* Update test results.

* Update test results for no freetype.

* Update hash codes for no freetype.

* Update hash codes for freetype.

* Update hash codes for no freetype.

* Update hash codes for freetype.

* Update expected test results.

* Update hash codes.

* Fix contour plots not being lined up with atoms.

* Fix shrinkToFit.

* Update expected test result.

* Fix typo in test name.

* Update expected test result.

* Update expected test result.

---------

Co-authored-by: David Cosgrove <david@cozchemix.co.uk>
Co-authored-by: Greg Landrum <greg.landrum@gmail.com>
2023-08-30 12:35:33 +02:00
David Cosgrove
64550f0a26 Check for very close atoms and act accordingly. (#6583)
Co-authored-by: David Cosgrove <david@cozchemix.co.uk>
2023-08-03 18:53:00 +02:00
David Cosgrove
a8d9e6de9c Don't call bondNonRing with a 2-label double bond. (#6571) 2023-07-23 06:48:40 +02:00
David Cosgrove
1e16a86648 Fix clash of molecule note with molecule. (Github 6397). (#6444)
Co-authored-by: David Cosgrove <david@cozchemix.co.uk>
2023-06-17 06:00:27 +02:00
Paolo Tosco
a11a9ce607 fixes #6416 (#6425)
Co-authored-by: Tosco, Paolo <paolo.tosco@novartis.com>
2023-06-02 09:33:07 +02:00
Paolo Tosco
fb878bdbe4 exposed queryColour in MolDrawOptions (#6282)
Co-authored-by: Tosco, Paolo <paolo.tosco@novartis.com>
2023-04-14 04:52:59 +02:00
Greg Landrum
cde573d621 add features to allow drawing molecules in arbitrary positions on a large canvas (#6210)
* drawMolecule and drawMolecules should not be virtual

* clarity

* add getMolSize() and flexiMode

* changes in response to review
2023-03-22 17:27:10 +01:00
David Cosgrove
1f0a35f732 Better name for areBondsLinear. (#6196)
Co-authored-by: David Cosgrove <david@cozchemix.co.uk>
2023-03-15 06:05:36 +01:00
David Cosgrove
187814e77b Uncross accidentally crossed bonds. (#6187)
Co-authored-by: David Cosgrove <david@cozchemix.co.uk>
2023-03-14 06:39:58 +01:00
David Cosgrove
8d859469c5 Fix drawing of Aminosulfimine Take 2 (#6169)
* Test for Github6160

* Basic fix.  Problem caused by 4 coordinate sulfur.

* Get the test right.

* Fix truncation of double bonds to atom symbols.

* Fix double bond lines if both ends have atomic symbol.

* Tidy.
Add hash codes.

* Response to review.

---------

Co-authored-by: David Cosgrove <david@cozchemix.co.uk>
2023-03-06 17:37:29 +01:00
David Cosgrove
cf52e537cb Fix small ACS1996 drawing being cropped. (#6114) 2023-02-20 23:08:45 +01:00
Paolo Tosco
53800c616c Enable optional visualization of complex query atoms in a more compact form (#6056)
* enable optional visualization of complex query atoms in a more compact form

* disable alpha channel support on legacy browsers

* - changes in response to review
- added metal queries
- fixed a docstring

* fix Windows build

* gave up and tested indirectly as I really do not want to export internal functions

---------

Co-authored-by: Tosco, Paolo <paolo.tosco@novartis.com>
2023-02-16 12:34:05 +01:00
Paolo Tosco
90c7d3c5d2 fixes #6054 (#6055)
Co-authored-by: Tosco, Paolo <paolo.tosco@novartis.com>
2023-02-05 08:14:56 +01:00
David Cosgrove
e4ece1b0f7 Bad double bond in linear group (#6028)
* Adapt allene drawing code to cope with other linear groups.

* Remove stray debugging write.

* Over-eager tidying remove key aspect of the fix.  Doh.

* Changes after review.

* Better solution that doesn't change the public API.

---------

Co-authored-by: David Cosgrove <david@cozchemix.co.uk>
2023-02-02 04:51:37 +01:00
David Cosgrove
085e20eda8 Fix bug drawing double bond on very small canvas. (#6026)
* Fix bug drawing double bond on very small canvas.

* Changes after review.

---------

Co-authored-by: David Cosgrove <david@cozchemix.co.uk>
2023-01-31 17:33:05 +01:00
David Cosgrove
dee548eacb Github5963 (#5978)
* Setup tests.

* Fix bug.

Co-authored-by: David Cosgrove <david@cozchemix.co.uk>
2023-01-15 08:10:49 +01:00
David Cosgrove
6df3da0966 Fixes Github 5949 (#5950)
* Make arrowhead of dative bond a consistent number of pixels in size, based on doubleBondOffset.

* Improve test.

* Clang noticed incorrect order of panelWidth, panelHeight for some tests.

* Fix some hash codes.

* Give correct github issue number.

* Update hash codes.

Co-authored-by: David Cosgrove <david@cozchemix.co.uk>
2023-01-11 09:37:47 +01:00
David Cosgrove
4903b8ea06 Fix drawing of circles in extractVariableBonds. (#5946)
* Fix drawing of circles in extractVariableBonds.

* Prefer absolute test over relative.

Co-authored-by: David Cosgrove <david@cozchemix.co.uk>
2023-01-09 17:41:42 +01:00
David Cosgrove
facb15f703 Github5899 (#5912)
* Fixed typo in comment.

* Fixed tests that were failing on Raspberry pi.  Highlight rectangle corners coming out in different orders.

* Tidy up a bit.

Co-authored-by: David Cosgrove <david@cozchemix.co.uk>
2023-01-03 05:50:04 +00:00
David Cosgrove
9657cc6d53 Draw type of SGroups (STY) in picture. (#5775)
* Draw type of SGroups (STY) in picture.

* Move drawBottomLabel from lambda to anonymous namespace.

Co-authored-by: David Cosgrove <david@cozchemix.co.uk>
2022-11-26 17:30:00 +01:00
David Cosgrove
4b0a61de27 Fix right-pointing last bracket in SGroup. (#5776)
Co-authored-by: David Cosgrove <david@cozchemix.co.uk>
2022-11-24 16:52:12 +01:00
Greg Landrum
cfe512ea47 Fixes #5704 (#5705)
* Fixes #5704

* update expected java results
2022-11-14 16:59:26 +01:00
Greg Landrum
1f4584b2ca run clang_format (#5676) 2022-11-01 04:14:26 +01:00
David Cosgrove
eca3f4e67f Github5592 (#5596)
* Use convex hull to order points in bond highlights polygon.

* Extra comment after review.

Co-authored-by: David Cosgrove <david@cozchemix.co.uk>
2022-09-26 10:58:12 +02:00
Ric
0d8ad69541 fix warnings (#5561) 2022-09-14 06:36:42 +02:00
David Cosgrove
58cdf03097 Fix 5534 (#5535)
* Fix crash in brackets extraction.

* Add hashcode, tidy.

* Remove unused variable.

Co-authored-by: David Cosgrove <david@cozchemix.co.uk>
Co-authored-by: Greg Landrum <greg.landrum@gmail.com>
2022-09-13 15:41:52 +02:00
David Cosgrove
40e27a65bd Fixed drawing of O in aldehydes. (#5515)
* Fixed drawing of O in aldehydes.

* Added DrawColour::operator!=.

* Remove unused variable.

* Export doLinesIntersect for test.

Co-authored-by: David Cosgrove <david@cozchemix.co.uk>
Co-authored-by: Greg Landrum <greg.landrum@gmail.com>
2022-09-12 04:23:38 +02:00
David Cosgrove
383af8895c Fix trans double bonds in large rings. (#5493) 2022-09-06 15:54:56 +02:00
David Cosgrove
d209cbd196 Improved bond highlights (#5484)
* First draft.
Polyline round bond joins is smaller.
Continuous highlight bonds mitre.

* Remove historical and now misleading comment.

* Mitre the continuous bond highlights.

* Better bond highlighting with not continuous highlighting.

* Updated hash codes.  Extra test.

* Updated hash codes.

* Script to update hash codes automatically.

* Fix test.

* Fix test.

* Remove debugging file write.

* Removed redundant code.

* More auto.

* Removed newly redundant function.

* More explanation and an extra example/test.

Co-authored-by: David Cosgrove <david@cozchemix.co.uk>
2022-09-06 12:55:38 +02:00
David Cosgrove
d32cf91c2c Fix bug in bond joins (#5482)
* Fix bug in smoothBondJoins caused by not clearing singleBondLines_ in resetEverything.
Updated test results.

* Changes as result of review.

Co-authored-by: David Cosgrove <david@cozchemix.co.uk>
2022-08-03 13:16:49 +02:00
David Cosgrove
226ac9eab3 Draws a hydrogen atom light blue if not drawing labels. (#5454)
* Draws a hydrogen atom light blue if not drawing labels.

* Newline at end of file.

* Changes requested from review.

Co-authored-by: David Cosgrove <david@cozchemix.co.uk>
2022-08-03 04:47:55 +02:00
Greg Landrum
222e55485d Fixes #5156 (#5412)
* make 2D coord gen more robust w.r.t. sanitization

* Fixes #5156

prepareMolForDrawing() was being called for mols without coords even if the option was disabled
This resolves that

* update expected hashes
2022-07-27 08:21:28 +02:00
David Cosgrove
36a345a3cd Fix poor join between wedge and double bond. (#5452)
Co-authored-by: David Cosgrove <david@cozchemix.co.uk>
2022-07-24 06:45:58 +02:00
David Cosgrove
f9b47d907f Add ACS1996 drawing style (#5425)
* Started on ACS 1996 drawing mode.
Significant change (not by itself, sadly) is that MolDrawOptions::lineWidth has changed from int to double to allow for ACS requirement of 0.6px bond widths.

* Wavy lines and dashed wedges.

* Better dashed wedges.

* Rounder wavy bonds, same as SVG.

* Added FreeSans font for ACS1996 mode.

* Add help functions to write enum classes to ostream.

* Dashed wedge separation now 2.5px between line edges rather than line middles.  Therefore wider gap between lines.

* Increase offset for wavy bond.  Get classes for atoms and bonds in wavy bond correct.

* For SMILES input, option to force wavy and crossed bonds for unspecified stereochem.

* Tidy debugging.

* Extra space round atom labels.

* Extra space between chars in freetype string.

* Reformats.

* Change double bond offset.

* Improve ring double bonds.

* Simple non-ring double bonds all working.

* Tidy.

* All double bonds seem good.

* Remove redundant function.
Move calcTripleBondLines into DrawMol for consistency with calcDoubleBondLines.
Use doubleBondOffset for wavy lines.

* Correct spacing between FT chars.

* Tidying.

* Use MolBlock wedging if there is any.  Needs to be made an option.

* If dashed wedge thick end has bonds of it, stop one dash short.

* Adjust solid wedge ends to line with attached bonds.

* Width of wedge ends now based on double bond separation.

* Change catch_tests.cpp

* Rounder waves in wavy lines.

* Dashed wedges same width even if one dash less..

* Embedded Roboto-Regular font in code.

* Fix docstrings.

* doubleBondTerminal swapped ends.
Deal with O2 - 2 terminal atoms of degree 1.

* Fix terminal double bonds.

* Slightly fatter truncated wedge bonds.

* Fix crash on complicated double bonds.

* Control more assert tests with DO_TEST_ASSERT.

* Fix 2 colour solid wedges.
Fix slanted wedge for morphine (test1_5).

* Change definittion of multipleBondOffset to fraction of mean bond length.

* Don't slant end of solid wedge to atom symbol.

* Fix wiggle separation.

* Fix 2-colour terminal double bonds.

* Fix colours on triple bonds.

* Don't attempt to draw non-existent points in triangle..

* Symmetric bond for P=O and like.

* Fix query bonds.

* Reformatting.

* Tidy up use of font.

* Add FreeSans font and license to $RDBASE/Data/Fonts.

* Draw unspecified stereo as unknown.

* Add check_file_hash.

* Tidying.

* Tidying.

* Start Python wrappers.

* Fix solid wedges for 3-connected atoms.

* Docstrings.

* Tidying.

* Alter width of bond highlights in ACS 1996 mode.

* Expose setACS1996Options and mean BondLength in Python.

* Expose drawMolACS1996Cairo in Python.
Docstrings.

* Extra padding between legend and picture in flexicanvas.

* Python tests.

* Tidy catch tests.

* Tidying.

* Fix catch tests.

* Fix no Freetype tests.

* Draw solid wedge more sensibly..

* Fix bond end at solid wedge.

* Tidy.

* Fix Python Cairo build issues.

* Fix wedge end shape for terminal double bonds.

* Hide the joins at the bond ends.

* Fix gcc pickiness.

* Extra test for no atom labels.

* Change where it looks for FreeSans.ttf for ACS1996 drawings.

* Same number of waves for wavy bonds in SVG and Cairo.

* Same number of waves for wavy bonds in SVG and Cairo.

* rename unspecifiedStereoIsUnknown to markUnspecifiedStereoAsUnknown and move to MolFileStereochem.h

* refactor use of iterators

* py docs update

* undo a bunch of bad formatting changes

* remove FreeSans

* get windows builds working

* Fix problem with Windows build.

* Changes in response to review.

* Align description of unspecifiedStereoIsUnknown in C++ to match Python.

* Still working on file open modes.

* Took out extraneous functions for drawing in ACS1996 mode, including the one that was breaking the windows build.

* Add RDKIT_MOLDRAW2D_EXPORT.

* Fix expected test results.

* Clarified warning.

* RDKIT_MOLDRAW2D_EXPORT missing.

* Windows!

* Update Code/GraphMol/MolDraw2D/rxn_test1.cpp

Co-authored-by: David Cosgrove <david@cozchemix.co.uk>
Co-authored-by: greg landrum <greg.landrum@gmail.com>
2022-07-21 18:11:33 +02:00
David Cosgrove
3856398727 Github5420 (#5421)
* Fix #5420.

* Tidy.

* Highlights stay parallel to bonds.

* Change way DrawShapeEllipse is defined, to make it same as DrawShapeArc.

* Change way DrawShapeEllipse is defined, to make it same as DrawShapeArc.

* Make highlight circles bigger when the bond highlights missed initially.

* Update expected test result.

* Update expected test result.

* Turn on check hash code.

Co-authored-by: David Cosgrove <david@cozchemix.co.uk>
2022-07-20 13:39:10 +02:00
David Cosgrove
4352b38574 Add draw option to force use of wedge information in MolBlock if pres… (#5417)
* Add draw option to force use of wedge information in MolBlock if present.

* Add check_file_hash.

* Move reapplyMolBlockWedging to MolFileStereochem and test case.
Expose to Python as ReapplyMolBlockWedging.

Co-authored-by: David Cosgrove <david@cozchemix.co.uk>
2022-07-11 13:52:58 +02:00
David Cosgrove
b7c9a8b3b7 Add class info for wavy bonds in SVGs. (#5358)
Co-authored-by: David Cosgrove <david@cozchemix.co.uk>
2022-06-13 11:16:51 +02:00
David Cosgrove
6b8c35791f Fix bad layout of atom notes with highlights. (#5272)
Co-authored-by: David Cosgrove <david@cozchemix.co.uk>
2022-05-13 06:08:28 +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