Skip to content

ducksmiles: bump to 0.5.0 - #2055

Merged
sebastiaan-dev merged 8 commits into
duckdb:mainfrom
nkwork9999:ducksmiles-0.5.0
Sep 5, 2026
Merged

sebastiaan-dev merged 8 commits into
duckdb:mainfrom
nkwork9999:ducksmiles-0.5.0

Conversation

@nkwork9999

@nkwork9999 nkwork9999 commented Jun 12, 2026 •

Copy link
Copy Markdown
Contributor

CI verified (2026-09-05)

Verified source commit: ff7c681ca14698d7ed6ec4a5d7a15fc40cefe834. Community PR head: 42d25c854f8720d561ace44082c7642e09e0c46d (tested merge commit 65f5631b4c72dbf66b1eb49c5eb62c191c1dbca3).

Existing disabled/documentation/deployment jobs remain skipped according to the workflows; they are not counted as passed. No platform exclusions or test-disabling changes were added. These results verify builds and the executed tests, not publication or universal RDKit compatibility. Wasm checks establish side-module link integrity, not DuckDB-Wasm runtime SQL coverage.

Build and runtime compatibility fixes

  • Keep DuckDB 1.5.5 and development vector APIs compatible, including nullable callbacks, mutable output access and read-only list children. Add constant/NULL, filtered-vector and multi-batch regressions.
  • Mark the ten BLOB similarity callbacks and 25 dynamic-string callbacks that can throw as fallible; test expected errors, row-wise TRY recovery and connection reuse.
  • Correct cross-platform Rust target selection and toolchain declarations; forward all Rust archives into the actual Wasm final link.
  • Match pinned Emscripten 3.1.71 with Rust nightly-2025-02-01 and a Wasm-only std rebuild, including threaded features. Validate missing symbols and self-resolved GOT relocations against the actual binary. Wasm build contract.

Updates ducksmiles to 0.5.0 (source ref ff7c681ca14698d7ed6ec4a5d7a15fc40cefe834).

Features carried forward since 0.4.0, with SQL regression tests in the source repository:

  • Bit-fingerprint similarity family over raw fingerprint BLOBs (ported from DataStructs/BitOps.cpp): dice_bit, cosine_bit, kulczynski_bit, sokal_bit, mcconnaughey_bit, asymmetric_bit, braun_blanquet_bit, russel_bit, and asymmetric tversky_bit(a, b, α, β) — joining the existing tanimoto_bit.
  • mol_mr — Wildman-Crippen molar refractivity (shares the LogP atom-contribution table).
  • qed — QED drug-likeness, a port of RDKit Chem.QED; reproduces the QED.py reference values closely.
  • Ring-count descriptors — num_saturated_rings, num_aliphatic_rings, and the aromatic/saturated/aliphatic × heterocycle/carbocycle splits (RDKit rdMolDescriptors).

Additional changes in the current revision:

  • Adds 21 structural-profile descriptors: fragment, charge and hydrogen counts; bond, ring and element statistics; heavy-atom mass and graph fractions.
  • Adds a pinned RDKit 2025.09.6 suite: 4,510 distinct SMILES inputs and 94,710 scalar comparisons. Inputs include alternative spellings, isolated elements and isotopes. This is finite-corpus agreement, not universal RDKit parser/sanitizer or fingerprint compatibility.
  • Fixes the reported ListVector header build failure across stable and newer DuckDB layouts.
  • Adds extension.requires_toolchains: rust and correct Rust target selection for community cross-platform builds. Source CI now uses DuckDB v1.5.5 and v1.5-variegata tools.

Validation: current-ref source, community stable and community development CI all passed; exact runs, test counts and intentional skips are recorded above.

Source PR: nkwork9999/duckSMILES#14
Definitions and limits: https://github.com/nkwork9999/duckSMILES/blob/ff7c681ca14698d7ed6ec4a5d7a15fc40cefe834/PROFILE_PARITY.md

nkwork9999 and others added 3 commits June 13, 2026 01:26
New since 0.4.0 (all RDKit-faithful):
- Bit-fingerprint similarity family: dice, cosine, kulczynski, sokal,
  mcconnaughey, asymmetric, braun_blanquet, russel, and tversky_bit (joins
  the existing tanimoto_bit), ported from DataStructs/BitOps.cpp.
- Descriptors: mol_mr (Wildman-Crippen molar refractivity), qed (drug-likeness,
  port of Chem.QED), and the RDKit ring-count family (num_saturated_rings,
  num_aliphatic_rings, and the aromatic/saturated/aliphatic x hetero/carbocycle
  splits).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…nchmark harness (ref -> merged docking branch)
@nkwork9999

Copy link
Copy Markdown
Contributor Author

Updated the 0.5.0 ref to the just-merged in-silico docking release (96c85cc). This version adds, on top of the existing descriptors / fingerprints / similarity / scaffold tooling:

  • Drug-likeness & toxicophore filtering: admet_json, druglikeness_pass(smiles, rule) (Lipinski/Veber/Ghose/Egan/Muegge/Lead), lipinski_violations, structural_alerts_json (Brenk/PAINS catalogue).
  • In-silico docking pipeline: smiles_to_pdbqt (DG + L-BFGS conformer), prepare_receptor(pdb, ph) (pH protonation + polar-H), dock(...) (flexible torsion-tree docking, Vina-style scoring + 3D affinity maps).
  • Benchmark harness: roc_auc, enrichment_factor, bedroc.

Still pure Rust core (no RDKit), MIT. 546 Rust unit tests pass; full pipeline verified end-to-end against the bundled DuckDB.

@carlopi

carlopi commented Jun 18, 2026

Copy link
Copy Markdown
Member

Closing and reopening to re-trigger CI on v1.5.4.

@carlopi carlopi closed this Jun 18, 2026
@carlopi carlopi reopened this Jun 18, 2026
@sebastiaan-dev

Copy link
Copy Markdown
Member

Hi @nkwork9999, can you take a look at the build error in the CI? It seems recurring across CI job reruns.

@sebastiaan-dev sebastiaan-dev added the CI failure CI failure that seems related to the extension label Aug 26, 2026
@nkwork9999

Copy link
Copy Markdown
Contributor Author

Updated the source ref to nkwork9999/duckSMILES@3b5940d to address the reported build failure. The ListVector include now supports both the stable DuckDB header layout and newer layouts. The source repository CI targets DuckDB v1.5.5 with v1.5-variegata tools, and this descriptor now explicitly requests the Rust toolchain. Rust cross-target selection and formatting fixes are also included. The new community CI runs are in progress; I am checking the remaining build and SQL-test results. The 21 structural-profile descriptors have a pinned RDKit reference suite, but this update does not claim universal RDKit parser/sanitizer equivalence.

@sebastiaan-dev
sebastiaan-dev merged commit 10e4c39 into duckdb:main Sep 5, 2026
29 checks passed
@sebastiaan-dev

Copy link
Copy Markdown
Member

Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CI failure CI failure that seems related to the extension

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants