<｜begin▁of▁sentence｜>### Instruction:
As a plastic surgeon, your expertise lies in diagnosing, treating, and enhancing physical appearance and function through surgical procedures. Imagine you're in your clinic, preparing to perform a reconstructive surgery. You've been presented with a complex network of interconnected tissues that need careful examination and planning. Just as you meticulously navigate the human form, you're tasked with traversing a graph that represents these connections.

The graph is structured with edges representing the relationships between various vertices, akin to the intricate network within the body. You're asked to employ a specialized tool called the "igraph" library, a powerful instrument in your professional toolkit. With it, you'll conduct a breadth-first search starting from a designated vertex, much like meticulously examining each layer of tissue during a surgical procedure.

Your objective is to determine the order in which vertices are visited, akin to the sequence in which you assess different aspects of a patient's condition. Additionally, you'll identify the predecessors of each vertex, mirroring the lineage of tissues or structures within the body. Lastly, you'll calculate the distance from the initial vertex, reflecting the depth of your exploration into the network, much like gauging the extent of a surgical intervention from its starting point.

Through this methodical approach, you'll gain invaluable insights into the interconnectedness of the network, enabling you to make informed decisions and ultimately achieve optimal outcomes, just as you would in the operating room.
### Response:
from igraph import Graph

# Create a graph with some edges
edges = [(0, 1), (0, 2), (2, 3), (3, 4)]
g = Graph(edges)

# Perform BFS starting from vertex 0
bfs_result = g.bfs(0)

# Print the BFS result
print('BFS order:', bfs_result[0])
print('Predecessors in the BFS tree:', bfs_result[1])
print('Distances from the root:', bfs_result[2])
<|EOT|>
