OSCR

Reconstitution of actomyosin networks in cell-sized liposomes dissects distinct mechanisms of membrane blebbing and symmetry breaking.

Code ↔ Paper

2 matches between paragraphs of the paper and lines of its authors' code, computed by the harvester (lexical-v1). Click a colored paragraph or line to see its counterpart.

The 2 matches
  1. [1] § MATERIALS AND METHODS › Agent-based model ↔ header.h, lines 441–500 · score 0.74 · thermal fluctuation, cylindrical segments, repulsive forces, displacements, walk, assembled
  2. [2] § MATERIALS AND METHODS › Agent-based model ↔ dataMgr.c, lines 707–774 · score 0.57 · thermal fluctuation, barbed end, nucleation, assembly, ACPs, bind

Paper

Loaded from Europe PMC by your browser, not stored by OSCR: doi.org · Europe PMC

The paper is loaded when this pane is shown.

The authors' code

C/C++ header · 1,063 lines · 46 KB · no license · 1 match

  1. // This file contains the definitions of parameters, function prototypes
  2. // variables, and functions.
  3. #include <stdio.h>
  4. #include <math.h>
  5. #include <stdlib.h>
  6. #include <string.h>
  7. #include <stdarg.h>
  8. #include <time.h>
  9. #include <unistd.h>
  10. #include <sys/time.h>
  11. #include <sys/stat.h>
  12. /******************************************************************************/
  13. /************************** Definition of Parameters **************************/
  14. /******************************************************************************/
  15. // General parameters and constants
  16. #define NDIM 3
  17. #define NK_ABP 3
  18. #define KT 1.0 // Boltzmann Energy
  19. #define KT_IN_J 4.142e-21 // Boltzmann Energy in J
  20. #define VISCOSITY 0.8599e1 // Viscosity of water
  21. #define PI 3.141593
  22. #define N_AVO 6.022e23
  23. #define POS_LARGE_VALUE 1e9
  24. #define NEG_LARGE_VALUE -1e9
  25. #define POS_SMALL_VALUE 1e-10
  26. // For neighboring list
  27. #define DT_NL_UPDATE 0.4
  28. #define DT_NL_UPDATE_BUF 0.1
  29. // Forces
  30. #define MAG_UNSTABLE_FORCE 10000.0e-12
  31. // For stress-controlled bulk rheology
  32. #define KPI_STRESS_P 1.0e-5*0.01
  33. //#define KPI_STRESS_P 1.0e-5*0.1
  34. #define KPI_STRESS_I 1.0e-7*0.1
  35. #define PRD_UPD_SINU_STRESS 1.0e-1
  36. // For active microrheology using force
  37. #define KPI_FORCE_P 1.0e-5
  38. #define KPI_FORCE_I 1.0e-7
  39. #define PRD_UPD_SINU_FORCE 1.0e-4
  40. // Record general data
  41. #define OUTPUT_FILE "Output"
  42. #define DELETE_FILE 1
  43. // Extent of pre-assigned arrays
  44. #define DEG_ARR_ACOS 10000
  45. #define DEG_ARR_ACTSEV 10000
  46. // For parallelization (MoveParticles and CopyParticles)
  47. #define OFFSET_LIST \
  48. {{0,1,2,3}, {0,1,2,3,4}, {0,3,4}, {0,1,2,3}, {0,1,2,3,4}, {0,3,4}, \
  49. {0,1}, {0,1}, {0}, {0,1,2,3,5,6,7,8}, {0,1,2,3,4,5,6,7,8,9,10}, \
  50. {0,3,4,5,8,9,10}, {0,1,2,3,5,6,7,8,12,13}, \
  51. {0,1,2,3,4,5,6,7,8,9,10,11,12,13}, {0,3,4,5,8,9,10,11,12}, \
  52. {0,1,5,6,12,13}, {0,1,5,6,10,11,12,13}, {0,5,10,11,12}}
  53. #define OFFSET_LEN {4,5,3,4,5,3,2,2,1,8,11,7,10,14,9,6,8,5}
  54. #define OFFSET_CPU_LIST \
  55. {{0,1,3,4,9,10,12}, {1,4,10}, {1,2,4,5,10,11,14}, {3,4,12}, {4}, \
  56. {4,5,14}, {3,4,6,7,12,15,16}, {4,7,16}, {4,5,7,8,14,16,17}, {9,10,12}, \
  57. {10}, {10,11,14}, {12}, {-1}, {14}, {12,15,16}, {16}, {14,16,17}, \
  58. {9,10,12,18,19,21,22}, {10,19,22}, {10,11,14,19,20,22,23}, {12,21,22}, \
  59. {22}, {14,22,23}, {12,15,16,21,22,24,25}, {16,22,25}, \
  60. {14,16,17,22,23,25,26}}
  61. #define OFFSET_CPU_LEN {7,3,7,3,1,3,7,3,7,3,1,3,1,1,1,3,1,3,7,3,7,3,1,3,7,3,7}
  62. /*---------------- Dynamic behaviors of actin, ACP, and motor ----------------*/
  63. // For severing of actins
  64. #define MAX_ACT_SEV_FORCE 400e-12
  65. #define X_ACT_SEV 2e-9
  66. // For annealing of actins
  67. #define DTL_ACT_ANN 0.95
  68. #define DTH_ACT_ANN 1.05
  69. // For maturation of actins
  70. #define MAX_ACT_MAT_FORCE 500e-12
  71. #define K0_ACT_MAT 0.01
  72. #define X_ACT_MAT 400.0e-12
  73. // For unbinding of filaments on boundaries
  74. #define MAX_BND_UNB_FORCE 500e-12
  75. #define K0_BND_UNB 1
  76. #define X_BND_UNB 100.0e-12
  77. #define K_BND_REB 1
  78. // Unbinding/binding/binding of ACPs
  79. #define MAX_ACP_UNB_FORCE 500.0e-12
  80. #define K0_ACP_UNB 0.115
  81. #define X_ACP_UNB 104.0e-12
  82. #define K_ACP_BIND 1.0e2
  83. // Binding of motors
  84. #define K_MOT_BIND 1.0e8
  85. // Turnover of motor filaments
  86. #define MAX_MOT_TURN_FORCE 500.0e-12
  87. // Lower and upper limits of distances allowing binding of ACPs or motors
  88. #define DTL_ACP_REB 0.9
  89. #define DTH_ACP_REB 1.1
  90. #define DTL_MOT_REB 0.7037
  91. #define DTH_MOT_REB 1.2963
  92. // Time for which a dynamic behavior is prohibited after a previous one occurs
  93. #define DUR_ACP_NO_UNB 2e-9
  94. #define DUR_MOT_NO_UNB 2e-9
  95. #define DUR_MOT_NO_WALK 2e-9
  96. #define DUR_ACT_NO_DYN 2e-9
  97. #define DUR_MEMB_NO_DYN 2e-9
  98. /*----------------------------------------------------------------------------*/
  99. /*----------------------------------- Membranes ------------------------------*/
  100. // Volume conservation
  101. #define STF_MEMB_VOL 0. // in Pa
  102. //#define STF_MEMB_VOL2 2250. // in Pa
  103. #define STF_MEMB_VOL2 1000. // in Pa
  104. #define VISC_MEMB_VOL 100. // in Ns/m^2
  105. // Area conservation
  106. //#define STF_MEMB_AREA 8.284e1
  107. #define STF_MEMB_AREA 1e-3 // in N/m
  108. // Bending and extensional stiffness and relevant parameters
  109. #define STF_MEMB_BEND 2.4e-19 // in Nm
  110. #define STF_MEMB_SPR 1e-4
  111. #define STF_MEMB_ACT_SPR 1e-3
  112. #define STF_MEMB_FIX_SPR 1e-3
  113. #define DTL_MEMB_SPR 1
  114. #define DTH_MEMB_SPR 1
  115. // Repulsive force
  116. #define STF_REP_MEMB (1.691e-3*3)
  117. // Parameters involved with actomyosin contractility
  118. #define STF_MEMB_SPR_MYO 720e-6 // in N/m
  119. #define DIFF_MEMB_SPR_MYO 0.0987 // in 1/s
  120. #define STF_MEMB_SPR_CYTO 240e-6 // in 1/s
  121. #define DIFF_MEMB_SPR_CYTO 0.025 // in 1/s
  122. // Unbinding
  123. #define MAX_MEMB_UNB_FORCE 1000.0e-12 // in N
  124. #define K0_MEMB_UNB 1. // in 1/s
  125. #define X_MEMB_UNB 500e-12 // in m
  126. // Binding
  127. #define K_MEMB_REB 1000. // in 1/s
  128. #define DTL_MEMB_REB 0.5 // relative to eq length
  129. #define DTH_MEMB_REB 1.5 // relative to eq length
  130. // Fixation
  131. #define K_MEMB_FIX 100. // in 1/s
  132. // Release
  133. #define K0_MEMB_DEF 0.115 // in 1/s
  134. #define X_MEMB_DEF 104.0e-12 // in m
  135. #define MAX_MEMB_DEF_FORCE 400.0e-12 // in N
  136. // Protrusion
  137. #define K_MEMB_PROT 4e-4 // in 1/s
  138. #define MAX_V_MEMB_PROT 0.2e-6 // in m/s
  139. #define DUR_MEMB_PROT 7.5 // in s
  140. // Maturation
  141. #define K0_MEMB_MAT 0.01 // in 1/s
  142. #define X_MEMB_MAT 400.0e-12 // in m
  143. #define MAX_MEMB_MAT_FORCE 500.0e-12 // in N
  144. /*----------------------------------------------------------------------------*/
  145. /*------------------------------------ Nucleus -------------------------------*/
  146. // Volume conservation
  147. #define STF_NUC_VOL 0.
  148. #define STF_NUC_VOL2 2250. // in Pa
  149. // Area conservation
  150. #define STF_NUC_AREA 8.284e1
  151. // Bending and extensional stiffness
  152. #define STF_NUC_BEND 0.215e-18
  153. #define STF_NUC_ACT_SPR 1e-3
  154. #define STF_NUC_SPR 5e-3
  155. #define DTL_NUC_SPR 1.0
  156. #define DTH_NUC_SPR 1.0
  157. // Repulsive forces
  158. #define STF_REP_BEAD 1.691e-4
  159. // Unbinding
  160. #define MAX_NUC_UNB_FORCE 1000.0e-12
  161. #define K0_NUC_UNB 1.
  162. #define X_NUC_UNB 0.5e-9
  163. // Binding
  164. #define K_NUC_REB 1000.
  165. #define DTL_NUC_REB 0.5
  166. #define DTH_NUC_REB 1.5
  167. /*----------------------------------------------------------------------------*/
  168. /*-- Mechanical stiffness and geometric parameters of actin, ACP, and motor --*/
  169. // Mechanical stiffness for actin
  170. #define STF_ACT_SPR 1.691e-1
  171. #define STF_ACT_BEND 3.697e-26
  172. #define STF_ACT_REP 1.691e-3
  173. #define STF_ABP_REP 1.691e-3
  174. // Geometric parameters for actin
  175. #define ANGL_ACT_BEND 10.
  176. #define DIA_CYL_ACT 7.0e-9
  177. #define DIA_CYL_ACT_UM (DIA_CYL_ACT * 1e6)
  178. #define DIA_CYL_ACT_NM (DIA_CYL_ACT * 1e9)
  179. // Mechanical stiffness for ACP crosslinking filaments at right angle
  180. #define STF_ACPC_SPR 2e-3
  181. #define STF_ACPC_BEND 1.036e-18
  182. #define STF_ACPC_90 1.036e-19
  183. #define STF_ACPC_TOR 4.142e-18
  184. // Geometric parameters for ACP crosslinking filaments at right angle
  185. #define L_ACPC_ARM 20.0e-9
  186. #define ANG_ACPC_BEND 0
  187. #define ANGL_ACPC_BEND 15.
  188. #define ANGL_ACPC_90 10.
  189. #define ANGL_ACPC_TOR 10.
  190. #define DIA_CYL_ACPC 10.0e-9
  191. // Mechanical stiffness for ACP bundling filaments in parallel
  192. #define STF_ACPB_SPR 2.0e-3
  193. #define STF_ACPB_BEND 1.036e-19
  194. #define STF_ACPB_90 1.036e-19
  195. #define STF_ACPB_TOR 4.142e-18
  196. // Geometric parameters for ACP bundling filaments in parallel
  197. #define L_ACPB_ARM 20.0e-9
  198. #define ANG_ACPB_BEND 0.
  199. #define ANGL_ACPB_BEND 15.
  200. #define ANGL_ACPB_90 10.
  201. #define ANGL_ACPB_TOR 10.
  202. #define DIA_CYL_ACPB 10.0e-9
  203. // Mechanical stiffness for motors
  204. #define STF_MOT_SPR 1.0e-3
  205. #define STF_MOT_SPR2 1.0e-3
  206. #define STF_MOT_BEND 1.036e-18
  207. #define STF_MOT_90 0
  208. #define STF_MOT_TOR 4.142e-18
  209. #define MOT_STALLF 5.04e-12
  210. // Geometric parameters for motors
  211. #define L_MOT_ARM 10.0e-9
  212. #define ANG_MOTBACK_TOR 180.
  213. #define ANG_MOTBACK_BEND 0.
  214. #define ANG_MOT_TOR 180.
  215. #define ANG_MOT_BEND 0
  216. #define ANGL_MOT_BEND 15.
  217. #define ANGL_MOT_90 10.
  218. #define ANGL_MOT_TOR 10.
  219. #define DIA_CYL_MOT 10.0e-9
  220. // Mechanical stiffness for motors
  221. #define STF_MOTBACK_SPR 1.691e-2
  222. #define STF_MOTBACK_BEND 5.072e-18
  223. // Geometric parameters for motors
  224. #define L_MOTBACK_DIST 42.0e-9
  225. #define L_MOTBACK_CEN_DIST 42.0e-9
  226. #define ANG_MOT_BEND 0
  227. // Boundaries
  228. #define STF_REP_BND 1e-3
  229. #define STF_SPR_BND 1e-3
  230. #define STF_BND_VOL 1e19
  231. // Degree of coarse-graining using cylindrical segments and
  232. // the corresponding length of one actin segments
  233. #define L_SCALE_IN_M (nActPerSeg * DIA_CYL_ACT)
  234. #define L_SCALE_IN_UM (nActPerSeg * DIA_CYL_ACT_UM)
  235. #define L_SCALE_IN_NM (nActPerSeg * DIA_CYL_ACT_NM)
  236. /*----------------------------------------------------------------------------*/
  237. /******************************************************************************/
  238. /***************************** Definition of Tools ****************************/
  239. /******************************************************************************/
  240. // Alternative forms of arrays
  241. #define P2(a,b,c) a[(b)*NDIM+(c)]
  242. #define P2A(a,b,c,d) a[(b)*(d)+(c)]
  243. // Frequently used expressions
  244. #define SELECT(a, b, c, d, e) \
  245. if ((a) > (b)) { (c)=(d); } else { (c)=(e); }
  246. #define SELECT_LOHI(a, b, c, d) \
  247. if ((a) > (b)) { (c)=(b); (d)=(a); } else { (c)=(a); (d)=(b); }
  248. #define BREAK(a) if (a) { break; }
  249. #define CONT(a) if (a) { continue; }
  250. #define ISACTM(a) (P2A(act.ch,(a),0,nChAc) < 0 \
  251. && P2A(act.ch,(a),1,nChAc) < 0)
  252. #define ISABPM(a) (P2A(abp.ch,(a),0,nChAb) < 0 \
  253. && P2A(abp.ch,(a),1,nChAb) < 0 && (K_ABP(a) != 2 \
  254. || motSA.gTgl == 0 || (P2A(abp.ch,(a),3,nChAb) < 0 \
  255. && P2A(abp.ch,(a),4,nChAb) < 0 && K_ABP(a) == 2 \
  256. && motSA.gTgl != 0)))
  257. #define ISABPIM(a) (P2A(abp.ch,(a),0,nChAb) < 0 \
  258. && P2A(abp.ch,(a),1,nChAb) < 0 && ((K_ABP(a) != 2 \
  259. && gTglImpAcpM != 0) || (K_ABP(a) == 2 && gTglImpMotM != 0 \
  260. && motSA.gTgl == 0) || (P2A(abp.ch,(a),3,nChAb) < 0 \
  261. && P2A(abp.ch,(a),4,nChAb) < 0 && K_ABP(a) == 2 \
  262. && motSA.gTgl != 0)))
  263. #define ISNUC(a) (gTglNuc != 0 && (a) >= nObjMbNuc / 2)
  264. #define ISMTF(a) (motSA.gTgl != 0 && (a) == 2)
  265. #define K_ABP(a) abp.ch[(a)*nChAb+2]
  266. #define SPRING(a,b,c) REVSIGN(a) * ((b) - (c))
  267. #define CYL_DRAG(a,b) (3.*PI*VISCOSITY*(a)*(3.+2.*(b)/(a))/5.)
  268. // Frequently used for-loops
  269. #define FOR_ACT(a) for((a) = 0; (a) < nAct; (a)++)
  270. #define FOR_ABP(a) for((a) = 0; (a) < nAbp; (a)++)
  271. #define FOR_NDIM(a) for((a) = 0; (a) < NDIM; (a)++)
  272. #define FOR_ACTME(a) for((a) = 0; (a) < nActMe; (a)++)
  273. #define FOR_ABPME(a) for((a) = 0; (a) < nAbpMe; (a)++)
  274. #define FOR_ACTCP(a) for((a) = 0; (a) < nActCp; (a)++)
  275. #define FOR_ABPCP(a) for((a) = 0; (a) < nAbpCp; (a)++)
  276. #define FOR_ACTMECP(a) for((a) = 0; (a) < nActMe + nActCp; (a)++)
  277. #define FOR_ABPMECP(a) for((a) = 0; (a) < nAbpMe + nAbpCp; (a)++)
  278. #define FOR_ACTC(a) for((a) = 0; (a) < nActC; (a)++)
  279. #define FOR_ABPC(a) for((a) = 0; (a) < nAbpC; (a)++)
  280. #define FOR_MB(a) for((a) = 0; (a) < nMb; (a)++)
  281. #define FOR_MBME(a) for((a) = 0; (a) < nMbMe; (a)++)
  282. #define FOR_MBCP(a) for((a) = 0; (a) < nMbCp; (a)++)
  283. #define FOR_MBMECP(a) for((a) = 0; (a) < nMbMe + nMbCp; (a)++)
  284. #define FOR_MBC(a) for((a) = 0; (a) < nMbC; (a)++)
  285. // Algebra
  286. #define AVG2(a,b) (0.5*((a)+(b)))
  287. #define REVSIGN(a) (-1.*(a))
  288. #define INV(a) (1./(a))
  289. #define SQR(a) ((a)*(a))
  290. #define CUBE(a) ((a)*(a)*(a))
  291. // Alternative forms of memory allocation
  292. #define MALLOC(a,b,c) (a)=(b *)malloc(sizeof(b)*(c))
  293. #define MALLOC2(a,b,c) (a)=(b **)malloc(sizeof(b *)*(c))
  294. #define MALLOC3(a,b,c) (a)=(b ***)malloc(sizeof(b **)*(c))
  295. #define MALLOC4(a,b,c) (a)=(b ****)malloc(sizeof(b ***)*(c))
  296. // Packing and unpacking data in meassages
  297. #define MPI_PACK_DBL(a, b, c) MPI_Pack((a), (b), MPI_DOUBLE, \
  298. bufSendMsg[(c)], sizeBufMsg, &posi, MPI_COMM_WORLD);
  299. #define MPI_PACK_INT(a, b, c) MPI_Pack((a), (b), MPI_INT, \
  300. bufSendMsg[(c)], sizeBufMsg, &posi, MPI_COMM_WORLD);
  301. #define MPI_UNPACK_DBL(a, b, c) MPI_Unpack(bufRecvMsg[(c)], \
  302. sizeBufMsg,&posi,(a),(b), MPI_DOUBLE, MPI_COMM_WORLD);
  303. #define MPI_UNPACK_INT(a, b, c) MPI_Unpack(bufRecvMsg[(c)], \
  304. sizeBufMsg,&posi,(a),(b), MPI_INT, MPI_COMM_WORLD);
  305. // Convert between indices and numbers
  306. #define V2IND_ASSIGN_INT(a,b,c,d) \
  307. (b)=(a)/(d), (c)=(a)%(d)
  308. #define V3IND_ASSIGN_DBL(a,b,c,d) \
  309. (d)[0]=(double)(((a)/(b)[2])/(b)[1])*(c), \
  310. (d)[1]=(double)(((a)/(b)[2])%(b)[1])*(c), \
  311. (d)[2]=(double)((a)%(b)[2])*(c)
  312. #define V3IND_ASSIGN_INT(a,b,c,d) \
  313. (d)[0]=(((a)/(b)[2])/(b)[1])*(c), \
  314. (d)[1]=(((a)/(b)[2])%(b)[1])*(c), \
  315. (d)[2]=((a)%(b)[2])*(c)
  316. #define V3IND_BACK_INT(a,b,c) \
  317. (a)=((b)[0]*(c)[1]+(b)[1])*(c)[2]+(b)[2]
  318. #define V3IND_ASSIGN_CONST_INT(a,b,c) \
  319. (c)[0]=(((a)/b)/b), \
  320. (c)[1]=(((a)/b)%b), \
  321. (c)[2]=((a)%b)
  322. #define V3IND_BACK_CONST_INT(a,b,c) (a)=((b)[0]*c+(b)[1])*c+(b)[2]
  323. // Unit conversion between conventional units and simulation units
  324. #define T_SEC2TS(a) ((int)((a) / dtReal))
  325. #define T_S2SEC(a) ((a)*(CYL_DRAG(DIA_CYL_ACT, DIA_CYL_ACT \
  326. * nActPerSeg)*SQR(L_SCALE_IN_M)/KT_IN_J))
  327. #define T_SEC2S(a) ((a)/(CYL_DRAG(DIA_CYL_ACT, DIA_CYL_ACT \
  328. * nActPerSeg)*SQR(L_SCALE_IN_M)/KT_IN_J))
  329. #define F_PN2S(a) ((a)/KT_IN_J*L_SCALE_IN_M/1.0e12)
  330. #define F_S2PN(a) ((a)*KT_IN_J/L_SCALE_IN_M*1.0e12)
  331. #define F_N2S(a) ((a)/KT_IN_J*L_SCALE_IN_M)
  332. #define F_S2N(a) ((a)*KT_IN_J/L_SCALE_IN_M)
  333. #define F_N2S(a) ((a)/KT_IN_J*L_SCALE_IN_M)
  334. #define E_S2J(a) ((a)*KT_IN_J)
  335. #define L_S2M(a) ((a)*L_SCALE_IN_M)
  336. #define L_S2UM(a) ((a)*L_SCALE_IN_UM)
  337. #define L_S2NM(a) ((a)*L_SCALE_IN_NM)
  338. #define L_M2S(a) ((a)/L_SCALE_IN_M)
  339. #define L_UM2S(a) ((a)/L_SCALE_IN_UM)
  340. #define L_NM2S(a) ((a)/L_SCALE_IN_NM)
  341. #define KS_S2NPM(a) ((a)*KT_IN_J/SQR(L_SCALE_IN_M))
  342. #define KS_NPM2S(a) ((a)/KT_IN_J*SQR(L_SCALE_IN_M))
  343. #define KB_S2NM(a) ((a)*KT_IN_J)
  344. #define KB_NM2S(a) ((a)/KT_IN_J)
  345. #define PA2S(a) ((a)/KT_IN_J*CUBE(L_SCALE_IN_M))
  346. #define S2PA(a) ((a)*KT_IN_J/CUBE(L_SCALE_IN_M))
  347. #define NPV2S(a) ((a)/KT_IN_J*pow(L_SCALE_IN_M, 4.))
  348. #define S2NPV(a) ((a)*KT_IN_J/pow(L_SCALE_IN_M, 4.))
  349. // Unit conversion of angles
  350. #define DEG2RAD(a) ((a)*PI/180.)
  351. #define RAD2DEG(a) ((a)/PI*180.)
  352. // Probabilities and rates
  353. #define K2P(a) (1.-exp(-1.*(a)*dtReal))
  354. #define P2K(a) (log(1.-(a))/(-1.*dtReal))
  355. #define FAC_P(a) (-1.*(a)/N_AVO/CUBE(L_SCALE_IN_M)*1.0e3*dtReal)
  356. /*---------------------------- Vector calculation ----------------------------*/
  357. // for 3-D vector
  358. #define V3REVSIGN(a) (a)[0]=-1.*(a)[0], (a)[1]=-1.*(a)[1], \
  359. (a)[2]=-1.*(a)[2]
  360. #define V3DOT(a,b) ((a)[0]*(b)[0]+(a)[1]*(b)[1]+(a)[2]*(b)[2])
  361. #define V3CROSS(a,b,c) (a)[0]=(b)[1]*(c)[2]-(b)[2]*(c)[1], \
  362. (a)[1]=(b)[2]*(c)[0]-(b)[0]*(c)[2], (a)[2]=(b)[0]*(c)[1]-(b)[1]*(c)[0]
  363. #define V3ADD(a,b,c) \
  364. (a)[0]=(b)[0]+(c)[0],(a)[1]=(b)[1]+(c)[1],(a)[2]=(b)[2]+(c)[2]
  365. #define V3SUB(a,b,c) \
  366. (a)[0]=(b)[0]-(c)[0],(a)[1]=(b)[1]-(c)[1],(a)[2]=(b)[2]-(c)[2]
  367. #define V3LEN_SQ(a) V3DOT(a,a)
  368. #define V3LEN(a) sqrt(V3DOT(a,a))
  369. #define V3SET(a,b,c,d) (a)[0]=(b), (a)[1]=(c), (a)[2]=(d)
  370. #define V3SET_ALL(a,b) (a)[0]=(b), (a)[1]=(b), (a)[2]=(b)
  371. #define V3ZERO(a) V3SET_ALL(a,0)
  372. #define V3MUL(a,b,c) (a)[0]=(b)[0]*(c)[0], (a)[1]=(b)[1]*(c)[1], \
  373. (a)[2]=(b)[2]*(c)[2]
  374. #define V3DIV(a,b,c) (a)[0]=(b)[0]/(c)[0], (a)[1]=(b)[1]/(c)[1], \
  375. (a)[2]=(b)[2]/(c)[2]
  376. #define V3DIV_INT(a,b,c) (a)[0]=(int)((b)[0]/(c)[0]), \
  377. (a)[1]=(int)((b)[1]/(c)[1]), \
  378. (a)[2]=(int)((b)[2]/(c)[2])
  379. #define V3SCALE(a,b) (a)[0]*=(b), (a)[1]*=(b), (a)[2]*=(b);
  380. #define VV3ADD(a,b) V3ADD(a,a,b)
  381. #define VV3SUB(a,b) V3SUB(a,a,b)
  382. #define VV3DIV(a,b) V3DIV(a,a,b)
  383. #define V3PROD(a) ((a)[0]*(a)[1]*(a)[2])
  384. #define V3SUM(a) ((a)[0]+(a)[1]+(a)[2])
  385. #define VS3ADD(a,b,c,d) \
  386. (a)[0]=(b)[0]+(c)[0]*(d),(a)[1]=(b)[1]+(c)[1]*(d), \
  387. (a)[2]=(b)[2]+(c)[2]*(d)
  388. #define VSV3ADD(a,b,c,d) \
  389. (a)[0]=(b)[0]+(c)[0]*(d)[0],(a)[1]=(b)[1]+(c)[1]*(d)[1], \
  390. (a)[2]=(b)[2]+(c)[2]*(d)[2]
  391. #define V3AVG(a,b,c) \
  392. V3ADD(a,b,c), V3SCALE(a,0.5)
  393. #define VVS3ADD(a,b,c) VS3ADD(a,a,b,c)
  394. #define VSS3ADD(a,b,c,d,e) \
  395. (a)[0]=(b)[0]*(d)+(c)[0]*(e),(a)[1]=(b)[1]*(d)+(c)[1]*(e), \
  396. (a)[2]=(b)[2]*(d)+(c)[2]*(e)
  397. #define VS3SUB(a,b,c,d) \
  398. (a)[0]=(b)[0]-(c)[0]*(d),(a)[1]=(b)[1]-(c)[1]*(d), \
  399. (a)[2]=(b)[2]-(c)[2]*(d)
  400. #define VVS3SUB(a,b,c) VS3SUB(a,a,b,c)
  401. #define VVSS3SUB(a,b) (a)[0]-=(b), (a)[1]-=(b), (a)[2]-=(b)
  402. #define VVSS3ADD(a,b) (a)[0]+=(b), (a)[1]+=(b), (a)[2]+=(b)
  403. #define V3COPY(a,b) (a)[0]=(b)[0],(a)[1]=(b)[1],(a)[2]=(b)[2]
  404. #define VS3COPY(a,b,c) \
  405. (a)[0]=(b)[0]*(c),(a)[1]=(b)[1]*(c),(a)[2]=(b)[2]*(c)
  406. #define V3COS(a,b) (V3DOT((a),(b))/(V3LEN(a)*V3LEN(b)))
  407. #define V3ANG(a,b) Acos(V3COS(a,b))
  408. // for 2-D vector
  409. #define V2SET(a,b,c) (a)[0]=(b), (a)[1]=(c)
  410. #define V2SET_ALL(a,b) (a)[0]=(b), (a)[1]=(b)
  411. #define V2ZERO(a) V2SET_ALL(a,0)
  412. #define V2COPY(a,b) (a)[0]=(b)[0],(a)[1]=(b)[1]
  413. // for 4-D vector
  414. #define V4SET(a,b,c,d,e) (a)[0]=(b), (a)[1]=(c), (a)[2]=(d), (a)[3]=(e)
  415. #define V4SET_ALL(a,b) V4SET(a,b,b,b,b)
  416. #define V4COPY(a,b) (a)[0]=(b)[0],(a)[1]=(b)[1],(a)[2]=(b)[2], \
  417. (a)[3]=(b)[3]
  418. // for 5-D vector
  419. #define V5SET(a,b,c,d,e,f) (a)[0]=(b), (a)[1]=(c), (a)[2]=(d), \
  420. (a)[3]=(e), (a)[4]=(f)
  421. #define V5SET_ALL(a,b) V4SET(a,b,b,b,b,b)
  422. #define V5COPY(a,b) (a)[0]=(b)[0],(a)[1]=(b)[1],(a)[2]=(b)[2], \
  423. (a)[3]=(b)[3],(a)[4]=(b)[4]
  424. #define V6SET(a,b,c,d,e,f,g) (a)[0]=(b), (a)[1]=(c), (a)[2]=(d), \
  425. (a)[3]=(e), (a)[4]=(f), (a)[5]=(g)
  426. #define V6COPY(a,b) (a)[0]=(b)[0],(a)[1]=(b)[1],(a)[2]=(b)[2], \
  427. (a)[3]=(b)[3],(a)[4]=(b)[4], (a)[5]=(b)[5]
  428. #define V7COPY(a,b) (a)[0]=(b)[0],(a)[1]=(b)[1],(a)[2]=(b)[2], \
  429. (a)[3]=(b)[3],(a)[4]=(b)[4], (a)[5]=(b)[5], (a)[6]=(b)[6]
  430. /******************************************************************************/
  431. /***************************** Function Prototypes ****************************/
  432. /******************************************************************************/
  433. /*-------------------------------- process.c ---------------------------------*/
  434. // Main process
  435. void MainProcess(void);
  436. // Initialize and excute single steps & post-process after single steps
  437. void SingleProcess(void), TaskAfterSingleProcess(void);
  438. void InitSingleProcess(void);
  439. inline void InitSingleProcessSubroutine(double *arr, int cnt) ;
  440. // Switch toggles
  441. void InitToggleParameters(int mode);
  442. // Procedures necessary without pre-assembled network data
  443. void PrepareStateWoNetworkData(void);
  444. /*---------------------------------- init.c ----------------------------------*/
  445. // Initialize the number of cells based on the given number of cores
  446. void InitCellNumber(void);
  447. // Initialize process
  448. void InitRun(void), InitOutput(void);
  449. // Define arrays and assign values for them
  450. void AllocPreArrays(void), AllocArrays(void), AssignArrayValues(void);
  451. // Assign initial values of variables
  452. void AssignInitValues(void), CheckPeriodToggleParameter(FuncCont *);
  453. // Initialize record files and seeds for generating random numbers
  454. void InitRecFiles(void), InitRandSeed(void);
  455. // Check whether 'condition' and 'parallel' exist
  456. void InitFileCheck(void);
  457. // Initialize the unbinding and walking rates based on the number of heads
  458. void InitMotorWalkUnbindRates(int);
  459. /*-------------------------------- calForce.c --------------------------------*/
  460. // Brownian forces (thermal fluctuation)
  461. void CalcBrownForces(void);
  462. inline void CalcBrownForcesSubroutine(double *, double, int, int, double *);
  463. // Repulsive forces between cylindrical segments
  464. void CalcRepulsiveForces(void);
  465. void CalcRepulsiveForcesSubroutine(int *, int *, double [][NDIM],
  466. double *[4], double *, int);
  467. double CalcRepulsiveForcesSubSubroutine(double [][NDIM], double *,
  468. double *, double, int);
  469. void CalcRepulsiveForcesSubSubSubroutine(double [][NDIM], int, int);
  470. // Spring forces
  471. void CalcSpringForces(void), CalcSpringForcesSubroutine(int, int, int, int *);
  472. // Bending forces and necessary subroutines
  473. void CalcFilaBendForces(void), CalcFilaBendForcesSubroutine(int, int, int);
  474. void CalcAbpBendForces(void), CalcAbpBendForcesSubroutine1(int, int);
  475. void CalcAbpBendForcesSubroutine2(int, int *);
  476. // For motor thick filaments
  477. void CalcMotorBackboneForces(void);
  478. // Tools for force calculation
  479. void CalcCosine(double*,double *,double *,double *,double *,double *,double *);
  480. double CalcBendForceSubroutine(double *, double *, double, double,
  481. double *, double *);
  482. double CalcBendForce(double *, double *, double *, double *,
  483. double *, double, double, double *, double *);
  484. void AddSpringForce(double, double, double *, double *, double *);
  485. /*---------------------------------- update.c --------------------------------*/
  486. // Update locations of particles reflecting forces
  487. void UpdateNewLocation(void);
  488. // Update neighboring list
  489. void UpdatePrevLocationForNL(void), MeasureDisplacementForNL(void);
  490. void UpdateNeighborListSubroutine(double [][NDIM], double *, int);
  491. int UpdateNeighborListSubroutine2(int, int *, int *);
  492. int UpdateNeighborListSubroutine3(int, int, int *, int *);
  493. void UpdateNeighborList(void);
  494. void DeleteActinSegmentInNeighborList(int *);
  495. void DeleteElementInNeighborList(int, int);
  496. void InsertElementInNeighborList(int, int, int);
  497. // Dynamic behaviors of actins
  498. void UpdateActinNucleation(void), UpdateActinAssembly(void);
  499. void UpdateActinDisassembly(void), UpdateActinDisassemblySubroutine(int, int);
  500. void UpdateActinDisassemblySubroutine2(int, int);
  501. void UpdateActinBurstDisassembly(void);
  502. void UpdateActinSevering(void), UpdateActinSeveringSubroutine(int *);
  503. void UpdateActinSeverAnnealSubroutine(int, int, ListInt *, int);
  504. void UpdateActinAnnealing(void), UpdateActinAnnealingSubroutine(int *);
  505. void UpdateActinCapUncap(void), UpdateActinDegradation(int *, double, int);
  506. double CalcActinDegradationRate(int, int, int);
  507. void UpdateNoActinDynamicsList(void);
  508. int CheckActinAvailability(int, int);
  509. // Dynamic behaviors (unbinding/binding/walking) of ACPs and motors
  510. void UpdateAbpBinding(void), UpdateAbpBindingSubroutine(int *, int);
  511. void UpdateActiveAbpUnbinding(void);
  512. void UpdateActiveAbpUnbindingSubroutine(int, int);
  513. void UpdateInactAbpUnbinding(void), UpdateInactAbpUnbindingSubroutine(int ,int);
  514. void UpdateAbpMonomerBinding(void), UpdateMotorWalking(void);
  515. void UpdateMotorAssembly(void), UpdateMotorTurnover(void);
  516. void UpdateNoAbpUnbindList(void);
  517. double UpdateMotorWalkingSubroutine(int, int);
  518. double CalcUnbindingRate(int, int, int, int);
  519. // Updating chains and information
  520. void UpdateChainList(void), SortChainList(void);
  521. /*------------------------------- dataManage.c -------------------------------*/
  522. // Load and extract network configuration
  523. void LoadConfig(int), ExtractConfig(void);
  524. void ExtractConfigSubroutine(double *, double *, double, int, int *, int *);
  525. void CheckAnswerYesNo(char *, const char *, int *);
  526. // Load initial parameters
  527. void LoadInitParameter(void);
  528. void LoadInitParameterSubroutine(FILE *, const char *, int *);
  529. void LoadInitParameterSubroutine2(char *, int, int *, int *);
  530. // Eliminate inactive or free components
  531. void AddFreeAbp(void), AddFreeActin(void);
  532. void AddFreeActinAbpSubroutine(int, int *, int *);
  533. void DeleteAbp(void), DeleteInactiveAbp(void), DeleteFreeActin(void);
  534. // Sever filaments for each purpose
  535. void SeverFilaOnPlane(int, int), SeverLongFilament(void);
  536. void SeverFilaOnPlaneSubroutine(int, int);
  537. // Break chains between actins and ABPs
  538. void DetachAbpOnActin(int), DetachActinOnAbp(int);
  539. // Inspect the integrity of chain data
  540. void InspectChainListAndLength(void);
  541. int InspectChainList(void), InspectChainLength(void);
  542. // Pack information
  543. int BinaryPackActinChainArray(int), BinaryPackAbpChainArray(int);
  544. // Find the supportive framework of a network
  545. void FindSupportiveFramework(void);
  546. // Find the percolated structures of a network
  547. void FindPercolatedFilaments(int, int);
  548. void FindPercolatedFilamentsSubroutine(ListInt *, ListInt *, ListInt *,
  549. ListInt2 *, int *, int *,int *, int, int, int *);
  550. /*--------------------------------- record.c ---------------------------------*/
  551. // Progress
  552. void RecordProgressSubroutine(int *, FILE *);
  553. void RecordProgressSubroutine2(int *, int *, int, FILE *, int);
  554. void RecordProgressSubroutine3(int *, int *, FILE *);
  555. void RecordProgress(void);
  556. // Record initial parameters
  557. void RecordInitParameterSubroutine(const char *, int, int, int, FILE *);
  558. void RecordInitParameterSubroutine2(const char *, FuncCont *, FILE *);
  559. void RecordInitParameter(void);
  560. // Record counters
  561. void RecordCounters(void), RecordCountersSubroutine(int, int, FILE *);
  562. // Network configuration
  563. void RecordConfig(char *, int), RecordConfigVmd(int), RecordConfigMatlab(void);
  564. int RecordConfigVmdSubroutine(double *, double *, int *, int *);
  565. int RecordConfigInformation(double *, double *, double *, int *, int *, int *,
  566. int);
  567. void RecordConfigParaview(void);
  568. // Record information related to the unbinding event of ABPs
  569. void RecordAbpDynamics(int), RecordActinSeverEvent(void);
  570. void RecordAbpUnbindEvent(int, int, int), RecordAbpBindEvent(int, int, int);
  571. void RecordAbpTurnover(int, int, int, int);
  572. // Motor thick filament
  573. void RecordMotorFilamentSize(void), RecordMotorPosition();
  574. // Morphological properties
  575. void RecordFilamentLength(int), RecordConnectivity(int);
  576. void RecordConnectivitySubroutine1(int *, int *, int *);
  577. void RecordConnectivitySubroutine2(int **, int *, int *, int, int);
  578. void RecordCrosslinkDistance(void), RecordCrosslinkAngle(void);
  579. double RecordPoreSizeSubroutine1(double *, double *, double *, double *);
  580. void RecordPoreSizeSubroutine2(ListDbl *, int *);
  581. void RecordPoreSizeSubroutine3(double *, double *, int *, double *, int *);
  582. void RecordPoreSize(void), FilamentEndPositionForceInBundle(void);
  583. // Energy
  584. void RecordMechEnergy(int);
  585. // Internal stress measurement
  586. void RecordElasViscStressSubroutine1(double *, double *, int *,
  587. double, int *, int *, int);
  588. void RecordElasViscStressSubroutine2(double, double, int *, double *, double *,
  589. double *, int *, double, int *, int);
  590. void RecordElasViscStress(int, int *, int);
  591. // Instantaneous information
  592. void RecordInstantForces(void), RecordInstantChainLength(void);
  593. void RecordActinAbpInstantOrient(int);
  594. // Accumulated information
  595. void RecordAccuLengthForces(void), ResetAccuLengthForces(void);
  596. void RecordAccuLongSpringForces(int);
  597. void RecordChainList(void);
  598. // Information in unit of individual elements, filament segments, filaments
  599. void RecordIndvSegFilaInformation(int);
  600. /*--------------------------------- gatPrint.c -------------------------------*/
  601. // Tools for recording
  602. void Printf(const char *, ...), Printf0(const char *, ...);
  603. void Fprintf1dFillerInt(FILE *, int, int, int);
  604. void Fprintf1dArrayInt(FILE *, int *, int, int);
  605. void Fprintf1dArrayIntWFil(FILE *, int *, int, int, int);
  606. void Fprintf1dArrayIntWoRet(FILE *, int *, int);
  607. void Fprintf1dFillerDouble(FILE *, double, int, int);
  608. void Fprintf1dArrayDouble(FILE *, double *, int, int);
  609. void Fprintf1dArrayDoubleWFil(FILE *, double *, int, int, int);
  610. void Fprintf1dArrayDoubleWoRet(FILE *, double *, int);
  611. void Fprintf2dArrayIntDouble(FILE *, double *, int, int, int *);
  612. void Fprintf2dArrayInt(FILE *, int *, int, int, int, int);
  613. void Fprintf2dArrayIntWFil(FILE *, int *, int, int, int, int, int);
  614. void Fprintf2dArrayDouble(FILE *, double *, int, int, int, int);
  615. void Fprintf2dArrayDoubleWFil(FILE *, double *, int, int, int, int, int);
  616. void RecordChainArrayInt(FILE *, const char *, int *, int, int, int);
  617. void Gather1dArrayIntWoInd(int, int *, int *, int *);
  618. void RecordGather1dArrayIntWoInd(int, int *, int *, FILE *);
  619. void RecordGather1dArrayIntWoIndWoCnt(int, int *, FILE *, const char *);
  620. void Gather2dArrayInt(int, int *, int, int *, int *, int *);
  621. void Gather2dArrayIntWoIndWoSort(int, int *, int *, int *, int);
  622. void RecordGather2dArrayInt(int, int *, int, int *, int *, FILE *, int);
  623. void RecordGather2dArrayIntWoCnt(int, int, int *, int *, FILE *, int);
  624. void RecordChainArrayDouble(FILE *, const char *, double *, int, int, int);
  625. void Gather1dArrayDoubleWoInd(int, int *, double *, double *);
  626. void RecordGather1dArrayDoubleWoInd(int, int *, double *, FILE *);
  627. void RecordGather1dArrayDoubleWoIndWoCnt(int, double *, FILE *,
  628. const char *);
  629. void Gather2dArrayDouble(int, int *, int, int *, double *, double *);
  630. void Gather2dArrayDoubleWoIndWoSort(int, int *, double *, double *, int);
  631. void RecordGather2dArrayDouble(int, int *, int, int *, double *, FILE *, int);
  632. void RecordGather2dArrayDoubleWoCnt(int, int, int *, double *, FILE *, int);
  633. void GatherActChainPosition(int *, int *, double *);
  634. void GatherAbpChainPosition(int *, int *, double *);
  635. void GatherMembChainPosition(int *, int *, double *);
  636. /*---------------------------------- error.c ---------------------------------*/
  637. // Print errors if any
  638. void RecordError(int);
  639. void RecordErrorArrayInt(FILE *, const char *, int, int *, int);
  640. void RecordErrorArrayDouble(FILE *, const char *, int, double *, int);
  641. void RecordErrorSubroutine1(FILE *, int), RecordErrorSubroutine2(FILE *, int);
  642. void RecordErrorSubroutine3(FILE *, int);
  643. void RecordErrorSpringForce(int, int, double, double, int);
  644. void RecordErrorRepForce(int *, int *, double (*)[NDIM], double,
  645. double, double *, int);
  646. void RecordErrorBendingForce(int, int, int, double, int);
  647. void RecordErrorTotalForceSubroutine1(FILE *, int);
  648. void RecordErrorTotalForceSubroutine2(FILE *, int);
  649. void RecordErrorTotalForceSubroutine3(FILE *, int);
  650. void RecordErrorTotalForce(int, int), RecordErrorElement(int, int);
  651. int CheckLargeForce(double, int);
  652. void CheckLargeTotalForceAll(int), CheckNanForce(int);
  653. /*----------------------------------- rng.c ----------------------------------*/
  654. // Initialize the generation of rundom numbers
  655. void init_genrand(unsigned long);
  656. // Generate a Gaussian random number
  657. void genrand_gauss(double *, double *);
  658. // Generate a double (uniform) random number
  659. double genrand_real3(void);
  660. /*--------------------------------- boundary.c -------------------------------*/
  661. // Calculate forces
  662. void CalcBoundRepulsiveForces(void);
  663. // Update information
  664. void UpdateBoundaryActinUnbindMature(void), UpdateBoundaryActinBinding(void);
  665. void UpdateBoundaryLocation(void);
  666. // Handle boundary conditions
  667. void CheckCrossBound(int *, double *, double *);
  668. void ApplyBoundCondVector(double *, int, int);
  669. void ApplyBoundCondVecDiff(double *), ApplyBoundCondAll(void);
  670. void ConvertRectDomainVector(double *, int);
  671. // Interactions between boundaries and others
  672. int CheckParticleInDomain(double *), CheckActinAbpOverlapBoundary(double *);
  673. double HowManyInOutBound(void);
  674. // Record information
  675. void RecordBoundaryLocation(void), RecordBoundaryActinUnbindBind(void);
  676. void RecordBoundaryActinMature(void);
  677. /*--------------------------------- paraProc.c -------------------------------*/
  678. // Handle the list of long chains between actins and ABPs
  679. void UpdateLongChainNormal(void), UpdateLongChainPlympton(void);
  680. void UpdateLongChainNormalSubroutine(int, int, double);
  681. void UpdateLongChainNormalSubSubroutine1(double *, ListInt *, double);
  682. void DeleteLongChain(int, int);
  683. int InsertLongChain(int, int, double);
  684. // Adjust subdomain size to maintain loads in CPUs at a similar level
  685. void UpdateSubdomSectionLocation(int), RecordSubdomSectionLocation(void);
  686. // Move particles between subdomains
  687. void MoveParticles(void), MoveParticlesSubroutine2(int, int);
  688. void MoveParticlesSubroutine1(ListInt *, double *, int);
  689. void MoveParticlesSubroutine3(ListInt *, double *, int, int);
  690. // Copy particles between subdomains
  691. void CopyParticles(void), CopyParticlesSubSubroutine(int, int *, int);
  692. void CopyParticlesNormalSubroutine(int, int *, int *, int);
  693. void CopyParticlesPlymptonSubroutine(int, int, int *, int);
  694. int CopyParticlesPlymptonSubroutine2(int);
  695. // Process the messages regarding the dynamic events of actins and ABPs
  696. // which will be transferred between subdomains
  697. void UpdateActinAbpDynamicsEvents(int);
  698. void UpdateActinAbpDynamicsEventsSubroutine(ListInt *, int);
  699. void UpdateActinAbpDynamicsEventsSubSubroutine(ListInt *, int, int, int,
  700. ListInt *, int *);
  701. void UpdateActinSeverEvents(void);
  702. void UpdateAbpUnbRebLists(int, int, int, int);
  703. // Manage actin and ABP monomers
  704. void UpdateActinAbpMonomerList(void);
  705. void UpdateActinAbpMonomerListSubroutine(int, int, int);
  706. void UpdateActinAbpMonomerListSubroutine2(int, int, int);
  707. void UpdateMotorNucleCounter(void);
  708. // Collect arrays from adjacent subdomains
  709. void CollectArrayIntFromAdjacentSubdomain(ListInt *, int);
  710. void CollectArrayDblFromSubdomainList(double *, double *, int, ListInt *, int);
  711. /*--------------------------------- membrane.c -------------------------------*/
  712. // Calculate force
  713. void CalcMembraneRepulsiveForces(void), CalcMembraneSpringForces(void);
  714. void Calc2dMembraneBendForces(void), Calc3dMembraneBendForces(void);
  715. void CalcMembraneVolumeForces(void), CalcMembraneAreaForces(void);
  716. void CalcMembraneProtrusiveForces(void), CalcMembraneSlideForces(void);
  717. void CalcMembraneSubstrateProtrusiveForces(void);
  718. // Update information
  719. void UpdateMembraneFixation(void), UpdateMembraneRelease(void);
  720. void UpdateMembraneBinding(void), UpdateMembraneUnbindMature(void);
  721. void UpdateMembraneBindingSubroutine(int, int, int, int);
  722. int UpdateMembraneUnbindMatureSubroutine(int, int, int, int);
  723. void UpdateMembraneCenterPosition(void);
  724. void UpdateMembraneProtrusion(void), UpdateMembraneProteinRecover(void);
  725. void UpdateMembraneVolume(void), UpdateMembraneTotalArea(void);
  726. void UpdateMembraneUnitArea(void), UpdateMembranePressure(void);
  727. void UpdateMembraneSlideList(void), UpdateMembraneSlidePoint(void);
  728. // Record information
  729. void RecordMembraneDimension(int), RecordMembraneCenter(int);
  730. void RecordMembraneAdhesion(void);
  731. // Initialization
  732. void InitMembraneInformation(void), Init3dMembraneInformation(void);
  733. // Process the messages regarding the dynamic events of membranes
  734. // which will be transferred between subdomains
  735. void UpdateMembraneDynamicsEvents();
  736. void UpdateMembraneDynamicsEventsSubroutine(ListInt *);
  737. void UpdateNoMembraneDynamicsList(void);
  738. // Interactions between networks and membrane
  739. void TrimNetworkForMembrane(void);
  740. int TrimNetworkForMembraneSubroutine(double);
  741. int CheckActinAbpOverlapMembrane(double *, double *, int);
  742. double HowManyInOutMembrane(double *);
  743. // Check error
  744. void CheckMembraneError(int);
  745. /*----------------------------------- bead.c ---------------------------------*/
  746. // Calculate force
  747. void CalcBeadRepulsiveForces(void), CalcBeadActinBindingForces(void);
  748. double CalcBeadRepulsiveForcesSubroutine(double, double);
  749. // Update information
  750. void UpdateBeadNewLocation(void);
  751. void ApplyBeadSinuSignal(void), UpdateBeadActinBinding(void);
  752. //Record information
  753. void RecordBeadForceLocation(void), RecordBeadActinBinding(void);
  754. // Initialization
  755. void InitBeadInformation(void);
  756. int CheckActinAbpOverlapBead(double *, double *, int);
  757. /*--------------------------------- rheology.c -------------------------------*/
  758. // Procedures before bulk rheology measurements
  759. void PrepareBulkRheology(void), PrepareNotBulkRheology(void);
  760. // Apply stress and strain
  761. void ApplyStressStrain(void);
  762. // Choose the particles which will be traced for segment-rheology
  763. int ChooseTrajectoryListSubroutine(int, int);
  764. void ChooseTrajectoryList(void);
  765. void ReplaceElementInTrajList(int, int);
  766. // Rheological data
  767. void RecordStress(int), RecordTrajectory(int);
  768. void RecordTrajectorySubroutine(double *, int);
  769. /*---------------------------------- tools.c ---------------------------------*/
  770. // Find maximum and minimum values of values in an array
  771. int FindMaxMin1dArrayInt(int *, int, int);
  772. double FindMaxMin1dArrayDbl(double *, int, int);
  773. // Set values for an array
  774. void SetAllValue1dArrayInt(int *, int, int);
  775. void SetAllValue1dArrayDouble(double *, int, double);
  776. // Copy values in an array to other array
  777. void Copy1dArrayInt(int *, int *, int);
  778. void Copy1dArrayDouble(double *, double *, int);
  779. // Find, insert, or delete elements in an array
  780. int FindElementArray(int *, int, int, int, int);
  781. int Find2ElementArray(int *, int, int, int, int, int);
  782. int Find3ElementArray(int *, int, int, int, int, int, int);
  783. void InsertElement1dArrayWoChk(int *, int *, int);
  784. int InsertElement1dArrayWChk(int *, int *, int);
  785. void InsertElementArrayByIndex(int *, int *, int *, int, int);
  786. void DeleteElement1dArray(int *, int *, int);
  787. void DeleteElementArrayByIndex(int *, int *, int, int);
  788. int DeleteTwoElementArray(int *, int *, int, int, int, int);
  789. // Sum or average values in array
  790. double AvgArrDbl(double *, int), AvgArrInt(int *, int);
  791. double SumArrDbl(double *, int);
  792. int SumArrInt(int *, int);
  793. // Check the size of array
  794. void CheckArraySize(ListInt *, int *, int, int);
  795. void Check2dArraySize(ListInt2 *, int *, int, int);
  796. // Vector and geometry calculation (general)
  797. int CheckTriaPntDist(double [][NDIM], double *, double);
  798. int CheckTriaSegDist(double [][NDIM], double [][NDIM], double);
  799. int CheckTriaTriaDist(double [][NDIM], double [][NDIM], double);
  800. double CalcTriaPntDist(double [][NDIM], double *, double *, double *);
  801. double CalcTriaSegDist(double [][NDIM], double [][NDIM], double *, double *);
  802. double CalcTriaTriaDist(double [][NDIM], double [][NDIM], double *, double *);
  803. double CalcSegPntDist(double [][NDIM], double *, double *, double *);
  804. double CalcSegSegDist(double [][NDIM], double [][NDIM], double *,
  805. double *, int);
  806. double CalcTriaCentroidRadius(double [][NDIM], double *);
  807. void CalcTriaCircumCenter(double [][NDIM], double *);
  808. double CalcTriaArea(double *, double *, double *);
  809. double CalcTetraVol(double *, double *, double *, double *);
  810. void DistributeForceOnTria(double (*)[NDIM], double **, double *, double *);
  811. void NormVec(double *), CalcVec(double *, double *, double *);
  812. double CalcUnitVec(double *, double *, double *);
  813. double CalcDist(double *, double *, int);
  814. double CalcVecDist(double *, double *, double *, int);
  815. // Vector calculation for Specific for elements
  816. double CalcVecActinAbp(double *, int, int, int);
  817. void CalcUnitVecActinAbp(double *, int, int, int);
  818. double CalcDistActinAbp(int, int, int);
  819. double CalcVecDistActinAbp(double *, int, int, int);
  820. void CalcPosOnActSeg(double *, double *, double *, double);
  821. void CalcPosOnActSegSide(double *, double *, double *, int);
  822. void OffsetSegEndPnt(double *, double *, double *);
  823. void CalcInactAbpPosition(double *, double *, double *, double *, int, int);
  824. void CalcAbpArmEndPos(double *, int, int);
  825. void CalcMembUnitNormalDirec(int *, double *);
  826. // Find information related to actin and ABP
  827. int FindAbpActinChain(int, int, int), HowManyAbpActinChain(int, int);
  828. // Generate random information
  829. void GenRandDirecVec(double *), GenRandPosSubdom(double *);
  830. int GenRandIntIndex(int);
  831. // Calculate the rank or iCell of particles depending on location
  832. void CalcIndMolecule(double *, int *);
  833. int CalcRankMolecule(double *), CalcRankIndMolecule(double *, int *);
  834. // Adjustment for rates of dynamic behaviors of actins and ABPs
  835. double AdjustDynamicsRate(double);
  836. // Matrix calculation
  837. void MultiplyMatrixIntSerial(int *, int *, int *, int, int, int);
  838. void MultiplySqMatrixIntParallel(int *, int *, int *, int);
  839. // Misc.
  840. char *GenFileName(const char *);
  841. void SwapInt(int *, int *), SwapDbl(double *, double *);
  842. int TrimIntVal(int, int, int), SetKind(int, int, int), SignDbl(double);
  843. double TrimDblVal(double, double, double), Acos(double), Sqrt(double);
  844. int CompInt(const void *, const void *);
  845. int CompDbl(const void *, const void *);
  846. char* IntToStr(int, int);
  847. void UpdateCenterSever(void);
  848. /******************************************************************************/
  849. /****************************** Global Variables ******************************//******************************************************************************/
  850. // Variables related to time steps
  851. extern long long currTimeStep;
  852. extern double dt, dtReal;
  853. extern time_t initTime;
  854. extern Duration netForm, rheo, motActiv;
  855. // Given concentration
  856. extern int nAbpGoal, nAbpDet[NK_ABP], nAbpMall[NK_ABP], nAbpGoalDet[NK_ABP];
  857. extern double cAct, RAbp[NK_ABP];
  858. // Number of particles
  859. extern int nAct, nAbp, nMot;
  860. extern int nActMe, nActCp, nActMeCp, nActC;
  861. extern int nAbpMe, nAbpCp, nAbpMeCp, nAbpC;
  862. extern int nAcpInaMe, nMotInaMe, nAcpMme, nMotMme;
  863. extern int nActGoal, nActMall, nActFilaMe;
  864. extern int nActMin, nAbpMin, nMbMin;
  865. // Chain, position, forces, and lists of particles
  866. extern ListInt actM, acpM, motM, iFilaP;
  867. extern MoleAct act;
  868. extern MoleAbp abp;
  869. extern ActF actF;
  870. extern AbpF abpF;
  871. extern MotSelfAss motSA;
  872. extern int *chAct, *chAbp, cntAbpDC, tglNeiAbpSC, tglNeiAbpDC;
  873. extern int nChAc, nChAcX, nChAcY, nChAb, nActPerSeg, confNChAcX, confNChAcY;
  874. extern double *rAct, *rAbp;
  875. // Update neighboring list
  876. extern ListInt neigh;
  877. extern Cell cell;
  878. extern double dispHeuSq, maxNeiLenSq;
  879. // Arrays related to lists
  880. extern ListInt sendAbpDyn, noAbpDyn;
  881. extern ListInt sendActDyn, noActDyn;
  882. extern ListInt sendMbDyn, noMbDyn;
  883. extern int *fixAct, *abpMotId;
  884. // Domain (width, periodic boundary conditions, or repulsive force)
  885. extern int pbc[NDIM], neiPbc[NDIM], neiPbcMb[NDIM], confPbc[NDIM], dir2D;
  886. extern double dimDom[NDIM], dimDomH[NDIM], minDimDomC;
  887. extern Boundary bnd;
  888. // For boundaries
  889. extern FuncCont recBndLoc, updSubdSize, recBndUnbReb, recBndActMat;
  890. extern FuncCont recBndTracF;
  891. extern double *rGridInit, volMe;
  892. extern Mature bndMat;
  893. extern BndReb bndReb;
  894. extern BndUnb bndUnb;
  895. extern Force bndVol;
  896. extern BndMv bndMv;
  897. /*-------------------------- For parallel processing -------------------------*/
  898. extern FuncCont updSubdSize;
  899. extern int mpiMethod, nCpu;
  900. extern int *iAct, *iAbp;
  901. // Ranks of CPUs
  902. extern int rank, *adjRank, *iRank, *cntAdjRank;
  903. // For boundaries and indicies of subdomains
  904. extern int nCell[NDIM], iCell[NDIM], nGrid[NDIM];
  905. extern double edge[NDIM*2], **rGrid, neiEdge;
  906. // Used in CopyParticles and MoveParticles
  907. extern int *cntCpPar, *cntMvPar, modeActCh;
  908. extern ListInt *cpPar, *mvPar, insNeiPar; //, mvParAll;
  909. // Varilables related to messages
  910. extern int sizeBufMsg, *mpiTestSendFlag, *mpiTestRecvFlag;
  911. extern char **bufSendMsg, **bufRecvMsg;
  912. extern MPI_Status status;
  913. extern MPI_Request *sReq, *rReq;
  914. // Variables related to longCh
  915. extern ListInt longCh, longChExtMsg, longChIntMsg;
  916. extern double *longChDist, maxDisp, maxActCh;
  917. /*----------------------------------------------------------------------------*/
  918. /*---------------- Dynamic behaviors of actin, ACP, and motor ----------------*/
  919. extern FuncCont updMono;
  920. // Dynamics of actin
  921. extern AssDisCapUncAge actAss, actDis, actCap, actUnc, actAge;
  922. extern Burst actBst;
  923. extern Sever actSev;
  924. extern Anneal actAnn;
  925. extern Nucle actNuc;
  926. extern Degrade actDgd;
  927. extern int tglActMoDyn, tglActDyn, tglActFormDyn;
  928. extern int tglActDisBstSev, tglActDisBstSevAbp;
  929. extern int gTglActDynPres, gTglActDynNF;
  930. extern int gTglActSevCap, gTglActSevBst, gTglActCapAll;
  931. extern int gTglActTherm, gTglAcpTherm, gTglMotTherm;
  932. extern int prdUpdActM, durNoActDyn, cntDisFila;
  933. // Dynamics of ACPs and motors
  934. extern AbpDyn abpDyn;
  935. extern Reb acpReb, motReb;
  936. extern Unb acpUnb;
  937. extern MotUnbWalk motUnb, motWalk;
  938. extern InaUnbMbind acpInaUnb, motInaUnb, acpMoBind, motMoBind;
  939. extern FuncCont updMotN, abpAge;
  940. extern int tglAbpAcInaDyn, tglAbpInaMoDyn, tglAcpAcInaDyn, tglMotAcInaDyn;
  941. extern int gTglAcpDynPres, gTglMotUnbRebPres, gTglMotWalkPres;
  942. extern int gTglAcpDynNF, gTglMotUnbRebNF, gTglMotWalkNF, gTglMotWalkSld;
  943. extern int durNoAcpUnbReb, durNoMotUnbReb, durNoMotWalk;
  944. extern int gTglImpAcpM, gTglImpMotM;
  945. extern ListDbl unbLog, bindLog, toLog, sevLog;
  946. extern MotMechChem motMC;
  947. // Dynamics of membrane
  948. extern int tglMbDyn, tglMbNucDyn, durNoMbDyn, cntNucAssAnn;
  949. extern int tglMbNucLocAre;
  950. /*----------------------------------------------------------------------------*/
  951. /*----------------------- For rheological measurements -----------------------*/
  952. // For both ways
  953. extern FuncCont recStre, recProg, recConf;
  954. extern int rheoWay;
  955. // Segment rheology
  956. extern RecTraj recTraj;
  957. // Bulk rheology
  958. extern ListInt meaStrePar, appStraPar, meaStreParMe, appStraParMe, rankMeaStre;
  959. extern Strain stra;
  960. extern Stress stre;
  961. extern PreStraStre pres;
  962. extern SinuStraStre sinuStr;
  963. extern int dirStr, dirNoPBC, dirOther, prdUpdSinuStre;
  964. extern int bulkRheoWay, bulkRheoType, signStr, gotMeaStre;
  965. /*----------------------------------------------------------------------------*/
  966. /*----------------------------- For microrheology ----------------------------*/
  967. extern int gTglBead;
  968. extern Bead bead;
  969. extern BeadBind beadBind;
  970. /*----------------------------------------------------------------------------*/
  971. /*---------------------------- For data recording ----------------------------*/
  972. // For general records
  973. extern char fnOut[80], dataFold[80];
  974. // Record the accumulated chain lengths and forces
  975. extern RecLenForce recAct, recAbp, recMb;
  976. // Record configuration for VMD
  977. extern RecConfVmd recConfVmd;
  978. extern FuncCont recConfPV;
  979. // Record configuration for Matlab
  980. extern FuncCont recConfMlb;
  981. // Record internal elastic/viscous stresses
  982. extern FuncCont recSecStre;
  983. extern int nSecStreDiv[NDIM];
  984. extern double *viscStre, *elasStre;
  985. // Record the percolation of networks
  986. extern FuncCont recPerc;
  987. extern int *iPerc, dirRecPerc;
  988. // Find supportive framework
  989. extern FuncCont findSupp;
  990. extern int kindFindSupp, *iSupp;
  991. extern double porFindSupp;
  992. // Record the turnover of ACPs or motors
  993. extern int tglRecAbpTurn;
  994. extern double *abpTurn;
  995. // Record (longitudinal) forces of ACPs or motors
  996. extern FuncCont recLongF;
  997. extern double *recLongSprFabp, *recInstSprFabp;
  998. // Record etc
  999. extern FuncCont confVmdInfo, recFilaL, recE, recInfo;
  1000. extern FuncCont recMotSize, recMotPos, recCrsDist, recAbpDyn, recConn;
  1001. extern FuncCont recPoreSize, recAbpUnb, recAbpBind, recAbpTurn, recActSev;
  1002. extern FuncCont recMbCen, recMbDim, recBeadLoc;
  1003. /*----------------------------------------------------------------------------*/
  1004. /*--------------------------- Membrane & nucleus------------------------------*/
  1005. extern int gTglLoadMbNucData, dirNormMbNuc, dimMbNuc;
  1006. extern int nMb, nMbMe, nMbCp, nMbC, nUnitMb, nChMb, nObjMbNuc;
  1007. extern int *chMb, *iMb, *unitMb, *rebMb, *actRebMb, dirMbNuc[NDIM], *idxMb;
  1008. extern double *rMb, *nDirMb, *eqLenMb, *cenMb, *nDirUnitMb, *eqArUnitMb;
  1009. extern double stfRepMbNuc;
  1010. extern Cell cellMb;
  1011. extern ListInt neighMb;
  1012. /*---------------------------------- Membrane --------------------------------*/
  1013. extern int gTglMb, gTglMbTherm, gTglMbActNuc, gTglMbCont;
  1014. extern int nMbAct, nMbPerObj;
  1015. extern int levMb, sideMb, maxNFAMb;
  1016. extern double radMb, radMbInit, thkMbActNuc;
  1017. extern MembNuc memb;
  1018. extern Unb mbUnb, mbDef;
  1019. extern Mature mbMat;
  1020. extern Reb mbReb, mbFix;
  1021. extern MembPro mbPro;
  1022. extern FuncCont mbVol, mbAre;
  1023. extern MembSld mbSld;
  1024. /*----------------------------------- Nucleus --------------------------------*/
  1025. extern int gTglNuc, gTglNucTherm, gTglNucActNuc;
  1026. extern int nNucAct, nNucPerObj;
  1027. extern int levNuc;
  1028. extern double radNuc, radNucInit;
  1029. extern Unb nucUnb;
  1030. extern MembNucReb nucReb;
  1031. extern FuncCont nucVol, nucAre;
  1032. /*----------------------------------------------------------------------------*/
  1033. // Check errors
  1034. extern int stopSig;
  1035. extern double magUnstF;
  1036. // Misc.
  1037. extern int gTglLoadNetData, gTglLoadNetDataFix;
  1038. extern int seed, *allIntL;
  1039. extern double *arrAcos, *allDblL;
  1040. extern int typeBias, tglBias;
  1041. extern double thkBias, degBias;

