### Here we rerun the json files with better resolution of mm.elecPlotDt = 5e-6
import os
os.environ["OMP_NUM_THREADS"] = "1" # export OMP_NUM_THREADS=4
import sys
sys.path.insert(1, "../helperScripts")
import numpy as np
import matplotlib.pyplot as plt
import features as fts
import MOOSEModel as mm
import expcells
import brute_curvefit as bcf
from copy import deepcopy
from tqdm import tqdm
import pandas as pd
from pprint import pprint
from goMultiprocessing import Multiprocessthis_appendsave
import pickle
import json
from scipy import signal
import warnings
from glob import glob
import moose
mm.elecPlotDt = 5e-6
fts.elecPlotDt = 5e-6
mm.elecDt = 5e-7
fts.elecDt = 5e-7
df_expsummaryactiveF = pd.read_pickle("../helperScripts/expsummaryactiveF.pkl")
files = glob("./*_.json")
def ourfunc(model):
modelF = fts.modelfeatures(
model, stim_start=0.5, stim_end=1, refreshKin=False
)
model["Features"] = modelF
return [model]
##############################################################################
class NpEncoder(json.JSONEncoder):
def default(self, obj):
if isinstance(obj, np.integer):
return int(obj)
if isinstance(obj, np.floating):
return float(obj)
if isinstance(obj, np.ndarray):
return obj.tolist()
return super(NpEncoder, self).default(obj)
#######################################################################
# for old_file_path in files:
# print(old_file_path)
# models_list = []
# with open(old_file_path, "r") as oldfile:
# for line in oldfile:
# model = json.loads(line)
# models_list.append(model)
# pprint(models_list[0]["Features"]['AP1_width_1.5e-10'])
# a = ourfunc(models_list[0])[0]
# pprint(a["Features"]['AP1_width_1.5e-10'])
# t,I,V, Ca = mm.runModel(models_list[0])
# plt.plot(t,V)
# plt.show()
# Multiprocessthis_appendsave(
# ourfunc, models_list, [], ["tempactivemodels.pkl"], seed=1234, npool=120
# )
# moose.delete('library')
# with open("tempactivemodels.pkl", "rb") as f, open(os.path.basename(old_file_path).removesuffix("_.json")+".json", "a") as newfile:
# while True:
# try:
# model = pickle.load(f)
# if len(model) > 0:
# json.dump(model, newfile, cls=NpEncoder)
# newfile.write("\n")
# except Exception:
# break