@classmethod
def from_lists(cls, start, end, edge, strict=False):
    """
		:param list[str] start: list of start nodes
		:param list[str] end: list[str] list of end nodes
		:param list[str] or list[NoneType] edge: list of edges
		:param bool strict:
		:type: .Graph.Graph
		"""
    graph = cls(strict=strict)
    for index, start_name, end_name, edge_name in zip(range(len(start)),
        start, end, edge):
        start_node = graph.add_node(name=start_name, if_node_exists='ignore')
        end_node = graph.add_node(name=end_name, if_node_exists='ignore')
        graph.connect(start=start_node, end=end_node, id=index, label=edge_name
            )
    return graph