header.h at commit 707dbea, no license · at the source

Overview

  1. RIKEN Center for Integrative Medical Sciences, 1-7-22 Suehiro-cho, Tsurumi-ku, Yokohama, Kanagawa 230-0045, Japan
  2. RIKEN Center for Biosystems Dynamics Research, 2-2-3 Minatojima-minamimachi, Chuo-ku, Kobe, Hyogo 650-0047, Japan
  3. Graduate School of Medicine, Science and Technology, Shinshu University, 3-1-1 Asahi, Matsumoto, Nagano 390-8621, Japan
  4. PRESTO, JST, 4-1-8 Honcho, Kawaguchi, Saitama 332-0012, Japan
  5. Weldon School of Biomedical Engineering, Purdue University, West Lafayette, IN 47907-2032, USA
  6. EMBRIO Institute, Purdue University, West Lafayette, IN 47907-2032, USA
  7. Faculty of Science and Technology, Keio University, Kohoku-ku, Yokohama, Kanagawa 223-0061, Japan
Journal: Science advances, volume 12, issue 31, article eaed8818
Dates: received 18 November 2025; accepted 24 June 2026; published online 29 July 2026; in print July 2026
Type: Research article · Language: English
License: CC BY-NC
Identifiers: DOI 10.1126/sciadv.aed8818 · PMID 42525777 · PMCID PMC13440360 · OpenAlex W7171704708
Open access: gold, a free copy (OpenAlex)
Status: code verified
Categories: cellular / molecular (subfield)
MeSH: Actomyosin*, Cell Membrane*, Liposomes*, Actin Cytoskeleton, Actins, Animals, Models, Biological (* major topic)
Topic: Lipid Membrane Structure and Behavior (Molecular Biology, Biochemistry, Genetics and Molecular Biology), according to OpenAlex
Funding: Grant-in-Aid for Transformative Research Areas (22H05171); National Institutes of Health (1R01GM151628); NIGMS NIH HHS (R01 GM151628); SPIRITS 2020 of Kyoto University (N/A); Fund for the Promotion of Joint International Research (18KK0420); EMBRIO Institute (2120200); Japan Science and Technology Agency (JPMJFR2417, JPMJPR20ED); Kishimoto Foundation Research Grant (N/A); Hakubi Project of Kyoto University
Citations: not cited yet (Europe PMC); 93 references in the paper

