From 885a50ece5f1afcfca71d9c09aeb4990bec5203d Mon Sep 17 00:00:00 2001
From: encinass1u <jessica-maria.encinas-silvas4@etu.univ-lorraine.fr>
Date: Mon, 16 May 2022 07:02:40 +0000
Subject: [PATCH] Cell behavior Codes

---
 .../Pluri_cell_prolif_migr.py                 | 83 +++++++++++++++++++
 1 file changed, 83 insertions(+)
 create mode 100644 Cell_behavior_initial_steps/Pluri_cell_prolif_migr.py

diff --git a/Cell_behavior_initial_steps/Pluri_cell_prolif_migr.py b/Cell_behavior_initial_steps/Pluri_cell_prolif_migr.py
new file mode 100644
index 0000000..13de283
--- /dev/null
+++ b/Cell_behavior_initial_steps/Pluri_cell_prolif_migr.py
@@ -0,0 +1,83 @@
+import numpy as np
+import pickle 
+import random 
+import matplotlib.pyplot as ptl
+import copy
+from matplotlib import pyplot as plt
+import random
+from scipy import ndimage
+from bio2mslib.inout.inout import WriteData as WD
+import os
+from Gts_selection import L, Lx, Ly
+from bio2mslib.analysis.models import CellModels as DM
+from matplotlib.pyplot import figure
+
+#Declaring saving paths for results
+ls_images=[]
+results_path = os.getcwd()+os.sep+"Pluri_cell"
+path_simulation_gif =os.getcwd()+os.sep+"Pluri_cell"
+path_simulation = results_path+os.sep+"prolif_migr"
+if os.path.isdir(path_simulation) == False :
+    os.mkdir(path_simulation)
+        
+#Reopening choosen surface
+with open('G_surface_empty.pkl', 'rb') as csv_file:
+     Gts = pickle.load(csv_file)
+
+# #Visual preentation in image of the matrix
+# im1 = plt.imshow(Gts, cmap="copper_r")
+# plt.show()
+#Gs is ground seeded, a copy of the choosen surface to seed the cells,
+Gs = copy.deepcopy(Gts)
+
+#Milticelular seeding
+for i in range (4,L-6):
+    for j in range (4,L-7):
+        if Gs[i,j]==0.5:
+            Gs[i,j]=1.5
+        else:
+            Gs[i,j]=1
+            
+#images of the cell in the surface
+couture= plt.imshow(Gs, cmap="copper_r")
+plt.show()
+
+            
+
+
+#Variable deffinition for PDE proliferation & migration model
+Cd =  1*10**-5 #Cell density
+NO2 = 10**2 #nutrient concentration
+Cdmax = 10**7 #maximum cell density
+Dm = 0.001 #Cell motility coefficient
+CRgrw = 1 #rate of cell growth
+CRNO2 =10**-8 #Consumption rate of nutrients
+DNO2 = 2*10**-5
+dt = 1 #time step
+time_lapse = 0.1
+
+Gscopy = copy.deepcopy(Gs)
+Laplace = ndimage.laplace(Gs)
+#Migration 
+iter = 0
+while iter<= 15:
+    for mi in range(1, len(Lx)-1):
+        for mj in range(1, len(Ly)-1):
+                x = random.randint(-1,1)#horizontal value for the movement of the cell
+                y = random.randint(-1,1)#vertival value for the movement of the cell
+                if Gs[mi,mj]==1 and (x != 0 or y!= 0) and ((mi+x)<len(Lx)) and ((mj+y)< len(Ly)):
+                    Gs[mi+x,mj+y]= 1
+                    Gs[mi,mj]=0
+                    #Proliferation after migration
+                    Gs[mi,mj] = Gscopy[mi,mj] + dt*Dm*Laplace[mi,mj]*(1-(Gscopy[mi,mj]/Cdmax))+CRgrw*1*Gscopy[mi,mj]*(1-(Gscopy[mi,mj]/Cdmax))                
+                    if Gs[mi,mj]>0 and Gs[mi,mj]!=0.7 and Gs[mi,mj]!=0.5 :
+                        Gs[mi,mj]=1
+                        im2 = plt.imshow(Gs, cmap="copper_r", norm = None, aspect ='equal', vmin=0 ,vmax=12)
+                        plt.show()
+                        name = 'Single_cell_migr_prolif'+str(iter)+'.png'
+                        # plt.imsave(os.path.join(path_simulation, name), Gs, cmap="copper_r")
+                        filename = name
+                        ls_images.append(im2)
+                        iter+=1
+                        
+WD().create_gif_from_images(files_path=results_path+os.sep+"prolif_migr",results_path=path_simulation_gif,filename='Cell_behavior.gif', time_lapse= time_lapse, deleteOriginFiles=0)
\ No newline at end of file
-- 
GitLab