psamm.formula – Chemical compound formula¶
Parser and representation of chemical formulas.
Chemical formulas (Formula) are represented as a number of
FormulaElements with associated counts. A
Formula is itself a FormulaElement so a formula can contain
subformulas. This allows some simple structure to be represented.
-
class
psamm.formula.FormulaElement¶ Base class representing elements of a formula
-
repeat(count)¶ Repeat formula element by creating a subformula
-
variables()¶ Iterator over variables in formula element
-
substitute(mapping)¶ Return formula element with substitutions performed
-
-
class
psamm.formula.Atom(symbol)¶ Represent an atom in a chemical formula
>>> hydrogen = Atom.H >>> oxygen = Atom.O >>> str(oxygen | 2*hydrogen) 'H2O'
-
symbol¶ Atom symbol
>>> Atom.H.symbol 'H'
-
-
class
psamm.formula.Radical(symbol)¶ Represents a radical or other unknown subformula
-
symbol¶ Radical symbol
>>> Radical('R1').symbol 'R1'
-
-
class
psamm.formula.Formula(values={})¶ Representation of a chemial formula
This is represented as a number of
FormulaElementswith associated counts.>>> f = Formula({Atom.C: 6, Atom.H: 12, Atom.O: 6}) >>> str(f) 'C6H12O6'
-
substitute(mapping)¶ Return formula element with substitutions performed
-
flattened()¶ Return formula where subformulas have been flattened
>>> str(Formula.parse('(CH2)(CH2)2').flattened()) 'C3H6'
-
variables()¶ Iterator over variables in formula element
-
items()¶ Iterate over (
FormulaElement, value)-pairs
-
get(element, default=None)¶ Return value for element or default if not in the formula.
-
classmethod
parse(s)¶ Parse a formula string (e.g. C6H10O2).
-
classmethod
balance(lhs, rhs)¶ Return formulas that need to be added to balance given formulas
Given complete formulas for right side and left side of a reaction, calculate formulas for the missing compounds on both sides. Return as a left, right tuple. Formulas can be flattened before balancing to disregard grouping structure.
-
-
exception
psamm.formula.ParseError(*args, **kwargs)¶ Signals error parsing formula.