sim = Simulation() cell1_id = sim.add_cell(cell1) cell2_id = sim.add_cell(cell2) cell3_id = sim.add_cell(cell3) IM1_id = sim.add_internal_model(IM1) IM2_id = sim.add_internal_model(IM2) connections = np.array([[False,False,False],[True,True,True],[False,True,True]]) sim.set_internal_model([cell1_id],IM1_id) sim.set_internal_model([cell2_id,cell3_id],IM2_id) a_diff = sim.add_interaction('a','a','diffusion',connections,params=[1.0]) def lin(x,t): return np.maximum((-x+t+np.sin(10.0*t))*(t < 6.0),1.0) # sim.add_modulator(a_diff,'xtgeneral',None,fun=lin) sim.set_initial_conditions([cell1_id],{'a':1.0}) sim.set_initial_conditions([cell2_id,cell3_id],{'a':0.0}) t = np.linspace(0,10,1000) cell_data = sim.simulate(t) plt.plot(t,cell_data[cell1_id]) plt.plot(t,cell_data[cell2_id]) plt.plot(t,cell_data[cell3_id]) plt.show()
# add the cells and internal models to simulation cell1_id = sim.add_cell(cell1) cell2_id = sim.add_cell(cell2) cell3_id = sim.add_cell(cell3) im1_id = sim.add_internal_model(IM1) im2_id = sim.add_internal_model(IM2) sim.set_internal_model([cell1_id,cell2_id],im1_id) # first two cells have IM1 sim.set_internal_model([cell3_id],im2_id) # last cell as IM2 connections = np.array([[False,False,False],[False,True,True],[False,True,True]]) sim.add_interaction('a','a','diffusion',connections,params=[1.0]) # cell1 and cell2 start with the same initial conditions sim.set_initial_conditions([cell1_id,cell2_id],{'a':0.1,'b':0.0,'c':0.0}) sim.set_initial_conditions([cell3_id],{'a':0}) # cell3 starts with 0 'a' t = np.linspace(0,20,1000) cell_data = sim.simulate(t) # cell_data is a list of 3 numpy arrays containing cell specific data plt.figure() plt.subplot(311) plt.plot(t,cell_data[cell1_id]) plt.title('cell1') plt.legend(['a','b','c']) plt.subplot(312) plt.plot(t,cell_data[cell2_id]) plt.title('cell2') plt.legend(['a','b','c'])