private <V, E, G extends Digraph<? extends V, ? extends E>> Map<V, Cluster<V,E,G>> createClusters(
			G digraph,
			DotProvider<V, E, G> provider,
			DigraphProvider<? super V, G> subgraphs) throws IOException {
		Map<V, Cluster<V,E,G>> clusters = new HashMap<V, Cluster<V,E,G>>();
		if (subgraphs != null) {
			for (V vertex : digraph.vertices()) {
				G subgraph = subgraphs.get(vertex);
				if (subgraph != null && subgraph.getVertexCount() > 0) {
					clusters.put(vertex, new Cluster<V, E, G>("cluster_" + provider.getNodeId(vertex), subgraph));
				}
			}
		}
		return clusters;
	}