def to_manifest(self, manifest_path=None): b = ManifestBuilder() b.add_path('BASEDIR', os.path.realpath(os.curdir)) b.add_path('WORKDIR', os.path.realpath(os.curdir)) b.add_path('MORPHOLOGY', self.morphology_path(), typename='file') b.add_path('CODE_DIR', 'templates') b.add_path('MODFILE_DIR', 'modfiles') for modfile in self.mod_file_entries(): b.add_path('MOD_FILE_%s' % (os.path.splitext(modfile['filename'])[0]), os.path.join(modfile['storage_directory'], modfile['filename']), typename='file', format='MODFILE') b.add_path('neuronal_model_run_data', self.lims_path, typename='file') b.add_path('stimulus_path', self.stimulus_path(), typename='file', format='NWB') b.add_path('manifest', os.path.join(os.path.realpath(os.curdir), manifest_path), typename='file') neuronal_model_run_id = self.lims_data['id'] nwb_file_name, extension = \ os.path.splitext(os.path.basename(self.stimulus_path())) b.add_path('output_path', '%d_virtual_experiment%s' % (neuronal_model_run_id, extension), typename='file', parent_key='WORKDIR', format='NWB') b.add_path('fit_parameters', self.fit_parameters_path()) b.add_section( 'biophys', { "biophys": [{ "model_file": [manifest_path, self.fit_parameters_path()], "model_type": self.model_type() }] }) b.add_section( 'stimulus_conf', { "runs": [{ "neuronal_model_run_id": neuronal_model_run_id, "sweeps": self.sweep_numbers(), "sweeps_by_type": self.sweep_numbers_by_type() }] }) b.add_section( 'hoc_conf', {"neuron": [{ "hoc": ["stdgui.hoc", "import3d.hoc", "cell.hoc"] }]}) m = Manifest(config=b.path_info) if manifest_path != None: b.write_json_file(manifest_path, overwrite=True) return m
def build_manifest(self, manifest_path=None): b = ManifestBuilder() b.add_path('BASEDIR', os.path.realpath(os.curdir)) b.add_path('WORKDIR', self.output_directory()) b.add_path('MORPHOLOGY', self.morphology_path(), typename='file') b.add_path('MODFILE_DIR', 'modfiles') for modfile in self.mod_file_entries(): b.add_path('MOD_FILE_%s' % (os.path.splitext(modfile['filename'])[0]), os.path.join(modfile['storage_directory'], modfile['filename']), typename='file', format='MODFILE') b.add_path('stimulus_path', self.stimulus_path(), typename='file', format='NWB') b.add_path('manifest', os.path.join(os.path.realpath(os.curdir), manifest_path), typename='file') b.add_path('output', os.path.basename(self.stimulus_path()), typename='file', parent_key='WORKDIR', format='NWB') b.add_path('neuronal_model_data', self.lims_path, typename='file') b.add_path('upfile', 'upbase.dat', typename='file', parent_key='WORKDIR') b.add_path('downfile', 'downbase.dat', typename='file', parent_key='WORKDIR') b.add_path('passive_fit_data', 'passive_fit_data.json', typename='file', parent_key='WORKDIR') b.add_path('stage_1_jobs', 'stage_1_jobs.json', typename='file', parent_key='WORKDIR') b.add_path('fit_1_file', 'fit_1_data.json', typename='file', parent_key='WORKDIR') b.add_path('fit_2_file', 'fit_2_data.json', typename='file', parent_key='WORKDIR') b.add_path('fit_3_file', 'fit_3_data.json', typename='file', parent_key='WORKDIR') b.add_path('fit_type_path', typename='file', spec='%s', parent_key='WORKDIR') b.add_path('target_path', typename='file', spec='target.json', parent_key='WORKDIR') b.add_path('fit_config_json', typename='file', spec='%s/config.json', parent_key='WORKDIR') b.add_path('final_hof_fit', typename='file', spec='%s/s%d/final_hof_fit.txt', parent_key='WORKDIR') b.add_path('final_hof', typename='file', spec='%s/s%d/final_hof.txt', parent_key='WORKDIR') b.add_path('output_fit_file', typename='file', spec='fit_%s_%s.json') b.add_section('biophys', {"biophys": [{ "model_file": [manifest_path] }]}) b.add_section( 'stimulus_conf', { "runs": [{ "sweeps": self.sweep_numbers(), "specimen_id": self.lims_data['specimen_id'] }] }) b.add_section( 'hoc_conf', {"neuron": [{ "hoc": ["stdgui.hoc", "import3d.hoc", "cell.hoc"] }]}) return b