Extend modeling of multiple ionizable groups to pair with pKa values
## Problem
Currently, the ChemROF schema supports pKa values but lacks sophisticated modeling for molecules with multiple ionizable groups. This creates challenges when:
1. **Multiple identical groups exist**: When the same functional group occurs multiple times in a molecule (e.g., multiple carboxyl groups in citric acid), we need to distinguish between them and their respective pKa values.
2. **Group-pKa association**: There's no clear way to associate specific pKa values with their corresponding functional groups, making it difficult to understand which pKa belongs to which ionizable site.
## Use Cases
- **Citric acid**: Has three carboxyl groups with pKa values [3.13, 4.76, 6.40] - need to distinguish which pKa corresponds to which carboxyl group
- **Amino acids**: Need to associate pKa values with specific groups (e.g., lowest pKa = COOH, highest pKa = NH3+)
- **Complex molecules**: Molecules with mixed ionizable groups (carboxyl, amino, phosphate, etc.) where group identity matters
## Proposed Solutions
### 1. Ordered pKa Lists with Conventions
- Store pKa values in consistent order (ascending numerical order)
- Document ordering conventions (pKa1, pKa2, etc. for polyprotic acids)
- Example: `pka_values: [3.13, 4.76, 6.40]` for citric acid
### 2. Group-pKa Associations
Extend the data model to pair each pKa with functional group information:
- List of tuples: `[(pKa1, "COOH"), (pKa2, "NH3+")]`
- Or structured objects that link pKa values to functional group instances
- Could reference existing `FunctionalGroup` entities in the schema
### 3. Enhanced Functional Group Modeling
- Allow functional groups to have multiplicity/occurrence counts
- Enable linking specific functional group instances to their pKa values
- Support distinguishing between equivalent groups in different molecular environments
## Design Considerations
1. **Backwards compatibility**: Ensure existing simple pKa modeling continues to work
2. **Flexibility**: Support both simple cases (single pKa) and complex cases (multiple groups)
3. **Standards alignment**: Follow chemical informatics conventions for pKa ordering
4. **Computational utility**: Enable downstream analysis of ionization states and pH-dependent speciation
## Current Schema Elements to Consider
- Existing `pka_values` slot in molecules
- `FunctionalGroup` class and its usage
- Inheritance hierarchy for chemical entities
## References
- Chemical ordering conventions: 2012books.lardbucket.org (polyprotic acid dissociation)
- Standard practice: ascending pKa order for deprotonation sequence
@dragon-ai-agent please do it.
2 条评论