* remove no-op macros and dead code (pt 2)
* test failures due to whitespace changes?
* actually run the testFeatures tests
---------
Co-authored-by: greg landrum <greg.landrum@gmail.com>
* Improved handling of SP/TB/OH reording in SMILES/SMARTS.
- add a getMaxNbors(tag) utility function to avoid repeated logic in multiple places
- tweak getChiralPermutation() for handling implicit/missing ligands (uses -1), allow inverse lookup
- use the tweaked chiral ordering in the reading/writing from SMILES
* clang-format run
* Reviewer requested changes.
- curly braces on all if conditions
- null check raw pointers with precondition.
* Correct additional test case introduced in the last year
* oxime tests
* Support allenes in canonicalizing double bonds
* alternate solution to the problem
* expand comment
* reactivate conjugated nitro test
* Fix conjugated nitro tests, have a bondstereo test
* Empty commit to re-proc tests
---------
Co-authored-by: Greg Landrum <greg.landrum@gmail.com>
* Fixes#7873
* Resolve MonomerInfo class for deletion
* Add regression test for setMonomerInfo
---------
Co-authored-by: Greg Landrum <greg.landrum@gmail.com>
* add option to use chiral presence in atom ranking
* add findMesoCenters
* add includeChiralPresence to python wrapper
* add python wrapper for that
* backup, not working
* backup
* all tests pass
* add tests for partial coverage of stereo groups
all tests pass
* backout the cleanup operations for the initial merge
* track the meso atoms with atom properties.
this is an optimization for later.
* changes in response to review
* change valence model to use isolobal analogy
Remove support for five-coordinate C+ and, by analogy, five-coordinate N+2
Removes support for charge states that take atoms past the end of the periodic table
i.e. [Lv-4] is no longer supported
* update the tests for that
* remove valence state of 6 for Al
* fix representation of phosphate in the mol2 parser
this is a correction of what was done during #5973
* cleanup the exceptions for P, S, As, and Se
* drop valence states:
Si 6, P 7, As 7
* a couple of additional changes from #7397
* update java tests
* fix an inconsistency: Rb now supports valence -1
* documentation
* - replace operator[] with at() for bounds check
- extract some code into a function to avoid duplication
- use TAB as separator throughout in the periodic table data for consistency
* removing the .at() usage
We know that these vectors aren't empty, so there's no need for the bounds check.
---------
Co-authored-by: ptosco <paolo.tosco@novartis.com>
* Try not to make wedged bonds double in the kekulization code
This is a first pass implementation and definitely needs more testing of the new feature.
Probably looking at optimizing the code would also not be terrible.
All tests pass with this commit
* Some changes to the kekulization in presence of wedged bonds and additional testing
* additional kekulization test case
* start the kekulization in rings with wedged bonds
add some bulk tests
all tests now passing for me
* changes from review
---------
Co-authored-by: Riccardo Vianello <riccardo.vianello@gmail.com>
* check for ringinfo levels instead of init
* check for ring info in kekulizefragment
* add a test
* update tests
* update doctests
* revert ringinfo level checks
* add MolOps::expandAttachmentPoints, along with tests
* support expandAttachmentPoints in the mol file parser
* switch the v2 stuff in the guts of the reaction parser
* add collapseAttachmentPoints()
add addAsQueries option to expandAttachmentPoints()
lots of testing
* an edge case and some cleanup
* add python wrapper for those two functions
* Update Code/GraphMol/FileParsers/FileParsers.h
Co-authored-by: Ric <ricrogz@users.noreply.github.com>
* changes in response to review
- support addCoords in expandAttachmentPoints()
- support the new attachment point stuff to/from CXSMILES
- add MolOps::details::addExplicitAttachmentPoint() and MolOps::details::isAttachmentPoint() utility functions
---------
Co-authored-by: Ric <ricrogz@users.noreply.github.com>
* insert stereogroups
* insert Substance Groups
* fix ownership, bond indexes
* add test
* fix comparison signednedss
* update test
* Brian's suggestion
* allow more than one ABS group
* 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>
* added ROMol::hasQuery
* python bindings for Mol.HasQuery
* at least I checked that my Python tests were running...
* hasQuery use C++11 range iterators
* 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
* Fix canonically correct single to dative bond conversion for organometallics.
* Cleanups from review.
* Process atoms in canonical order.
Extra test.
* Only do the expensive bit if there's something to fix.
---------
Co-authored-by: David Cosgrove <david@cozchemix.co.uk>
* Changing flags if doIsomericSmiles is false
* Ignoring cis-trans bonds as well
* Tests for removing enhanced stereo
* Fix#6237 by checking chiral tag instead of CIP
* Remove unnecesary calls to fabs
* Modify AddHs
* Tets for #6237
* Rerun Checks
* First stab at disconnecting organometallics the Syngenta way.
* Add support for Li and Na compounds, with tests.
* Correct docstrings.
* Add -1 valence to sodium.
* Add changes from PR 5997.
* Move declaration of disconnectOrganometallics.
* Re-factor tests for disconnectOrganometallics to read V3000 files rather than hard-code in file.
* Add optional options to constructor.
* Python wrapping for disconnectOrganometallics.
* Python tests.
* Correct docString.
* Test using in place overload of disconnect free function.
* options_ should not be a reference.
* Re-work the wrappers.
* Added test MOL files.
* Correct charge on iron atoms.
* Fix tests for charged iron.
* Added some more test complexes.
* Port Marco's oxidation number Python to C++ Descriptor.
* Rename functions.
* Another test.
* Python wrappers.
* Comment in test.
* Throws exception if atom-based function called with non-kekulized parent.
* Fix typo.
* Allow potassium as well.
* Whole molecule calculations for oxidation number only.
Rename prop to OxidationNumber.
* Add OxidationNumber to common_properties.
* Extra comment.
* When deleting atom, update any ENDPTS props on bonds.
Copied in from stale PR ExtraDoc.
* Added hapticBondsToDative with python wrapper.
* Extra test.
* Re-factor endpts parsing.
* Typo.
* Add function for haptic end points inc. Python wrapper.
* Add dative bonds in separate step.
* C++ version of dativeBondstoHaptic.
* Update test mols.
* Python wrapper.
* Fix indents in Python test script.
* Corrected expected test result.
* Only do non-metal to metal conversion of single bond to dative if the explicit valence of the non-metal allows it.
* Fix test broken in a non-material way by previous change.
* Export for DLL.
* Remove redundant function declaration.
* Dave hates Windows.
* Move hapticBondEndpoints to Molops::details.
* And take it out of the Python wrappers.
* Run yapf on reformatted test script.
* Get the DLL builds going.
* addDativeBond -> addHapticBond.
* Batch edits.
* Position arithmetic.
* setQuery.
* Dummy positions for all confs.
* Fix tests for dummy positions for all confs.
* Move tests to catch_organometallics.cpp.
* Modern docString.
* Change member variable names.
* sProp length, bonus batchEdit.
* Add options object to disconnectOrganometallics.
* Tidied license.
Atom precondition.
* GetIntProp.
* Test opts aren't defaults.
* Python wrapper for disconnectOrganometallics with options.
* Minor edit.
* Slightly random attempt to fix Java build.
* Response to review.
* Another stab at the doc strings.
---------
Co-authored-by: David Cosgrove <david@cozchemix.co.uk>
Co-authored-by: Greg Landrum <greg.landrum@gmail.com>
* Fixes#4642
We should consider whether or not it's right to remove stereo from atoms which were in stereo groups but are not any longer.
* split stereogroups across fragments
* cleanup
* Changes in response to review
* add function to canonicalize enhanced stereo representations
* use enhanced stereo in canonicalization
* Fixes#6045
enables the doc tests for EnumerateStereoisomers.py
Re-enables the BRICS tests
* some things work... tests need to be updated
* c++ and python tests pass
* update expected psql results
* run the canonicalization on SMILES generation;
c++ and python tests pass
* cartridge and java tests pass
* update doctests
* Change atom to metal bonds from single to dative if appropriate.
* Pedantic change whilst I was in the area.
* Reinstate all tests, leave in debugging writes to see failing tests.
* Re-did it. Failing tests now pass.
* Move any positive charge from the non-metal to the metal.
Fix expected test results.
* Write dative bond to JSON.
* Bump currentRDKitJSONVersion to 11, but allow parser to still read 10.
* Only move 1 unit of charge at a time from non-metal to metal.
* Greg's hack to not do it for O+ and N+ etc.
Explicitly exclude H, He, F, Ne from dative bonds.
Fix tests.
* Update expected PostGres json version to 11.
* suggestions for PR
* Correct comment.
---------
Co-authored-by: David Cosgrove <david@cozchemix.co.uk>
Co-authored-by: greg landrum <greg.landrum@gmail.com>
* Fixes#5505
* Switch to using hasBondTypeQuery()
* update the docs
* ensure we still fail with non-ring aromatic atoms
* changes in response to review
* stop using CIP codes in the atomic canonicalization
this will change results in some cases, so lots of tests need to be updated.
* stop breaking string literals... ARGH
* tests now pass
* update double bond canonicalization
* update a python test
* some cleanup
* update expected results for cartridge
* very basics: actually parsing the new atom stereochem features
* add some input verification for the chiral permutations
* fix a typo
add quadruple bond SMILES/SMARTS extension
* add forgotten files
* patch from Roger
* add Roger's parsing examples
* typo
* new tests
* adjusted version of next PR from Roger:
- add SP2D hybridization for square planar (this may change)
- some modernizationof Chirality.cpp
- stop using < HybridizationType in Chirality.cpp (should probably do this elsewhere too)
- improved handling of hybridization assignment for new stereochem
- handle new stereo/hybridization in UFF
- tests for the above
* perception of non-tetrahedral stereo from 3D (from Roger S)
Basic testing of SP and TB based on opensmiles docs
* potential fixes for octahedral assignment
more tests
* docs update
need way more!
* map the TH tags directly to @ tags
* very basics of SMILES writing
this does not work with anything that changes the permutation order
like canonicalization or writing things in rings.
* start to support the getChiralAcross API
* more testing
* consistency
* add hasNonTetrahedralStereo() and getIdealAngleBetweenLigands()
* assignStereochemistry should only remove non-tetrahedral stereo
* re-simplify those tests
* cleanup matrix stream output
* initial pass at supporting nontet stereo in distgeom
* backup
* start on the reference docs
* TBP reference
* first pass at Oh finished
* update SP section
* more doc updates
* fix a typo
* add param to not remove Hs connected to non-tetrahedral atoms
* VERY basic coord generation for square planar
* TBP basics
* basic OH depiction
* start testing missing ligands
allow non-tet stereo in rings (ugly, but correct)
* add new TBP functions from Roger
* update depiction code for new API
* backup, the new tests work so far
* Finish the TB tests
* OH tests pass too
* cleanup
* first pass at getting correct SMILES with reordering
need way more testing than this
* ensure permutation 0 is correctly preserved
* some progress towards adding non-tetrahedral stereo to StereoInfo
* doc update
* add non-tet chiral classes to python wrappers
* make sure removeAllHs also gets neighbors of non-tetrahedral centers
more testing
* a bit of depictor cleanup
* make the assignment from 3D more tolerant
more testing
* improve the bulk testing
* cleanup
* remove a bit of redundant code
* ensure we don't write bogus permutation values to SMILES
* fix some rebase problems
* allow assignStereochemistryFrom3D() to be called without sanitization
* allow disabling the non-tetrahedral stereo when it's not explicit
* get that working on windows too
* some initial work...
Still some real questions here about what should be done with dp_mol data members
* add some tests for move semantics of Dict and Props
remove extraneous clear()
* more in-depth testing of the molecule results
* test refactoring
* improve the molecule move test
* fix some leaks found by valgrind
the new tests are now all clean in valgrind
* additional classes
QueryAtom, QueryBond, RingInfo, Conformer
* get swig working again.
Not sure why this is necessary, but SWIG is a mysterious beast
* fixes in response to review
* updates in response to review
* preliminary
* all tests pass
* cleanup
* more testing!
* we do still want to raise errors for aromatic atoms not in rings
fix one missed change for mol blocks
* update expected results for psql test