Data Model version 2.0.6

Method: getEmpiricalFormula


    getter for derived attribute empiricalFormula

guid: www.ccpn.ac.uk_Fogh_2006-08-16-18:23:32_00014
OpType: get
OpSubType: None
isQuery: True
isAbstract: False
Scope: instance_level
Code: # get formula dictionary
dd = {}
clazz = ccp.api.molecule.ChemComp.ChemAtom
for mr in self.residues:
  for ss in (ca.elementSymbol for ca in mr.chemCompVar.chemAtoms if isinstance(ca, clazz)):
    ii = dd.get(ss)
    if ii is None:
      dd[ss] = 1
    else:
      dd[ss] = ii + 1

# generate formula
ll = [None] * (len(dd)*2)
next = 0
for ss in ('C', 'H'):
  ii = dd.get(ss)
  if ii is not None:
    ll[next] = ss
    ll[next+1] = str(ii)
    del dd[ss]
    next = next + 2

items = dd.items()
items.sort()
for (ss, ii) in items:
  ll[next] = ss
  ll[next+1] = str(ii)
  next = next + 2
#
result = ''.join(ll) or None
  Data Model Version 2.0.6
Go to Top  
  Autogenerated by  PyApiDocGen  revision 1.3   on  Wed Aug 7 15:06:32 2013    from data model package  ccp.api.molecule.MolSystem.Chain   revision 1.56  
  Work done by the CCPN team.
www.ccpn.ac.uk