Skip to content

post 0.3v - Separate aliphatic_diol_monomer and Aromatic_diol_monomer #81

Description

@janitha-mahanthe

Context & Design Question

Aliphatic diols are generally more reactive (stronger nucleophiles) than aromatic diols (bisphenols). Because the oxygen lone pair in a phenol is delocalized into the aromatic ring, phenols are less reactive and often require specific activation or catalysis (e.g., using acid halides instead of carboxylic acids).

Currently, we allow both aliphatic and aromatic diols to react with dicarboxylic acids indiscriminately.

Open Question for AutoREACTER: In upcoming versions, should we allow all possible theoretical chemistries, or should we restrict the software to generally correct/favorable chemistries only?

To prepare for stricter chemistry rules and future additions (like polycarbonates, aromatic polyethers, and epoxy reactions), we need to separate phenolic OH groups from ordinary aliphatic diols.


1. Add bisphenol_monomer

Because phenols have a lower reactivity profile compared to standard aliphatic alcohols, they need a distinct group for accurate modeling of aromatic polyesters, polycarbonates, epoxy resins, etc.

Add to FunctionalGroupsLibrary:

"bisphenol_monomer": {
    "functionality_type": "di_identical",
    "smarts_1": "[OX2H1;$([O][c]):1]",
    "smarts_2": "[OX2H1;$([O][c]):2]",
    "group_name": "bisphenol",
    "comments": "Phenolic diol. Keep separate from aliphatic diols because phenols have lower nucleophilic reactivity and are important for specific aromatic polyesters, polycarbonates, epoxy resins, and aromatic polyethers."
}

Relevant Reactions for bisphenol_monomer:

Bisphenol + Di-Carboxylic Acid Halide → Aromatic Polyester

"Bisphenol and Di-Carboxylic Acid Halide Polycondensation(Aromatic Polyesterification)": {
    "same_reactants": false,
    "reactant_1": "bisphenol",
    "reactant_2": "di_carboxylic_acid_halide",
    "product": "aromatic_polyester_chain",
    "delete_atom": true,
    "reaction": "[CX3:1](=[O:3])[Cl,Br,I:4].[OX2H1;$([O][c]):2]-[H:5]>>[CX3:1](=[O:3])-[OX2:2].[Cl,Br,I:4]-[H:5]",
    "reference": {
        "smarts": null,
        "reaction_and_mechanism": null
    },
    "comments": "Phenolic OH reacting with acid halide to form aromatic polyester linkage. Highly favored over unactivated di-acids."
}

Bisphenol + Di-Carboxylic Acid → Aromatic Polyester

"Bisphenol and Di-Carboxylic Acid Polycondensation(Aromatic Polyesterification)": {
    "same_reactants": false,
    "reactant_1": "bisphenol",
    "reactant_2": "di_carboxylic_acid",
    "product": "aromatic_polyester_chain",
    "delete_atom": true,
    "reaction": "[CX3:1](=[O:3])[OX2H1:4].[OX2H1;$([O][c]):2]-[H:5]>>[CX3:1](=[O:3])-[OX2:2].[O:4]-[H:5]",
    "reference": {
        "smarts": null,
        "reaction_and_mechanism": null
    },
    "comments": "Phenolic OH with carboxylic acid. Generally requires activation/catalysis due to lower reactivity of the phenol; keep separate from aliphatic diol esterification."
}

2. Add optional aliphatic_diol_monomer

This is useful to explicitly exclude phenols from ordinary, highly-reactive diol chemistry for stricter structural control.

Proposed Naming Convention:

  • diol = Broad oxygen diol (Current implementation)
  • aliphatic_diol = Aliphatic OH only (Higher reactivity)
  • bisphenol = Phenolic OH only (Lower reactivity)

(Note: If the current code already uses diol everywhere, we can keep diol as the broad oxygen-only category and add bisphenol as a more specific class with higher priority to intercept those specific reactions).

Add to FunctionalGroupsLibrary:

"aliphatic_diol_monomer": {
    "functionality_type": "di_identical",
    "smarts_1": "[OX2H1;$([O][C;!a]);!$([O][C,S]=*):1]",
    "smarts_2": "[OX2H1;$([O][C;!a]);!$([O][C,S]=*):2]",
    "group_name": "aliphatic_diol",
    "comments": "Aliphatic alcohol diol. Excludes phenolic OH and acylated/carboxylic oxygen."
}

Relevant Reactions for aliphatic_diol_monomer:

Aliphatic Diol + Di-Carboxylic Acid → Aliphatic Polyester

"Aliphatic Diol and Di-Carboxylic Acid Polycondensation(Polyesterification)": {
    "same_reactants": false,
    "reactant_1": "aliphatic_diol",
    "reactant_2": "di_carboxylic_acid",
    "product": "aliphatic_polyester_chain",
    "delete_atom": true,
    "reaction": "[CX3:1](=[O:3])[OX2H1:4].[OX2H1;$([O][C;!a]);!$([O][C,S]=*):2]-[H:5]>>[CX3:1](=[O:3])-[OX2:2].[O:4]-[H:5]",
    "reference": {
        "smarts": ["https://pubs.acs.org/doi/10.1021/acs.jcim.3c00329"],
        "reaction_and_mechanism": [
            "https://pubs.acs.org/doi/10.1021/ed048pA734.1",
            "https://pubs.acs.org/doi/10.1021/ed073pA312"
        ]
    },
    "comments": "Strict aliphatic diol polyesterification."
}

Aliphatic Diol + Di-Carboxylic Acid Halide → Aliphatic Polyester

"Aliphatic Diol and Di-Carboxylic Acid Halide Polycondensation(Polyesterification)": {
    "same_reactants": false,
    "reactant_1": "aliphatic_diol",
    "reactant_2": "di_carboxylic_acid_halide",
    "product": "aliphatic_polyester_chain",
    "delete_atom": true,
    "reaction": "[CX3:1](=[O:3])[Cl,Br,I:4].[OX2H1;$([O][C;!a]);!$([O][C,S]=*):2]-[H:5]>>[CX3:1](=[O:3])-[OX2:2].[Cl,Br,I:4]-[H:5]",
    "reference": {
        "smarts": ["https://pubs.acs.org/doi/10.1021/acs.jcim.3c00329"],
        "reaction_and_mechanism": [
            "https://pubs.acs.org/doi/10.1021/ed048pA734.1",
            "https://pubs.acs.org/doi/10.1021/ed073pA312"
        ]
    },
    "comments": "Strict aliphatic diol + acid halide polyesterification."
}

Metadata

Metadata

Labels

bugSomething isn't workingenhancementNew feature or request

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions