¿Cómo abordar los nodos y bordes de filtrado renderizados a través de d3.js de acuerdo con las preferencias del usuario?

Enlace a mi código (Plunker)

Estoy desarrollando un diagrama de red en el diseño de fuerza D3.js para fines académicos. Hasta ahora he codificado un gráfico que muestra nodos y aristas. Tengo un cuadro de texto de autocompletar en jquery donde el usuario puede ingresar un nombre de nodo.

D3.js (Solo una parte del código. Para ver el código completo, vea mi enlace plunker):

var force = d3.layout.force()
  .nodes(d3.values(nodes))
  .links(links)
  .size([width, height])
  .linkDistance(100)
  .charge(-1546)
  .on("tick", tick)
  .start();

var svg = d3.select("#schemio")
  .append('svg')
  .attr("width", width)
  .attr("height", height);

var link = svg.selectAll(".link")
  .data(force.links())
  .enter().append("line")
  .attr("class", "link");

var node = svg.selectAll(".node")
  .data(force.nodes())
  .enter().append("g")
  .attr("class", "node")
  .call(force.drag);

HTML:

<div class="ui-widget">
    <label for="tags">Filter: </label>
    <input id="tags">
</div>

Jquery (Autocompletar)

$(function() {
    $( "#tags" ).autocomplete({
      source: nodesArray
    });
});

Quiero una funcionalidad en la que cuando un usuario ingresa un nombre de nodo en el cuadro de filtro, necesito eliminar todos los demás nodos y bordes en el gráfico y mantener solo ese nodo en particular y sus nodos y bordes directamente asociados (un salto).

Ejemplo:

Cuando escribo "Parent" en el cuadro de filtro, tiene que eliminar todos los demás nodos y bordes y mantener solo el nodo "Parent" y sus nodos secundarios directos (child1, child2, child3).

¿Cuál es un enfoque viable para filtrar nodos y bordes cuando el usuario busca términos particulares?

Gracias por adelantado.

Respuestas a la pregunta(1)

Su respuesta a la pregunta