Skip to main content

Python wrapper for the PaDEL descriptors

Project description

License: MIT

PaDEL Python wrapper

Python wrapper to ease the calculation of PaDEL molecular descriptors and fingerprints.

Copyright notice

Olivier J. M. Béquignon is neither the copyright holder of PaDEL nor responsible for it.

The work carried out here concerns

  • the Python wrapper,
  • the ePaDEL executable,
  • the extendedlibpadeldescriptor library.

Installation

From source:

git clone https://github.com/OlivierBeq/PaDEL_pywrapper.git
pip install ./PaDEL_pywrapper

with pip:

pip install padel-pywrapper

Get started

1D and 2D descriptors

Descriptors of the module PaDEL_pywrapper.descriptors can be computed as follows:

from PaDEL_pywrapper import PaDEL
from PaDEL_pywrapper.descriptor import ALOGP, Crippen, FMF
from rdkit import Chem

smiles_list = [
    # erlotinib
    "n1cnc(c2cc(c(cc12)OCCOC)OCCOC)Nc1cc(ccc1)C#C",
    # midecamycin
    "CCC(=O)O[C@@H]1CC(=O)O[C@@H](C/C=C/C=C/[C@@H]([C@@H](C[C@@H]([C@@H]([C@H]1OC)O[C@H]2[C@@H]([C@H]([C@@H]([C@H](O2)C)O[C@H]3C[C@@]([C@H]([C@@H](O3)C)OC(=O)CC)(C)O)N(C)C)O)CC=O)C)O)C",
    # selenofolate
    "C1=CC(=CC=C1C(=O)NC(CCC(=O)OCC[Se]C#N)C(=O)O)NCC2=CN=C3C(=N2)C(=O)NC(=N3)N",
]
mols = [Chem.MolFromSmiles(smiles) for smiles in smiles_list]

descriptors = [ALOGP, Crippen, FMF]

padel = PaDEL(descriptors)
print(padel.calculate(mols))

Instances of descriptors can be supplied as well.

descriptors = [ALOGP(), Crippen(), FMF()]

padel = PaDEL(descriptors)
print(padel.calculate(mols))

To calculate all possible descriptors, import the descriptors list from the module PaDEL_pywrapper directly:

from PaDEL_pywrapper import descriptors

padel = PaDEL(descriptors)
print(padel.calculate(mols))

3D descriptors

By default, the ignore_3D parameter is set to True, preventing any provided 3D descriptor to be calculated.

Should molecules with 3D coordinates be provided, one can turn on 3D descriptor calculation.

from rdkit.Chem import AllChem

mols = [Chem.AddHs(mol) for mol in mols]
_ = [AllChem.EmbedMolecule(mol) for mol in mols]

padel = PaDEL(descriptors, ignore_3D=False)
print(padel.calculate(mols))

:warning: A warning is raised if molecules lack hydrogens.
:warning: An exception is raised if molecules do not have 3D coordinates.

mol = Chem.MolFromSmiles('CCC')

padel = PaDEL(descriptors, ignore_3D=False)
print(padel.calculate([mol]))
# ValueError: Cannot calculate descriptors for a conformer-less molecule

Fingerprints

Fingerprints of the module `PaDEL_pywrapper.descriptors can be computed as follows:

from PaDEL_pywrapper.descriptor import GraphOnlyFP

fp = GraphOnlyFP

padel = PaDEL([fp], ignore_3D=False)
print(padel.calculate(mols))

Custom parameter sets can be provided for some fingerprints:

fp = GraphOnlyFP(size=2048, searchDepth=8)

padel = PaDEL([fp], ignore_3D=False)
print(padel.calculate(mols))

Other parameters

class PaDEL:
    ...
    def calculate(self, mols: Iterable[Chem.Mol], show_banner: bool = True, njobs: int = 1, chunksize: int = 100):

Parameters

  • mols : Iterable[Chem.Mol]
    RDKit molecule objects for which to obtain PaDEL descriptors.
  • show_banner : bool
    Displays default notice about PaDEL descriptors.
  • njobs : int
    Maximum number of simultaneous processes. Ignored if self.descriptors are instances and not class names.
  • chunksize : int
    Maximum number of molecules each process is charged of. Ignored if self.descriptors are instances and not class names.

Details about descriptors

Details about each descriptor and fingerprint can be obtained as follows:

print(ALOGP.description)

print(GraphOnlyFP.description)

For full details about all descriptors, one can obtain the path to the original Excel file of the PaDEL descriptors with:

print(padel.details)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

padel_pywrapper-1.0.6.tar.gz (37.5 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

padel_pywrapper-1.0.6-py3-none-any.whl (37.5 MB view details)

Uploaded Python 3

File details

Details for the file padel_pywrapper-1.0.6.tar.gz.

File metadata

  • Download URL: padel_pywrapper-1.0.6.tar.gz
  • Upload date:
  • Size: 37.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.11

File hashes

Hashes for padel_pywrapper-1.0.6.tar.gz
Algorithm Hash digest
SHA256 90225c5e2c3ec6cd1f355d004cc6c82342a6c1c65086559142f530a1e609fb03
MD5 060ae6ae33d3914bb1cb7df0ceb109a2
BLAKE2b-256 fb1f891ccb7b0c125578fb9f4168c08a37c11fdba835fc1cbaf1dbc7764de1ef

See more details on using hashes here.

File details

Details for the file padel_pywrapper-1.0.6-py3-none-any.whl.

File metadata

File hashes

Hashes for padel_pywrapper-1.0.6-py3-none-any.whl
Algorithm Hash digest
SHA256 b03984a58e1e9c4fe12cb8c9a61337726b252b4cd2b96c41f958122c35464366
MD5 f65b7fba898ab003ad30bd2f679bcf39
BLAKE2b-256 c2953971485e567b8b050dc5bbb632f51a87a28f55e3eb431094949df6c18563

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page