12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- #!/usr/bin/env python3
- # -*- coding: utf-8 -*-
- """
- Created on Tue Feb 23 10:09:40 2021
- @author: Oscar Portoles
- """
- import numpy as np
- import sys
- import visArchis_seq as v
- # import optimProbs as oudp
- import modelStages as udp
- import scipy as sp
- from itertools import combinations
- tSimu = 400
- saveTo = './dataSave/metaFC1000afterPulse_P040_G0p15L0p6.npz'
- # Load data
- d = v.LoadData()
- d.nameModel = 'stgSequence_Lopt_allPu1500_wE_P040_optIni_v5_fixG0p15L0p6_Stg'
- d.nameEnding =''
- d.stages = [1,2,3,4]
- m = d.getBestModel()
- pairs = np.array(list(combinations(range(m.nroi),2)), dtype=np.int32)
- # get puses and best fitness
- pulses = np.zeros((m.nroi,m.nStg))
- fits = np.zeros(m.nStg)
- for i in range(m.nStg):
- pulses[:,i] = m.logs[i][0][0]
- fits[i] = m.logs[i][0][3]
- metaG, metaL,sim2eFC = [None]*4, [None]*4, [None]*4
- metaGtot, metaLtot = np.zeros(4), np.zeros(4)
- matchFCs = [None]*4
- for iX in range(4):
- stages = list(range(iX+1))
- kao = udp.KAOmodel(stageIx=stages)
- # use model with pulses
- kao.iniCond = 2
- kao.tMax = tSimu
- kao._setHistDelayAndContainers()
- kao._edgesImpulse()
- kao._getEmpiReativEnv()
- kao.doNoise(variance=0)
- kao.pulse = pulses[:,stages]
- # kao.pulse = np.zeros((68,1))
- kao.runModel_Pulsein_sequence()
-
- zds = kao.downsampleModel(kao.z)
- # metastability
- metaG_ = np.abs(np.mean(np.exp(1j*np.angle(zds)),axis=0))
- metaGtot[iX] = np.mean(np.std(metaG_,axis=0))
- metaG[iX] = np.mean(metaG_, axis=1)
- zdsA = udp.KAOmodel._absZ(zds)
- metaL[iX] = zdsA
- metaLtot[iX] = np.mean( np.mean(np.std(zdsA,axis=1),axis=0) )
- # match to last FC state
- csi = np.sign( np.imag(zds[pairs[:,0],:,:] * np.conjugate(zds[pairs[:,1],:,:])) )
- mcsi = np.sign( np.mean(csi, axis=2) ) # mean over models
- sim2eFC_= np.ones((len(stages), mcsi.shape[1]),dtype=np.float32)
- for i in range(len(stages)):
- sim2eFC_[i,:] = np.float32(np.sum( kao.eFCs[i,:] * mcsi.T, axis=1) / kao.neFCs[i])
- sim2eFC[iX] = sim2eFC_
-
- np.savez(saveTo, sim2eFC=sim2eFC, metaG=metaG,metaL=metaL,metaGtot=metaGtot,metaLtot=metaLtot,pulses=pulses,fitSt=fits)
|