rdkit 2026.9.1__cp315-cp315-win_amd64.whl

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 (949) hide show
  1. rdkit/Avalon/__init__.py +0 -0
  2. rdkit/Avalon/pyAvalonTools.pyd +0 -0
  3. rdkit/Chem/AllChem.py +478 -0
  4. rdkit/Chem/AtomPairs/Pairs.py +165 -0
  5. rdkit/Chem/AtomPairs/Sheridan.py +136 -0
  6. rdkit/Chem/AtomPairs/Torsions.py +175 -0
  7. rdkit/Chem/AtomPairs/Utils.py +317 -0
  8. rdkit/Chem/AtomPairs/__init__.py +0 -0
  9. rdkit/Chem/BRICS.py +1050 -0
  10. rdkit/Chem/BuildFragmentCatalog.py +660 -0
  11. rdkit/Chem/ChemUtils/AlignDepict.py +91 -0
  12. rdkit/Chem/ChemUtils/BulkTester.py +81 -0
  13. rdkit/Chem/ChemUtils/DescriptorUtilities.py +73 -0
  14. rdkit/Chem/ChemUtils/SDFToCSV.py +86 -0
  15. rdkit/Chem/ChemUtils/TemplateExpand.py +456 -0
  16. rdkit/Chem/ChemUtils/__init__.py +0 -0
  17. rdkit/Chem/ChemicalFeatures.py +22 -0
  18. rdkit/Chem/ChemicalForceFields.py +11 -0
  19. rdkit/Chem/Crippen.py +223 -0
  20. rdkit/Chem/DSViewer.py +371 -0
  21. rdkit/Chem/Descriptors.py +335 -0
  22. rdkit/Chem/Descriptors3D.py +252 -0
  23. rdkit/Chem/Draw/FreeSans.ttf +0 -0
  24. rdkit/Chem/Draw/IPythonConsole.py +558 -0
  25. rdkit/Chem/Draw/InteractiveRenderer.py +433 -0
  26. rdkit/Chem/Draw/MolDrawing.py +570 -0
  27. rdkit/Chem/Draw/SimilarityMaps.py +493 -0
  28. rdkit/Chem/Draw/__init__.py +1045 -0
  29. rdkit/Chem/Draw/rdMolDraw2D.pyd +0 -0
  30. rdkit/Chem/EState/AtomTypes.py +145 -0
  31. rdkit/Chem/EState/EState.py +113 -0
  32. rdkit/Chem/EState/EState_VSA.py +133 -0
  33. rdkit/Chem/EState/Fingerprinter.py +66 -0
  34. rdkit/Chem/EState/__init__.py +14 -0
  35. rdkit/Chem/EnumerateHeterocycles.py +362 -0
  36. rdkit/Chem/EnumerateStereoisomers.py +388 -0
  37. rdkit/Chem/FastSDMolSupplier.py +19 -0
  38. rdkit/Chem/FeatFinderCLI.py +105 -0
  39. rdkit/Chem/FeatMaps/FeatMapParser.py +177 -0
  40. rdkit/Chem/FeatMaps/FeatMapPoint.py +126 -0
  41. rdkit/Chem/FeatMaps/FeatMapUtils.py +238 -0
  42. rdkit/Chem/FeatMaps/FeatMaps.py +244 -0
  43. rdkit/Chem/FeatMaps/__init__.py +0 -0
  44. rdkit/Chem/Features/FeatDirUtilsRD.py +414 -0
  45. rdkit/Chem/Features/ShowFeats.py +369 -0
  46. rdkit/Chem/Features/__init__.py +0 -0
  47. rdkit/Chem/FilterCatalog.py +70 -0
  48. rdkit/Chem/Fingerprints/ClusterMols.py +194 -0
  49. rdkit/Chem/Fingerprints/DbFpSupplier.py +187 -0
  50. rdkit/Chem/Fingerprints/FingerprintMols.py +575 -0
  51. rdkit/Chem/Fingerprints/MolSimilarity.py +312 -0
  52. rdkit/Chem/Fingerprints/SimilarityScreener.py +176 -0
  53. rdkit/Chem/Fingerprints/__init__.py +6 -0
  54. rdkit/Chem/Fraggle/FraggleSim.py +400 -0
  55. rdkit/Chem/Fraggle/__init__.py +0 -0
  56. rdkit/Chem/FragmentCatalog.py +95 -0
  57. rdkit/Chem/FragmentMatcher.py +109 -0
  58. rdkit/Chem/Fragments.py +57 -0
  59. rdkit/Chem/FunctionalGroups.py +167 -0
  60. rdkit/Chem/GraphDescriptors.py +709 -0
  61. rdkit/Chem/Graphs.py +51 -0
  62. rdkit/Chem/Lipinski.py +99 -0
  63. rdkit/Chem/MACCSkeys.py +314 -0
  64. rdkit/Chem/MCS.py +399 -0
  65. rdkit/Chem/MolCatalog.py +3 -0
  66. rdkit/Chem/MolDb/FingerprintUtils.py +124 -0
  67. rdkit/Chem/MolDb/Loader.py +13 -0
  68. rdkit/Chem/MolDb/Loader_orig.py +206 -0
  69. rdkit/Chem/MolDb/Loader_sa.py +208 -0
  70. rdkit/Chem/MolDb/__init__.py +3 -0
  71. rdkit/Chem/MolKey/InchiInfo.py +169 -0
  72. rdkit/Chem/MolKey/MolKey.py +441 -0
  73. rdkit/Chem/MolKey/__init__.py +0 -0
  74. rdkit/Chem/MolStandardize/__init__.py +29 -0
  75. rdkit/Chem/MolStandardize/rdMolStandardize.pyd +0 -0
  76. rdkit/Chem/MolSurf.py +500 -0
  77. rdkit/Chem/PandasPatcher.py +287 -0
  78. rdkit/Chem/PandasTools.py +761 -0
  79. rdkit/Chem/Pharm2D/Generate.py +162 -0
  80. rdkit/Chem/Pharm2D/Gobbi_Pharm2D.py +62 -0
  81. rdkit/Chem/Pharm2D/LazyGenerator.py +157 -0
  82. rdkit/Chem/Pharm2D/Matcher.py +148 -0
  83. rdkit/Chem/Pharm2D/SigFactory.py +343 -0
  84. rdkit/Chem/Pharm2D/Utils.py +484 -0
  85. rdkit/Chem/Pharm2D/__init__.py +25 -0
  86. rdkit/Chem/Pharm3D/EmbedLib.py +1302 -0
  87. rdkit/Chem/Pharm3D/ExcludedVolume.py +35 -0
  88. rdkit/Chem/Pharm3D/Pharmacophore.py +215 -0
  89. rdkit/Chem/Pharm3D/__init__.py +0 -0
  90. rdkit/Chem/PropertyMol.py +163 -0
  91. rdkit/Chem/PyMol.py +268 -0
  92. rdkit/Chem/QED.py +249 -0
  93. rdkit/Chem/Randomize.py +33 -0
  94. rdkit/Chem/Recap.py +609 -0
  95. rdkit/Chem/ReducedGraphs.py +23 -0
  96. rdkit/Chem/RegistrationHash.py +393 -0
  97. rdkit/Chem/SATIS.py +88 -0
  98. rdkit/Chem/SaltRemover.py +327 -0
  99. rdkit/Chem/Scaffolds/MurckoScaffold.py +144 -0
  100. rdkit/Chem/Scaffolds/ScaffoldNetwork.ipynb +491 -0
  101. rdkit/Chem/Scaffolds/__init__.py +0 -0
  102. rdkit/Chem/Scaffolds/rdScaffoldNetwork.pyd +0 -0
  103. rdkit/Chem/ShowMols.py +34 -0
  104. rdkit/Chem/SimpleEnum/Enumerator.py +236 -0
  105. rdkit/Chem/SimpleEnum/__init__.py +0 -0
  106. rdkit/Chem/SpacialScore.py +165 -0
  107. rdkit/Chem/Subshape/BuilderUtils.py +346 -0
  108. rdkit/Chem/Subshape/SubshapeAligner.py +352 -0
  109. rdkit/Chem/Subshape/SubshapeBuilder.py +125 -0
  110. rdkit/Chem/Subshape/SubshapeObjects.py +88 -0
  111. rdkit/Chem/Subshape/__init__.py +0 -0
  112. rdkit/Chem/Subshape/demoCombined.py +56 -0
  113. rdkit/Chem/Suppliers/DbMolSupplier.py +167 -0
  114. rdkit/Chem/Suppliers/MolSupplier.py +43 -0
  115. rdkit/Chem/Suppliers/__init__.py +0 -0
  116. rdkit/Chem/TemplateAlign.py +110 -0
  117. rdkit/Chem/TorsionFingerprints.py +709 -0
  118. rdkit/Chem/__init__.py +303 -0
  119. rdkit/Chem/fmcs/__init__.py +11 -0
  120. rdkit/Chem/fmcs/fmcs +10 -0
  121. rdkit/Chem/fmcs/fmcs.py +2824 -0
  122. rdkit/Chem/inchi.py +397 -0
  123. rdkit/Chem/nbtests/ChEMBL_quinolones.tsv +51 -0
  124. rdkit/Chem/nbtests/github4823.ipynb +331 -0
  125. rdkit/Chem/nbtests/rdkit-structure-renderer.ipynb +267 -0
  126. rdkit/Chem/rdAbbreviations.pyd +0 -0
  127. rdkit/Chem/rdCIPLabeler.pyd +0 -0
  128. rdkit/Chem/rdChemDraw.pyd +0 -0
  129. rdkit/Chem/rdChemReactions.pyd +0 -0
  130. rdkit/Chem/rdChemicalFeatures.pyd +0 -0
  131. rdkit/Chem/rdCoordGen.pyd +0 -0
  132. rdkit/Chem/rdDepictor.pyd +0 -0
  133. rdkit/Chem/rdDeprotect.pyd +0 -0
  134. rdkit/Chem/rdDetermineBonds.pyd +0 -0
  135. rdkit/Chem/rdDistGeom.pyd +0 -0
  136. rdkit/Chem/rdEHTTools.pyd +0 -0
  137. rdkit/Chem/rdEnumerateStereoisomers.pyd +0 -0
  138. rdkit/Chem/rdFMCS.pyd +0 -0
  139. rdkit/Chem/rdFingerprintGenerator.pyd +0 -0
  140. rdkit/Chem/rdForceFieldHelpers.pyd +0 -0
  141. rdkit/Chem/rdFreeSASA.pyd +0 -0
  142. rdkit/Chem/rdGaussianShape.pyd +0 -0
  143. rdkit/Chem/rdGeneralizedSubstruct.pyd +0 -0
  144. rdkit/Chem/rdMHFPFingerprint.pyd +0 -0
  145. rdkit/Chem/rdMIF.pyd +0 -0
  146. rdkit/Chem/rdMMPA.pyd +0 -0
  147. rdkit/Chem/rdMolAlign.pyd +0 -0
  148. rdkit/Chem/rdMolCatalog.pyd +0 -0
  149. rdkit/Chem/rdMolChemicalFeatures.pyd +0 -0
  150. rdkit/Chem/rdMolDescriptors.pyd +0 -0
  151. rdkit/Chem/rdMolEnumerator.pyd +0 -0
  152. rdkit/Chem/rdMolHash.pyd +0 -0
  153. rdkit/Chem/rdMolInterchange.pyd +0 -0
  154. rdkit/Chem/rdMolProcessing.pyd +0 -0
  155. rdkit/Chem/rdMolTransforms.pyd +0 -0
  156. rdkit/Chem/rdPartialCharges.pyd +0 -0
  157. rdkit/Chem/rdRGroupDecomposition.pyd +0 -0
  158. rdkit/Chem/rdRascalMCES.pyd +0 -0
  159. rdkit/Chem/rdReducedGraphs.pyd +0 -0
  160. rdkit/Chem/rdSLNParse.pyd +0 -0
  161. rdkit/Chem/rdShapeAlign.pyd +0 -0
  162. rdkit/Chem/rdShapeHelpers.pyd +0 -0
  163. rdkit/Chem/rdSubstructLibrary.pyd +0 -0
  164. rdkit/Chem/rdSynthonSpaceSearch.pyd +0 -0
  165. rdkit/Chem/rdTautomerQuery.pyd +0 -0
  166. rdkit/Chem/rdchem.pyd +0 -0
  167. rdkit/Chem/rdfiltercatalog.pyd +0 -0
  168. rdkit/Chem/rdfragcatalog.pyd +0 -0
  169. rdkit/Chem/rdinchi.pyd +0 -0
  170. rdkit/Chem/rdmolfiles.pyd +0 -0
  171. rdkit/Chem/rdmolops.pyd +0 -0
  172. rdkit/Chem/rdqueries.pyd +0 -0
  173. rdkit/Chem/rdtrajectory.pyd +0 -0
  174. rdkit/Contrib/AtomAtomSimilarity/AtomAtomPathSimilarity.py +384 -0
  175. rdkit/Contrib/CMakeLists.txt +4 -0
  176. rdkit/Contrib/CalcLigRMSD/CalcLigRMSD.py +76 -0
  177. rdkit/Contrib/CalcLigRMSD/README.md +62 -0
  178. rdkit/Contrib/ChiralPairs/ChiralDescriptors.py +417 -0
  179. rdkit/Contrib/ChiralPairs/README.txt +13 -0
  180. rdkit/Contrib/ConformerParser/CMakeLists.txt +15 -0
  181. rdkit/Contrib/ConformerParser/ConformerParser.cpp +116 -0
  182. rdkit/Contrib/ConformerParser/ConformerParser.h +75 -0
  183. rdkit/Contrib/ConformerParser/Wrap/CMakeLists.txt +8 -0
  184. rdkit/Contrib/ConformerParser/Wrap/rdConformerParser.cpp +85 -0
  185. rdkit/Contrib/ConformerParser/Wrap/testConformerParser.py +36 -0
  186. rdkit/Contrib/ConformerParser/nbWrap/CMakeLists.txt +7 -0
  187. rdkit/Contrib/ConformerParser/nbWrap/rdConformerParser.cpp +81 -0
  188. rdkit/Contrib/ConformerParser/test.cpp +118 -0
  189. rdkit/Contrib/Fastcluster/README.md +59 -0
  190. rdkit/Contrib/Fastcluster/cdk2.smi +47 -0
  191. rdkit/Contrib/Fastcluster/centroid.tsv +5 -0
  192. rdkit/Contrib/Fastcluster/clustered.tsv +5 -0
  193. rdkit/Contrib/Fastcluster/clustered_parse.tsv +47 -0
  194. rdkit/Contrib/Fastcluster/fastcluster.py +73 -0
  195. rdkit/Contrib/Fastcluster/fp.tsv +47 -0
  196. rdkit/Contrib/Fastcluster/testdata/cdk2.sdf +5373 -0
  197. rdkit/Contrib/Fastcluster/testdata/converted.smi +48 -0
  198. rdkit/Contrib/Fastcluster/testdata/sdf2smi.py +14 -0
  199. rdkit/Contrib/FreeWilson/README.md +162 -0
  200. rdkit/Contrib/FreeWilson/data/CHEMBL2321810.smi +1017 -0
  201. rdkit/Contrib/FreeWilson/data/CHEMBL2321810_act.csv +1018 -0
  202. rdkit/Contrib/FreeWilson/data/CHEMBL2321810_scaffold.mol +40 -0
  203. rdkit/Contrib/FreeWilson/data/cmet_ligands.sdf +2867 -0
  204. rdkit/Contrib/FreeWilson/freewilson.py +746 -0
  205. rdkit/Contrib/FreeWilson/pytest.ini +2 -0
  206. rdkit/Contrib/FreeWilson/requirements.txt +2 -0
  207. rdkit/Contrib/FreeWilson/setup.py +8 -0
  208. rdkit/Contrib/FreeWilson/test/test_freewilson.py +109 -0
  209. rdkit/Contrib/Glare/README.txt +62 -0
  210. rdkit/Contrib/Glare/glare.py +468 -0
  211. rdkit/Contrib/IFG/README +33 -0
  212. rdkit/Contrib/IFG/ifg.py +113 -0
  213. rdkit/Contrib/LEF/AddLabels.py +76 -0
  214. rdkit/Contrib/LEF/ClusterFps.py +75 -0
  215. rdkit/Contrib/LEF/CreateFps.py +123 -0
  216. rdkit/Contrib/LEF/DistancePlot.py +102 -0
  217. rdkit/Contrib/LEF/DistancePredict.py +183 -0
  218. rdkit/Contrib/LEF/README.txt +41 -0
  219. rdkit/Contrib/M_Kossner/BaseFeatures_DIP2_NoMicrospecies.fdef +200 -0
  220. rdkit/Contrib/M_Kossner/Frames.py +185 -0
  221. rdkit/Contrib/M_Kossner/README +49 -0
  222. rdkit/Contrib/MolVS/molvs_cli.py +112 -0
  223. rdkit/Contrib/NIBRSubstructureFilters/README.md +78 -0
  224. rdkit/Contrib/NIBRSubstructureFilters/SubstructureFilter_HitTriaging_wPubChemExamples.csv +445 -0
  225. rdkit/Contrib/NIBRSubstructureFilters/assignSubstructureFilters.py +143 -0
  226. rdkit/Contrib/NP_Score/README +9 -0
  227. rdkit/Contrib/NP_Score/npscorer.py +131 -0
  228. rdkit/Contrib/NP_Score/publicnp.model.gz +0 -0
  229. rdkit/Contrib/PBF/Makefile +15 -0
  230. rdkit/Contrib/PBF/PBFRDKit.cpp +160 -0
  231. rdkit/Contrib/PBF/PBFRDKit.h +58 -0
  232. rdkit/Contrib/PBF/README +20 -0
  233. rdkit/Contrib/PBF/demo.cpp +72 -0
  234. rdkit/Contrib/PBF/pbf.py +72 -0
  235. rdkit/Contrib/PBF/testData/egfr.out +365 -0
  236. rdkit/Contrib/PBF/testData/egfr.sdf +42378 -0
  237. rdkit/Contrib/RxnRoleAssignment/README.txt +12 -0
  238. rdkit/Contrib/RxnRoleAssignment/__init__.py +0 -0
  239. rdkit/Contrib/RxnRoleAssignment/identifyReactants.py +460 -0
  240. rdkit/Contrib/RxnRoleAssignment/utils.py +93 -0
  241. rdkit/Contrib/SA_Score/README +9 -0
  242. rdkit/Contrib/SA_Score/UnitTestSAScore.py +42 -0
  243. rdkit/Contrib/SA_Score/build_sascore_db.py +268 -0
  244. rdkit/Contrib/SA_Score/data/zim.100.txt +101 -0
  245. rdkit/Contrib/SA_Score/fpscores.pkl.gz +0 -0
  246. rdkit/Contrib/SA_Score/sascorer.py +192 -0
  247. rdkit/Contrib/efgs/README.md +20 -0
  248. rdkit/Contrib/efgs/ch33query.sql +26 -0
  249. rdkit/Contrib/efgs/efgs.py +567 -0
  250. rdkit/Contrib/efgs/try_efgs.py +223 -0
  251. rdkit/Contrib/fraggle/atomcontrib.py +133 -0
  252. rdkit/Contrib/fraggle/cxn_tversky.py +116 -0
  253. rdkit/Contrib/fraggle/data/ChEMBL_11265_actives.smi +100 -0
  254. rdkit/Contrib/fraggle/data/final_fraggle_results.csv +10 -0
  255. rdkit/Contrib/fraggle/data/fragmentation_tversky_out +89 -0
  256. rdkit/Contrib/fraggle/data/query.smi +1 -0
  257. rdkit/Contrib/fraggle/data/query_fragmentation.csv +16 -0
  258. rdkit/Contrib/fraggle/fraggle.py +66 -0
  259. rdkit/Contrib/fraggle/rdkit_tversky.py +104 -0
  260. rdkit/Contrib/fraggle/readme.txt +147 -0
  261. rdkit/Contrib/mmpa/README.txt +303 -0
  262. rdkit/Contrib/mmpa/cansmirk.py +89 -0
  263. rdkit/Contrib/mmpa/create_mmp_db.py +273 -0
  264. rdkit/Contrib/mmpa/data/sample.smi +10 -0
  265. rdkit/Contrib/mmpa/data/sample_cansmirks.txt +3 -0
  266. rdkit/Contrib/mmpa/data/sample_db_input_smi.txt +1 -0
  267. rdkit/Contrib/mmpa/data/sample_db_input_subs.txt +1 -0
  268. rdkit/Contrib/mmpa/data/sample_db_input_subs_smarts.txt +1 -0
  269. rdkit/Contrib/mmpa/data/sample_db_input_trans.txt +1 -0
  270. rdkit/Contrib/mmpa/data/sample_db_input_trans_smarts.txt +1 -0
  271. rdkit/Contrib/mmpa/data/sample_db_search_smi_output.txt +1 -0
  272. rdkit/Contrib/mmpa/data/sample_db_search_subs_output.txt +1 -0
  273. rdkit/Contrib/mmpa/data/sample_db_search_subs_smart_output.txt +10 -0
  274. rdkit/Contrib/mmpa/data/sample_db_search_trans_output.txt +1 -0
  275. rdkit/Contrib/mmpa/data/sample_db_search_trans_smarts_output.txt +1 -0
  276. rdkit/Contrib/mmpa/data/sample_fragmented.txt +78 -0
  277. rdkit/Contrib/mmpa/data/sample_mmps_default.csv +12 -0
  278. rdkit/Contrib/mmpa/data/sample_mmps_maxheavy.csv +2 -0
  279. rdkit/Contrib/mmpa/data/sample_mmps_maxratio.csv +1 -0
  280. rdkit/Contrib/mmpa/data/sample_mmps_sym.csv +24 -0
  281. rdkit/Contrib/mmpa/data/sample_mmps_sym_maxheavy.csv +4 -0
  282. rdkit/Contrib/mmpa/data/sample_mol_trans_output.txt +2 -0
  283. rdkit/Contrib/mmpa/data/sample_smiles_mol_trans.smi +1 -0
  284. rdkit/Contrib/mmpa/data/sample_smirks.txt +3 -0
  285. rdkit/Contrib/mmpa/data/sample_smirks_mol_trans.txt +1 -0
  286. rdkit/Contrib/mmpa/data/sample_transfroms.txt +2 -0
  287. rdkit/Contrib/mmpa/data/simple.smi +2 -0
  288. rdkit/Contrib/mmpa/indexing.py +535 -0
  289. rdkit/Contrib/mmpa/mol_transform.py +124 -0
  290. rdkit/Contrib/mmpa/rfrag.py +242 -0
  291. rdkit/Contrib/mmpa/search_mmp_db.py +450 -0
  292. rdkit/Contrib/mmpa/test_rfrag.py +29 -0
  293. rdkit/Contrib/pzc/p_con.html +54 -0
  294. rdkit/Contrib/pzc/p_con.py +1409 -0
  295. rdkit/Contrib/pzc/readme.md +50 -0
  296. rdkit/Data/BaseFeatures.fdef +217 -0
  297. rdkit/Data/Crippen.txt +125 -0
  298. rdkit/Data/DTDs/RD_Dataset.dtd +30 -0
  299. rdkit/Data/DTDs/RD_Model.dtd +57 -0
  300. rdkit/Data/DTDs/validate.py +8 -0
  301. rdkit/Data/Fonts/Amadeus.ttf +0 -0
  302. rdkit/Data/Fonts/ComicNeue-Regular.ttf +0 -0
  303. rdkit/Data/Fonts/OFL.txt +93 -0
  304. rdkit/Data/Fonts/Telex-Regular.ttf +0 -0
  305. rdkit/Data/Fonts/amadeus_font_license.txt +5 -0
  306. rdkit/Data/Fonts/font_dumper.py +34 -0
  307. rdkit/Data/Fonts/roboto_regular_license.txt +4 -0
  308. rdkit/Data/Fonts/telex_font_license.txt +43 -0
  309. rdkit/Data/FragmentDescriptors.csv +129 -0
  310. rdkit/Data/FunctionalGroups.txt +67 -0
  311. rdkit/Data/Functional_Group_Hierarchy.txt +105 -0
  312. rdkit/Data/NCI/first_200.props.sdf +18470 -0
  313. rdkit/Data/NCI/first_200.tpsa.csv +201 -0
  314. rdkit/Data/NCI/first_5K.smi +4999 -0
  315. rdkit/Data/NCI/first_5k.tpsa.csv +5000 -0
  316. rdkit/Data/Pains/README.md +17 -0
  317. rdkit/Data/Pains/test_data/run_tests.py +39 -0
  318. rdkit/Data/Pains/test_data/test_set3.txt +477 -0
  319. rdkit/Data/Pains/test_data/wehi_mols.csv +10000 -0
  320. rdkit/Data/Pains/wehi_pains.csv +480 -0
  321. rdkit/Data/RDData.sqlt +0 -0
  322. rdkit/Data/RDTests.sqlt +0 -0
  323. rdkit/Data/Salts.txt +66 -0
  324. rdkit/Data/SmartsLib/RLewis_smarts.txt +484 -0
  325. rdkit/Data/SmartsLib/patty_rules.txt +227 -0
  326. rdkit/Data/SmartsLib/tests/bench2.py +54 -0
  327. rdkit/Data/SmartsLib/tests/fps.1000.counts.pkl.gz +0 -0
  328. rdkit/Data/SmartsLib/tests/mols.1000.pkl.gz +0 -0
  329. rdkit/Data/eht_parms.dat +311 -0
  330. rdkit/Data/rddata.sql +329 -0
  331. rdkit/Data/struchk/checkfgs.chk +608 -0
  332. rdkit/Data/struchk/checkfgs.opt +11 -0
  333. rdkit/Data/struchk/checkfgs.trn +149 -0
  334. rdkit/DataManip/Metric/__init__.py +10 -0
  335. rdkit/DataManip/Metric/rdMetricMatrixCalc.pyd +0 -0
  336. rdkit/DataManip/__init__.py +1 -0
  337. rdkit/DataStructs/BitEnsemble.py +59 -0
  338. rdkit/DataStructs/BitEnsembleDb.py +59 -0
  339. rdkit/DataStructs/BitUtils.py +51 -0
  340. rdkit/DataStructs/HierarchyVis.py +122 -0
  341. rdkit/DataStructs/LazySignature.py +81 -0
  342. rdkit/DataStructs/TopNContainer.py +85 -0
  343. rdkit/DataStructs/VectCollection.py +282 -0
  344. rdkit/DataStructs/__init__.py +78 -0
  345. rdkit/DataStructs/cDataStructs.pyd +0 -0
  346. rdkit/Dbase/DbConnection.py +308 -0
  347. rdkit/Dbase/DbInfo.py +207 -0
  348. rdkit/Dbase/DbModule.py +60 -0
  349. rdkit/Dbase/DbResultSet.py +242 -0
  350. rdkit/Dbase/DbUtils.py +466 -0
  351. rdkit/Dbase/StorageUtils.py +309 -0
  352. rdkit/Dbase/__init__.py +11 -0
  353. rdkit/DistanceGeometry/DistGeom.pyd +0 -0
  354. rdkit/DistanceGeometry/__init__.py +1 -0
  355. rdkit/ForceField/__init__.py +1 -0
  356. rdkit/ForceField/rdForceField.pyd +0 -0
  357. rdkit/Geometry/__init__.py +5 -0
  358. rdkit/Geometry/rdGeometry.pyd +0 -0
  359. rdkit/ML/Cluster/Butina.py +144 -0
  360. rdkit/ML/Cluster/ClusterUtils.py +182 -0
  361. rdkit/ML/Cluster/ClusterVis.py +458 -0
  362. rdkit/ML/Cluster/Clustering.pyd +0 -0
  363. rdkit/ML/Cluster/Clusters.py +313 -0
  364. rdkit/ML/Cluster/Murtagh.py +114 -0
  365. rdkit/ML/Cluster/Resemblance.py +143 -0
  366. rdkit/ML/Cluster/Standardize.py +28 -0
  367. rdkit/ML/Cluster/__init__.py +0 -0
  368. rdkit/ML/Cluster/murtagh_test.py +34 -0
  369. rdkit/ML/Data/DataUtils.py +681 -0
  370. rdkit/ML/Data/FindQuantBounds.py +67 -0
  371. rdkit/ML/Data/MLData.py +364 -0
  372. rdkit/ML/Data/Quantize.py +379 -0
  373. rdkit/ML/Data/SplitData.py +307 -0
  374. rdkit/ML/Data/Stats.py +227 -0
  375. rdkit/ML/Data/Transforms.py +51 -0
  376. rdkit/ML/Data/__init__.py +0 -0
  377. rdkit/ML/Data/cQuantize.pyd +0 -0
  378. rdkit/ML/Descriptors/CompoundDescriptors.py +473 -0
  379. rdkit/ML/Descriptors/Descriptors.py +67 -0
  380. rdkit/ML/Descriptors/MoleculeDescriptors.py +127 -0
  381. rdkit/ML/Descriptors/Parser.py +453 -0
  382. rdkit/ML/Descriptors/__init__.py +0 -0
  383. rdkit/ML/InfoTheory/BitClusterer.py +74 -0
  384. rdkit/ML/InfoTheory/BitRank.py +201 -0
  385. rdkit/ML/InfoTheory/__init__.py +4 -0
  386. rdkit/ML/InfoTheory/entropy.py +102 -0
  387. rdkit/ML/InfoTheory/rdInfoTheory.pyd +0 -0
  388. rdkit/ML/MLUtils/VoteImg.py +222 -0
  389. rdkit/ML/MLUtils/__init__.py +3 -0
  390. rdkit/ML/MatOps.py +29 -0
  391. rdkit/ML/SLT/Risk.py +141 -0
  392. rdkit/ML/SLT/__init__.py +0 -0
  393. rdkit/ML/Scoring/Scoring.py +202 -0
  394. rdkit/ML/Scoring/__init__.py +0 -0
  395. rdkit/ML/__init__.py +10 -0
  396. rdkit/ML/files.py +110 -0
  397. rdkit/Numerics/__init__.py +4 -0
  398. rdkit/Numerics/rdAlignment.pyd +0 -0
  399. rdkit/RDConfig.py +88 -0
  400. rdkit/RDLogger.py +56 -0
  401. rdkit/RDPaths.py +9 -0
  402. rdkit/RDRandom.py +46 -0
  403. rdkit/SimDivFilters/SimilarityPickers.py +285 -0
  404. rdkit/SimDivFilters/__init__.py +11 -0
  405. rdkit/SimDivFilters/rdSimDivPickers.pyd +0 -0
  406. rdkit/TestRunner.py +128 -0
  407. rdkit/VLib/Filter.py +117 -0
  408. rdkit/VLib/Node.py +201 -0
  409. rdkit/VLib/NodeLib/DbMolSupply.py +75 -0
  410. rdkit/VLib/NodeLib/DbPickleSupplier.py +212 -0
  411. rdkit/VLib/NodeLib/SDSupply.py +65 -0
  412. rdkit/VLib/NodeLib/SmartsMolFilter.py +104 -0
  413. rdkit/VLib/NodeLib/SmartsRemover.py +156 -0
  414. rdkit/VLib/NodeLib/SmilesDupeFilter.py +70 -0
  415. rdkit/VLib/NodeLib/SmilesOutput.py +82 -0
  416. rdkit/VLib/NodeLib/SmilesSupply.py +75 -0
  417. rdkit/VLib/NodeLib/__init__.py +1 -0
  418. rdkit/VLib/NodeLib/demo.py +56 -0
  419. rdkit/VLib/Output.py +75 -0
  420. rdkit/VLib/Supply.py +76 -0
  421. rdkit/VLib/Transform.py +85 -0
  422. rdkit/VLib/__init__.py +1 -0
  423. rdkit/__init__.py +79 -0
  424. rdkit/conftest.py +25 -0
  425. rdkit/license.txt +29 -0
  426. rdkit/pytest.ini +8 -0
  427. rdkit/rdBase.pyd +0 -0
  428. rdkit/sping/PDF/__init__.py +1 -0
  429. rdkit/sping/PDF/pdfdoc.py +528 -0
  430. rdkit/sping/PDF/pdfgen.py +1041 -0
  431. rdkit/sping/PDF/pdfgeom.py +69 -0
  432. rdkit/sping/PDF/pdfmetrics.py +338 -0
  433. rdkit/sping/PDF/pdfutils.py +319 -0
  434. rdkit/sping/PDF/pidPDF.py +677 -0
  435. rdkit/sping/PIL/__init__.py +2 -0
  436. rdkit/sping/PIL/pidPIL.py +469 -0
  437. rdkit/sping/PIL/pilfonts/courier-10.pbm +0 -0
  438. rdkit/sping/PIL/pilfonts/courier-10.pil +0 -0
  439. rdkit/sping/PIL/pilfonts/courier-12.pbm +0 -0
  440. rdkit/sping/PIL/pilfonts/courier-12.pil +0 -0
  441. rdkit/sping/PIL/pilfonts/courier-14.pbm +0 -0
  442. rdkit/sping/PIL/pilfonts/courier-14.pil +0 -0
  443. rdkit/sping/PIL/pilfonts/courier-18.pbm +0 -0
  444. rdkit/sping/PIL/pilfonts/courier-18.pil +0 -0
  445. rdkit/sping/PIL/pilfonts/courier-24.pbm +0 -0
  446. rdkit/sping/PIL/pilfonts/courier-24.pil +0 -0
  447. rdkit/sping/PIL/pilfonts/courier-8.pbm +0 -0
  448. rdkit/sping/PIL/pilfonts/courier-8.pil +0 -0
  449. rdkit/sping/PIL/pilfonts/courier-8.pil.1 +0 -0
  450. rdkit/sping/PIL/pilfonts/courier-bold-10.pbm +0 -0
  451. rdkit/sping/PIL/pilfonts/courier-bold-10.pil +0 -0
  452. rdkit/sping/PIL/pilfonts/courier-bold-12.pbm +0 -0
  453. rdkit/sping/PIL/pilfonts/courier-bold-12.pil +0 -0
  454. rdkit/sping/PIL/pilfonts/courier-bold-14.pbm +0 -0
  455. rdkit/sping/PIL/pilfonts/courier-bold-14.pil +0 -0
  456. rdkit/sping/PIL/pilfonts/courier-bold-18.pbm +0 -0
  457. rdkit/sping/PIL/pilfonts/courier-bold-18.pil +0 -0
  458. rdkit/sping/PIL/pilfonts/courier-bold-24.pbm +0 -0
  459. rdkit/sping/PIL/pilfonts/courier-bold-24.pil +0 -0
  460. rdkit/sping/PIL/pilfonts/courier-bold-8.pbm +0 -0
  461. rdkit/sping/PIL/pilfonts/courier-bold-8.pil +0 -0
  462. rdkit/sping/PIL/pilfonts/helvetica-10.pbm +0 -0
  463. rdkit/sping/PIL/pilfonts/helvetica-10.pil +0 -0
  464. rdkit/sping/PIL/pilfonts/helvetica-12.pbm +0 -0
  465. rdkit/sping/PIL/pilfonts/helvetica-12.pil +0 -0
  466. rdkit/sping/PIL/pilfonts/helvetica-14.pbm +0 -0
  467. rdkit/sping/PIL/pilfonts/helvetica-14.pil +0 -0
  468. rdkit/sping/PIL/pilfonts/helvetica-18.pbm +0 -0
  469. rdkit/sping/PIL/pilfonts/helvetica-18.pil +0 -0
  470. rdkit/sping/PIL/pilfonts/helvetica-24.pbm +0 -0
  471. rdkit/sping/PIL/pilfonts/helvetica-24.pil +0 -0
  472. rdkit/sping/PIL/pilfonts/helvetica-8.pbm +0 -0
  473. rdkit/sping/PIL/pilfonts/helvetica-8.pil +0 -0
  474. rdkit/sping/PIL/pilfonts/helvetica-bold-10.pbm +0 -0
  475. rdkit/sping/PIL/pilfonts/helvetica-bold-10.pil +0 -0
  476. rdkit/sping/PIL/pilfonts/helvetica-bold-12.pbm +0 -0
  477. rdkit/sping/PIL/pilfonts/helvetica-bold-12.pil +0 -0
  478. rdkit/sping/PIL/pilfonts/helvetica-bold-14.pbm +0 -0
  479. rdkit/sping/PIL/pilfonts/helvetica-bold-14.pil +0 -0
  480. rdkit/sping/PIL/pilfonts/helvetica-bold-18.pbm +0 -0
  481. rdkit/sping/PIL/pilfonts/helvetica-bold-18.pil +0 -0
  482. rdkit/sping/PIL/pilfonts/helvetica-bold-24.pbm +0 -0
  483. rdkit/sping/PIL/pilfonts/helvetica-bold-24.pil +0 -0
  484. rdkit/sping/PIL/pilfonts/helvetica-bold-8.pbm +0 -0
  485. rdkit/sping/PIL/pilfonts/helvetica-bold-8.pil +0 -0
  486. rdkit/sping/PIL/pilfonts/metrics.dat +8446 -0
  487. rdkit/sping/PIL/pilfonts/removemedium.py +8 -0
  488. rdkit/sping/PIL/pilfonts/symbol-10.pbm +0 -0
  489. rdkit/sping/PIL/pilfonts/symbol-10.pil +0 -0
  490. rdkit/sping/PIL/pilfonts/symbol-12.pbm +0 -0
  491. rdkit/sping/PIL/pilfonts/symbol-12.pil +0 -0
  492. rdkit/sping/PIL/pilfonts/symbol-14.pbm +0 -0
  493. rdkit/sping/PIL/pilfonts/symbol-14.pil +0 -0
  494. rdkit/sping/PIL/pilfonts/symbol-18.pbm +0 -0
  495. rdkit/sping/PIL/pilfonts/symbol-18.pil +0 -0
  496. rdkit/sping/PIL/pilfonts/symbol-24.pbm +0 -0
  497. rdkit/sping/PIL/pilfonts/symbol-24.pil +0 -0
  498. rdkit/sping/PIL/pilfonts/symbol-8.pbm +0 -0
  499. rdkit/sping/PIL/pilfonts/symbol-8.pil +0 -0
  500. rdkit/sping/PIL/pilfonts/times-10.pbm +0 -0
  501. rdkit/sping/PIL/pilfonts/times-10.pil +0 -0
  502. rdkit/sping/PIL/pilfonts/times-12.pbm +0 -0
  503. rdkit/sping/PIL/pilfonts/times-12.pil +0 -0
  504. rdkit/sping/PIL/pilfonts/times-14.pbm +0 -0
  505. rdkit/sping/PIL/pilfonts/times-14.pil +0 -0
  506. rdkit/sping/PIL/pilfonts/times-18.pbm +0 -0
  507. rdkit/sping/PIL/pilfonts/times-18.pil +0 -0
  508. rdkit/sping/PIL/pilfonts/times-24.pbm +0 -0
  509. rdkit/sping/PIL/pilfonts/times-24.pil +0 -0
  510. rdkit/sping/PIL/pilfonts/times-8.pbm +0 -0
  511. rdkit/sping/PIL/pilfonts/times-8.pil +0 -0
  512. rdkit/sping/PIL/pilfonts/times-bold-10.pbm +0 -0
  513. rdkit/sping/PIL/pilfonts/times-bold-10.pil +0 -0
  514. rdkit/sping/PIL/pilfonts/times-bold-12.pbm +0 -0
  515. rdkit/sping/PIL/pilfonts/times-bold-12.pil +0 -0
  516. rdkit/sping/PIL/pilfonts/times-bold-14.pbm +0 -0
  517. rdkit/sping/PIL/pilfonts/times-bold-14.pil +0 -0
  518. rdkit/sping/PIL/pilfonts/times-bold-18.pbm +0 -0
  519. rdkit/sping/PIL/pilfonts/times-bold-18.pil +0 -0
  520. rdkit/sping/PIL/pilfonts/times-bold-24.pbm +0 -0
  521. rdkit/sping/PIL/pilfonts/times-bold-24.pil +0 -0
  522. rdkit/sping/PIL/pilfonts/times-bold-8.pbm +0 -0
  523. rdkit/sping/PIL/pilfonts/times-bold-8.pil +0 -0
  524. rdkit/sping/PS/__init__.py +2 -0
  525. rdkit/sping/PS/fontinfo.py +8 -0
  526. rdkit/sping/PS/latin1MetricsCache.py +226 -0
  527. rdkit/sping/PS/pidPS.py +982 -0
  528. rdkit/sping/PS/psmetrics.py +249 -0
  529. rdkit/sping/Pyart/Fontmapping.py +103 -0
  530. rdkit/sping/Pyart/__init__.py +3 -0
  531. rdkit/sping/Pyart/pidPyart.py +278 -0
  532. rdkit/sping/Qt/__init__.py +0 -0
  533. rdkit/sping/Qt/pidQt.py +401 -0
  534. rdkit/sping/Qt/pidQt4.py +386 -0
  535. rdkit/sping/README +64 -0
  536. rdkit/sping/ReportLab/__init__.py +0 -0
  537. rdkit/sping/ReportLab/pidReportLab.py +324 -0
  538. rdkit/sping/SVG/__init__.py +3 -0
  539. rdkit/sping/SVG/pidSVG.py +749 -0
  540. rdkit/sping/TK/__init__.py +1 -0
  541. rdkit/sping/TK/pidTK.py +485 -0
  542. rdkit/sping/WX/__init__.py +1 -0
  543. rdkit/sping/WX/pidWX.py +405 -0
  544. rdkit/sping/WX/pidWxDc.py +284 -0
  545. rdkit/sping/__init__.py +5 -0
  546. rdkit/sping/colors.py +226 -0
  547. rdkit/sping/examples/formatted-strings.py +44 -0
  548. rdkit/sping/examples/tkCanvas-with-scrollbars.py +77 -0
  549. rdkit/sping/examples/tkCanvasPIL-with-scrollbars.py +75 -0
  550. rdkit/sping/pagesizes.py +29 -0
  551. rdkit/sping/patches/Imaging-1.1-fixplugin-path +37 -0
  552. rdkit/sping/patches/Imaging-1.1.1.diff +27 -0
  553. rdkit/sping/pid.py +598 -0
  554. rdkit/sping/stringformat.py +581 -0
  555. rdkit/sping/tests/__init__.py +1 -0
  556. rdkit/sping/tests/pidtest.py +451 -0
  557. rdkit/sping/tests/pstests.py +20 -0
  558. rdkit/sping/tests/testallps.py +47 -0
  559. rdkit/sping/util/HTMLPiddler.py +406 -0
  560. rdkit/sping/util/__init__.py +1 -0
  561. rdkit/sping/utils.py +12 -0
  562. rdkit/utils/__init__.py +0 -0
  563. rdkit/utils/cactvs.py +67 -0
  564. rdkit/utils/chemdraw.py +451 -0
  565. rdkit/utils/chemdraw_qax.py +85 -0
  566. rdkit/utils/chemutils.py +164 -0
  567. rdkit/utils/fileutils.py +46 -0
  568. rdkit/utils/listutils.py +64 -0
  569. rdkit/utils/retest.txt +8 -0
  570. rdkit/utils/spiral.py +50 -0
  571. rdkit-2026.9.1.dist-info/DELVEWHEEL +2 -0
  572. rdkit-2026.9.1.dist-info/LICENSE.md +21 -0
  573. rdkit-2026.9.1.dist-info/METADATA +72 -0
  574. rdkit-2026.9.1.dist-info/RECORD +949 -0
  575. rdkit-2026.9.1.dist-info/WHEEL +5 -0
  576. rdkit-2026.9.1.dist-info/top_level.txt +1 -0
  577. rdkit-stubs/Avalon/__init__.pyi +2 -0
  578. rdkit-stubs/Avalon/pyAvalonTools.pyi +194 -0
  579. rdkit-stubs/Chem/AllChem.pyi +511 -0
  580. rdkit-stubs/Chem/AtomPairs/Pairs.pyi +103 -0
  581. rdkit-stubs/Chem/AtomPairs/Sheridan.pyi +68 -0
  582. rdkit-stubs/Chem/AtomPairs/Torsions.pyi +100 -0
  583. rdkit-stubs/Chem/AtomPairs/Utils.pyi +204 -0
  584. rdkit-stubs/Chem/AtomPairs/__init__.pyi +2 -0
  585. rdkit-stubs/Chem/BRICS.pyi +219 -0
  586. rdkit-stubs/Chem/BuildFragmentCatalog.pyi +219 -0
  587. rdkit-stubs/Chem/ChemUtils/AlignDepict.pyi +28 -0
  588. rdkit-stubs/Chem/ChemUtils/BulkTester.pyi +9 -0
  589. rdkit-stubs/Chem/ChemUtils/DescriptorUtilities.pyi +28 -0
  590. rdkit-stubs/Chem/ChemUtils/SDFToCSV.pyi +21 -0
  591. rdkit-stubs/Chem/ChemUtils/TemplateExpand.pyi +24 -0
  592. rdkit-stubs/Chem/ChemUtils/__init__.pyi +2 -0
  593. rdkit-stubs/Chem/ChemicalFeatures.pyi +7 -0
  594. rdkit-stubs/Chem/ChemicalForceFields.pyi +5 -0
  595. rdkit-stubs/Chem/Crippen.pyi +51 -0
  596. rdkit-stubs/Chem/Descriptors.pyi +356 -0
  597. rdkit-stubs/Chem/Descriptors3D.pyi +27 -0
  598. rdkit-stubs/Chem/EState/AtomTypes.pyi +26 -0
  599. rdkit-stubs/Chem/EState/EState.pyi +31 -0
  600. rdkit-stubs/Chem/EState/EState_VSA.pyi +76 -0
  601. rdkit-stubs/Chem/EState/Fingerprinter.pyi +25 -0
  602. rdkit-stubs/Chem/EState/__init__.pyi +25 -0
  603. rdkit-stubs/Chem/EnumerateHeterocycles.pyi +56 -0
  604. rdkit-stubs/Chem/EnumerateStereoisomers.pyi +215 -0
  605. rdkit-stubs/Chem/FastSDMolSupplier.pyi +9 -0
  606. rdkit-stubs/Chem/FeatFinderCLI.pyi +28 -0
  607. rdkit-stubs/Chem/FeatMaps/FeatMapParser.pyi +24 -0
  608. rdkit-stubs/Chem/FeatMaps/FeatMapPoint.pyi +76 -0
  609. rdkit-stubs/Chem/FeatMaps/FeatMapUtils.pyi +57 -0
  610. rdkit-stubs/Chem/FeatMaps/FeatMaps.pyi +60 -0
  611. rdkit-stubs/Chem/FeatMaps/__init__.pyi +2 -0
  612. rdkit-stubs/Chem/Features/FeatDirUtilsRD.pyi +118 -0
  613. rdkit-stubs/Chem/Features/ShowFeats.pyi +40 -0
  614. rdkit-stubs/Chem/Features/__init__.pyi +2 -0
  615. rdkit-stubs/Chem/FilterCatalog.pyi +69 -0
  616. rdkit-stubs/Chem/Fingerprints/ClusterMols.pyi +37 -0
  617. rdkit-stubs/Chem/Fingerprints/DbFpSupplier.pyi +108 -0
  618. rdkit-stubs/Chem/Fingerprints/FingerprintMols.pyi +95 -0
  619. rdkit-stubs/Chem/Fingerprints/MolSimilarity.pyi +49 -0
  620. rdkit-stubs/Chem/Fingerprints/SimilarityScreener.pyi +118 -0
  621. rdkit-stubs/Chem/Fingerprints/__init__.pyi +3 -0
  622. rdkit-stubs/Chem/Fraggle/FraggleSim.pyi +126 -0
  623. rdkit-stubs/Chem/Fraggle/__init__.pyi +2 -0
  624. rdkit-stubs/Chem/FragmentCatalog.pyi +22 -0
  625. rdkit-stubs/Chem/FragmentMatcher.pyi +62 -0
  626. rdkit-stubs/Chem/Fragments.pyi +19 -0
  627. rdkit-stubs/Chem/FunctionalGroups.pyi +33 -0
  628. rdkit-stubs/Chem/GraphDescriptors.pyi +279 -0
  629. rdkit-stubs/Chem/Graphs.pyi +25 -0
  630. rdkit-stubs/Chem/Lipinski.pyi +22 -0
  631. rdkit-stubs/Chem/MACCSkeys.pyi +62 -0
  632. rdkit-stubs/Chem/MCS.pyi +108 -0
  633. rdkit-stubs/Chem/MolCatalog.pyi +4 -0
  634. rdkit-stubs/Chem/MolDb/FingerprintUtils.pyi +42 -0
  635. rdkit-stubs/Chem/MolDb/Loader.pyi +16 -0
  636. rdkit-stubs/Chem/MolDb/Loader_orig.pyi +19 -0
  637. rdkit-stubs/Chem/MolDb/__init__.pyi +3 -0
  638. rdkit-stubs/Chem/MolKey/InchiInfo.pyi +41 -0
  639. rdkit-stubs/Chem/MolKey/MolKey.pyi +213 -0
  640. rdkit-stubs/Chem/MolKey/__init__.pyi +2 -0
  641. rdkit-stubs/Chem/MolStandardize/__init__.pyi +20 -0
  642. rdkit-stubs/Chem/MolStandardize/rdMolStandardize.pyi +1813 -0
  643. rdkit-stubs/Chem/MolSurf.pyi +98 -0
  644. rdkit-stubs/Chem/Pharm2D/Generate.pyi +60 -0
  645. rdkit-stubs/Chem/Pharm2D/Gobbi_Pharm2D.pyi +15 -0
  646. rdkit-stubs/Chem/Pharm2D/Matcher.pyi +46 -0
  647. rdkit-stubs/Chem/Pharm2D/SigFactory.pyi +144 -0
  648. rdkit-stubs/Chem/Pharm2D/Utils.pyi +184 -0
  649. rdkit-stubs/Chem/Pharm2D/__init__.pyi +8 -0
  650. rdkit-stubs/Chem/Pharm3D/EmbedLib.pyi +722 -0
  651. rdkit-stubs/Chem/Pharm3D/ExcludedVolume.pyi +8 -0
  652. rdkit-stubs/Chem/Pharm3D/Pharmacophore.pyi +67 -0
  653. rdkit-stubs/Chem/Pharm3D/__init__.pyi +2 -0
  654. rdkit-stubs/Chem/PropertyMol.pyi +114 -0
  655. rdkit-stubs/Chem/PyMol.pyi +91 -0
  656. rdkit-stubs/Chem/QED.pyi +162 -0
  657. rdkit-stubs/Chem/Randomize.pyi +10 -0
  658. rdkit-stubs/Chem/Recap.pyi +111 -0
  659. rdkit-stubs/Chem/ReducedGraphs.pyi +5 -0
  660. rdkit-stubs/Chem/RegistrationHash.pyi +219 -0
  661. rdkit-stubs/Chem/SATIS.pyi +38 -0
  662. rdkit-stubs/Chem/SaltRemover.pyi +180 -0
  663. rdkit-stubs/Chem/Scaffolds/MurckoScaffold.pyi +69 -0
  664. rdkit-stubs/Chem/Scaffolds/__init__.pyi +2 -0
  665. rdkit-stubs/Chem/Scaffolds/rdScaffoldNetwork.pyi +292 -0
  666. rdkit-stubs/Chem/ShowMols.pyi +9 -0
  667. rdkit-stubs/Chem/SimpleEnum/Enumerator.pyi +156 -0
  668. rdkit-stubs/Chem/SimpleEnum/__init__.pyi +2 -0
  669. rdkit-stubs/Chem/SpacialScore.pyi +78 -0
  670. rdkit-stubs/Chem/Subshape/BuilderUtils.pyi +39 -0
  671. rdkit-stubs/Chem/Subshape/SubshapeAligner.pyi +68 -0
  672. rdkit-stubs/Chem/Subshape/SubshapeBuilder.pyi +34 -0
  673. rdkit-stubs/Chem/Subshape/SubshapeObjects.pyi +35 -0
  674. rdkit-stubs/Chem/Subshape/__init__.pyi +2 -0
  675. rdkit-stubs/Chem/Suppliers/DbMolSupplier.pyi +61 -0
  676. rdkit-stubs/Chem/Suppliers/MolSupplier.pyi +28 -0
  677. rdkit-stubs/Chem/Suppliers/__init__.pyi +2 -0
  678. rdkit-stubs/Chem/TemplateAlign.pyi +68 -0
  679. rdkit-stubs/Chem/TorsionFingerprints.pyi +298 -0
  680. rdkit-stubs/Chem/__init__.pyi +321 -0
  681. rdkit-stubs/Chem/fmcs/__init__.pyi +109 -0
  682. rdkit-stubs/Chem/fmcs/fmcs.pyi +649 -0
  683. rdkit-stubs/Chem/inchi.pyi +152 -0
  684. rdkit-stubs/Chem/rdAbbreviations.pyi +109 -0
  685. rdkit-stubs/Chem/rdCIPLabeler.pyi +31 -0
  686. rdkit-stubs/Chem/rdChemDraw.pyi +132 -0
  687. rdkit-stubs/Chem/rdChemReactions.pyi +1626 -0
  688. rdkit-stubs/Chem/rdChemicalFeatures.pyi +121 -0
  689. rdkit-stubs/Chem/rdCoordGen.pyi +122 -0
  690. rdkit-stubs/Chem/rdDepictor.pyi +436 -0
  691. rdkit-stubs/Chem/rdDeprotect.pyi +127 -0
  692. rdkit-stubs/Chem/rdDetermineBonds.pyi +90 -0
  693. rdkit-stubs/Chem/rdDistGeom.pyi +684 -0
  694. rdkit-stubs/Chem/rdEHTTools.pyi +93 -0
  695. rdkit-stubs/Chem/rdEnumerateStereoisomers.pyi +101 -0
  696. rdkit-stubs/Chem/rdFMCS.pyi +507 -0
  697. rdkit-stubs/Chem/rdFingerprintGenerator.pyi +972 -0
  698. rdkit-stubs/Chem/rdForceFieldHelpers.pyi +291 -0
  699. rdkit-stubs/Chem/rdFreeSASA.pyi +140 -0
  700. rdkit-stubs/Chem/rdGaussianShape.pyi +517 -0
  701. rdkit-stubs/Chem/rdGeneralizedSubstruct.pyi +91 -0
  702. rdkit-stubs/Chem/rdMHFPFingerprint.pyi +109 -0
  703. rdkit-stubs/Chem/rdMIF.pyi +420 -0
  704. rdkit-stubs/Chem/rdMMPA.pyi +30 -0
  705. rdkit-stubs/Chem/rdMolAlign.pyi +657 -0
  706. rdkit-stubs/Chem/rdMolCatalog.pyi +155 -0
  707. rdkit-stubs/Chem/rdMolChemicalFeatures.pyi +174 -0
  708. rdkit-stubs/Chem/rdMolDescriptors.pyi +1089 -0
  709. rdkit-stubs/Chem/rdMolEnumerator.pyi +105 -0
  710. rdkit-stubs/Chem/rdMolHash.pyi +37 -0
  711. rdkit-stubs/Chem/rdMolInterchange.pyi +134 -0
  712. rdkit-stubs/Chem/rdMolProcessing.pyi +123 -0
  713. rdkit-stubs/Chem/rdMolTransforms.pyi +177 -0
  714. rdkit-stubs/Chem/rdPartialCharges.pyi +31 -0
  715. rdkit-stubs/Chem/rdRGroupDecomposition.pyi +426 -0
  716. rdkit-stubs/Chem/rdRascalMCES.pyi +336 -0
  717. rdkit-stubs/Chem/rdReducedGraphs.pyi +28 -0
  718. rdkit-stubs/Chem/rdSLNParse.pyi +49 -0
  719. rdkit-stubs/Chem/rdShapeAlign.pyi +458 -0
  720. rdkit-stubs/Chem/rdShapeHelpers.pyi +129 -0
  721. rdkit-stubs/Chem/rdSynthonSpaceSearch.pyi +680 -0
  722. rdkit-stubs/Chem/rdTautomerQuery.pyi +138 -0
  723. rdkit-stubs/Chem/rdchem.pyi +5458 -0
  724. rdkit-stubs/Chem/rdfiltercatalog/FilterMatchOps.pyi +34 -0
  725. rdkit-stubs/Chem/rdfiltercatalog/__init__.pyi +819 -0
  726. rdkit-stubs/Chem/rdfragcatalog.pyi +183 -0
  727. rdkit-stubs/Chem/rdinchi.pyi +96 -0
  728. rdkit-stubs/Chem/rdmolfiles.pyi +3796 -0
  729. rdkit-stubs/Chem/rdmolops.pyi +2895 -0
  730. rdkit-stubs/Chem/rdqueries.pyi +608 -0
  731. rdkit-stubs/Chem/rdtrajectory.pyi +172 -0
  732. rdkit-stubs/DataManip/Metric/__init__.pyi +4 -0
  733. rdkit-stubs/DataManip/Metric/rdMetricMatrixCalc.pyi +64 -0
  734. rdkit-stubs/DataManip/__init__.pyi +2 -0
  735. rdkit-stubs/DataStructs/BitEnsemble.pyi +31 -0
  736. rdkit-stubs/DataStructs/BitEnsembleDb.pyi +21 -0
  737. rdkit-stubs/DataStructs/BitUtils.pyi +22 -0
  738. rdkit-stubs/DataStructs/LazySignature.pyi +41 -0
  739. rdkit-stubs/DataStructs/TopNContainer.pyi +33 -0
  740. rdkit-stubs/DataStructs/VectCollection.pyi +161 -0
  741. rdkit-stubs/DataStructs/__init__.pyi +50 -0
  742. rdkit-stubs/DataStructs/cDataStructs.pyi +2693 -0
  743. rdkit-stubs/Dbase/DbConnection.pyi +221 -0
  744. rdkit-stubs/Dbase/DbInfo.pyi +96 -0
  745. rdkit-stubs/Dbase/DbModule.pyi +18 -0
  746. rdkit-stubs/Dbase/DbResultSet.pyi +61 -0
  747. rdkit-stubs/Dbase/DbUtils.pyi +161 -0
  748. rdkit-stubs/Dbase/StorageUtils.pyi +132 -0
  749. rdkit-stubs/Dbase/__init__.pyi +5 -0
  750. rdkit-stubs/DistanceGeometry/DistGeom.pyi +50 -0
  751. rdkit-stubs/DistanceGeometry/__init__.pyi +3 -0
  752. rdkit-stubs/ForceField/__init__.pyi +5 -0
  753. rdkit-stubs/ForceField/rdForceField.pyi +389 -0
  754. rdkit-stubs/Geometry/__init__.pyi +13 -0
  755. rdkit-stubs/Geometry/rdGeometry.pyi +979 -0
  756. rdkit-stubs/ML/Cluster/Butina.pyi +59 -0
  757. rdkit-stubs/ML/Cluster/ClusterUtils.pyi +74 -0
  758. rdkit-stubs/ML/Cluster/ClusterVis.pyi +188 -0
  759. rdkit-stubs/ML/Cluster/Clustering.pyi +17 -0
  760. rdkit-stubs/ML/Cluster/Clusters.pyi +153 -0
  761. rdkit-stubs/ML/Cluster/Murtagh.pyi +58 -0
  762. rdkit-stubs/ML/Cluster/Resemblance.pyi +90 -0
  763. rdkit-stubs/ML/Cluster/Standardize.pyi +16 -0
  764. rdkit-stubs/ML/Cluster/__init__.pyi +2 -0
  765. rdkit-stubs/ML/Cluster/murtagh_test.pyi +10 -0
  766. rdkit-stubs/ML/Data/DataUtils.pyi +300 -0
  767. rdkit-stubs/ML/Data/FindQuantBounds.pyi +8 -0
  768. rdkit-stubs/ML/Data/MLData.pyi +211 -0
  769. rdkit-stubs/ML/Data/Quantize.pyi +172 -0
  770. rdkit-stubs/ML/Data/SplitData.pyi +178 -0
  771. rdkit-stubs/ML/Data/Stats.pyi +67 -0
  772. rdkit-stubs/ML/Data/Transforms.pyi +37 -0
  773. rdkit-stubs/ML/Data/__init__.pyi +2 -0
  774. rdkit-stubs/ML/Data/cQuantize.pyi +17 -0
  775. rdkit-stubs/ML/Descriptors/CompoundDescriptors.pyi +340 -0
  776. rdkit-stubs/ML/Descriptors/Descriptors.pyi +42 -0
  777. rdkit-stubs/ML/Descriptors/MoleculeDescriptors.pyi +86 -0
  778. rdkit-stubs/ML/Descriptors/Parser.pyi +340 -0
  779. rdkit-stubs/ML/Descriptors/__init__.pyi +2 -0
  780. rdkit-stubs/ML/InfoTheory/BitClusterer.pyi +37 -0
  781. rdkit-stubs/ML/InfoTheory/BitRank.pyi +138 -0
  782. rdkit-stubs/ML/InfoTheory/__init__.pyi +14 -0
  783. rdkit-stubs/ML/InfoTheory/entropy.pyi +47 -0
  784. rdkit-stubs/ML/InfoTheory/rdInfoTheory.pyi +280 -0
  785. rdkit-stubs/ML/MLUtils/VoteImg.pyi +113 -0
  786. rdkit-stubs/ML/MLUtils/__init__.pyi +3 -0
  787. rdkit-stubs/ML/MatOps.pyi +14 -0
  788. rdkit-stubs/ML/SLT/Risk.pyi +100 -0
  789. rdkit-stubs/ML/SLT/__init__.pyi +2 -0
  790. rdkit-stubs/ML/Scoring/Scoring.pyi +59 -0
  791. rdkit-stubs/ML/Scoring/__init__.pyi +2 -0
  792. rdkit-stubs/ML/__init__.pyi +5 -0
  793. rdkit-stubs/ML/files.pyi +61 -0
  794. rdkit-stubs/Numerics/__init__.pyi +8 -0
  795. rdkit-stubs/Numerics/rdAlignment.pyi +32 -0
  796. rdkit-stubs/RDConfig.pyi +29 -0
  797. rdkit-stubs/RDLogger.pyi +25 -0
  798. rdkit-stubs/RDPaths.pyi +9 -0
  799. rdkit-stubs/RDRandom.pyi +21 -0
  800. rdkit-stubs/SimDivFilters/SimilarityPickers.pyi +184 -0
  801. rdkit-stubs/SimDivFilters/__init__.pyi +15 -0
  802. rdkit-stubs/SimDivFilters/rdSimDivPickers.pyi +194 -0
  803. rdkit-stubs/TestRunner.pyi +61 -0
  804. rdkit-stubs/VLib/Filter.pyi +71 -0
  805. rdkit-stubs/VLib/Node.pyi +138 -0
  806. rdkit-stubs/VLib/NodeLib/DbMolSupply.pyi +46 -0
  807. rdkit-stubs/VLib/NodeLib/DbPickleSupplier.pyi +29 -0
  808. rdkit-stubs/VLib/NodeLib/SDSupply.pyi +42 -0
  809. rdkit-stubs/VLib/NodeLib/SmartsMolFilter.pyi +61 -0
  810. rdkit-stubs/VLib/NodeLib/SmartsRemover.pyi +82 -0
  811. rdkit-stubs/VLib/NodeLib/SmilesDupeFilter.pyi +43 -0
  812. rdkit-stubs/VLib/NodeLib/SmilesOutput.pyi +41 -0
  813. rdkit-stubs/VLib/NodeLib/SmilesSupply.pyi +47 -0
  814. rdkit-stubs/VLib/NodeLib/__init__.pyi +2 -0
  815. rdkit-stubs/VLib/NodeLib/demo.pyi +32 -0
  816. rdkit-stubs/VLib/Output.pyi +44 -0
  817. rdkit-stubs/VLib/Supply.pyi +44 -0
  818. rdkit-stubs/VLib/Transform.pyi +53 -0
  819. rdkit-stubs/VLib/__init__.pyi +2 -0
  820. rdkit-stubs/__init__.py +10 -0
  821. rdkit-stubs/__init__.pyi +20 -0
  822. rdkit-stubs/conftest.pyi +6 -0
  823. rdkit-stubs/rdBase.pyi +482 -0
  824. rdkit-stubs/sping/PDF/__init__.pyi +187 -0
  825. rdkit-stubs/sping/PDF/pdfdoc.pyi +250 -0
  826. rdkit-stubs/sping/PDF/pdfgen.pyi +508 -0
  827. rdkit-stubs/sping/PDF/pdfgeom.pyi +29 -0
  828. rdkit-stubs/sping/PDF/pdfmetrics.pyi +54 -0
  829. rdkit-stubs/sping/PDF/pdfutils.pyi +63 -0
  830. rdkit-stubs/sping/PDF/pidPDF.pyi +325 -0
  831. rdkit-stubs/sping/PIL/__init__.pyi +184 -0
  832. rdkit-stubs/sping/PIL/pidPIL.pyi +262 -0
  833. rdkit-stubs/sping/PS/__init__.pyi +190 -0
  834. rdkit-stubs/sping/PS/fontinfo.pyi +4 -0
  835. rdkit-stubs/sping/PS/latin1MetricsCache.pyi +3 -0
  836. rdkit-stubs/sping/PS/pidPS.pyi +355 -0
  837. rdkit-stubs/sping/PS/psmetrics.pyi +9 -0
  838. rdkit-stubs/sping/Qt/__init__.pyi +2 -0
  839. rdkit-stubs/sping/ReportLab/__init__.pyi +2 -0
  840. rdkit-stubs/sping/SVG/__init__.pyi +246 -0
  841. rdkit-stubs/sping/SVG/pidSVG.pyi +350 -0
  842. rdkit-stubs/sping/__init__.pyi +5 -0
  843. rdkit-stubs/sping/colors.pyi +187 -0
  844. rdkit-stubs/sping/pagesizes.pyi +30 -0
  845. rdkit-stubs/sping/pid.pyi +364 -0
  846. rdkit-stubs/sping/stringformat.pyi +140 -0
  847. rdkit-stubs/sping/tests/__init__.pyi +2 -0
  848. rdkit-stubs/sping/tests/pidtest.pyi +235 -0
  849. rdkit-stubs/sping/util/__init__.pyi +2 -0
  850. rdkit-stubs/sping/utils.pyi +3 -0
  851. rdkit-stubs/utils/__init__.pyi +2 -0
  852. rdkit-stubs/utils/cactvs.pyi +11 -0
  853. rdkit-stubs/utils/chemutils.pyi +71 -0
  854. rdkit-stubs/utils/fileutils.pyi +30 -0
  855. rdkit-stubs/utils/listutils.pyi +22 -0
  856. rdkit-stubs/utils/spiral.pyi +505 -0
  857. rdkit.libs/RDKitAbbreviations-5ef8973753856abacd662da5086e5cf7.dll +0 -0
  858. rdkit.libs/RDKitAlignment-a0a0c2f395f4b106f479c7c11cf0ab35.dll +0 -0
  859. rdkit.libs/RDKitAvalonLib-f3a535883453f3ca5687ec22865e87da.dll +0 -0
  860. rdkit.libs/RDKitCIPLabeler-8ea9a98a181cdef91eb653733cce6ae2.dll +0 -0
  861. rdkit.libs/RDKitCatalogs-b9a03735acd5fbb743dccf13aa336427.dll +0 -0
  862. rdkit.libs/RDKitChemDraw-9f841a7149c4496291a617dce86d42a7.dll +0 -0
  863. rdkit.libs/RDKitChemReactions-b9d4cf86f4e9e3298870be0159cd5640.dll +0 -0
  864. rdkit.libs/RDKitChemTransforms-fdf1352f6d79dce73bb24195a77e9062.dll +0 -0
  865. rdkit.libs/RDKitChemicalFeatures-902938a43ac46f1ebdec2757b4ac84f8.dll +0 -0
  866. rdkit.libs/RDKitDataStructs-d6c18454149880f2d16553b3df25c602.dll +0 -0
  867. rdkit.libs/RDKitDepictor-7ab1f644989cc4fbf9d1d69660add593.dll +0 -0
  868. rdkit.libs/RDKitDeprotect-f577f1fd36e55747849f368129bb7a9f.dll +0 -0
  869. rdkit.libs/RDKitDescriptors-cfa68a1ee37707e4e23d34971cb40973.dll +0 -0
  870. rdkit.libs/RDKitDetermineBonds-6eb78ad53f5553e088bdfc7d7baee955.dll +0 -0
  871. rdkit.libs/RDKitDistGeomHelpers-75967058cd1f0c4f3ef11e7cb644fb1b.dll +0 -0
  872. rdkit.libs/RDKitDistGeometry-cfc52970b4b386e583a303071af9506a.dll +0 -0
  873. rdkit.libs/RDKitEHTLib-6a244f7fd2f1f40c81a4909ce74acc42.dll +0 -0
  874. rdkit.libs/RDKitEigenSolvers-cbf3ea7f1b72c1be04bd923c645533e2.dll +0 -0
  875. rdkit.libs/RDKitEnumerateStereoisomers-bcc21cec570cf40f552e62afd38b27c0.dll +0 -0
  876. rdkit.libs/RDKitFMCS-b7aec594d42a464a9c8dafd79ae5209d.dll +0 -0
  877. rdkit.libs/RDKitFileParsers-057cd06092419f1a56c50c22f1d2f84b.dll +0 -0
  878. rdkit.libs/RDKitFilterCatalog-ead7f840d9189a74aaad7bbd399d7679.dll +0 -0
  879. rdkit.libs/RDKitFingerprints-30e4e631f0086b74357ad1a5f89b536a.dll +0 -0
  880. rdkit.libs/RDKitForceField-f983a5190a27efd830823bbf68cc9d9e.dll +0 -0
  881. rdkit.libs/RDKitForceFieldHelpers-0e4f1b7ed435b22ad8f4ffbd18986925.dll +0 -0
  882. rdkit.libs/RDKitFragCatalog-70475abeb3756de891e37b221426a0a2.dll +0 -0
  883. rdkit.libs/RDKitFreeSASALib-ab5367b956372a8d576bdbff4759d920.dll +0 -0
  884. rdkit.libs/RDKitGaussianShape-1cea2d6e8aac927981c432ad4986db52.dll +0 -0
  885. rdkit.libs/RDKitGeneralizedSubstruct-3b974fd429c05def4a0891bb16a6243c.dll +0 -0
  886. rdkit.libs/RDKitGenericGroups-cf700c9116bc37713b3b7d1031edcb8f.dll +0 -0
  887. rdkit.libs/RDKitGraphMol-3a48631c89fc858fc489947822017eed.dll +0 -0
  888. rdkit.libs/RDKitInchi-37d71386b64431a71875c9c018a3c8b5.dll +0 -0
  889. rdkit.libs/RDKitInfoTheory-bf4e9fde2dfdce6873b2731f57a706d8.dll +0 -0
  890. rdkit.libs/RDKitMMPA-0578a3017365b3a72d473a20f1e46faf.dll +0 -0
  891. rdkit.libs/RDKitMarvinParser-17ed14d5d03bc26968d241fb8469ef31.dll +0 -0
  892. rdkit.libs/RDKitMolAlign-d346f9898080c54998e3670ec24f11b3.dll +0 -0
  893. rdkit.libs/RDKitMolCatalog-0085f5721912ee0ae7b9aa81a0ef59d6.dll +0 -0
  894. rdkit.libs/RDKitMolChemicalFeatures-a79c39290c753a13ce813fd3708b1b44.dll +0 -0
  895. rdkit.libs/RDKitMolDraw2D-6fdd6a471547c1c062238ec17c1200c6.dll +0 -0
  896. rdkit.libs/RDKitMolEnumerator-d4324e70bfdc624f65a067924833e9a2.dll +0 -0
  897. rdkit.libs/RDKitMolHash-ac55803cea287281a962f9ade124c437.dll +0 -0
  898. rdkit.libs/RDKitMolInteractionFields-668ec197d946521075218e34a9ff34d6.dll +0 -0
  899. rdkit.libs/RDKitMolInterchange-6d25cf37c6c36775c589bd2d90a59586.dll +0 -0
  900. rdkit.libs/RDKitMolProcessing-bbf4175325797b5acbbb648849bde4d7.dll +0 -0
  901. rdkit.libs/RDKitMolStandardize-f1f46675cf72b683551258a27fdc940e.dll +0 -0
  902. rdkit.libs/RDKitMolTransforms-6d67c0dc040830430a00d9d579f5273b.dll +0 -0
  903. rdkit.libs/RDKitO3AAlign-1207a80a9e10ad75ccd065675ef15917.dll +0 -0
  904. rdkit.libs/RDKitPartialCharges-5e1e4c862a488644851d9a70efef27ca.dll +0 -0
  905. rdkit.libs/RDKitPubChemShape-a19fed25a797daba4e92c802169d334b.dll +0 -0
  906. rdkit.libs/RDKitRDBoost-2a8125f2604df86ba2d21a91e24a2076.dll +0 -0
  907. rdkit.libs/RDKitRDChemDrawLib-13b1464cfc59db7c2fd06243bbe4eb98.dll +0 -0
  908. rdkit.libs/RDKitRDChemDrawReactionLib-96bec2ccb94ddf5cd7bebfb473bf0e02.dll +0 -0
  909. rdkit.libs/RDKitRDGeneral-40c5b27c4ede2a5b5c54c9e96b70b660.dll +0 -0
  910. rdkit.libs/RDKitRDGeometryLib-088df7c7b2fd6f490f1d3c477af67b11.dll +0 -0
  911. rdkit.libs/RDKitRDInchiLib-5937ef0d0dc1c7cb42f1511d7bd9b7e8.dll +0 -0
  912. rdkit.libs/RDKitRDStreams-19beabce46cb07e6f6ce15d7757ad672.dll +0 -0
  913. rdkit.libs/RDKitRGroupDecomposition-ff5145fda9edcd6daa24b155a0a08e27.dll +0 -0
  914. rdkit.libs/RDKitRascalMCES-1cfe45f4cfab8951eb6a324eebd01193.dll +0 -0
  915. rdkit.libs/RDKitReducedGraphs-5f413504b2b1cfb5dbc886fa57f3225d.dll +0 -0
  916. rdkit.libs/RDKitRingDecomposerLib-3f58706499f23bf86244d16a0cde5a4d.dll +0 -0
  917. rdkit.libs/RDKitSLNParse-a7838a7ac973162b7f195146e47c10e3.dll +0 -0
  918. rdkit.libs/RDKitScaffoldNetwork-963c8543495c9135f124928982195621.dll +0 -0
  919. rdkit.libs/RDKitShapeHelpers-ee55f877ec6ba16ae931a388b333a72b.dll +0 -0
  920. rdkit.libs/RDKitSimDivPickers-0eb25b37efea68b8978a03ad7576763d.dll +0 -0
  921. rdkit.libs/RDKitSmilesParse-d9e8f92d990666dd9e9bb6586029d6be.dll +0 -0
  922. rdkit.libs/RDKitSubgraphs-6cb524e536a871cbdaf2f5aafcc2d6c2.dll +0 -0
  923. rdkit.libs/RDKitSubstructLibrary-d8f06d602795ea6db846d14044237766.dll +0 -0
  924. rdkit.libs/RDKitSubstructMatch-ca311849074a068ff1edfc286649295d.dll +0 -0
  925. rdkit.libs/RDKitSynthonSpaceSearch-51101fbbdf3fd3cd5be00c0ab6cee220.dll +0 -0
  926. rdkit.libs/RDKitTautomerQuery-7df021c5786a8ce95b409ca507a266ae.dll +0 -0
  927. rdkit.libs/RDKitTrajectory-977a1dd1d48546603b65c79b77fd7eff.dll +0 -0
  928. rdkit.libs/RDKitavalon_clib-3a077a274a2eb2ec353e4e9e88406eee.dll +0 -0
  929. rdkit.libs/RDKitcoordgen-045f65c70942c0d9ffdddb1149f111c7.dll +0 -0
  930. rdkit.libs/RDKitfreesasa_clib-76b8b76748f8a568a06208c1cf633317.dll +0 -0
  931. rdkit.libs/RDKitga-207f9a96c7e9f58cbd691d1960a3189b.dll +0 -0
  932. rdkit.libs/RDKithc-319fc15994193cef038f876c8ee8a37f.dll +0 -0
  933. rdkit.libs/RDKitmaeparser-f8903652653fc892c9c1085e4ae07ead.dll +0 -0
  934. rdkit.libs/RDKitpubchem_align3d-c1a657ceee8be9d159e2671c69eefcb5.dll +0 -0
  935. rdkit.libs/boost_iostreams-fc27a577f565dc6b8a557afba178a77c.dll +0 -0
  936. rdkit.libs/boost_numpy315-42b669e74dcf04927b3becf7a682730e.dll +0 -0
  937. rdkit.libs/boost_python315-82b1af20247be136bb13463bc7c15c11.dll +0 -0
  938. rdkit.libs/boost_serialization-8c2b6b3d5949bde58bf4845734b27a76.dll +0 -0
  939. rdkit.libs/brotlicommon-703cd1c44d30acebdadc1e6eec27f387.dll +0 -0
  940. rdkit.libs/brotlidec-f74ecc143455368254fd773f0e65717a.dll +0 -0
  941. rdkit.libs/bz2-d73159569cd2083f70a4365022e8d3b2.dll +0 -0
  942. rdkit.libs/cairo-2-abeaf9ae3d922c9967b19629c45f35a8.dll +0 -0
  943. rdkit.libs/fontconfig-1-895f80d8164de435fa441fab34b9560c.dll +0 -0
  944. rdkit.libs/freetype-9660de65a65c21b19d3dc8815bc9cad9.dll +0 -0
  945. rdkit.libs/libexpat-95e72ebb197714a784c7f4cab06cd262.dll +0 -0
  946. rdkit.libs/libpng16-cd75b3de1ae2e7b4033ad9efc0c02234.dll +0 -0
  947. rdkit.libs/msvcp140-0fa7eb792d3fbcf2233e4ea47e9144b9.dll +0 -0
  948. rdkit.libs/pixman-1-0-7b47912d6b56d644bdf9fe43ad5ea08a.dll +0 -0
  949. rdkit.libs/z-3078df27d7643ce11017a85dd4263d79.dll +0 -0
