code: def from_str(cls, input_string, fmt, primitive=False, sort=False,
                   merge_tol=0.0):
          from pymatgen.io.cif import CifParser
          from pymatgen.io.vasp import Poscar
          from pymatgen.io.cssr import Cssr
          from pymatgen.io.xcrysden import XSF
          from pymatgen.io.atat import Mcsqs
          fmt = fmt.lower()
          if fmt == "cif":
              parser = CifParser.from_string(input_string)
              s = parser.get_structures(primitive=primitive)[0]
          elif fmt == "poscar":
              s = Poscar.from_string(input_string, False,
                                     read_velocities=False).structure
          elif fmt == "cssr":
              cssr = Cssr.from_string(input_string)
              s = cssr.structure
          elif fmt == "json":
              d = json.loads(input_string)
              s = Structure.from_dict(d)
          elif fmt == "yaml":
              import ruamel.yaml as yaml
              d = yaml.safe_load(input_string)
              s = Structure.from_dict(d)
          elif fmt == "xsf":
              s = XSF.from_string(input_string).structure
          elif fmt == "mcsqs":
              s = Mcsqs.structure_from_string(input_string)
          else:
              raise ValueError("Unrecognized format `%s`!" % fmt)
          if sort:
              s = s.get_sorted_structure()
          if merge_tol:
              s.merge_sites(merge_tol)
          return cls.from_sites(s)