code wiki / (root) / nx_chem_descriptors.nx

nx_chem_descriptors.nx

buildroot/runtime/nx_chem_descriptors.nx

18098 B377 linesdepth 8pulls 9 transitivereach 1 importersview sourcekind librarytopic chem
docsdependenciesstructsconstsfunctions

about

nx_chem_descriptors.nx -- C2.7 milestone: drug-likeness descriptors. Counting primitives for Lipinski's Rule of Five + Veber-style drug- likeness screening. All composable on the existing MolGraph + the implicit-H valence inference (C2.3a). Lipinski Ro5 (1997, Adv. Drug Deliv. Rev. 23:3-25): - MW <= 500 Da - logP <= 5 (DEFERRED to C2.8 -- Crippen-Wildman atom-type table) - HBD <= 5 (count of N-H, O-H, S-H bonds) - HBA <= 10 (count of N, O atoms) Pass if at most 1 violation (Lipinski's original wording). Veber 2002 (J. Med. Chem. 45:2615-2623): - Rotatable bonds <= 10 - TPSA <= 140 Ų (DEFERRED to C2.8 -- Ertl-class atom-contribution table) Honest gaps (DEFERRED): - logP (Crippen-Wildman 1999): C2.8 ~70-atom-type lookup table - TPSA (Ertl-Rohde-Selzer 2000): C2.8 ~40-pattern lookup table - SSSR (Smallest Set of Smallest Rings): C2.7.1; current approx aromatic-ring count assumes 6-membered rings - PAINS / structural-alert SMARTS filters: C2.9 (composes on substructure search which is also pending) nx_safety_envelope: intended_use: Lipinski/Veber drug-likeness screening for the supplement-arc adulterant pre-filter; foundation for nx_chem_label_claim evidence-checks sil_target: SIL1 evidence: [C2.7 KAT in nx_chem_descriptors_test.nx with reference molecules from Lipinski 1997 + Veber 2002] verdict: BENCH-PENDING

dependencies 3 imports · 1 importers

nx_chem.nx nx_chem_molecule.nx nx_chem_valence.nx nx_chem_descriptors.nx nx_chem_descriptors_test.nx

imports: nx_chem.nxnx_chem_molecule.nxnx_chem_valence.nx

imported by: nx_chem_descriptors_test.nx

structs

none

consts

38const K_MAGIC_500000: i64 = 500000

functions

46func nx_chem_count_hbd(m: *MolGraph) -> nx_int
71func nx_chem_count_hba(m: *MolGraph) -> nx_int
100func nx_chem_descriptors_perceive_rings(m: *MolGraph) -> nx_int
called by 1: parse_with_h
246func nx_chem_descriptors_heavy_degree(m: *MolGraph, atom_idx: nx_int) -> nx_int
279func nx_chem_count_rotatable_bonds(m: *MolGraph) -> nx_int
310func nx_chem_count_aromatic_atoms(m: *MolGraph) -> nx_int
327func nx_chem_approx_aromatic_rings(m: *MolGraph) -> nx_int
336func nx_chem_count_heavy_atoms(m: *MolGraph) -> nx_int
355func nx_chem_lipinski_ro5_partial(m: *MolGraph, table: *Element) -> nx_int
373func nx_chem_veber_partial(m: *MolGraph) -> nx_int