Abstract

The actin cortex, a thin layer of actomyosin network beneath the plasma membrane, regulates various cell functions by generating active forces and inducing membrane deformations, including blebs. Although upstream signaling is involved in regulating cell shape, the extent to which downstream actomyosin molecules can control the shape remains elusive. Here, using a minimal reconstituted system combined with an agent-based computational model, we show that actin-membrane coupling strength determines the magnitude of membrane deformation, while its balance with actin network connectivity governs the bleb initiation mechanism, either by detachment of the cortex from the membrane or by rupture of the cortex. This balance also modulates single versus multiple bleb formation, thereby regulating symmetry breaking. Furthermore, our results suggest that not only the dense cortical network but also the sparse volume-spanning network actively contributes to the regulation of bleb number. These findings provide mechanistic insights into how cells tune actin network organization to control their shape and polarity.

Reproduced under the paper's license (CC BY-NC), from the paper cited above.

Repositories

Its files are read in the Code ↔ Paper reader above, with 2 matches between paragraphs and lines of code.

ktyman2/CellBleb

License: none: the authors keep all their rights
State: the link answers, verified on 27 September 2026
Evidence: files inventoried
Commit: 707dbea3af825df2bec27deb4e63dbc1ae487edd, 6 April 2026
Languages: C (19), C/C++ (1)
Size: 25 files, 20 scripts
Software Heritage: not archived
Found in: “Data, code, and materials availability:”
Not found: README, license file, CITATION.cff, environment file, tests, continuous integration, documentation
Availability: 1 check, the latest on 27 September 2026: the link answers
  • 27 September 2026: the link answers
20 files

Zenodo 19435449

License: CC-BY-4.0
State: the link answers, verified on 27 September 2026
Evidence: files inventoried
Size: 1 file
Software Heritage: not checked
Found in: “Data, code, and materials availability:”
Not found: README, license file, CITATION.cff, environment file, tests, continuous integration, documentation
Availability: 1 check, the latest on 27 September 2026: the link answers (HTTP 200)
  • 27 September 2026: the link answers (HTTP 200)
20 files

The paper's code and data availability statement is in the Data section.

Tracing map

Proposed by the machine: these links were found in the paper and verified at the source, without human review. The map will receive a Zenodo DOI once one of the paper's authors has validated it with their ORCID.

What the map holds:

  • 2 repositories of the authors' code, each at its verified commit, with its license and how the link was found in the paper;
  • 40 scripts, each with its path and the digest of its content;
  • 2 matches between paragraphs of the paper and lines of the code (method lexical-v1);
  • neither the text of the paper nor the code itself.

Its JSON (tracing-map.json) is deposited on Zenodo with its DOI once the map is validated.

Data

No dataset and no data link were found in the paper.

Data, code, and materials availability

All relevant codes for the agent-based model simulation can be found on the GitHub repository: https://github.com/ktyman2/CellBleb (Zenodo: DOI: 10.5281/zenodo.19435449 (http://dx.doi.org/10.5281/zenodo.19435449)) and are MIT licensed together with an archived version for reproducibility (55). Plasmids are available from Makito Miyazaki () upon reasonable request. All data and code needed to evaluate and reproduce the results in the paper are present in the paper and/or the Supplementary Materials. This study did not generate new materials.

