code: def _load_data(self, atom_syms, coords, bohrs=True):
          import numpy as np
          from .const import atom_num, PHYS
          from .error import XYZError
          if 'geoms' in dir(self):
              raise XYZError(XYZError.OVERWRITE,
                      "Cannot overwrite contents of existing OpanXYZ", "")
          if not len(coords.shape) == 1:
              raise ValueError("Coordinates are not a vector")
          if not len(atom_syms.shape) == 1:
              raise ValueError("Atom symbols are not a simple list")
          if not coords.shape[0] == 3 * atom_syms.shape[0]:
              raise ValueError("len(coords) != 3 * len(atom_syms)")
          if not all( (atom_syms[i].upper() in atom_num)
                                  for i in range(atom_syms.shape[0]) ):
              raise ValueError("Invalid atoms specified: {0}".format(
                      [(j, atom_syms[j]) for j in
                          (i for (i, valid) in
                              enumerate(map(lambda k: k in atom_num, atom_syms))
                              if not valid
                          )
                      ] ))
          if not all(map(np.isreal, coords)):
              raise ValueError("All coordinates must be real numeric")
          self.num_atoms = atom_syms.shape[0]
          self.num_geoms = 1
          self.in_str = self.LOAD_DATA_FLAG
          self.descs = np.array([self.LOAD_DATA_FLAG])
          self.XYZ_path = self.LOAD_DATA_FLAG
          self.atom_syms = list(map(str.upper, list(atom_syms)))
          self.geoms = [coords / (1.0 if bohrs else PHYS.ANG_PER_BOHR)]