code: def process_pybel_neighborhood(gene_names, network_file=None,
                                 network_type='belscript', **kwargs):
      
      if network_file is None:
          # Use large corpus as base network
          network_file = os.path.join(os.path.dirname(os.path.abspath(__file__)),
                                      os.path.pardir, os.path.pardir,
                                      os.path.pardir, 'data', 'large_corpus.bel')
      if network_type == 'belscript':
          bp = process_belscript(network_file, **kwargs)
      elif network_type == 'json':
          bp = process_json_file(network_file)
  
      filtered_stmts = []
      for stmt in bp.statements:
          found = False
          for agent in stmt.agent_list():
              if agent is not None:
                  if agent.name in gene_names:
                      found = True
          if found:
              filtered_stmts.append(stmt)
  
      bp.statements = filtered_stmts
  
      return bp
docs: Return PybelProcessor around neighborhood of given genes in a network.
  
      This function processes the given network file and filters the returned
      Statements to ones that contain genes in the given list.
  
      Parameters
      ----------
      network_file : Optional[str]
          Path to the network file to process. If not given, by default, the
          BEL Large Corpus is used.
      network_type : Optional[str]
          This function allows processing both BEL Script files and JSON files.
          This argument controls which type is assumed to be processed, and the
          value can be either 'belscript' or 'json'. Default: bel_script
  
      Returns
      -------
      bp : PybelProcessor
          A PybelProcessor object which contains INDRA Statements in
          bp.statements.