Como visualizar grupos de nós em um layout de gráfico direcionado à força d3

Estou procurando uma maneira de conectar grupos à minha visualização gráfica de força. Encontrei três exemplos relacionados até agora:

Cola.js o que exigiria adicionar outra biblioteca e possivelmente ajustar novamente meu código para ajustar-se a essa biblioteca diferente.

Esse bloco, o que é bastante difícil de desembaraçar.

Este slide do deck de slides do mbostock, que não é o que eu quero, mas no caminho certo ...

O que eu mais gostaria é uma maneira simples de adicionar algo muito próximo à estrutura do primeiro link, mas sem muita sobrecarga.

Agora eu tenho uma configuração bastante padrão:

var link = g.selectAll(".link")
            .data(graph.links)
            .enter().append("line")
            .attr("class", "link")
            .style(...

var node = g.selectAll(".node")
            .data(graph.nodes)
            .enter().append("g")
            .attr("class", "node")
            .attr("id", function(d) { return d.id; })

Eu esperava pegar o código d3 do cola.js e mexer com ele, mas essa biblioteca parece bastante complicada para que não seja muito fácil. Espero que não seja muito difícil obter algo assim no d3 direto:

Obrigado!

questionAnswers(1)

yourAnswerToTheQuestion