File without changes
Binary file
rdkit/Chem/AllChem.py ADDED
@@ -0,0 +1,478 @@
1
+ #
2
+ # Copyright (C) 2006-2022 greg Landrum and other RDKit contributors
3
+ #
4
+ # @@ All Rights Reserved @@
5
+ # This file is part of the RDKit.
6
+ # The contents are covered by the terms of the BSD license
7
+ # which is included in the file license.txt, found at the root
8
+ # of the RDKit source tree.
9
+ #
10
+ """ Import all RDKit chemistry modules
11
+
12
+ """
13
+ import sys
14
+ import warnings
15
+ from collections import namedtuple
16
+
17
+ import numpy
18
+
19
+ from rdkit import DataStructs, ForceField, RDConfig, rdBase
20
+ from rdkit.Chem import *
21
+ from rdkit.Chem.ChemicalFeatures import *
22
+ from rdkit.Chem.EnumerateStereoisomers import (EnumerateStereoisomers, StereoEnumerationOptions)
23
+ from rdkit.Chem.rdChemReactions import *
24
+ from rdkit.Chem.rdDepictor import *
25
+ from rdkit.Chem.rdDistGeom import *
26
+ from rdkit.Chem.rdFingerprintGenerator import *
27
+ from rdkit.Chem.rdForceFieldHelpers import *
28
+ from rdkit.Chem.rdMolAlign import *
29
+ from rdkit.Chem.rdMolDescriptors import *
30
+ from rdkit.Chem.rdMolEnumerator import *
31
+ from rdkit.Chem.rdMolTransforms import *
32
+ from rdkit.Chem.rdPartialCharges import *
33
+ from rdkit.Chem.rdqueries import *
34
+ from rdkit.Chem.rdReducedGraphs import *
35
+ from rdkit.Chem.rdShapeHelpers import *
36
+ from rdkit.Geometry import rdGeometry
37
+ from rdkit.RDLogger import logger
38
+
39
+ try:
40
+ from rdkit.Chem.rdSLNParse import *
41
+ except ImportError:
42
+ pass
43
+
44
+ Mol.Compute2DCoords = Compute2DCoords
45
+ Mol.ComputeGasteigerCharges = ComputeGasteigerCharges
46
+ logger = logger()
47
+
48
+
49
+ def TransformMol(mol, tform, confId=-1, keepConfs=False):
50
+ """ Applies the transformation (usually a 4x4 double matrix) to a molecule
51
+
52
+ Arguments:
53
+ - mol: the molecule to be transformed
54
+ - tform: the transformation to apply
55
+ - confId: (optional) the conformer id to transform
56
+ - keepConfs: (optional) if keepConfs is False then all but that conformer are removed
57
+
58
+ """
59
+ refConf = mol.GetConformer(confId)
60
+ TransformConformer(refConf, tform)
61
+ if not keepConfs:
62
+ if confId == -1:
63
+ confId = 0
64
+ allConfIds = [c.GetId() for c in mol.GetConformers()]
65
+ for cid in allConfIds:
66
+ if not cid == confId:
67
+ mol.RemoveConformer(cid)
68
+ # reset the conf Id to zero since there is only one conformer left
69
+ mol.GetConformer(confId).SetId(0)
70
+
71
+
72
+ def ComputeMolShape(mol, confId=-1, boxDim=(20, 20, 20), spacing=0.5, **kwargs):
73
+ """ returns a grid representation of the molecule's shape
74
+
75
+ Arguments:
76
+ - mol: the molecule
77
+ - confId: (optional) the conformer id to use
78
+ - boxDim: (optional) the dimensions of the box to use
79
+ - spacing: (optional) the spacing to use
80
+ - kwargs: additional arguments to pass to the encoding function
81
+
82
+ Returns:
83
+ a UniformGrid3D object
84
+ """
85
+ res = rdGeometry.UniformGrid3D(boxDim[0], boxDim[1], boxDim[2], spacing=spacing)
86
+ EncodeShape(mol, res, confId, **kwargs)
87
+ return res
88
+
89
+
90
+ def ComputeMolVolume(mol, confId=-1, gridSpacing=0.2, boxMargin=2.0):
91
+ """ Calculates the volume of a particular conformer of a molecule
92
+ based on a grid-encoding of the molecular shape.
93
+
94
+
95
+ Arguments:
96
+ - mol: the molecule
97
+ - confId: (optional) the conformer id to use
98
+ - gridSpacing: (optional) the spacing to use
99
+ - boxMargin: (optional) the margin to use around the molecule
100
+
101
+ A bit of demo as well as a test of github #1883:
102
+
103
+ >>> from rdkit import Chem
104
+ >>> from rdkit.Chem import AllChem
105
+ >>> mol = Chem.AddHs(Chem.MolFromSmiles('C'))
106
+ >>> AllChem.EmbedMolecule(mol)
107
+ 0
108
+ >>> ComputeMolVolume(mol)
109
+ 28...
110
+ >>> mol = Chem.AddHs(Chem.MolFromSmiles('O'))
111
+ >>> AllChem.EmbedMolecule(mol)
112
+ 0
113
+ >>> ComputeMolVolume(mol)
114
+ 19...
115
+
116
+ """
117
+ mol = rdchem.Mol(mol)
118
+ conf = mol.GetConformer(confId)
119
+ CanonicalizeConformer(conf, ignoreHs=False)
120
+ box = ComputeConfBox(conf)
121
+ sideLen = (box[1].x - box[0].x + 2 * boxMargin, box[1].y - box[0].y + 2 * boxMargin,
122
+ box[1].z - box[0].z + 2 * boxMargin)
123
+ shape = rdGeometry.UniformGrid3D(sideLen[0], sideLen[1], sideLen[2], spacing=gridSpacing)
124
+ EncodeShape(mol, shape, confId, ignoreHs=False, vdwScale=1.0)
125
+ voxelVol = gridSpacing**3
126
+ occVect = shape.GetOccupancyVect()
127
+ voxels = [1 for x in occVect if x == 3]
128
+ vol = voxelVol * len(voxels)
129
+ return vol
130
+
131
+
132
+ def GetConformerRMS(mol, confId1, confId2, atomIds=None, prealigned=False):
133
+ """ Returns the RMS between two conformations.
134
+ By default, the conformers will be aligned to the first conformer
135
+ before the RMS calculation and, as a side-effect, the second will be left
136
+ in the aligned state.
137
+
138
+ Arguments:
139
+ - mol: the molecule
140
+ - confId1: the id of the first conformer
141
+ - confId2: the id of the second conformer
142
+ - atomIds: (optional) list of atom ids to use a points for
143
+ alingment - defaults to all atoms
144
+ - prealigned: (optional) by default the conformers are assumed
145
+ be unaligned and the second conformer be aligned
146
+ to the first
147
+
148
+ """
149
+ # align the conformers if necessary
150
+ # Note: the reference conformer is always the first one
151
+ if not prealigned:
152
+ if atomIds:
153
+ AlignMolConformers(mol, confIds=[confId1, confId2], atomIds=atomIds)
154
+ else:
155
+ AlignMolConformers(mol, confIds=[confId1, confId2])
156
+
157
+ # calculate the RMS between the two conformations
158
+ conf1 = mol.GetConformer(id=confId1)
159
+ conf2 = mol.GetConformer(id=confId2)
160
+ ssr = 0
161
+ for i in range(mol.GetNumAtoms()):
162
+ d = conf1.GetAtomPosition(i).Distance(conf2.GetAtomPosition(i))
163
+ ssr += d * d
164
+ ssr /= mol.GetNumAtoms()
165
+ return numpy.sqrt(ssr)
166
+
167
+
168
+ def GetConformerRMSMatrix(mol, atomIds=None, prealigned=False):
169
+ """ Returns the RMS matrix of the conformers of a molecule.
170
+ As a side-effect, the conformers will be aligned to the first
171
+ conformer (i.e. the reference) and will left in the aligned state.
172
+
173
+ Arguments:
174
+ - mol: the molecule
175
+ - atomIds: (optional) list of atom ids to use a points for
176
+ alingment - defaults to all atoms
177
+ - prealigned: (optional) by default the conformers are assumed
178
+ be unaligned and will therefore be aligned to the
179
+ first conformer
180
+
181
+ Note that the returned RMS matrix is symmetrical, i.e. it is the
182
+ lower half of the matrix, e.g. for 5 conformers::
183
+
184
+ rmsmatrix = [ a,
185
+ b, c,
186
+ d, e, f,
187
+ g, h, i, j]
188
+
189
+ where a is the RMS between conformers 0 and 1, b is the RMS between
190
+ conformers 0 and 2, etc.
191
+ This way it can be directly used as distance matrix in e.g. Butina
192
+ clustering.
193
+
194
+ """
195
+ # if necessary, align the conformers
196
+ # Note: the reference conformer is always the first one
197
+ rmsvals = []
198
+ confIds = [conf.GetId() for conf in mol.GetConformers()]
199
+ if not prealigned:
200
+ if atomIds:
201
+ AlignMolConformers(mol, atomIds=atomIds, RMSlist=rmsvals)
202
+ else:
203
+ AlignMolConformers(mol, RMSlist=rmsvals)
204
+ else: # already prealigned
205
+ for i in range(1, len(confIds)):
206
+ rmsvals.append(
207
+ GetConformerRMS(mol, confIds[0], confIds[i], atomIds=atomIds, prealigned=prealigned))
208
+ # loop over the conformations (except the reference one)
209
+ cmat = []
210
+ for i in range(1, len(confIds)):
211
+ cmat.append(rmsvals[i - 1])
212
+ for j in range(1, i):
213
+ cmat.append(GetConformerRMS(mol, confIds[i], confIds[j], atomIds=atomIds, prealigned=True))
214
+ return cmat
215
+
216
+
217
+ def EnumerateLibraryFromReaction(reaction, sidechainSets, returnReactants=False):
218
+ """ Returns a generator for the virtual library defined by
219
+ a reaction and a sequence of sidechain sets
220
+
221
+ Arguments:
222
+ - reaction: the reaction
223
+ - sidechainSets: a sequence of sequences of sidechains
224
+ - returnReactants: (optional) if True, the generator will return information about the reactants
225
+ as well as the products
226
+
227
+ >>> from rdkit import Chem
228
+ >>> from rdkit.Chem import AllChem
229
+ >>> s1=[Chem.MolFromSmiles(x) for x in ('NC','NCC')]
230
+ >>> s2=[Chem.MolFromSmiles(x) for x in ('OC=O','OC(=O)C')]
231
+ >>> rxn = AllChem.ReactionFromSmarts('[O:2]=[C:1][OH].[N:3]>>[O:2]=[C:1][N:3]')
232
+ >>> r = AllChem.EnumerateLibraryFromReaction(rxn,[s2,s1])
233
+ >>> [Chem.MolToSmiles(x[0]) for x in list(r)]
234
+ ['CNC=O', 'CCNC=O', 'CNC(C)=O', 'CCNC(C)=O']
235
+
236
+ Note that this is all done in a lazy manner, so "infinitely" large libraries can
237
+ be done without worrying about running out of memory. Your patience will run out first:
238
+
239
+ Define a set of 10000 amines:
240
+
241
+ >>> amines = (Chem.MolFromSmiles('N'+'C'*x) for x in range(10000))
242
+
243
+ ... a set of 10000 acids
244
+
245
+ >>> acids = (Chem.MolFromSmiles('OC(=O)'+'C'*x) for x in range(10000))
246
+
247
+ ... now the virtual library (1e8 compounds in principle):
248
+
249
+ >>> r = AllChem.EnumerateLibraryFromReaction(rxn,[acids,amines])
250
+
251
+ ... look at the first 4 compounds:
252
+
253
+ >>> [Chem.MolToSmiles(next(r)[0]) for x in range(4)]
254
+ ['NC=O', 'CNC=O', 'CCNC=O', 'CCCNC=O']
255
+
256
+ Here's what returnReactants does:
257
+
258
+ >>> l = list(AllChem.EnumerateLibraryFromReaction(rxn,[s2,s1],returnReactants=True))
259
+ >>> type(l[0])
260
+ <class 'rdkit.Chem.AllChem.ProductReactants'>
261
+ >>> [Chem.MolToSmiles(x) for x in l[0].reactants]
262
+ ['O=CO', 'CN']
263
+ >>> [Chem.MolToSmiles(x) for x in l[0].products]
264
+ ['CNC=O']
265
+
266
+ """
267
+ if len(sidechainSets) != reaction.GetNumReactantTemplates():
268
+ raise ValueError('%d sidechains provided, %d required' %
269
+ (len(sidechainSets), reaction.GetNumReactantTemplates()))
270
+
271
+ def _combiEnumerator(items, depth=0):
272
+ for item in items[depth]:
273
+ if depth + 1 < len(items):
274
+ v = _combiEnumerator(items, depth + 1)
275
+ for entry in v:
276
+ l = [item]
277
+ l.extend(entry)
278
+ yield l
279
+ else:
280
+ yield [item]
281
+
282
+ ProductReactants = namedtuple('ProductReactants', 'products,reactants')
283
+ for chains in _combiEnumerator(sidechainSets):
284
+ prodSets = reaction.RunReactants(chains)
285
+ for prods in prodSets:
286
+ if returnReactants:
287
+ yield ProductReactants(prods, chains)
288
+ else:
289
+ yield prods
290
+
291
+
292
+ def ConstrainedEmbed(mol, core, useTethers=True, coreConfId=-1, randomseed=2342,
293
+ getForceField=UFFGetMoleculeForceField, **kwargs):
294
+ """ generates an embedding of a molecule where part of the molecule
295
+ is constrained to have particular coordinates
296
+
297
+ Arguments
298
+ - mol: the molecule to embed
299
+ - core: the molecule to use as a source of constraints
300
+ - useTethers: (optional) if True, the final conformation will be
301
+ optimized subject to a series of extra forces that pull the
302
+ matching atoms to the positions of the core atoms. Otherwise
303
+ simple distance constraints based on the core atoms will be
304
+ used in the optimization.
305
+ - coreConfId: (optional) id of the core conformation to use
306
+ - randomSeed: (optional) seed for the random number generator
307
+ - getForceField: (optional) a function to use to get a force field
308
+ for the final cleanup
309
+ - kwargs: additional arguments to pass to the embedding function
310
+
311
+ An example, start by generating a template with a 3D structure:
312
+
313
+ >>> from rdkit.Chem import AllChem
314
+ >>> template = AllChem.MolFromSmiles("c1nn(Cc2ccccc2)cc1")
315
+ >>> AllChem.EmbedMolecule(template)
316
+ 0
317
+ >>> AllChem.UFFOptimizeMolecule(template)
318
+ 0
319
+
320
+ Here's a molecule:
321
+
322
+ >>> mol = AllChem.MolFromSmiles("c1nn(Cc2ccccc2)cc1-c3ccccc3")
323
+
324
+ Now do the constrained embedding
325
+
326
+ >>> mol = AllChem.ConstrainedEmbed(mol, template)
327
+
328
+ Demonstrate that the positions are nearly the same with template:
329
+
330
+ >>> import math
331
+ >>> molp = mol.GetConformer().GetAtomPosition(0)
332
+ >>> templatep = template.GetConformer().GetAtomPosition(0)
333
+ >>> all(math.isclose(v, 0.0, abs_tol=0.01) for v in molp-templatep)
334
+ True
335
+ >>> molp = mol.GetConformer().GetAtomPosition(1)
336
+ >>> templatep = template.GetConformer().GetAtomPosition(1)
337
+ >>> all(math.isclose(v, 0.0, abs_tol=0.01) for v in molp-templatep)
338
+ True
339
+
340
+ """
341
+ match = mol.GetSubstructMatch(core)
342
+ if not match:
343
+ raise ValueError("molecule doesn't match the core")
344
+ coordMap = {}
345
+ coreConf = core.GetConformer(coreConfId)
346
+ for i, idxI in enumerate(match):
347
+ corePtI = coreConf.GetAtomPosition(i)
348
+ coordMap[idxI] = corePtI
349
+
350
+ ci = EmbedMolecule(mol, coordMap=coordMap, randomSeed=randomseed, **kwargs)
351
+ if ci < 0:
352
+ raise ValueError('Could not embed molecule.')
353
+
354
+ algMap = [(j, i) for i, j in enumerate(match)]
355
+
356
+ if not useTethers:
357
+ # clean up the conformation
358
+ ff = getForceField(mol, confId=0)
359
+ for i, idxI in enumerate(match):
360
+ for j in range(i + 1, len(match)):
361
+ idxJ = match[j]
362
+ d = coordMap[idxI].Distance(coordMap[idxJ])
363
+ ff.AddDistanceConstraint(idxI, idxJ, d, d, 100.)
364
+ ff.Initialize()
365
+ n = 4
366
+ more = ff.Minimize()
367
+ while more and n:
368
+ more = ff.Minimize()
369
+ n -= 1
370
+ # rotate the embedded conformation onto the core:
371
+ rms = AlignMol(mol, core, atomMap=algMap)
372
+ else:
373
+ # rotate the embedded conformation onto the core:
374
+ rms = AlignMol(mol, core, atomMap=algMap)
375
+ ff = getForceField(mol, confId=0)
376
+ conf = core.GetConformer()
377
+ for i in range(core.GetNumAtoms()):
378
+ p = conf.GetAtomPosition(i)
379
+ pIdx = ff.AddExtraPoint(p.x, p.y, p.z, fixed=True) - 1
380
+ ff.AddDistanceConstraint(pIdx, match[i], 0, 0, 100.)
381
+ ff.Initialize()
382
+ n = 4
383
+ more = ff.Minimize(energyTol=1e-4, forceTol=1e-3)
384
+ while more and n:
385
+ more = ff.Minimize(energyTol=1e-4, forceTol=1e-3)
386
+ n -= 1
387
+ # realign
388
+ rms = AlignMol(mol, core, atomMap=algMap)
389
+ mol.SetProp('EmbedRMS', str(rms))
390
+ return mol
391
+
392
+
393
+ def AssignBondOrdersFromTemplate(refmol, mol):
394
+ """ assigns bond orders to a molecule based on the
395
+ bond orders in a template molecule
396
+
397
+ Arguments
398
+ - refmol: the template molecule
399
+ - mol: the molecule to assign bond orders to
400
+
401
+ An example, start by generating a template from a SMILES
402
+ and read in the PDB structure of the molecule
403
+
404
+ >>> import os
405
+ >>> from rdkit.Chem import AllChem
406
+ >>> template = AllChem.MolFromSmiles("CN1C(=NC(C1=O)(c2ccccc2)c3ccccc3)N")
407
+ >>> mol = AllChem.MolFromPDBFile(os.path.join(RDConfig.RDCodeDir, 'Chem', 'test_data', '4DJU_lig.pdb'))
408
+ >>> len([1 for b in template.GetBonds() if b.GetBondTypeAsDouble() == 1.0])
409
+ 8
410
+ >>> len([1 for b in mol.GetBonds() if b.GetBondTypeAsDouble() == 1.0])
411
+ 22
412
+
413
+ Now assign the bond orders based on the template molecule
414
+
415
+ >>> newMol = AllChem.AssignBondOrdersFromTemplate(template, mol)
416
+ >>> len([1 for b in newMol.GetBonds() if b.GetBondTypeAsDouble() == 1.0])
417
+ 8
418
+
419
+ Note that the template molecule should have no explicit hydrogens
420
+ else the algorithm will fail.
421
+
422
+ It also works if there are different formal charges (this was github issue 235):
423
+
424
+ >>> template=AllChem.MolFromSmiles('CN(C)C(=O)Cc1ccc2c(c1)NC(=O)c3ccc(cc3N2)c4ccc(c(c4)OC)[N+](=O)[O-]')
425
+ >>> mol = AllChem.MolFromMolFile(os.path.join(RDConfig.RDCodeDir, 'Chem', 'test_data', '4FTR_lig.mol'))
426
+ >>> AllChem.MolToSmiles(mol)
427
+ 'COC1CC(C2CCC3C(O)NC4CC(CC(O)N(C)C)CCC4NC3C2)CCC1N(O)O'
428
+ >>> newMol = AllChem.AssignBondOrdersFromTemplate(template, mol)
429
+ >>> AllChem.MolToSmiles(newMol)
430
+ 'COc1cc(-c2ccc3c(c2)Nc2ccc(CC(=O)N(C)C)cc2NC3=O)ccc1[N+](=O)[O-]'
431
+
432
+ """
433
+ refmol2 = rdchem.Mol(refmol)
434
+ mol2 = rdchem.Mol(mol)
435
+ # do the molecules match already?
436
+ matching = mol2.GetSubstructMatch(refmol2)
437
+ if not matching: # no, they don't match
438
+ # check if bonds of mol are SINGLE
439
+ for b in mol2.GetBonds():
440
+ if b.GetBondType() != BondType.SINGLE:
441
+ b.SetBondType(BondType.SINGLE)
442
+ b.SetIsAromatic(False)
443
+ # set the bonds of mol to SINGLE
444
+ for b in refmol2.GetBonds():
445
+ b.SetBondType(BondType.SINGLE)
446
+ b.SetIsAromatic(False)
447
+ # set atom charges to zero;
448
+ for a in refmol2.GetAtoms():
449
+ a.SetFormalCharge(0)
450
+ for a in mol2.GetAtoms():
451
+ a.SetFormalCharge(0)
452
+
453
+ matching = mol2.GetSubstructMatches(refmol2, uniquify=False)
454
+ # do the molecules match now?
455
+ if matching:
456
+ if len(matching) > 1:
457
+ logger.warning("More than one matching pattern found - picking one")
458
+ matching = matching[0]
459
+ # apply matching: set bond properties
460
+ for b in refmol.GetBonds():
461
+ atom1 = matching[b.GetBeginAtomIdx()]
462
+ atom2 = matching[b.GetEndAtomIdx()]
463
+ b2 = mol2.GetBondBetweenAtoms(atom1, atom2)
464
+ b2.SetBondType(b.GetBondType())
465
+ b2.SetIsAromatic(b.GetIsAromatic())
466
+ # apply matching: set atom properties
467
+ for a in refmol.GetAtoms():
468
+ a2 = mol2.GetAtomWithIdx(matching[a.GetIdx()])
469
+ a2.SetHybridization(a.GetHybridization())
470
+ a2.SetIsAromatic(a.GetIsAromatic())
471
+ a2.SetNumExplicitHs(a.GetNumExplicitHs())
472
+ a2.SetFormalCharge(a.GetFormalCharge())
473
+ SanitizeMol(mol2)
474
+ if hasattr(mol2, '__sssAtoms'):
475
+ mol2.__sssAtoms = None # we don't want all bonds highlighted
476
+ else:
477
+ raise ValueError("No matching found")
478
+ return mol2
@@ -0,0 +1,165 @@
1
+ #
2
+ # Copyright (C) 2004-2017 Greg Landrum and Rational Discovery LLC
3
+ #
4
+ # @@ All Rights Reserved @@
5
+ # This file is part of the RDKit.
6
+ # The contents are covered by the terms of the BSD license
7
+ # which is included in the file license.txt, found at the root
8
+ # of the RDKit source tree.
9
+ #
10
+ """ Contains an implementation of Atom-pair fingerprints, as
11
+ described in:
12
+
13
+ R.E. Carhart, D.H. Smith, R. Venkataraghavan;
14
+ "Atom Pairs as Molecular Features in Structure-Activity Studies:
15
+ Definition and Applications" JCICS 25, 64-73 (1985).
16
+
17
+ The fingerprints can be accessed through the following functions:
18
+ - GetAtomPairFingerprint
19
+ - GetHashedAtomPairFingerprint (identical to GetAtomPairFingerprint)
20
+ - GetAtomPairFingerprintAsIntVect
21
+ - GetAtomPairFingerprintAsBitVect
22
+
23
+ """
24
+ from rdkit import DataStructs
25
+ from rdkit.Chem import rdMolDescriptors
26
+ from rdkit.Chem.AtomPairs import Utils
27
+ from rdkit.Chem.rdMolDescriptors import (GetAtomPairFingerprint,
28
+ GetHashedAtomPairFingerprint)
29
+
30
+ GetAtomPairFingerprintAsIntVect = rdMolDescriptors.GetAtomPairFingerprint
31
+
32
+ numPathBits = rdMolDescriptors.AtomPairsParameters.numPathBits
33
+ _maxPathLen = (1 << numPathBits) - 1
34
+ numFpBits = numPathBits + 2 * rdMolDescriptors.AtomPairsParameters.codeSize
35
+ fpLen = 1 << numFpBits
36
+
37
+
38
+ def pyScorePair(at1, at2, dist, atomCodes=None, includeChirality=False):
39
+ """ Returns a score for an individual atom pair.
40
+
41
+ >>> from rdkit import Chem
42
+ >>> m = Chem.MolFromSmiles('CCCCC')
43
+ >>> c1 = Utils.GetAtomCode(m.GetAtomWithIdx(0))
44
+ >>> c2 = Utils.GetAtomCode(m.GetAtomWithIdx(1))
45
+ >>> c3 = Utils.GetAtomCode(m.GetAtomWithIdx(2))
46
+ >>> t = 1 | min(c1,c2) << numPathBits | max(c1,c2) << (rdMolDescriptors.AtomPairsParameters.codeSize + numPathBits)
47
+ >>> pyScorePair(m.GetAtomWithIdx(0), m.GetAtomWithIdx(1), 1)==t
48
+ 1
49
+ >>> pyScorePair(m.GetAtomWithIdx(1), m.GetAtomWithIdx(0), 1)==t
50
+ 1
51
+ >>> t = 2 | min(c1,c3) << numPathBits | max(c1,c3) << (rdMolDescriptors.AtomPairsParameters.codeSize + numPathBits)
52
+ >>> pyScorePair(m.GetAtomWithIdx(0),m.GetAtomWithIdx(2),2)==t
53
+ 1
54
+ >>> pyScorePair(m.GetAtomWithIdx(0),m.GetAtomWithIdx(2),2,
55
+ ... atomCodes=(Utils.GetAtomCode(m.GetAtomWithIdx(0)), Utils.GetAtomCode(m.GetAtomWithIdx(2)))) == t
56
+ 1
57
+
58
+ """
59
+ if not atomCodes:
60
+ code1 = Utils.GetAtomCode(at1, includeChirality=includeChirality)
61
+ code2 = Utils.GetAtomCode(at2, includeChirality=includeChirality)
62
+ else:
63
+ code1, code2 = atomCodes
64
+
65
+ codeSize = rdMolDescriptors.AtomPairsParameters.codeSize
66
+ if includeChirality:
67
+ codeSize += rdMolDescriptors.AtomPairsParameters.numChiralBits
68
+
69
+ accum = int(dist) % _maxPathLen
70
+ accum |= min(code1, code2) << numPathBits
71
+ accum |= max(code1, code2) << (codeSize + numPathBits)
72
+ return accum
73
+
74
+
75
+ def ExplainPairScore(score, includeChirality=False):
76
+ """
77
+ >>> from rdkit import Chem
78
+ >>> m = Chem.MolFromSmiles('C=CC')
79
+ >>> score = pyScorePair(m.GetAtomWithIdx(0), m.GetAtomWithIdx(1), 1)
80
+ >>> ExplainPairScore(score)
81
+ (('C', 1, 1), 1, ('C', 2, 1))
82
+ >>> score = pyScorePair(m.GetAtomWithIdx(0), m.GetAtomWithIdx(2), 2)
83
+ >>> ExplainPairScore(score)
84
+ (('C', 1, 0), 2, ('C', 1, 1))
85
+ >>> score = pyScorePair(m.GetAtomWithIdx(1), m.GetAtomWithIdx(2), 1)
86
+ >>> ExplainPairScore(score)
87
+ (('C', 1, 0), 1, ('C', 2, 1))
88
+ >>> score = pyScorePair(m.GetAtomWithIdx(2), m.GetAtomWithIdx(1), 1)
89
+ >>> ExplainPairScore(score)
90
+ (('C', 1, 0), 1, ('C', 2, 1))
91
+
92
+ We can optionally deal with chirality too
93
+ >>> m = Chem.MolFromSmiles('C[C@H](F)Cl')
94
+ >>> score = pyScorePair(m.GetAtomWithIdx(0), m.GetAtomWithIdx(1), 1)
95
+ >>> ExplainPairScore(score)
96
+ (('C', 1, 0), 1, ('C', 3, 0))
97
+ >>> score = pyScorePair(m.GetAtomWithIdx(0), m.GetAtomWithIdx(1), 1, includeChirality=True)
98
+ >>> ExplainPairScore(score, includeChirality=True)
99
+ (('C', 1, 0, ''), 1, ('C', 3, 0, 'R'))
100
+ >>> m = Chem.MolFromSmiles('F[C@@H](Cl)[C@H](F)Cl')
101
+ >>> score = pyScorePair(m.GetAtomWithIdx(1), m.GetAtomWithIdx(3), 1, includeChirality=True)
102
+ >>> ExplainPairScore(score, includeChirality=True)
103
+ (('C', 3, 0, 'R'), 1, ('C', 3, 0, 'S'))
104
+
105
+ """
106
+ codeSize = rdMolDescriptors.AtomPairsParameters.codeSize
107
+ if includeChirality:
108
+ codeSize += rdMolDescriptors.AtomPairsParameters.numChiralBits
109
+
110
+ codeMask = (1 << codeSize) - 1
111
+ pathMask = (1 << numPathBits) - 1
112
+ dist = score & pathMask
113
+
114
+ score = score >> numPathBits
115
+ code1 = score & codeMask
116
+ score = score >> codeSize
117
+ code2 = score & codeMask
118
+
119
+ return (Utils.ExplainAtomCode(code1, includeChirality=includeChirality), dist,
120
+ Utils.ExplainAtomCode(code2, includeChirality=includeChirality))
121
+
122
+
123
+ def GetAtomPairFingerprintAsBitVect(mol):
124
+ """ Returns the Atom-pair fingerprint for a molecule as
125
+ a SparseBitVect. Note that this doesn't match the standard
126
+ definition of atom pairs, which uses counts of the
127
+ pairs, not just their presence.
128
+
129
+ **Arguments**:
130
+
131
+ - mol: a molecule
132
+
133
+ **Returns**: a SparseBitVect
134
+
135
+ >>> from rdkit import Chem
136
+ >>> m = Chem.MolFromSmiles('CCC')
137
+ >>> v = [pyScorePair(m.GetAtomWithIdx(0), m.GetAtomWithIdx(1), 1),
138
+ ... pyScorePair(m.GetAtomWithIdx(0), m.GetAtomWithIdx(2), 2),
139
+ ... ]
140
+ >>> v.sort()
141
+ >>> fp = GetAtomPairFingerprintAsBitVect(m)
142
+ >>> list(fp.GetOnBits()) == v
143
+ True
144
+
145
+ """
146
+ res = DataStructs.SparseBitVect(fpLen)
147
+ fp = rdMolDescriptors.GetAtomPairFingerprint(mol)
148
+ for val in fp.GetNonzeroElements():
149
+ res.SetBit(val)
150
+ return res
151
+
152
+
153
+ # ------------------------------------
154
+ #
155
+ # doctest boilerplate
156
+ #
157
+ def _runDoctests(verbose=None): # pragma: nocover
158
+ import doctest
159
+ import sys
160
+ failed, _ = doctest.testmod(optionflags=doctest.ELLIPSIS, verbose=verbose)
161
+ sys.exit(failed)
162
+
163
+
164
+ if __name__ == '__main__': # pragma: nocover
165
+ _runDoctests()