@@ -54,6 +54,7 @@ def __init__(self):
5454 self .netParams = specs .NetParams ()
5555 self .simConfig = specs .SimConfig ()
5656 self .run_config = model .RunConfig ()
57+ self .simConfig .recordTraces = {'V_soma' : {'sec' :'soma' , 'loc' :0.5 , 'var' :'v' }}
5758
5859 self .experiments = experiments
5960
@@ -68,7 +69,7 @@ def __init__(self):
6869 experiments .get_experiments ()
6970 running_exps = experiments .get_by_states ([
7071 model .ExperimentState .PENDING ,
71- model .ExperimentState .SIMULATING ,
72+ model .ExperimentState .SIMULATING ,
7273 model .ExperimentState .INSTANTIATING
7374 ])
7475 if not simulations .local .is_running ():
@@ -435,9 +436,10 @@ def loadModel(self, args):
435436 if self .doIhaveInstOrSimData ()['haveInstance' ]:
436437 sim .clearAll ()
437438 sim .initialize ()
438- sim .loadAll (args ['jsonModelFolder' ])
439+ sim .loadAll (args ['jsonModelFolder' ], instantiate = False )
439440 self .netParams = sim .net .params
440441 self .simConfig = sim .cfg
442+ self .simConfig .saveCellSecs = True
441443 netpyne_ui_utils .remove (self .netParams .todict ())
442444 netpyne_ui_utils .remove (self .simConfig .todict ())
443445 else :
@@ -822,7 +824,7 @@ def getAvailableCellTypes(self):
822824 def getAvailableRxDSections (self , selectedRegion ):
823825 sections = set ([])
824826 sections .add ('all' )
825- if self .netParams .rxdParams .regions [selectedRegion ].get ('cells' ):
827+ if selectedRegion in self . netParams . rxdParams . regions and self .netParams .rxdParams .regions [selectedRegion ].get ('cells' ):
826828 if 'all' in self .netParams .rxdParams .regions [selectedRegion ]['cells' ]:
827829 for cellRule in self .netParams .cellParams :
828830 for cellSect in self .netParams .cellParams [cellRule ]['secs' ]:
@@ -936,56 +938,14 @@ def validateFunction(self, functionString):
936938 return validateFunction (functionString , self .netParams .__dict__ )
937939
938940 def exportHLS (self , args ):
939- def convert2bool (string ):
940- return string .replace ('true' , 'True' ).replace ('false' , 'False' ).replace ('null' , 'False' )
941-
942- def header (title , spacer = '-' ):
943- return '\n # ' + title .upper () + ' ' + spacer * (77 - len (title )) + '\n '
944941
945942 try :
946- params = ['popParams' , 'cellParams' , 'synMechParams' ]
947- params += ['connParams' , 'stimSourceParams' , 'stimTargetParams' ]
948-
949- fname = args ['fileName' ]
950- if not fname :
951- # default option
952- fname = 'output.py'
953-
943+ fname = args .get ('fileName' , 'output.py' )
954944 if not fname [- 3 :] == '.py' :
955945 fname = f"{ fname } .py"
956946
957- # TODO: use methods offered by netpyne to create this script!
958- with open (fname , 'w' ) as script :
959- script .write ("from netpyne import specs, sim\n " )
960- script .write (header ("documentation" ))
961- script .write ("Script generated with NetPyNE-UI. Please visit:\n " )
962- script .write (" - https://www.netpyne.org\n - https://github.com/MetaCell/NetPyNE-UI\n \n " )
963- script .write (header ("script" , spacer = "=" ))
964- script .write ("netParams = specs.NetParams()\n " )
965- script .write ("simConfig = specs.SimConfig()\n " )
966- script .write (header ("single value attributes" ))
967- for attr , value in list (self .netParams .__dict__ .items ()):
968- if attr not in params :
969- if value != getattr (specs .NetParams (), attr ):
970- script .write ("netParams." + attr + " = " )
971- script .write (convert2bool (json .dumps (value , indent = 4 )) + "\n " )
972-
973- script .write (header ("network attributes" ))
974- for param in params :
975- for key , value in list (getattr (self .netParams , param ).items ()):
976- script .write ("netParams." + param + "[" + key + "] = " )
977- script .write (convert2bool (json .dumps (value , indent = 4 )) + "\n " )
978-
979- script .write (header ("network configuration" ))
980- for attr , value in list (self .simConfig .__dict__ .items ()):
981- if value != getattr (specs .SimConfig (), attr ):
982- script .write ("simConfig." + attr + " = " )
983- script .write (convert2bool (json .dumps (value , indent = 4 )) + "\n " )
984-
985- script .write (header ("create simulate analyze network" ))
986- script .write ("# sim.createSimulateAnalyze(netParams=netParams, simConfig=simConfig)\n " )
987-
988- script .write (header ("end script" , spacer = "=" ))
947+ from netpyne .conversion import createPythonScript
948+ createPythonScript (fname , self .netParams , self .simConfig )
989949
990950 with open (fname ) as f :
991951 file_b64 = base64 .b64encode (bytes (f .read (), 'utf-8' )).decode ()
0 commit comments