code: def get_blanket(x, collection=None):
      """Get Markov blanket of input, which consists of its parents, its
      children, and the other parents of its children.
  
      Args:
        x: RandomVariable or tf.Tensor.
          Query node to find Markov blanket of.
        collection: list of RandomVariable.
          The collection of random variables to check with respect to;
          defaults to all random variables in the graph.
  
      Returns:
        list of RandomVariable.
        Markov blanket of x.
  
      #### Examples
  
      ```python
      a = Normal(0.0, 1.0)
      b = Normal(0.0, 1.0)
      c = Normal(a * b, 1.0)
      d = Normal(0.0, 1.0)
      e = Normal(c * d, 1.0)
      assert set(ed.get_blanket(c)) == set([a, b, d, e])
      ```
      """
      output = set()
      output.update(get_parents(x, collection))
      children = get_children(x, collection)
      output.update(children)
      for child in children:
          output.update(get_parents(child, collection))
  
      output.discard(x)
      return list(output)
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import numpy
  import six
  import tensorflow
  from copy import deepcopy
  from edward.models.random_variable import RandomVariable
  from edward.models.random_variables import TransformedDistribution
  from edward.models import PointMass
  from edward.util.graphs import random_variables
  from tensorflow.core.framework import attr_value_pb2
  from tensorflow.python.framework.ops import set_shapes_for_outputs
  from tensorflow.python.util import compat
label_desc: Use image node_id 8 for calling a global function with example usage: get_blanket(x, collection) and returns: list