docs: def load (filename, simConfig=None, output=False, instantiate=True, createNEURONObj=True):
      ''' Sequence of commands load, simulate and analyse network '''
      from .. import sim
      sim.initialize()  # create network object and set cfg and net params
      sim.cfg.createNEURONObj = createNEURONObj
      sim.loadAll(filename, instantiate=instantiate, createNEURONObj=createNEURONObj)
      if simConfig: sim.setSimCfg(simConfig)  # set after to replace potentially loaded cfg
      if len(sim.net.cells) == 0 and instantiate:
          pops = sim.net.createPops()                  # instantiate network populations
          cells = sim.net.createCells()                 # instantiate network cells based on defined populations
          conns = sim.net.connectCells()                # create connections between cells based on params
          stims = sim.net.addStims()                    # add external stimulation to cells (IClamps etc)
          rxd = sim.net.addRxD()                    # add reaction-diffusion (RxD)
  
      simData = sim.setupRecording()              # setup variables to record for each cell (spikes, V traces, etc)
  
      if output: 
          try:
              return (pops, cells, conns, stims, rxd, simData)
          except:
              pass