docs: def formula(self, atom_sequence):
          '''
          Constructs standardized chemical formula
          NB: this is the PUBLIC method
          @returns formula_str
          '''
          labels = {}
          types = []
          y = 0
          for k, atomi in enumerate(atom_sequence):
              lbl = re.sub("[0-9]+", "", atomi).capitalize()
              if lbl not in labels:
                  labels[lbl] = y
                  types.append([k+1])
                  y += 1
              else:
                  types[ labels[lbl] ].append(k+1)
          atoms = list(labels.keys())
          atoms = [x for x in self.formula_sequence if x in atoms] + [x for x in atoms if x not in self.formula_sequence] # accordingly
          formula = ''
          for atom in atoms:
              n = len(types[labels[atom]])
              if n==1: n = ''
              else: n = str(n)
              formula += atom + n
          return formula