jinzhezenggroup/rdkit-repr
> A standardized CLI wrapper for RDKit molecular featurization workflows that handles physicochemical descriptor computation (outputs .csv) and molecular fingerprint extraction (outputs .npy or .csv), with built-in SMILES validation. USE WHEN you need to compute RDKit molecular descriptors or fingerprints from SMILES datasets (.csv/.smi), or when you want to list all available descriptor names and presets.
npx skills add https://github.com/jinzhezenggroup/computational-chemistry-agent-skills --skill rdkit-repr
This skill provides practical command patterns for RDKit descriptor and fingerprint extraction
using the standardized CLI wrapper: <skill_path>/scripts/rdkit_helper.py.
Key behaviors (important for Agents):
*.skipped.csv (no crash).[RESULT] desc_csv=/abs/path.csv[RESULT] fp_npy=/abs/path.npy[RESULT] fp_csv=/abs/path.csvCheck CLI help:
uv run <skill_path>/scripts/rdkit_helper.py --help
Check subcommand help:
uv run <skill_path>/scripts/rdkit_helper.py desc --help
uv run <skill_path>/scripts/rdkit_helper.py fp --help
uv run <skill_path>/scripts/rdkit_helper.py list-desc --help
Disable environment printing (optional):
uv run <skill_path>/scripts/rdkit_helper.py --no-env desc --smiles "CCO" --output out.csv
Single SMILES (default preset: physchem, 25 descriptors):
uv run <skill_path>/scripts/rdkit_helper.py desc \
--smiles "CCO" \
--output /tmp/CCO.desc.csv
From CSV (default SMILES column is smiles):
uv run <skill_path>/scripts/rdkit_helper.py desc \
--file data.csv \
--smiles-col smiles \
--output data.desc.csv
From SMI:
uv run <skill_path>/scripts/rdkit_helper.py desc \
--file molecules.smi \
--output molecules.desc.csv
Choose a descriptor preset:
# Lipinski drug-likeness (6 descriptors: MolWt, MolLogP, NumHDonors, ...)
uv run <skill_path>/scripts/rdkit_helper.py desc \
--file data.csv --preset lipinski --output data.lipinski.csv
# Extended physicochemical (25 descriptors, default)
uv run <skill_path>/scripts/rdkit_helper.py desc \
--file data.csv --preset physchem --output data.physchem.csv
# Topological / graph indices (56 descriptors: BalabanJ, BertzCT, Chi*, PEOE_VSA*, ...)
uv run <skill_path>/scripts/rdkit_helper.py desc \
--file data.csv --preset topological --output data.topo.csv
# All RDKit descriptors (~200 descriptors)
uv run <skill_path>/scripts/rdkit_helper.py desc \
--file data.csv --preset all --output data.all_desc.csv
Select specific descriptors (overrides --preset):
uv run <skill_path>/scripts/rdkit_helper.py desc \
--file data.csv \
--descriptors "MolWt,MolLogP,TPSA,NumHDonors,NumHAcceptors" \
--output data.custom.csv
Suppress merging back original CSV columns (output only smiles + descriptors):
uv run <skill_path>/scripts/rdkit_helper.py desc \
--file data.csv --preset physchem --no-merge --output data.desc_only.csv
______________________________________________________________________
Available fingerprint types:
| Type | Description | Default bits |
| --------------- | ---------------------------------------------------------- | ------------ |
| morgan2 | Morgan circular FP radius 2 (ECFP4-like), bit vector | 2048 |
| morgan3 | Morgan circular FP radius 3 (ECFP6-like), bit vector | 2048 |
| morgan2_count | Morgan radius-2 count vector | 2048 |
| rdkit | RDKit path-based FP, bit vector | 2048 |
| maccs | MACCS 167 structural keys (bit vector, --nbits ignored) | 167 |
| topological | Topological torsion FP (count vector, hashed to --nbits) | 2048 |
| atompair | Atom-pair FP (count vector, hashed to --nbits) | 2048 |
| layered | Layered substructure FP, bit vector | 2048 |
| pattern | SMARTS pattern FP, bit vector | 2048 |
Single SMILES, output as NumPy array (.npy):
uv run <skill_path>/scripts/rdkit_helper.py fp \
--smiles "CCO" \
--type morgan2 \
--output /tmp/CCO.morgan2.npy
From CSV, Morgan ECFP4 (2048 bits):
uv run <skill_path>/scripts/rdkit_helper.py fp \
--file data.csv \
--smiles-col smiles \
--type morgan2 \
--nbits 2048 \
--output data.morgan2.npy
From SMI, MACCS keys (always 167 bits):
uv run <skill_path>/scripts/rdkit_helper.py fp \
--file molecules.smi \
--type maccs \
--output molecules.maccs.npy
Output as CSV (smiles + bit_0 … bit_N-1 columns):
uv run <skill_path>/scripts/rdkit_helper.py fp \
--file data.csv \
--type rdkit \
--nbits 1024 \
--format csv \
--output data.rdkfp.csv
Atom-pair fingerprint, 4096 bits:
uv run <skill_path>/scripts/rdkit_helper.py fp \
--file data.csv \
--type atompair \
--nbits 4096 \
--output data.atompair.npy
______________________________________________________________________
List all descriptors and built-in presets:
uv run <skill_path>/scripts/rdkit_helper.py list-desc
List descriptors in a specific preset group:
uv run <skill_path>/scripts/rdkit_helper.py list-desc --group lipinski
uv run <skill_path>/scripts/rdkit_helper.py list-desc --group physchem
uv run <skill_path>/scripts/rdkit_helper.py list-desc --group topological
uv run <skill_path>/scripts/rdkit_helper.py list-desc --group all
______________________________________________________________________
| Preset | Count | Typical Use |
| ------------- | ----- | ---------------------------------------------------------------------- |
| lipinski | 6 | Quick drug-likeness screening (Ro5 filter) |
| physchem | 25 | General ML features: MW, logP, TPSA, ring counts, charge stats, … |
| topological | 56 | Graph/topology indices: Balaban J, Kappa, Chi, PEOE_VSA, EState_VSA, … |
| all | ~200 | Full RDKit descriptor set (includes fragment counts, MQN, etc.) |
______________________________________________________________________
desc output (CSV):
smiles, then one column per descriptor.--file is a .csv and --no-merge is not set, original CSV columns are appended.*.skipped.csv).fp output:
.npy (default): NumPy array of shape (N_valid, nbits), dtype uint8 (bit) or int32 (count)..csv: smiles column followed by bit_0 … bit_{nbits-1} columns.--nbits.______________________________________________________________________
When using this skill for users:
.csv requires a SMILES column (default smiles).smi uses the first token of each line as SMILES--smiles "C@@H(F)Cl"desc: --smiles-colfp: --smiles-col--preset lipinski--preset physchem or --type morgan2--type morgan2 or --type rdkit--type maccs or --type pattern*.skipped.csv and decide whether to fix or permanently drop them[RESULT] ...=/abs/path in stdoutRDKIT_HELPER_TRACE=1 uv run <skill_path>/scripts/rdkit_helper.py ...Take jinzhezenggroup/rdkit-repr from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.