rdworks 0.55.1__tar.gz → 0.56.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. {rdworks-0.55.1 → rdworks-0.56.1}/PKG-INFO +1 -1
  2. {rdworks-0.55.1 → rdworks-0.56.1}/src/rdworks/__init__.py +1 -1
  3. {rdworks-0.55.1 → rdworks-0.56.1}/src/rdworks/complete.py +38 -4
  4. {rdworks-0.55.1 → rdworks-0.56.1}/src/rdworks.egg-info/PKG-INFO +1 -1
  5. {rdworks-0.55.1 → rdworks-0.56.1}/LICENSE +0 -0
  6. {rdworks-0.55.1 → rdworks-0.56.1}/README.md +0 -0
  7. {rdworks-0.55.1 → rdworks-0.56.1}/pyproject.toml +0 -0
  8. {rdworks-0.55.1 → rdworks-0.56.1}/setup.cfg +0 -0
  9. {rdworks-0.55.1 → rdworks-0.56.1}/src/rdworks/autograph/__init__.py +0 -0
  10. {rdworks-0.55.1 → rdworks-0.56.1}/src/rdworks/autograph/autograph.py +0 -0
  11. {rdworks-0.55.1 → rdworks-0.56.1}/src/rdworks/autograph/centroid.py +0 -0
  12. {rdworks-0.55.1 → rdworks-0.56.1}/src/rdworks/autograph/dynamictreecut.py +0 -0
  13. {rdworks-0.55.1 → rdworks-0.56.1}/src/rdworks/autograph/nmrclust.py +0 -0
  14. {rdworks-0.55.1 → rdworks-0.56.1}/src/rdworks/autograph/rckmeans.py +0 -0
  15. {rdworks-0.55.1 → rdworks-0.56.1}/src/rdworks/bitqt/__init__.py +0 -0
  16. {rdworks-0.55.1 → rdworks-0.56.1}/src/rdworks/bitqt/bitqt.py +0 -0
  17. {rdworks-0.55.1 → rdworks-0.56.1}/src/rdworks/conf.py +0 -0
  18. {rdworks-0.55.1 → rdworks-0.56.1}/src/rdworks/descriptor.py +0 -0
  19. {rdworks-0.55.1 → rdworks-0.56.1}/src/rdworks/display.py +0 -0
  20. {rdworks-0.55.1 → rdworks-0.56.1}/src/rdworks/ionized.py +0 -0
  21. {rdworks-0.55.1 → rdworks-0.56.1}/src/rdworks/matchedseries.py +0 -0
  22. {rdworks-0.55.1 → rdworks-0.56.1}/src/rdworks/microstates.py +0 -0
  23. {rdworks-0.55.1 → rdworks-0.56.1}/src/rdworks/mol.py +0 -0
  24. {rdworks-0.55.1 → rdworks-0.56.1}/src/rdworks/mollibr.py +0 -0
  25. {rdworks-0.55.1 → rdworks-0.56.1}/src/rdworks/predefined/Asinex_fragment.xml +0 -0
  26. {rdworks-0.55.1 → rdworks-0.56.1}/src/rdworks/predefined/Astex_RO3.xml +0 -0
  27. {rdworks-0.55.1 → rdworks-0.56.1}/src/rdworks/predefined/Baell2010_PAINS/Baell2010A.xml +0 -0
  28. {rdworks-0.55.1 → rdworks-0.56.1}/src/rdworks/predefined/Baell2010_PAINS/Baell2010B.xml +0 -0
  29. {rdworks-0.55.1 → rdworks-0.56.1}/src/rdworks/predefined/Baell2010_PAINS/Baell2010C.xml +0 -0
  30. {rdworks-0.55.1 → rdworks-0.56.1}/src/rdworks/predefined/Baell2010_PAINS/PAINS-less-than-015-hits.xml +0 -0
  31. {rdworks-0.55.1 → rdworks-0.56.1}/src/rdworks/predefined/Baell2010_PAINS/PAINS-less-than-150-hits.xml +0 -0
  32. {rdworks-0.55.1 → rdworks-0.56.1}/src/rdworks/predefined/Baell2010_PAINS/PAINS-more-than-150-hits.xml +0 -0
  33. {rdworks-0.55.1 → rdworks-0.56.1}/src/rdworks/predefined/Baell2010_PAINS/makexml.py +0 -0
  34. {rdworks-0.55.1 → rdworks-0.56.1}/src/rdworks/predefined/Brenk2008_Dundee/makexml.py +0 -0
  35. {rdworks-0.55.1 → rdworks-0.56.1}/src/rdworks/predefined/CNS.xml +0 -0
  36. {rdworks-0.55.1 → rdworks-0.56.1}/src/rdworks/predefined/ChEMBL_Walters/BMS.xml +0 -0
  37. {rdworks-0.55.1 → rdworks-0.56.1}/src/rdworks/predefined/ChEMBL_Walters/Dundee.xml +0 -0
  38. {rdworks-0.55.1 → rdworks-0.56.1}/src/rdworks/predefined/ChEMBL_Walters/Glaxo.xml +0 -0
  39. {rdworks-0.55.1 → rdworks-0.56.1}/src/rdworks/predefined/ChEMBL_Walters/Inpharmatica.xml +0 -0
  40. {rdworks-0.55.1 → rdworks-0.56.1}/src/rdworks/predefined/ChEMBL_Walters/LINT.xml +0 -0
  41. {rdworks-0.55.1 → rdworks-0.56.1}/src/rdworks/predefined/ChEMBL_Walters/MLSMR.xml +0 -0
  42. {rdworks-0.55.1 → rdworks-0.56.1}/src/rdworks/predefined/ChEMBL_Walters/PAINS.xml +0 -0
  43. {rdworks-0.55.1 → rdworks-0.56.1}/src/rdworks/predefined/ChEMBL_Walters/SureChEMBL.xml +0 -0
  44. {rdworks-0.55.1 → rdworks-0.56.1}/src/rdworks/predefined/ChEMBL_Walters/makexml.py +0 -0
  45. {rdworks-0.55.1 → rdworks-0.56.1}/src/rdworks/predefined/Hann1999_Glaxo/Hann1999.xml +0 -0
  46. {rdworks-0.55.1 → rdworks-0.56.1}/src/rdworks/predefined/Hann1999_Glaxo/Hann1999Acid.xml +0 -0
  47. {rdworks-0.55.1 → rdworks-0.56.1}/src/rdworks/predefined/Hann1999_Glaxo/Hann1999Base.xml +0 -0
  48. {rdworks-0.55.1 → rdworks-0.56.1}/src/rdworks/predefined/Hann1999_Glaxo/Hann1999ElPh.xml +0 -0
  49. {rdworks-0.55.1 → rdworks-0.56.1}/src/rdworks/predefined/Hann1999_Glaxo/Hann1999NuPh.xml +0 -0
  50. {rdworks-0.55.1 → rdworks-0.56.1}/src/rdworks/predefined/Hann1999_Glaxo/makexml.py +0 -0
  51. {rdworks-0.55.1 → rdworks-0.56.1}/src/rdworks/predefined/Kazius2005/Kazius2005.xml +0 -0
  52. {rdworks-0.55.1 → rdworks-0.56.1}/src/rdworks/predefined/Kazius2005/makexml.py +0 -0
  53. {rdworks-0.55.1 → rdworks-0.56.1}/src/rdworks/predefined/ZINC_druglike.xml +0 -0
  54. {rdworks-0.55.1 → rdworks-0.56.1}/src/rdworks/predefined/ZINC_fragment.xml +0 -0
  55. {rdworks-0.55.1 → rdworks-0.56.1}/src/rdworks/predefined/ZINC_leadlike.xml +0 -0
  56. {rdworks-0.55.1 → rdworks-0.56.1}/src/rdworks/predefined/fragment.xml +0 -0
  57. {rdworks-0.55.1 → rdworks-0.56.1}/src/rdworks/predefined/ionized/simple_smarts_pattern.csv +0 -0
  58. {rdworks-0.55.1 → rdworks-0.56.1}/src/rdworks/predefined/ionized/smarts_pattern.csv +0 -0
  59. {rdworks-0.55.1 → rdworks-0.56.1}/src/rdworks/predefined/misc/makexml.py +0 -0
  60. {rdworks-0.55.1 → rdworks-0.56.1}/src/rdworks/predefined/misc/reactive-part-2.xml +0 -0
  61. {rdworks-0.55.1 → rdworks-0.56.1}/src/rdworks/predefined/misc/reactive-part-3.xml +0 -0
  62. {rdworks-0.55.1 → rdworks-0.56.1}/src/rdworks/predefined/misc/reactive.xml +0 -0
  63. {rdworks-0.55.1 → rdworks-0.56.1}/src/rdworks/readin.py +0 -0
  64. {rdworks-0.55.1 → rdworks-0.56.1}/src/rdworks/rgroup.py +0 -0
  65. {rdworks-0.55.1 → rdworks-0.56.1}/src/rdworks/scaffold.py +0 -0
  66. {rdworks-0.55.1 → rdworks-0.56.1}/src/rdworks/std.py +0 -0
  67. {rdworks-0.55.1 → rdworks-0.56.1}/src/rdworks/stereoisomers.py +0 -0
  68. {rdworks-0.55.1 → rdworks-0.56.1}/src/rdworks/testdata.py +0 -0
  69. {rdworks-0.55.1 → rdworks-0.56.1}/src/rdworks/torsion.py +0 -0
  70. {rdworks-0.55.1 → rdworks-0.56.1}/src/rdworks/units.py +0 -0
  71. {rdworks-0.55.1 → rdworks-0.56.1}/src/rdworks/utils.py +0 -0
  72. {rdworks-0.55.1 → rdworks-0.56.1}/src/rdworks/xml.py +0 -0
  73. {rdworks-0.55.1 → rdworks-0.56.1}/src/rdworks/xtb/__init__.py +0 -0
  74. {rdworks-0.55.1 → rdworks-0.56.1}/src/rdworks/xtb/wrapper.py +0 -0
  75. {rdworks-0.55.1 → rdworks-0.56.1}/src/rdworks.egg-info/SOURCES.txt +0 -0
  76. {rdworks-0.55.1 → rdworks-0.56.1}/src/rdworks.egg-info/dependency_links.txt +0 -0
  77. {rdworks-0.55.1 → rdworks-0.56.1}/src/rdworks.egg-info/requires.txt +0 -0
  78. {rdworks-0.55.1 → rdworks-0.56.1}/src/rdworks.egg-info/top_level.txt +0 -0
  79. {rdworks-0.55.1 → rdworks-0.56.1}/tests/test_basics.py +0 -0
  80. {rdworks-0.55.1 → rdworks-0.56.1}/tests/test_ionized.py +0 -0
  81. {rdworks-0.55.1 → rdworks-0.56.1}/tests/test_qupkake.py +0 -0
  82. {rdworks-0.55.1 → rdworks-0.56.1}/tests/test_round.py +0 -0
  83. {rdworks-0.55.1 → rdworks-0.56.1}/tests/test_torsion.py +0 -0
  84. {rdworks-0.55.1 → rdworks-0.56.1}/tests/test_xtb.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rdworks
