code: def get_s2_like_s1(self, struct1, struct2, include_ignored_species=True):
          
          s1, s2 = self._process_species([struct1, struct2])
          trans = self.get_transformation(s1, s2)
          if trans is None:
              return None
          sc, t, mapping = trans
          sites = [site for site in s2]
          # Append the ignored sites at the end.
          sites.extend([site for site in struct2 if site not in s2])
          temp = Structure.from_sites(sites)
  
          temp.make_supercell(sc)
          temp.translate_sites(list(range(len(temp))), t)
          # translate sites to correct unit cell
          for i, j in enumerate(mapping[:len(s1)]):
              if j is not None:
                  vec = np.round(struct1[i].frac_coords - temp[j].frac_coords)
                  temp.translate_sites(j, vec, to_unit_cell=False)
  
          sites = [temp.sites[i] for i in mapping if i is not None]
  
          if include_ignored_species:
              start = int(round(len(temp) / len(struct2) * len(s2)))
              sites.extend(temp.sites[start:])
  
          return Structure.from_sites(sites)
docs: Performs transformations on struct2 to put it in a basis similar to
          struct1 (without changing any of the inter-site distances)
  
          Args:
              struct1 (Structure): Reference structure
              struct2 (Structure): Structure to transform.
              include_ignored_species (bool): Defaults to True,
                  the ignored_species is also transformed to the struct1
                  lattice orientation, though obviously there is no direct
                  matching to existing sites.
  
          Returns:
              A structure object similar to struct1, obtained by making a
              supercell, sorting, and translating struct2.