def run_with_graph_transformation(self) -> Iterable[BELGraph]:
yield self.get_remaining_graph()<EOL>while not self.done_chomping():<EOL><INDENT>while not list(self.iter_leaves()):<EOL><INDENT>self.remove_random_edge()<EOL>yield self.get_remaining_graph()<EOL><DEDENT>self.score_leaves()<EOL>yield self.get_remaining_graph()<EOL><DEDENT>
Calculate scores for all leaves until there are none, removes edges until there are, and repeats until
        all nodes have been scored. Also, yields the current graph at every step so you can make a cool animation
        of how the graph changes throughout the course of the algorithm

        :return: An iterable of BEL graphs