3
- Version: 0.55.1
3
+ Version: 0.56.1
4
4
  Summary: Routine tasks built on RDKit and other tools
5
5
  Author-email: Sung-Hun Bae <sunghun.bae@gmail.com>
6
6
  Maintainer-email: Sung-Hun Bae <sunghun.bae@gmail.com>
@@ -1,4 +1,4 @@
1
- __version__ = '0.55.1'
1
+ __version__ = '0.56.1'
2
2
 
3
3
  from rdworks.conf import Conf
4
4
  from rdworks.mol import Mol
@@ -2,6 +2,7 @@ from rdworks import Mol, MolLibr
2
2
  from rdworks.stereoisomers import enumerate_stereoisomers, enumerate_ring_bond_stereoisomers
3
3
  from rdkit import Chem
4
4
  from rdkit.Chem.MolStandardize import rdMolStandardize
5
+ from rdkit.Chem.EnumerateStereoisomers import EnumerateStereoisomers, StereoEnumerationOptions
5
6
 
6
7
 
7
8
  def complete_stereoisomers(molecular_input: str | Chem.Mol | Mol,
@@ -65,6 +66,18 @@ def complete_stereoisomers(molecular_input: str | Chem.Mol | Mol,
65
66
  return libr
66
67
 
67
68
 
69
+ def can_have_stereo(bond):
70
+ """Check if a double bond can have E/Z stereochemistry"""
71
+ atom1, atom2 = bond.GetBeginAtom(), bond.GetEndAtom()
72
+
73
+ # Check if both atoms have at least 2 non-hydrogen neighbors
74
+ for atom in [atom1, atom2]:
75
+ non_h_neighbors = [n for n in atom.GetNeighbors() if n.GetAtomicNum() != 1]
76
+ if len(non_h_neighbors) < 2:
77
+ return False
78
+
79
+ return True
80
+
68
81
 
69
82
  def complete_tautomers(mol: Mol, **kwargs) -> MolLibr:
70
83
  """Returns a library of enumerated tautomers.
@@ -76,9 +89,30 @@ def complete_tautomers(mol: Mol, **kwargs) -> MolLibr:
76
89
  MolLibr: a library of enumerated tautomers.
77
90
  """
78
91
  enumerator = rdMolStandardize.TautomerEnumerator()
79
- rdmols = list(enumerator.Enumerate(mol.rdmol))
92
+ enumerator.SetRemoveSp3Stereo(False)
93
+ enumerator.SetRemoveBondStereo(False) # Don't remove existing stereo
94
+ tautomers = list(enumerator.Enumerate(mol.rdmol))
95
+
96
+ all_stereoisomers = []
97
+
98
+ for tautomer in tautomers:
99
+ # Find unspecified double bonds that could have E/Z stereo
100
+ unspecified_bonds = []
101
+ for bond in tautomer.GetBonds():
102
+ if (bond.GetBondType() == Chem.BondType.DOUBLE and
103
+ bond.GetStereo() == Chem.BondStereo.STEREONONE and
104
+ can_have_stereo(bond)):
105
+ unspecified_bonds.append(bond.GetIdx())
106
+
107
+ if unspecified_bonds:
108
+ # Enumerate all possible stereoisomers
109
+ opts = StereoEnumerationOptions(onlyUnassigned=True, maxIsomers=50)
110
+ stereoisomers = list(EnumerateStereoisomers(tautomer, options=opts))
111
+ all_stereoisomers.extend(stereoisomers)
112
+ else:
113
+ all_stereoisomers.append(tautomer)
80
114
 
81
- if len(rdmols) > 1:
82
- return MolLibr(rdmols).unique().rename(mol.name, sep='.').compute(**kwargs)
115
+ if len(all_stereoisomers) > 1:
116
+ return MolLibr(all_stereoisomers).unique().rename(mol.name, sep='.').compute(**kwargs)
83
117
 
84
- return MolLibr(rdmols).compute(**kwargs)
118
+ return MolLibr(all_stereoisomers).compute(**kwargs)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rdworks
3
- Version: 0.55.1
3
+ Version: 0.56.1
4
4
  Summary: Routine tasks built on RDKit and other tools
5
5
  Author-email: Sung-Hun Bae <sunghun.bae@gmail.com>
6
6
  Maintainer-email: Sung-Hun Bae <sunghun.bae@gmail.com>
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes