All Projects → ecrl → padelpy

ecrl / padelpy

Licence: MIT license
A Python wrapper for PaDEL-Descriptor software

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to padelpy

MDBenchmark
Quickly generate, start and analyze benchmarks for molecular dynamics simulations.
Stars: ✭ 64 (-47.11%)
Mutual labels:  computational-chemistry
adcc
adcc: Seamlessly connect your program to ADC
Stars: ✭ 26 (-78.51%)
Mutual labels:  computational-chemistry
isicle
In silico chemical library engine for high-accuracy chemical property prediction
Stars: ✭ 31 (-74.38%)
Mutual labels:  computational-chemistry
graphchem
Graph-based machine learning for chemical property prediction
Stars: ✭ 21 (-82.64%)
Mutual labels:  computational-chemistry
pnictogen
⚛️ A Python library and a command-line tool that creates input files for computational chemistry packages
Stars: ✭ 18 (-85.12%)
Mutual labels:  computational-chemistry
CatKit
General purpose tools for high-throughput catalysis
Stars: ✭ 48 (-60.33%)
Mutual labels:  computational-chemistry
xtp
GW-BSE for excited state Quantum Chemistry in a Gaussian Orbital basis, electronic spectroscopy with QM/MM, charge and energy dynamics in complex molecular systems
Stars: ✭ 26 (-78.51%)
Mutual labels:  computational-chemistry
stda
stda program for computing excited states and response functions via simplified TD-DFT methods (sTDA, sTD-DFT, and SF-sTD-DFT)
Stars: ✭ 23 (-80.99%)
Mutual labels:  computational-chemistry
DeepChem-Workshop
DeepChem 2017: Deep Learning & NLP for Computational Chemistry, Biology & Nano-materials
Stars: ✭ 22 (-81.82%)
Mutual labels:  computational-chemistry
molfunc
fast functionalisation of molecules
Stars: ✭ 22 (-81.82%)
Mutual labels:  computational-chemistry
pylj
Teaching Utility for Classical Atomistic Simulation.
Stars: ✭ 23 (-80.99%)
Mutual labels:  computational-chemistry
xtb-python
Python API for the extended tight binding program package
Stars: ✭ 61 (-49.59%)
Mutual labels:  computational-chemistry
QCFractal
A distributed compute and database platform for quantum chemistry.
Stars: ✭ 107 (-11.57%)
Mutual labels:  computational-chemistry
qcmaquis
Release-only repository for SCINE QCMaquis, the DMRG software from the Reiher group.
Stars: ✭ 18 (-85.12%)
Mutual labels:  computational-chemistry
r3dmol
🧬 An R package for visualizing molecular data in 3D
Stars: ✭ 45 (-62.81%)
Mutual labels:  computational-chemistry
QUBEKit
Quantum Mechanical Bespoke Force Field Derivation Toolkit
Stars: ✭ 64 (-47.11%)
Mutual labels:  computational-chemistry
qp2
Quantum Package : a programming environment for wave function methods
Stars: ✭ 37 (-69.42%)
Mutual labels:  computational-chemistry
Interactive Data Editor
A Software to interactively edit data in a graphical manner
Stars: ✭ 35 (-71.07%)
Mutual labels:  computational-chemistry
SCFpy
🎉 Simple restricted Hartree-Fock code in Python
Stars: ✭ 30 (-75.21%)
Mutual labels:  computational-chemistry
matador
⚗️ matador is an aggregator, manipulator and runner of first-principles calculations, written with a bent towards battery 🔋 electrode materials.
Stars: ✭ 23 (-80.99%)
Mutual labels:  computational-chemistry

UML Energy & Combustion Research Laboratory

PaDELPy: A Python wrapper for PaDEL-Descriptor software

GitHub version PyPI version GitHub license Build Status

PaDELPy provides a Python wrapper for the PaDEL-Descriptor molecular descriptor calculation software. It was created to allow direct access to the PaDEL-Descriptor command-line interface via Python.

Installation

Installation via pip:

$ pip install padelpy

Installation via cloned repository:

$ git clone https://github.com/ecrl/padelpy
$ cd padelpy
$ python setup.py install

PaDEL-Descriptor is bundled into PaDELPy, therefore an external installation/download of PaDEL-Descriptor is not necessary. There are currently no additional Python dependencies for PaDELPy, however it requires an installation of the Java JRE version 6+.

Basic Usage

In addition to providing a complete interface between Python and PaDEL-Descriptor's command line tool, PaDELPy offers two functions to acquire descriptors/fingerprints within Python - obtaining descriptors/fingerprints from a SMILES string, and obtaining descriptors/fingerprints from an MDL MolFile.

SMILES to Descriptors/Fingerprints

The "from_smiles" function accepts a SMILES string or list of SMILES strings as an argument, and returns a Python dictionary with descriptor/fingerprint names/values as keys/values respectively - if multiple SMILES strings are supplied, "from_smiles" returns a list of dictionaries.

from padelpy import from_smiles

# calculate molecular descriptors for propane
descriptors = from_smiles('CCC')

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

# in addition to descriptors, calculate PubChem fingerprints
desc_fp = from_smiles('CCC', fingerprints=True)

# only calculate fingerprints
fingerprints = from_smiles('CCC', fingerprints=True, descriptors=False)

# setting the number of threads, this uses one cpu thread to compute descriptors
descriptors = from_smiles(['CCC', 'CCCC'], threads = 1)

# save descriptors to a CSV file
_ = from_smiles('CCC', output_csv='descriptors.csv')

MDL MolFile to Descriptors/Fingerprints

The "from_mdl" function accepts a filepath (to an MDL MolFile) as an argument, and returns a list. Each list element is a dictionary with descriptors/fingerprints corresponding to each supplied molecule (indexed as they appear in the MolFile).

from padelpy import from_mdl

# calculate molecular descriptors for molecules in `mols.mdl`
descriptors = from_mdl('mols.mdl')

# in addition to descriptors, calculate PubChem fingerprints
desc_fp = from_mdl('mols.mdl', fingerprints=True)

# only calculate fingerprints
fingerprints = from_mdl('mols.mdl', fingerprints=True, descriptors=False)

# setting the number of threads, this uses one cpu thread to compute descriptors
desc_fp = from_mdl('mols.mdl', threads=1)

# save descriptors to a CSV file
_ = from_mdl('mols.mdl', output_csv='descriptors.csv')

SDF to Descriptors/Fingerprints

The "from_sdf" function accepts a filepath as an argument, and returns a list. Each list element is a dictionary with descriptors/fingerprints corresponding to each supplied molecule (indexed as they appear in the SDF file).

from padelpy import from_sdf

# calculate molecular descriptors for molecules in `mols.sdf`
descriptors = from_sdf('mols.sdf')

# in addition to descriptors, calculate PubChem fingerprints
desc_fp = from_sdf('mols.sdf', fingerprints=True)

# only calculate fingerprints
fingerprints = from_sdf('mols.sdf', fingerprints=True, descriptors=False)

# setting the number of threads, this uses one cpu thread to compute descriptors
desc_fp = from_mdl('mols.sdf', threads=1)

# save descriptors to a CSV file
_ = from_sdf('mols.sdf', output_csv='descriptors.csv')

Command Line Wrapper

Alternatively, you can have more control over PaDEL-Descriptor with the command-line wrapper function. Any combination of arguments supported by PaDEL-Descriptor can be accepted by the "padeldescriptor" function.

from padelpy import padeldescriptor

# to supply a configuration file
padeldescriptor(config='\\path\\to\\config')

# to supply an input (MDL) and output file
padeldescriptor(mol_dir='molecules.mdl', d_file='descriptors.csv')

# to supply an input (SDF) and output file
padeldescriptor(mol_dir='molecules.sdf', d_file='descriptors.csv')

# a SMILES file can be supplied
padeldescriptor(mol_dir='molecules.smi', d_file='descriptors.csv')

# a path to a directory containing structural files can be supplied
padeldescriptor(mol_dir='\\path\\to\\mols\\', d_file='descriptors.csv')

# to calculate 2-D and 3-D descriptors
padeldescriptor(d_2d=True, d_3d=True)

# to calculate PubChem fingerprints
padeldescriptor(fingerprints=True)

# to convert molecule into a 3-D structure
padeldescriptor(convert3d=True)

# to supply a descriptortypes file
padeldescriptor(descriptortype='\\path\\to\\descriptortypes')

# to detect aromaticity
padeldescriptor(detectaromaticity=True)

# to calculate fingerprints
padeldescriptor(fingerprints=True)

# to save process status to a log file
padeldescriptor(log=True)

# to remove salts from the molecule(s)
padeldescriptor(removesalt=True)

# to retain 3-D coordinates when standardizing
padeldescriptor(retain3d=True)

# to retain order (output same order as input)
padeldescriptor(retainorder=True)

# to standardize nitro groups to N(:O):O
padeldescriptor(standardizenitro=True)

# to standardize tautomers
padeldescriptor(standardizetautomers=True)

# to specify a SMIRKS tautomers file
padeldescriptor(tautomerlist='\\path\\to\\tautomers\\')

# to use filenames as molecule names
padeldescriptor(usefilenameasmolname=True)

# to set the maximum number of compounds in a resulting descriptors file
padeldescriptor(maxcpdperfile=32)

# to set the maximum runtime (in mS) per molecule
padeldescriptor(maxruntime=10000)

# to set the maximum number of waiting jobs in the queue
padeldescriptor(waitingjobs=10)

# to set the maximum number of threads used
padeldescriptor(threads=2)

# to prevent padel-splash image from loading.
padeldescriptor(headless=True)

Contributing, Reporting Issues and Other Support

To contribute to PaDELPy, make a pull request. Contributions should include tests for new features added, as well as extensive documentation.

To report problems with the software or feature requests, file an issue. When reporting problems, include information such as error messages, your OS/environment and Python version.

For additional support/questions, contact Travis Kessler ([email protected]).

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].