Extract ionizable-group information from pKa strings #14
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
An amino acid with a carboxyl group and an amino group has two pKa values. The parser extracts labels like
"pKa1"and"pKa2", but those labels are ordinal; they don't say which functional group ionizes at that pKa. For site-specific pKa prediction (an ML application), the functional group is the thing you actually need.Some PubChem entries carry this information in parenthetical comments:
"pK1 = 2.36 (SRC: carboxylic acid)","pKa = 10.4 at 40 °C (tertiary amine)". The data is there; we're just not capturing it.Scope
Survey how functional-group information appears in real pKa strings across 10+ pages. Add an
ionizable_groupcolumn (String, nullable) to the output schema. Parse(SRC: <group>)comments, trailing(<group>)comments like"(phenolic OH)", and leave null when no group information is present.Don't standardize group names in this issue, just extract the raw text. Mapping free-text names to a classification scheme (or to atom indices via SMILES/InChI) is future work.
Definition of done
ionizable_grouppopulated when the source string contains group information. Tests covering the common formats.