Reproduced under the paper's license (CC BY-NC), from the paper cited above.

Versions

The history of this record: each version stored by the harvester or made by a correction of its authors or of the maintainers of its code, and what changed in its facts. The texts of the paper (its abstract, its availability statements) are not part of it; versions that changed only those are not listed.

Version 1, 27 September 2026: the first record

Recorded: type, language, journal, volume, issue, pages, dates, 3 authors, 7 MeSH terms, 9 funders, 84 references.

Cite

This paper

Miyazaki, M., Laboni, F. S., & Kim, T. (2026). Reconstitution of actomyosin networks in cell-sized liposomes dissects distinct mechanisms of membrane blebbing and symmetry breaking. Science advances, 12(31), eaed8818. https://doi.org/10.1126/sciadv.aed8818

BibTeX

@article{miyazaki2026reconstitution,
author = {Miyazaki, Makito and Laboni, Fahmida Sultana and Kim, Taeyoon},
title = {{Reconstitution of actomyosin networks in cell-sized liposomes dissects distinct mechanisms of membrane blebbing and symmetry breaking}},
journal = {Science advances},
year = {2026},
month = jul,
volume = {12},
number = {31},
pages = {eaed8818},
publisher = {American Association for the Advancement of Science},
issn = {2375-2548},
doi = {10.1126/sciadv.aed8818},
url = {https://doi.org/10.1126/sciadv.aed8818},
pmid = {42525777},
pmcid = {PMC13440360}
}

RIS

TY - JOUR
AU - Miyazaki, Makito
AU - Laboni, Fahmida Sultana
AU - Kim, Taeyoon
TI - Reconstitution of actomyosin networks in cell-sized liposomes dissects distinct mechanisms of membrane blebbing and symmetry breaking
T2 - Science advances
J2 - Sci Adv
PY - 2026
DA - 2026/07/29
VL - 12
IS - 31
SP - eaed8818
SN - 2375-2548
PB - American Association for the Advancement of Science
DO - 10.1126/sciadv.aed8818
UR - https://doi.org/10.1126/sciadv.aed8818
LA - en
ER -

CSL-JSON

{
"id": "10.1126/sciadv.aed8818",
"type": "article-journal",
"title": "Reconstitution of actomyosin networks in cell-sized liposomes dissects distinct mechanisms of membrane blebbing and symmetry breaking",
"container-title": "Science advances",
"author": [
{
"family": "Miyazaki",
"given": "Makito"
},
{
"family": "Laboni",
"given": "Fahmida Sultana"
},
{
"family": "Kim",
"given": "Taeyoon"
}
],
"container-title-short": "Sci Adv",
"volume": "12",
"issue": "31",
"page": "eaed8818",
"DOI": "10.1126/sciadv.aed8818",
"PMID": "42525777",
"PMCID": "PMC13440360",
"ISSN": "2375-2548",
"publisher": "American Association for the Advancement of Science",
"URL": "https://doi.org/10.1126/sciadv.aed8818",
"language": "en",
"issued": {
"date-parts": [
[
2026,
7,
29
]
]
}
}

The tracing map gets a citation of its own once an author has validated it and it has a DOI.

Similar papers

The papers with a page that share the most with this one: the tools found in their code, their categories, datasets, cited references and authors, the rarest counting most.

[1] doi:10.1186/s12860-026-00584-w
A role for PaxB in regulating blebbing: experimental insights and theoretical perspectives from Dictyostelium discoideum.
Journal: BMC molecular and cell biology
In common: 7 references
[2] doi:10.1038/s41556-026-01965-1 [code]
Long-range mutual activation establishes Rho and Rac polarity during cell migration.
Journal: Nature cell biology
In common: cellular / molecular, 3 references
[3] doi:10.1038/s41467-026-72845-3 [code]
The membrane-to-cortex distance regulates mDia1 activity to control cortical mechanics.
Journal: Nature communications
In common: cellular / molecular, 2 references
[4] doi:10.1002/2211-5463.70302
KDAC6 alters cell morphology and motility through positive and negative modulation of F-actin distribution.
Journal: FEBS open bio
In common: cellular / molecular, 1 reference
[5] doi:10.1038/s41467-026-73192-z [code]
Chromatin- and actin-mediated mitochondrial streaming leads to patterning of mitochondrial distribution in oocytes.
Journal: Nature communications
In common: cellular / molecular, 1 reference
[6] doi:10.1038/s44319-026-00843-z
Arf1 is involved in Neisseria meningitidis-induced cortical branched F-actin network reorganization.
Journal: EMBO reports
In common: cellular / molecular, 1 reference
[7] doi:10.1242/bio.062356
aPKC and F-actin dynamics promote Hippo pathway polarity in asymmetrically dividing neuroblasts.
Journal: Biology open
In common: cellular / molecular, 1 reference
[8] doi:10.1126/sciadv.aeb3209 [code]
The actomyosin cortex controls t-tubule remodeling in skeletal muscle.
Journal: Science advances
In common: cellular / molecular, 1 reference
[9] doi:10.1371/journal.pone.0350674
Transcriptomic profile of the hippocampus of rat strains with contrasting nervous system excitability.
Journal: PloS one
In common: cellular / molecular, 1 reference
[10] doi:10.1371/journal.pcbi.1014216 [code]
Diversity in emergent cell locomotion from the coupling cytosolic and cortical Marangoni flows with reaction-diffusion dynamics.
Journal: PLoS computational biology
In common: cellular / molecular, 1 reference

Contribute

The authors of this paper can claim it, correct its record and validate its tracing map, and the maintainers of its code (its owner, or a public member of its organization) correct what it says of their repository; anyone signed in can ask for its removal. Every request goes to OSCR's own machine, which answers it; your account page follows them.

Sign in with ORCID to claim this paper as one of its authors, correct its record or validate its tracing map: when the paper's metadata lists your ORCID iD, you are recognized at once. Maintainers of its code: sign in with GitHub, then claim the repository on your account page.

Request its removal

To ask OSCR to remove this record, the copies of its authors' scripts or its tracing map, use the removal request page: signed in, you say who you are, what to remove and why, then review and confirm the request. Published rules decide every request (how).

Discussion, reproductions, activity

Discussion: questions and error reports about this paper and its code, from signed-in readers and its authors. It opens with sign-in.

Reproductions: reports from readers who ran the authors' code: what they reproduced, with which environment, commit and data. It opens with sign-in.

Activity: what happens around this paper: new versions of its record, its map's validation, discussions and reproductions. It opens with sign-in.