Skip to content

Releases: ecrl/padelpy

0.1.16 - bug fix for Python 3.12

10 Nov 22:48
Compare
Choose a tag to compare

See PR #53 for details.

Thanks to @JacksonBurns for the contribution!

0.1.15 - update to build/install method, testing

01 Aug 06:32
61c4557
Compare
Choose a tag to compare

No functional changes, but:

  • Build/installation now uses pyproject.toml instead of the deprecated setup.py
  • Removed Azure-based unit testing, using GitHub workflows and pytest
  • New releases are automatically deployed to PyPI

Fix to multiprocessing file mismatch

08 May 19:46
Compare
Choose a tag to compare

As outlined in #46, if two parallel processes started their descriptor calculations at the same time, a single temporary file would be associated with each process. This fix adds a random number to the filename such that two processes started at the same time cannot share the same temporary file. Credit to @pikakolendo02 for finding the error and supplying a fix.

0.1.13

10 Dec 21:14
4b18d4a
Compare
Choose a tag to compare

The padeldescriptor wrapper's retainorder argument now defaults to True. It just makes more sense this way!

0.1.12

08 Sep 23:04
20d179a
Compare
Choose a tag to compare

A few pull requests/features included in this update, thanks to all who contributed!

1.) Now cleans up orphaned CSV files if KeyboardInterrupt triggered
2.) Added option to control runtime per molecule
3.) Added option to specify the number of CPU threads used

Release 0.1.11

05 Dec 20:23
901772d
Compare
Choose a tag to compare

This update allows users to generate descriptors/fingerprints from an SDF file.

Preventing PaDEL's GUI/splash screen from displaying

12 Jul 15:39
Compare
Choose a tag to compare
  • This update adds an additional argument to padelpy.wrapper.padeldescriptor, headless, True by default, to prevent the PaDEL-Descriptor splash screen from displaying on execution

from_smiles now returns descriptors in same order as input SMILES

13 Apr 14:55
Compare
Choose a tag to compare

Per pull request #21 and issue #20, this update ensures descriptor dictionaries/lists are returned in the same order as the SMILES used as inputs.

Release 0.1.8

08 Jan 21:36
d4eeeab
Compare
Choose a tag to compare

This release allows users to submit multiple SMILES strings (i.e. list of strings) to the "from_smiles" function:

from padelpy import from_smiles

# obtain descriptors for propane and butane
descriptors = from_smiles(['CCC', 'CCCC'])

In issue #15 it was pointed out that multiprocessing/multithreading could not be utilized for the "from_smiles" function. The updated implementation allows for this. If your code/pipeline currently supplies one SMILES string to the "from_smiles" function, it will continue to operate as expected.

Additionally, error handling/reporting has been updated to ensure proper feedback, and the default maximum runtimes for the "from_smiles" and "from_mdl" functions has been increased from 12 seconds to 60 seconds.

Unit tests for submitting multiple SMILES strings and proper exception handling/reporting have been included.

Error handling for PaDEL-Descriptor not returning any calculated values

16 Jun 02:00
fd09a3c
Compare
Choose a tag to compare

This update includes handling for an error observed in issue #12, where some compounds would return no computed descriptors/fingerprints (temporary CSV not saving an entry for the compound).

For example, the compound "buprenorphine" with SMILES string "Oc7ccc5c1c7O[C@H]3[C@]6(OC)C@HC@@(C)C(C)(C)C" would produce an output CSV file with no entry for the compound when the following is executed:

from padelpy import from_smiles

from_smiles('Oc7ccc5c1c7O[C@H]3[C@]6(OC)C@HC@@(C)C(C)(C)C', output_csv='output.csv')

When PaDELPy re-imports these descriptors to return to the user, an indexing error occurred due to the from_smiles function (and the from_mdl function, it has the same behavior) looking through an empty list.

This update ensures that the following exception is raised if this behavior occurs:

RuntimeError: PaDEL-Descriptor returned no calculated values. Ensure the input structure is correct.

One of buprenorphine's alternate SMILES strings, "C[C@([C@H]1C[C@@]23CC[C@@]1([C@H]4[C@@]25CCN([C@@h]3CC6=C5C(=C(C=C6)O)O4)CC7CC7)OC)(C(C)(C)C)O", also produces this error. Another alternate SMILES string, "CC(C)(C)C(C)(C1CC23CCC1(C4C25CCN(C3CC6=C5C(=C(C=C6)O)O4)CC7CC7)OC)O", simply causes a timeout error (unable to calculate descriptors given 60 minutes of available runtime, as stated in the above issue).

The issue cited above states that the GUI version of PaDEL-Descriptor is also unable to calculate values for these SMILES, therefore I theorize that the underlying issue is likely within PaDEL-Descriptor.

This update also includes updated DocStrings.