<｜begin▁of▁sentence｜>### Instruction:
Given a directed path graph where each node points to the next node in sequence, such as 0 -> 1 -> 2 -> 3 -> 4, and using '2' as the source node, can you determine all the nodes that are reachable from source node '2' using NetworkX? Furthermore, can you include the source node itself in the list of reachable nodes?
### Response:
import networkx as nx

# Create a directed graph
DG = nx.path_graph(5, create_using=nx.DiGraph)

# Get all nodes reachable from source node 2
reachable_nodes = nx.descendants(DG, 2)

# Print the sorted list of reachable nodes
print(sorted(reachable_nodes))

# Include the source node itself
reachable_nodes_with_source = reachable_nodes | {2}
print(sorted(reachable_nodes_with_source))
<|EOT|>
