code: def apply_transformation(self, structure, return_ranked_list=False):
          
          sp = get_el_sp(self.specie_to_remove)
          specie_indices = [i for i in range(len(structure))
                            if structure[i].species ==
                            Composition({sp: 1})]
          trans = PartialRemoveSitesTransformation([specie_indices],
                                                   [self.fraction_to_remove],
                                                   algo=self.algo)
          return trans.apply_transformation(structure, return_ranked_list)
docs: Apply the transformation.
  
          Args:
              structure: input structure
              return_ranked_list (bool/int): Boolean stating whether or not
                  multiple structures are returned. If return_ranked_list is
                  an int, that number of structures is returned.
  
          Returns:
              Depending on returned_ranked list, either a transformed structure
              or a list of dictionaries, where each dictionary is of the form
              {"structure" = .... , "other_arguments"}
              the key "transformation" is reserved for the transformation that
              was actually applied to the structure.
              This transformation is parsed by the alchemy classes for generating
              a more specific transformation history. Any other information will
              be stored in the transformation_parameters dictionary in the
              transmuted structure class.