Skip to content

Usage

Installation

pip install harmonsmile

RDKit is required and installed automatically (rdkit>=2022.09).

Quick Start

from harmonsmile import PubChemIngest, PubChemConfig, save_table

cfg = PubChemConfig(
    input_path="examples/example_pubchem.csv",
)
df = PubChemIngest(cfg).run()
save_table(df, "results/example_pubchem_harmonized.csv")
from harmonsmile import ChEMBLIngest, ChEMBLConfig, save_table

cfg = ChEMBLConfig(
    input_path="examples/example_chembl.csv",
)
df = ChEMBLIngest(cfg).run()
save_table(df, "results/example_chembl_harmonized.csv")
from harmonsmile import SMILESPrep, SMILESConfig, save_table

cfg = SMILESConfig(
    input_path="examples/example_smiles.csv",
    smiles_col="SMILES",
)
df = SMILESPrep(cfg).run()
save_table(df, "results/example_smiles_harmonized.csv")
from harmonsmile import RDKitStandardizer

std = RDKitStandardizer()
print(std.to_iso_kek("c1ccccc1"))    # canonical + isomeric + Kekulized
print(std.to_conn_kek("c1ccccc1"))   # canonical + connectivity-only + Kekulized

Command-Line Interface

# PubChem batch
harmonsmile --pubchem-in examples/db.csv --pubchem-out results/out.csv

# ChEMBL batch
harmonsmile --chembl-in examples/db.csv --chembl-out results/out.csv

# SMILES batch
harmonsmile --smiles-in examples/db.csv --smiles-col SMILES --smiles-out results/out.csv

# Single Entry
harmonsmile --pubchem-cid 2723949
harmonsmile --chembl-id CHEMBL294199

Pipelines

PubChem

PubChemIngest reads CSV data with a PubChem CID column and resolves molecules through the public REST API.

ChEMBL

ChEMBLIngest reads CSV data with a ChEMBL ID column and resolves structures through the public REST API.

Local SMILES

SMILESPrep accepts CSV or Excel files with any SMILES column name and processes them locally.

Pipeline Config Source Input API
PubChemIngest PubChemConfig PubChem CSV with PubChem CID column REST (public)
ChEMBLIngest ChEMBLConfig ChEMBL CSV with ChEMBL ID column REST (public)
SMILESPrep SMILESConfig Any CSV/Excel with any SMILES column Local file

All pipelines append a SMILES_RDKit column with the harmonized SMILES. Pipeline .run() methods return a pandas.DataFrame and do not write files. Use save_table(df, path) from Python, or CLI --*-out options, to persist results.

Input Format

Pipeline Required columns
PubChemIngest id (optional), PubChem CID
ChEMBLIngest id (optional), ChEMBL ID
SMILESPrep id (optional), <smiles_col> (any name)

Supported file formats: CSV, TSV, XLSX, XLS.