phylox.rearrangement.move.all_valid_moves

phylox.rearrangement.move.all_valid_moves(network, move_type=MoveType.ALL)

Generates all possible valid moves for a given network and move type.

Parameters:
  • network – a phylogenetic network (phylox.DiNetwork).

  • move_type – the type of moves to generate (phylox.rearrangement.movetype.MoveType).

Yield:

a move (phylox.rearrangement.move.Move).

Example:

>>> from phylox import DiNetwork
>>> from phylox.rearrangement.move import all_valid_moves
>>> network = DiNetwork(
...     edges=[(0,1),(1,2),(1,3)],
... )
>>> moves = list(all_valid_moves(network, MoveType.TAIL))
>>> len(moves)
4
>>> moves[0].is_type(MoveType.TAIL)
True
>>> moves = list(all_valid_moves(network, MoveType.VERT))
>>> len(moves)
4
>>> moves[0].is_type(MoveType.VPLU)
True