rdkit-repr — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited rdkit-repr (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
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 --helpCheck 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 --helpDisable environment printing (optional):
uv run <skill_path>/scripts/rdkit_helper.py --no-env desc --smiles "CCO" --output out.csvSingle SMILES (default preset: physchem, 25 descriptors):
uv run <skill_path>/scripts/rdkit_helper.py desc \
--smiles "CCO" \
--output /tmp/CCO.desc.csvFrom CSV (default SMILES column is smiles):
uv run <skill_path>/scripts/rdkit_helper.py desc \
--file data.csv \
--smiles-col smiles \
--output data.desc.csvFrom SMI:
uv run <skill_path>/scripts/rdkit_helper.py desc \
--file molecules.smi \
--output molecules.desc.csvChoose 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.csvSelect 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.csvSuppress 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.npyFrom 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.npyFrom SMI, MACCS keys (always 167 bits):
uv run <skill_path>/scripts/rdkit_helper.py fp \
--file molecules.smi \
--type maccs \
--output molecules.maccs.npyOutput 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.csvAtom-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-descList 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](O)(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 ...~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.