ord_schema.macros

ord_schema.macros.solutions

Macros for programmatic message creation.

ord_schema.macros.solutions.brine(volume=None)
ord_schema.macros.solutions.simple_solution(solvent_smiles: str, solute_smiles: Optional[str] = None, volume: Union[None, str, Volume] = None, concentration: Union[None, str, Concentration] = None, saturated: bool = False) list[ord_schema.proto.reaction_pb2.Compound]

Creates a solution with at most one solvent and one solute.

Parameters
  • solvent_smiles – SMILES of the solvent.

  • solute_smiles – SMILES of the solute. If not specified, a pure solvent is generated.

  • volume – Volume of solution (total volume including the solute).

  • concentration – Concentration of solution. If both concentration and volume are specified, a solute quantity is computed. The schema does not currently have a way to represent an unknown volume of solution with a known concentration.

  • saturated – Whether the solution is saturated. Saturated and concentrated cannot both be specified.

Returns: A list of solvent/solute Compounds.

ord_schema.macros.workups

Macros for quickly creating workup steps.

Example usage:

from ord_schema.macros import workups from ord_schema.macros import solutions

The reaction was quenched with 300 ml of 0.5M NaHCO3 solution and the phases were separated. The aqueous layer was back-extracted twice with 100 ml of EtOAc. The organic layers were combined and washed with 200 ml of saturated NaCl solution, dried over MgSO4 and filtered. Upon concentration to an oil, the crude product was purified by normal phase column chromatography

reaction.workups.MergeFrom([
workups.add_solution(solutions.simple_solution(

solvent_smiles=’O’, solute_smiles=’[Na+][HCO3-]’, volume=’300mL’, concentration=’0.5M’)),

workups.separate_phases(keep_phase=’organic’), workups.add_solution(solutions.simple_solution(

solvent_smiles=’CC(=O)OCC’, volume=’100mL’), type=’EXTRACTION’),

workups.separate_phases(keep_phase=’organic’), workups.add_solution(solutions.simple_solution(

solvent_smiles=’CC(=O)OCC’, volume=’100mL’), type=’EXTRACTION’),

workups.separate_phases(keep_phase=’organic’), workups.add_solution(solutions.brine(‘200mL’), type=’WASH’), workups.drying_agent(‘[Mg+2].[O-]S([O-])(=O)=O’), workups.filter(keep_phase=’filtrate’), workups.rotovap(), reaction_pb2.ReactionWorkup(type=’OTHER_CHROMATOGRAPHY’),

])

ord_schema.macros.workups.add_solution(solution: Iterable[Compound], workup_type: str = 'ADDITION') ReactionWorkup

Create a workup representing addition of a solution.

type is commonly one of ‘ADDITION’, ‘EXTRACTION’, or ‘WASH’; see ReactionWorkup.WorkupType enum for full list of possible values.

ord_schema.macros.workups.drying_agent(agent_smiles: str) ReactionWorkup

Create a workup representing addition of a drying agent.

ord_schema.macros.workups.filtration(keep_phase: str) ReactionWorkup

Create a workup representing a filtration step.

keep_phase should be one of ‘filtrate’ or ‘solid’.

ord_schema.macros.workups.rotovap() ReactionWorkup

Create a workup representing a rotary evaporation step.

ord_schema.macros.workups.separate_phases(keep_phase: str) ReactionWorkup

Create a workup representing a phase separation.

keep_phase is commonly either ‘aqueous’ or ‘organic’.