Migrating from padelpy
This guide helps users of padelpy (baseline ≥ 0.1.17) move selected workflows to padelpy2 while keeping the stock Yap PaDEL-Descriptor JAR.
padelpy2 does not replace padelpy. For choosing between them, start with When to use which package.
Should you migrate?
Stay on padelpy if you need a stdlib-only stack (no RDKit, no pandas) and SMILES/SDF → dict helpers.
Migrate toward padelpy2 if you want RDKit molecules, pandas DataFrames,
typed catalogs, and stock-JAR continuity (including padeldescriptor).
Stock JAR continuity
padelpy and padelpy2 both drive the classic stock JAR family. Migration here preserves that identity. Do not assume numeric agreement with other PaDEL-family distributions without your own checks.
Concept mapping
padelpy |
padelpy2 |
Notes |
|---|---|---|
|
|
DataFrame by default; RDKit required |
Return |
DataFrame, or |
|
|
|
Same keyword-oriented CLI surface |
(no Calculator) |
|
Preferred for new RDKit-native code |
Default descriptor run ( |
compat default: |
3D catalogs need conformers via |
Side-by-side examples
padelpy (dict-oriented):
from padelpy import from_smiles
row = from_smiles("CCO") # OrderedDict-like mapping
padelpy2 compat (DataFrame-oriented):
from padelpy2.compat import from_smiles
df = from_smiles("CCO") # one-row DataFrame
row = from_smiles("CCO", as_dict=True) # best-effort dict
RDKit-native Calculator (recommended for new code):
from rdkit import Chem
from rdkit.Chem import AllChem
from padelpy2 import Calculator
from padelpy2.descriptors import Weight
mol = Chem.AddHs(Chem.MolFromSmiles("CCO"))
AllChem.Compute2DCoords(mol)
df = Calculator([Weight])([mol])
Low-level CLI (both packages):
# padelpy
from padelpy import padeldescriptor
# padelpy2 — keyword surface aligned for continuity
from padelpy2 import padeldescriptor
Behavioral differences
Dependencies: padelpy2
compatandCalculatorrequire RDKit and pandas; padelpy does not.Return type: DataFrames drop the engine
Namecolumn by default.``as_dict``: Convenient for migration scripts; do not assume identical key sets or
OrderedDictordering versus padelpy.Fingerprints / descriptors flags: compat
descriptors=Trueselects the default 2D catalog;fingerprints=Trueadds all fingerprint types.Java: Both expect a system JRE on
PATH. Neither auto-downloads a JRE.
Validation checkpoint
Install padelpy2 with RDKit (see Installation) in an environment that can also import padelpy if you want a side-by-side check.
Run a single ethanol SMILES through
padelpy2.compat.from_smilesand confirm a DataFrame with the expected column count for your flags (default 2D catalog → 1444 columns; see API stability).For numeric continuity on a small subset, compare
Weight(or ALOGP / Crippen / Weight) viaCalculatoragainst your historical stock-JAR CSV. Use stock-JAR (or padelpy2 oracle) values as the reference—not another PaDEL-family distribution.Keep using padelpy unchanged for any stdlib-only deployment paths.
See also
When to use which package — package choice
Compatibility helpers — helper reference
Quickstart — Calculator workflow
Performance notes — chunking and JVM notes