* Fixed poor position of + charge in S NH2+ group. Also made it say Cu2+ rather than Cu+2.
* Fixed bug where H of [NH+](C)(C)C sometimes went on top of bond.
Co-authored-by: David Cosgrove <david@cozchemix.co.uk>
* Several things here
1) move "atomNote" and "bondNote" to common_properties
2) move addStereoAnnotation to the MolDraw2DUtils namespace
3) add addAtomIndices and addBondIndices
4) initialize MolDrawOptions members directly instead of via the ctor
5) add tests for all that
6) the usual reformatting
* Move the annotations functions to MolDraw2DDetails,
no need for them to be in the public API
Remove MolDraw2DDetails.h from the installed headers.
* turn off redundant prepareMolsForDrawing in _moltoimg
* Commit of 2D draw annotation.
* update expected psql results
* First pass at improved radical drawing.
* Fix?
* Fixed different string draw behaviour.
* Removed vestiges of previous radical handling.
* Fixed bug with annnotation placement and added fallback postion.
* Removed unused var.
* update expected reaction svg
* Added option for always having circular highlights.
* Updated JSON to drawOptionns.
* Fixed bug in scale calculation. Centres drawn molecule with option not to.
* Tidied up scale calculation.
* Changed atomHighlightCircles to atomHighlightsAreCircles.
Used shared_ptr for StringRect as VS barfed on unique_ptr.
* Fixed bug with reaction cruft not following now-centred molecules.
* temporary stash
* Stepped back centring of molecule by drawMolecule and fixes to drawReaction prompted by it.
* allow annotations to be disabled at the class level.
disable them for MolDraw2DCairo on win32 (where they just don't work)
* some test cleanup
Co-authored-by: David Cosgrove <david@cozchemix.co.uk>
Co-authored-by: greg landrum <greg.landrum@gmail.com>
* First pass of fixing layout of OH/NH type drawing.
* Fixed scale for N/S NH type groups.
* Fixed bond end points with new display of heteroatoms.
* Fixed case where it drew aromatic dashed bonds in wrong ring for morphine.
* Minor edit.
* Fixed non-drawing of chiral bonds.
* Removed use of boost for_each.
* Modern atom traversal.
* Put in fixed scale for drawings.
Made drawMolecule() take note of prepareMolsBeforeDrawing.
Updated more iterators to modern idiom.
* Added fixed bond length for drawing.
* Fixed drawing of CH4, NH3 etc.
* Stash of working but ugly, prior to re-work.
* Better, simpler splitting of atom symbols.
* Took clang-tidy's advice about use of override.
* Tidied up drawing of text strings.
* Tweaked what is classed as vertical bond in drawing.
* fixedBondLength now down-scales if it would overflow the draw window.
* Some tidying.
* Tests for new parameters in JSON.
Fixed some existing tests where, for example, scale on picture is now different.
* Added option to rotate 2D draw coords before drawing.
* First pass at highlighting atoms in multiple colours. Circles only at the moment.
* Line width scales if big enough.
* Tweaked SVG text drawing.
* Added highlighting with more than 1 colour on an atom. C++ only.
* Fixed some issues with widths of highlights in a frustrating game of whackamole.
Updated some tests accordingly.
* Added Python wrapper for new drawing code.
* Removed debugging writes.
* Added C++ test for multi-coloured highlights.
* Added python test for multi-coloured highlights.
* Attempt to show radicals.
* Tidied up radicals in drawing, including a bullet instead of full stop in SVG.
* Fixed catch_tests.cpp for MolDraw2D.
* Fixed crash in Python wrappers on OSX.
* Fixed test5_2.svg bug (trailing </tspan>).
Made wavy line width scale as other lines do.
* Improved placing of charges.
* We're already in the future.
* Fixed a number of bugs that made drawMolecules not set the scales properly.
* Fixed Cairo wavy line width.
* Fixed non-closure of collision boxes.
* Added maximum font size for text, with tests.
* Addressed all Greg's first PR change requests.
* Fixed crash in extractAtomsymbols.
* stop using coordgen and adjust tests to reflect that
there's a bit of reformatting in here too
* Fixed layout of reactions.
* Fiddled with moldraw2DTest1 tests again.
* Fiddled with catch test.
* Fixed istope postion in W atom labels.
* Minor tweak to cairo,
* update expected results
Co-authored-by: David Cosgrove <david@cozchemix.co.uk>
Co-authored-by: Greg Landrum <greg.landrum@gmail.com>
* 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
* basic conrec integration
* basic conrec integration
* add molecule contouring
* update
* add an alpha channel to the color
* allow filling the grid
* cleanup
* remove some debugging output
* first pass at getting similarity maps to actually work
* updates
* add another test
explicitly set linewidth to 1
* some SVG cleanup
* add option for extra padding
* update expected test results
* efficiency
* at least something of a test
* forgot an import
* fix SWIG wrappers
* cleanups in response to review
* allow calling the functions without providing levels
* allow contouring numpy grids
* unused vars in bison parser cleanup
* initialization order in TopologicalTorsionGenerator
* unused params in SLN bison
* sln flex unused params
* throwing destructor in TDTWriter
* signed comparison in substructmethods
* unused input param in smiles/smarts bison
* unused ms param in sln bison
* signed comparison in FingerprintGenerator
* store return of fscanf in StructCheckerOptions
* unreferenced var in catch
* uninitialized value in FileParserUtils
* avoid override overload warning in MolDraw2DSVG
* non-final overrides in Validate.h
* unused static var in Avalon
* unused vars in catch blocks
* make AvalonTools avalonSimilarityBits & avalonSSSBits const int
* assert fscanf result in StructCheckerOptions
* Add clickable atoms when tagAtoms() is called
* add python tests
* add class tags for atoms and bonds
* add marker to allow easy insertion of extra text
* 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
* add SVG parsing to python
re-enable the moldraw2d tests
* A couple of fixes connected to #2029
* handle problems parsing atom/bond SMILES
* wrap the whole thing in the <metadata> tag
* patch a memory allocation problem in the maeparser v1.0.0 (#2044)
* add atoms
* add bonds
* backup
* Fixes#2029
* Get metadata working for drawMolecules()
* add to python wrapper
const correctness
* also connected to #2029: make sure bond direction also ends up in the output
* initial version of an SVG->ROMol parser
this is in the wrong place, but I wanted to make sure it actually works
* move svg parser to a more reasonable location
there is still some work to be done here
* add conformer parsing
* this is a rough first pass, needs to be finished and is a strong argument for changing the names of some of the #defines that are currently used
* rationalize the rest of the #defines
add something to the release notes about this
* This makes assignStereochemistry cleanIt=True not remove CIS/TRANS
bond stereo chemistry that was manually added as described in issue #1614.
Incorrect CIS/TRANS stereochemistry will still be removed by
'cleanIt=true' if symmetry is detected. However, this symmetry
detection doesn't work in more complex pseudo-stereo chemistry cases:
bond stereo that depends on other bond stereo to break symmetry; and
bond stereo that depends on other atom stereo centers to break
symmetry. Test cases for these cases have been added ifdef'd in based
on USE_NEW_STEREOCHEMISTRY.
However, getting USE_NEW_STEREOCHEMISTRY to work in a copacetic way is
not trivial, I tried a little bit here to no avail. I'm leaving the
test cases checked in as they should be useful when we decide to make
the plunge into using Canon::chiralRankMolAtoms for symmetry detection
instead of the CIP ranks.
So this fixes at least the glaring issue of STEREOCIS and STEREOTRANS
being incorrectly removed by 'cleanIt=true' when it is indeed valid
stereo. The checks made for symmetry are rudimentary, but don't feel
complete.
* add another test; make what's being tested explicit
* test smiles generation and function when Hs have been added
* add a test that fails
* I think that it's ok to remove this
* backup
* At this point all tests pass.
Bond wedging is now handled even if sanitization is turned off when mol files are read
* adjust to code changes
* fix a couple problems caused by rebase
* update docs
* boost::thread mostly gone... still need to get rid of once
everything compiles
* replace boost::call_once
* remove link-time dependency on boost::thread
* first pass at using async
* switch to using async everywhere
* first pass, does not yet actually work
* pass2, same problems
* pass2, same problems
* another test
* new tests; bugfix
* move the code out to a header
* add a double bond example
* enable auto-downloads of the code
* move the function to its own namespace
* first pass at a basic python wrapper
* change coordgen commit used
* try supporting bond stereo; does not currently work
* cis/trans seems to now work.
* first pass at templates; needs testing
* use the fixed flag too
* need mol align
* expand test
* initial pass at python wrapper for template
* simplify tests
* add an option to directly use a substructure match for alignment
* scaling
* add #define
* Define a cache setting for RDK_COORDGEN_LIBS to allow these to be used in other packages
* return the conformer id from addCoords
* Make CoordGen the default when it’s available.
This is a backup commit… the tests don’t even come close to passing.
* add some debugging options for a bit
* add alignment step to testing when using non-fixed coords
* Add global to allow use of CoordGen to be disabled
get the basic depictor tests working
* make coordgen the default when it is available
* make sure things continue to work when coordgen is disabled
* get windows builds working
* mods to get this building on windows.
something is screwy with the fileParsersTest1
* no need to generate coords for the 1K C string
* fix java wrappers
* works on linux
* update the (stupid) way dependencies were handled on windows.
this allows a lot of cleanup of cmake files (still more to do)
the linux build is unlikely to work due to the way _statics aren't handled
* docs
* extend forceRDKit applicability
* switch coordgen version
* try using templates
* try to get the template dir finding reasonably robust w.r.t. conda install
* continuing to iterate on the way the template file is installed
* fix a problem caused by the merge
* remove test that should never have been checked in
* update expected results for cartridge tests
* switch back to using the RDKit as the default coordinate generator
* first steps towards flexible colour palettes
* add B&W palette and a test for it
* add python support;
this is, once again, not the best API due to the inability to auto-translate boost::tuples at this point
* more palette control from python
* rename some of the swig-wrapped types to make them more consistent
* handle palettes that do not have a default value
* expose and test GetDrawCoords()
* very basics are working; still loads of work to do
* very basics are working; still loads of work to do
* symbols and arrows kind of work
* switch to Nadine's approach for drawing
needs more work (like arrows and pluses) but already is not too bad
* better, but agents still to close to arrow and arrow is too short
* add a test for rxns without agents
* fix picking of cid;
drawing reactions without reactants or without products should in theory now work, but additional work is needed to get the arrows to show up
* make reactions without reactants or without products draw properly
* tweak vshift a bit; would be good to have a better solution to this
* do not draw H2O as OH2
* add option to use highlighting to show atom maps
* highlight bonds too
* cleanup
* add drawReaction to the python wrapper
* docs
* remove some printing
* fix (for real) the drawing of degree zero atoms
* ensure ring finding gets done; add some more tests
* add some SMARTS-based tests; these do not work
* improve reactant highlighting in rxn drawing
- define default colors for highlighting of reactants, atom or bonds
in the drawing options
- make highlighting colors customizable through the API
* rename to test4 in prep for merge
* temporarily disable test4 since it does not work anyway
* fix some kekulization problems
* fix YA unicode problem
* remove a stupid typo
* expose and test GetDrawCoords()
* very basics are working; still loads of work to do
* very basics are working; still loads of work to do
* symbols and arrows kind of work
* switch to Nadine's approach for drawing
needs more work (like arrows and pluses) but already is not too bad
* better, but agents still to close to arrow and arrow is too short
* add a test for rxns without agents
* fix picking of cid;
drawing reactions without reactants or without products should in theory now work, but additional work is needed to get the arrows to show up
* make reactions without reactants or without products draw properly
* tweak vshift a bit; would be good to have a better solution to this
* do not draw H2O as OH2
* add option to use highlighting to show atom maps
* highlight bonds too
* cleanup
* add drawReaction to the python wrapper
* docs
* remove some printing
* fix (for real) the drawing of degree zero atoms
* ensure ring finding gets done; add some more tests
* add some SMARTS-based tests; these do not work
* improve reactant highlighting in rxn drawing
- define default colors for highlighting of reactants, atom or bonds
in the drawing options
- make highlighting colors customizable through the API
* rename to test4 in prep for merge
* temporarily disable test4 since it does not work anyway
* fix some kekulization problems
* fix YA unicode problem
* remove a stupid typo
* Fixes#1271
* add a comment or two
* fix single-atom molecules too
* add a test for grid drawing too
* simplification of the special cases; no need to make things so complex
* a bit of header cleanup
* Fixes#1106
* First pass, basics.
Still need tests and handling of parameters.
* initial pass at including JSON parsing of options (not complete)
* handle errors while parsing json instead of just crashing the server
* updated (and working) JSON configuration
* first drawing tests
* document the new function
* it helps to save before committing