Files
David Cosgrove 5fe20d270f Improved handling of organometallics (#6139)
* 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>
2023-03-18 04:36:38 +01:00

95 lines
2.5 KiB
Plaintext

phenylsodium-PMDTA
ChemDraw01202311192D
0 0 0 0 0 0 V3000
M V30 BEGIN CTAB
M V30 COUNTS 38 44 0 0 0
M V30 BEGIN ATOM
M V30 1 C -2.921876 -2.726990 0.000000 0
M V30 2 N -2.207405 -2.314490 0.000000 0
M V30 3 C -1.492934 -2.726990 0.000000 0
M V30 4 C -2.207405 -1.489490 0.000000 0
M V30 5 C -0.778463 -2.314490 0.000000 0
M V30 6 N -0.063992 -2.726990 0.000000 0
M V30 7 C 0.650479 -2.314490 0.000000 0
M V30 8 C -0.063992 -3.551990 0.000000 0
M V30 9 C 1.364949 -2.726990 0.000000 0
M V30 10 N 2.079421 -2.314490 0.000000 0
M V30 11 C 2.793892 -2.726990 0.000000 0
M V30 12 C 2.079421 -1.489490 0.000000 0
M V30 13 C -2.845679 2.314488 0.000000 0
M V30 14 N -2.131251 2.726989 0.000000 0
M V30 15 C -1.416824 2.314488 0.000000 0
M V30 16 C -2.131251 3.551990 0.000000 0
M V30 17 C -0.701823 2.726989 0.000000 0
M V30 18 N 0.012604 2.314488 0.000000 0
M V30 19 C 0.727031 2.726989 0.000000 0
M V30 20 C 0.012604 3.551990 0.000000 0
M V30 21 C 1.441459 2.314488 0.000000 0
M V30 22 N 2.155886 2.726989 0.000000 0
M V30 23 C 2.870314 2.314488 0.000000 0
M V30 24 C 2.155886 3.551990 0.000000 0
M V30 25 C -6.539126 0.702872 0.000000 0
M V30 26 C -6.539126 -0.122128 0.000000 0
M V30 27 C -5.824655 -0.534628 0.000000 0
M V30 28 C -5.110184 -0.122128 0.000000 0
M V30 29 C -5.110184 0.702872 0.000000 0 CHG=-1
M V30 30 C -5.824655 1.115372 0.000000 0
M V30 31 C 5.110185 0.550095 0.000000 0
M V30 32 C 5.110185 -0.274905 0.000000 0 CHG=-1
M V30 33 C 5.824656 -0.687405 0.000000 0
M V30 34 C 6.539126 -0.274905 0.000000 0
M V30 35 C 6.539126 0.550095 0.000000 0
M V30 36 C 5.824656 0.962595 0.000000 0
M V30 37 Na 0.149580 0.611842 0.000000 0 CHG=1
M V30 38 Na 0.302357 -1.030519 0.000000 0 CHG=1
M V30 END ATOM
M V30 BEGIN BOND
M V30 1 1 1 2
M V30 2 1 2 3
M V30 3 1 2 4
M V30 4 1 3 5
M V30 5 1 5 6
M V30 6 1 6 7
M V30 7 1 6 8
M V30 8 1 7 9
M V30 9 1 9 10
M V30 10 1 10 11
M V30 11 1 10 12
M V30 12 1 13 14
M V30 13 1 14 15
M V30 14 1 14 16
M V30 15 1 15 17
M V30 16 1 17 18
M V30 17 1 18 19
M V30 18 1 18 20
M V30 19 1 19 21
M V30 20 1 21 22
M V30 21 1 22 23
M V30 22 1 22 24
M V30 23 2 25 26
M V30 24 1 26 27
M V30 25 2 27 28
M V30 26 1 28 29
M V30 27 2 29 30
M V30 28 1 30 25
M V30 29 2 31 32
M V30 30 1 32 33
M V30 31 2 33 34
M V30 32 1 34 35
M V30 33 2 35 36
M V30 34 1 36 31
M V30 35 9 14 37
M V30 36 9 18 37
M V30 37 9 22 37
M V30 38 9 29 37
M V30 39 9 29 38
M V30 40 9 2 38
M V30 41 9 6 38
M V30 42 9 10 38
M V30 43 9 32 37
M V30 44 9 32 38
M V30 END BOND
M V30 END CTAB
M END