9 Commits

Author SHA1 Message Date
  Gaspard Jankowiak 13a5bf0007 add batch files 11 months ago
  Gaspard Jankowiak ce9f78509c missing comma 11 months ago
  Gaspard Jankowiak d3339a6363 [config] add flag when running batches to close figures 11 months ago
  Gaspard Jankowiak b7146d1253 [nucleus] use 4 points to compute curvature instead of 3 11 months ago
  Gaspard Jankowiak 0cb10429f2 [nucleus] recompute coordinates once in a while 11 months ago
  Gaspard Jankowiak 3b84d59d49 flag to follow nucleus instead of the cell 11 months ago
  Gaspard Jankowiak 949f238152 change nucleus color + border 11 months ago
  Gaspard Jankowiak 9cdce4b914 plot_data: remove old files 11 months ago
  Gaspard Jankowiak 9ae278abc7 no nucleus configs for metrics 11 months ago

+ 97
- 0
configs_metrics/no_nucleus/varia_KMT.yaml View File

@@ -0,0 +1,97 @@
1
+params:
2
+    N: 250 # number of points
3
+    M: 80000 # max. number of iterations
4
+
5
+    δt: 2e-4 # time step
6
+
7
+    P: 4*6.15e-1 # pressure
8
+    K: 3e-1 # membrane elasticity
9
+    Ka: 1 # cortex viscosity
10
+    mu: 10 # area constraint relaxation constant
11
+    target_area: 1.8 # cortex target area
12
+
13
+    c: 1e1 # polymerization speed
14
+
15
+    x0_a: 2*0.25 # initial ellipsis width
16
+    x0_b: 2 # initial ellipsis height
17
+    x0_shift: 0.0 # initial vertical shift
18
+
19
+    # Confinement field
20
+
21
+    f_α: 2e1 # sharpness
22
+    f_β: 0.2 # depth
23
+    f_ω0: 8 # pulsation
24
+    f_σ: 1 # direction
25
+    f_nk: 1 # number of Fourier components
26
+        # to approximate a saw-tooth signal
27
+    f_width: 0.4 # mean width
28
+    f_iwidth: 3.0 # inner width, unused
29
+
30
+    drag_gauss_power: 4.0 # drag_gauss_power
31
+    drag_gauss_width: 3.5 # drag_gauss_width
32
+
33
+    mass_gauss_power: 6.0 # mass_gauss_power
34
+    mass_gauss_width: 1.0 # mass_gauss_width
35
+
36
+    polar_shift: 6.0
37
+
38
+    k_MT: 1e-2              #friction of MT
39
+    MT_potential_power: -2
40
+    MT_factor: 1e-2         #strength of MT
41
+    #
42
+    # Nucleus related parameters
43
+    Nnuc: 200   # number of points on the nucleus
44
+    N_P: -1e0 # pressure
45
+    N_mu: 20 # area constraint relaxation
46
+    N_target_area: 0.7
47
+    N_kb: 5e-3 # bending stiffness
48
+    N_ω:  1e-1 # inplane stiffness
49
+    N_W0: 7e-1  # potential offset
50
+    N_kcont: 5e0 # contact force intensity
51
+    N_αcont: 1e1 # contact force sharpness
52
+    N_kc: 1e-3 # centrosome link stiffness
53
+    N_l0c: 5e-1 # centrosome link rest length
54
+    N_r_init: 2.0e-1 # initial nucleus radius
55
+flags:
56
+    confine:              true
57
+    adjust_drag:          false
58
+    polymerize:           true
59
+    dryrun:               true
60
+    plot:                 true
61
+    pretty:               false
62
+    continuous:           true
63
+    innerloop:            false
64
+    weighted_confinement: true
65
+    write_animation:      true
66
+    landscape_plot:       false
67
+    plot_drag:            true
68
+    circular_wall:        false
69
+    cortex:               true
70
+    centrosome:           true
71
+    nucleus:              false
72
+    follow_cam:           false
73
+    debug:                false
74
+    force_cortex_area:    true
75
+    write_metrics:        true
76
+
77
+config:
78
+    output_prefix: nonuc_variaKMT
79
+
80
+    plot_period: 20
81
+
82
+    metrics:
83
+        start_iteration: 1
84
+        periods: 2
85
+
86
+    load_state:
87
+        do_load: false
88
+        filename: "initial_conditions/torino_width_1_x.csv"
89
+        do_resample: false
90
+        do_recenter: false
91
+
92
+        init_centro: false
93
+        filename_centro: "initial_conditions/torino_width_1_centro.csv"
94
+
95
+        # shift_nucleus: 0.25 # 3/4 of a period = 3/4 * 2π / f.ω0
96
+
97
+   

+ 97
- 0
configs_metrics/no_nucleus/varia_beta_param.yaml View File

@@ -0,0 +1,97 @@
1
+params:
2
+    N: 250 # number of points
3
+    M: 20000 # max. number of iterations
4
+
5
+    δt: 2e-4 # time step
6
+
7
+    P: 4*6.15e-1 # pressure
8
+    K: 3e-1 # membrane elasticity
9
+    Ka: 1 # cortex viscosity
10
+    mu: 50 # area constraint relaxation constant
11
+    target_area: 1.8 # cortex target area
12
+
13
+    c: 1e1 # polymerization speed
14
+
15
+    x0_a: 2*0.25 # initial ellipsis width
16
+    x0_b: 2 # initial ellipsis height
17
+    x0_shift: 0.0 # initial vertical shift
18
+
19
+    # Confinement field
20
+
21
+    f_α: 2e1 # sharpness
22
+    f_β: 0.10 # depth
23
+    f_ω0: 8 # pulsation
24
+    f_σ: 1 # direction
25
+    f_nk: 1 # number of Fourier components to approximate a saw-tooth signal
26
+    f_width: 0.4 # mean width
27
+    f_iwidth: 3.0 # inner width, unused
28
+
29
+    drag_gauss_power: 4.0 # drag_gauss_power
30
+    drag_gauss_width: 3.5 # drag_gauss_width
31
+
32
+    mass_gauss_power: 6.0 # mass_gauss_power
33
+    mass_gauss_width: 1.0 # mass_gauss_width
34
+
35
+    polar_shift: 6.0
36
+
37
+    k_MT: 1e-4              #friction of MT
38
+    MT_potential_power: -2
39
+    MT_factor: 1e-2         #strength of MT
40
+    #
41
+    # Nucleus related parameters
42
+    Nnuc: 200   # number of points on the nucleus
43
+    N_P: -1e0 # pressure
44
+    N_mu: 100 # area constraint relaxation
45
+    N_target_area: 0.7
46
+    N_kb: 5e-4 # bending stiffness
47
+    N_ω:  1e-1 # inplane stiffness
48
+    N_W0: 7e-1  # potential offset
49
+    N_kcont: 5e0 # contact force intensity
50
+    N_αcont: 1e1 # contact force sharpness
51
+    N_kc: 1e-3 # centrosome link stiffness
52
+    N_l0c: 5e-1 # centrosome link rest length
53
+    N_r_init: 2.0e-1 # initial nucleus radius
54
+
55
+flags:
56
+    confine:              true
57
+    adjust_drag:          false
58
+    polymerize:           true
59
+    dryrun:               true
60
+    plot:                 true
61
+    pretty:               false
62
+    continuous:           true
63
+    innerloop:            false
64
+    weighted_confinement: true
65
+    write_animation:      true
66
+    landscape_plot:       false
67
+    plot_drag:            true
68
+    circular_wall:        false
69
+    cortex:               true
70
+    centrosome:           true
71
+    nucleus:              false
72
+    follow_cam:           false
73
+    debug:                false
74
+    force_cortex_area:    true
75
+    write_metrics:        true
76
+
77
+config:
78
+    output_prefix: nonuc_beta
79
+
80
+    plot_period: 20
81
+
82
+    metrics:
83
+        start_iteration: 1
84
+        periods: 2
85
+
86
+    load_state:
87
+        do_load: false
88
+        filename: "initial_conditions/torino_width_1_x.csv"
89
+        do_resample: false
90
+        do_recenter: false
91
+
92
+        init_centro: false
93
+        filename_centro: "initial_conditions/torino_width_1_centro.csv"
94
+
95
+        # shift_nucleus: 0.25 # 3/4 of a period = 3/4 * 2π / f.ω0
96
+
97
+   

+ 97
- 0
configs_metrics/no_nucleus/varia_kb_mu100.yaml View File

@@ -0,0 +1,97 @@
1
+params:
2
+    N: 250 # number of points
3
+    M: 80000 # max. number of iterations
4
+
5
+    δt: 2e-4 # time step
6
+
7
+    P: 4*6.15e-1 # pressure
8
+    K: 3e-1 # membrane elasticity
9
+    Ka: 1 # cortex viscosity
10
+    mu: 50 # area constraint relaxation constant
11
+    target_area: 1.8 # cortex target area
12
+
13
+    c: 1e1 # polymerization speed
14
+
15
+    x0_a: 2*0.25 # initial ellipsis width
16
+    x0_b: 2 # initial ellipsis height
17
+    x0_shift: 0.0 # initial vertical shift
18
+
19
+    # Confinement field
20
+
21
+    f_α: 2e1 # sharpness
22
+    f_β: 0.2 # depth
23
+    f_ω0: 8 # pulsation
24
+    f_σ: 1 # direction
25
+    f_nk: 1 # number of Fourier components
26
+        # to approximate a saw-tooth signal
27
+    f_width: 0.4 # mean width
28
+    f_iwidth: 3.0 # inner width, unused
29
+
30
+    drag_gauss_power: 4.0 # drag_gauss_power
31
+    drag_gauss_width: 3.5 # drag_gauss_width
32
+
33
+    mass_gauss_power: 6.0 # mass_gauss_power
34
+    mass_gauss_width: 1.0 # mass_gauss_width
35
+
36
+    polar_shift: 6.0
37
+
38
+    k_MT: 1e-4              #friction of MT
39
+    MT_potential_power: -2
40
+    MT_factor: 1e-2         #strength of MT
41
+    #
42
+    # Nucleus related parameters
43
+    Nnuc: 200   # number of points on the nucleus
44
+    N_P: -1e0 # pressure
45
+    N_mu: 100 # area constraint relaxation
46
+    N_target_area: 0.7
47
+    N_kb: 1e-2 # bending stiffness
48
+    N_ω:  1e-1 # inplane stiffness
49
+    N_W0: 7e-1  # potential offset
50
+    N_kcont: 5e0 # contact force intensity
51
+    N_αcont: 1e1 # contact force sharpness
52
+    N_kc: 1e-3 # centrosome link stiffness
53
+    N_l0c: 5e-1 # centrosome link rest length
54
+    N_r_init: 2.0e-1 # initial nucleus radius
55
+flags:
56
+    confine:              true
57
+    adjust_drag:          false
58
+    polymerize:           true
59
+    dryrun:               true
60
+    plot:                 true
61
+    pretty:               false
62
+    continuous:           true
63
+    innerloop:            false
64
+    weighted_confinement: true
65
+    write_animation:      true
66
+    landscape_plot:       false
67
+    plot_drag:            true
68
+    circular_wall:        false
69
+    cortex:               true
70
+    centrosome:           true
71
+    nucleus:              false
72
+    follow_cam:           false
73
+    debug:                false
74
+    force_cortex_area:    true
75
+    write_metrics:        true
76
+
77
+config:
78
+    output_prefix: nonuc_mu100_variakb
79
+
80
+    plot_period: 20
81
+
82
+    metrics:
83
+        start_iteration: 1
84
+        periods: 2
85
+
86
+    load_state:
87
+        do_load: false
88
+        filename: "initial_conditions/torino_width_1_x.csv"
89
+        do_resample: false
90
+        do_recenter: false
91
+
92
+        init_centro: false
93
+        filename_centro: "initial_conditions/torino_width_1_centro.csv"
94
+
95
+        # shift_nucleus: 0.25 # 3/4 of a period = 3/4 * 2π / f.ω0
96
+
97
+   

+ 98
- 0
configs_metrics/no_nucleus/varia_kb_mu20.yaml View File

@@ -0,0 +1,98 @@
1
+params:
2
+    N: 250 # number of points
3
+    M: 15000 # max. number of iterations
4
+
5
+    δt: 2e-4 # time step
6
+
7
+    P: 4*6.15e-1 # pressure
8
+    K: 3e-1 # membrane elasticity
9
+    Ka: 1 # cortex viscosity
10
+    mu: 10 # area constraint relaxation constant
11
+    target_area: 1.8 # cortex target area
12
+
13
+    c: 1e1 # polymerization speed
14
+
15
+    x0_a: 2*0.25 # initial ellipsis width
16
+    x0_b: 2 # initial ellipsis height
17
+    x0_shift: 0.0 # initial vertical shift
18
+
19
+    # Confinement field
20
+
21
+    f_α: 2e1 # sharpness
22
+    f_β: 0.2 # depth
23
+    f_ω0: 8 # pulsation
24
+    f_σ: 1 # direction
25
+    f_nk: 1 # number of Fourier components
26
+        # to approximate a saw-tooth signal
27
+    f_width: 0.4 # mean width
28
+    f_iwidth: 3.0 # inner width, unused
29
+
30
+    drag_gauss_power: 4.0 # drag_gauss_power
31
+    drag_gauss_width: 3.5 # drag_gauss_width
32
+
33
+    mass_gauss_power: 6.0 # mass_gauss_power
34
+    mass_gauss_width: 1.0 # mass_gauss_width
35
+
36
+    polar_shift: 6.0
37
+
38
+    k_MT: 1e-4              #friction of MT
39
+    MT_potential_power: -2
40
+    MT_factor: 1e-2         #strength of MT
41
+    #
42
+    # Nucleus related parameters
43
+    Nnuc: 200   # number of points on the nucleus
44
+    N_P: -1e0 # pressure
45
+    N_mu: 20 # area constraint relaxation
46
+    N_target_area: 0.7
47
+    N_kb: 1e-3 # bending stiffness
48
+    N_ω:  1e-1 # inplane stiffness
49
+    N_W0: 7e-1  # potential offset
50
+    N_kcont: 5e0 # contact force intensity
51
+    N_αcont: 1e1 # contact force sharpness
52
+    N_kc: 1e-3 # centrosome link stiffness
53
+    N_l0c: 5e-1 # centrosome link rest length
54
+    N_r_init: 2.0e-1 # initial nucleus radius
55
+
56
+flags:
57
+    confine:              true
58
+    adjust_drag:          false
59
+    polymerize:           true
60
+    dryrun:               true
61
+    plot:                 true
62
+    pretty:               false
63
+    continuous:           true
64
+    innerloop:            false
65
+    weighted_confinement: true
66
+    write_animation:      true
67
+    landscape_plot:       false
68
+    plot_drag:            true
69
+    circular_wall:        false
70
+    cortex:               true
71
+    centrosome:           true
72
+    nucleus:              false
73
+    follow_cam:           false
74
+    debug:                false
75
+    force_cortex_area:    true
76
+    write_metrics:        true
77
+
78
+config:
79
+    output_prefix: nonuc_mu20_variakb
80
+
81
+    plot_period: 20
82
+
83
+    metrics:
84
+        start_iteration: 1
85
+        periods: 2
86
+
87
+    load_state:
88
+        do_load: false
89
+        filename: "initial_conditions/torino_width_1_x.csv"
90
+        do_resample: false
91
+        do_recenter: false
92
+
93
+        init_centro: false
94
+        filename_centro: "initial_conditions/torino_width_1_centro.csv"
95
+
96
+        # shift_nucleus: 0.25 # 3/4 of a period = 3/4 * 2π / f.ω0
97
+
98
+   

+ 97
- 0
configs_metrics/no_nucleus/varia_kb_mu60.yaml View File

@@ -0,0 +1,97 @@
1
+params:
2
+    N: 250 # number of points
3
+    M: 80000 # max. number of iterations
4
+
5
+    δt: 2e-4 # time step
6
+
7
+    P: 4*6.15e-1 # pressure
8
+    K: 3e-1 # membrane elasticity
9
+    Ka: 1 # cortex viscosity
10
+    mu: 10 # area constraint relaxation constant
11
+    target_area: 1.8 # cortex target area
12
+
13
+    c: 1e1 # polymerization speed
14
+
15
+    x0_a: 2*0.25 # initial ellipsis width
16
+    x0_b: 2 # initial ellipsis height
17
+    x0_shift: 0.0 # initial vertical shift
18
+
19
+    # Confinement field
20
+
21
+    f_α: 2e1 # sharpness
22
+    f_β: 0.2 # depth
23
+    f_ω0: 8 # pulsation
24
+    f_σ: 1 # direction
25
+    f_nk: 1 # number of Fourier components
26
+        # to approximate a saw-tooth signal
27
+    f_width: 0.4 # mean width
28
+    f_iwidth: 3.0 # inner width, unused
29
+
30
+    drag_gauss_power: 4.0 # drag_gauss_power
31
+    drag_gauss_width: 3.5 # drag_gauss_width
32
+
33
+    mass_gauss_power: 6.0 # mass_gauss_power
34
+    mass_gauss_width: 1.0 # mass_gauss_width
35
+
36
+    polar_shift: 6.0
37
+
38
+    k_MT: 1e-4              #friction of MT
39
+    MT_potential_power: -2
40
+    MT_factor: 1e-2         #strength of MT
41
+    #
42
+    # Nucleus related parameters
43
+    Nnuc: 200   # number of points on the nucleus
44
+    N_P: -1e0 # pressure
45
+    N_mu: 60 # area constraint relaxation
46
+    N_target_area: 0.7
47
+    N_kb: 5e-2 # bending stiffness
48
+    N_ω:  1e-1 # inplane stiffness
49
+    N_W0: 7e-1  # potential offset
50
+    N_kcont: 5e0 # contact force intensity
51
+    N_αcont: 1e1 # contact force sharpness
52
+    N_kc: 1e-2 # centrosome link stiffness
53
+    N_l0c: 5e-1 # centrosome link rest length
54
+    N_r_init: 2.0e-1 # initial nucleus radius
55
+flags:
56
+    confine:              true
57
+    adjust_drag:          false
58
+    polymerize:           true
59
+    dryrun:               true
60
+    plot:                 true
61
+    pretty:               false
62
+    continuous:           true
63
+    innerloop:            false
64
+    weighted_confinement: true
65
+    write_animation:      true
66
+    landscape_plot:       false
67
+    plot_drag:            true
68
+    circular_wall:        false
69
+    cortex:               true
70
+    centrosome:           true
71
+    nucleus:              true
72
+    follow_cam:           false
73
+    debug:                false
74
+    force_cortex_area:    true
75
+    write_metrics:        true
76
+
77
+config:
78
+    output_prefix: test_width1_mu60_variakb5em2
79
+
80
+    plot_period: 20
81
+
82
+    metrics:
83
+        start_iteration: 1
84
+        periods: 2
85
+
86
+    load_state:
87
+        do_load: false
88
+        filename: "initial_conditions/torino_width_1_x.csv"
89
+        do_resample: false
90
+        do_recenter: false
91
+
92
+        init_centro: false
93
+        filename_centro: "initial_conditions/torino_width_1_centro.csv"
94
+
95
+        # shift_nucleus: 0.25 # 3/4 of a period = 3/4 * 2π / f.ω0
96
+
97
+   

+ 95
- 0
configs_metrics/no_nucleus/varia_mu.yaml View File

@@ -0,0 +1,95 @@
1
+params:
2
+    N: 250 # number of points
3
+    M: 80000 # max. number of iterations
4
+
5
+    δt: 2e-4 # time step
6
+
7
+    P: 4*6.15e-1 # pressure
8
+    K: 3e-1 # membrane elasticity
9
+    Ka: 1 # cortex viscosity
10
+    mu: 10 # area constraint relaxation constant
11
+    target_area: 1.8 # cortex target area
12
+
13
+    c: 1e1 # polymerization speed
14
+
15
+    x0_a: 2*0.25 # initial ellipsis width
16
+    x0_b: 2 # initial ellipsis height
17
+    x0_shift: 0.0 # initial vertical shift
18
+
19
+    # Confinement field
20
+
21
+    f_α: 2e1 # sharpness
22
+    f_β: 0.2 # depth
23
+    f_ω0: 8 # pulsation
24
+    f_σ: 1 # direction
25
+    f_nk: 1 # number of Fourier components
26
+        # to approximate a saw-tooth signal
27
+    f_width: 0.4 # mean width
28
+    f_iwidth: 3.0 # inner width, unused
29
+
30
+    drag_gauss_power: 4.0 # drag_gauss_power
31
+    drag_gauss_width: 3.5 # drag_gauss_width
32
+
33
+    mass_gauss_power: 6.0 # mass_gauss_power
34
+    mass_gauss_width: 1.0 # mass_gauss_width
35
+
36
+    polar_shift: 6.0
37
+
38
+    k_MT: 1e-4              #friction of MT
39
+    MT_potential_power: -2
40
+    MT_factor: 1e-2         #strength of MT
41
+    #
42
+    # Nucleus related parameters
43
+    Nnuc: 200   # number of points on the nucleus
44
+    N_P: -1e0 # pressure
45
+    N_mu: 60 # area constraint relaxation
46
+    N_target_area: 0.7
47
+    N_kb: 5e-3 # bending stiffness
48
+    N_ω:  1e-1 # inplane stiffness
49
+    N_W0: 7e-1  # potential offset
50
+    N_kcont: 5e0 # contact force intensity
51
+    N_αcont: 1e1 # contact force sharpness
52
+    N_kc: 1e-3 # centrosome link stiffness
53
+    N_l0c: 5e-1 # centrosome link rest length
54
+    N_r_init: 2.0e-1 # initial nucleus radius
55
+flags:
56
+    confine:              true
57
+    adjust_drag:          false
58
+    polymerize:           true
59
+    dryrun:               true
60
+    plot:                 true
61
+    pretty:               false
62
+    continuous:           true
63
+    innerloop:            false
64
+    weighted_confinement: true
65
+    write_animation:      true
66
+    landscape_plot:       false
67
+    plot_drag:            true
68
+    circular_wall:        false
69
+    cortex:               true
70
+    centrosome:           true
71
+    nucleus:              false
72
+    follow_cam:           false
73
+    debug:                false
74
+    force_cortex_area:    true
75
+    write_metrics:        true
76
+
77
+config:
78
+    output_prefix: nonuc_variamu
79
+
80
+    plot_period: 20
81
+
82
+    metrics:
83
+        start_iteration: 1
84
+        periods: 2
85
+
86
+    load_state:
87
+        do_load: false
88
+        filename: "initial_conditions/torino_width_1_x.csv"
89
+        do_resample: false
90
+        do_recenter: false
91
+
92
+        init_centro: false
93
+        filename_centro: "initial_conditions/torino_width_1_centro.csv"
94
+
95
+        # shift_nucleus: 0.25 # 3/4 of a period = 3/4 * 2π / f.ω0

+ 97
- 0
configs_metrics/no_nucleus/varia_omega_param.yaml View File

@@ -0,0 +1,97 @@
1
+params:
2
+    N: 250 # number of points
3
+    M: 80000 # max. number of iterations
4
+
5
+    δt: 2e-4 # time step
6
+
7
+    P: 4*6.15e-1 # pressure
8
+    K: 3e-1 # membrane elasticity
9
+    Ka: 1 # cortex viscosity
10
+    mu: 50 # area constraint relaxation constant
11
+    target_area: 1.8 # cortex target area
12
+
13
+    c: 1e1 # polymerization speed
14
+
15
+    x0_a: 2*0.25 # initial ellipsis width
16
+    x0_b: 2 # initial ellipsis height
17
+    x0_shift: 0.0 # initial vertical shift
18
+
19
+    # Confinement field
20
+
21
+    f_α: 2e1 # sharpness
22
+    f_β: 0.20 # depth
23
+    f_ω0: 6 # pulsation
24
+    f_σ: 1 # direction
25
+    f_nk: 1 # number of Fourier components to approximate a saw-tooth signal
26
+    f_width: 0.4 # mean width
27
+    f_iwidth: 3.0 # inner width, unused
28
+
29
+    drag_gauss_power: 4.0 # drag_gauss_power
30
+    drag_gauss_width: 3.5 # drag_gauss_width
31
+
32
+    mass_gauss_power: 6.0 # mass_gauss_power
33
+    mass_gauss_width: 1.0 # mass_gauss_width
34
+
35
+    polar_shift: 6.0
36
+
37
+    k_MT: 1e-4              #friction of MT
38
+    MT_potential_power: -2
39
+    MT_factor: 1e-2         #strength of MT
40
+    #
41
+    # Nucleus related parameters
42
+    Nnuc: 200   # number of points on the nucleus
43
+    N_P: -1e0 # pressure
44
+    N_mu: 100 # area constraint relaxation
45
+    N_target_area: 0.7
46
+    N_kb: 5e-4 # bending stiffness
47
+    N_ω:  1e-1 # inplane stiffness
48
+    N_W0: 7e-1  # potential offset
49
+    N_kcont: 5e0 # contact force intensity
50
+    N_αcont: 1e1 # contact force sharpness
51
+    N_kc: 1e-3 # centrosome link stiffness
52
+    N_l0c: 5e-1 # centrosome link rest length
53
+    N_r_init: 2.0e-1 # initial nucleus radius
54
+
55
+flags:
56
+    confine:              true
57
+    adjust_drag:          false
58
+    polymerize:           true
59
+    dryrun:               true
60
+    plot:                 true
61
+    pretty:               false
62
+    continuous:           true
63
+    innerloop:            false
64
+    weighted_confinement: true
65
+    write_animation:      true
66
+    landscape_plot:       false
67
+    plot_drag:            true
68
+    circular_wall:        false
69
+    cortex:               true
70
+    centrosome:           true
71
+    nucleus:              true
72
+    follow_cam:           false
73
+    debug:                false
74
+    force_cortex_area:    true
75
+    write_metrics:        true
76
+
77
+config:
78
+    output_prefix: test_omega6
79
+
80
+    plot_period: 20
81
+
82
+    metrics:
83
+        start_iteration: 1
84
+        periods: 2
85
+
86
+    load_state:
87
+        do_load: false
88
+        filename: "initial_conditions/torino_width_1_x.csv"
89
+        do_resample: false
90
+        do_recenter: false
91
+
92
+        init_centro: false
93
+        filename_centro: "initial_conditions/torino_width_1_centro.csv"
94
+
95
+        # shift_nucleus: 0.25 # 3/4 of a period = 3/4 * 2π / f.ω0
96
+
97
+   

+ 97
- 0
configs_metrics/no_nucleus/varia_width_param.yaml View File

@@ -0,0 +1,97 @@
1
+params:
2
+    N: 250 # number of points
3
+    M: 20000 # max. number of iterations
4
+
5
+    δt: 2e-4 # time step
6
+
7
+    P: 4*6.15e-1 # pressure
8
+    K: 3e-1 # membrane elasticity
9
+    Ka: 1 # cortex viscosity
10
+    mu: 50 # area constraint relaxation constant
11
+    target_area: 1.8 # cortex target area
12
+
13
+    c: 1e1 # polymerization speed
14
+
15
+    x0_a: 2*0.25 # initial ellipsis width
16
+    x0_b: 2 # initial ellipsis height
17
+    x0_shift: 0.0 # initial vertical shift
18
+
19
+    # Confinement field
20
+
21
+    f_α: 2e1 # sharpness
22
+    f_β: 0.20 # depth
23
+    f_ω0: 8 # pulsation
24
+    f_σ: 1 # direction
25
+    f_nk: 1 # number of Fourier components to approximate a saw-tooth signal
26
+    f_width: 0.55 # mean width
27
+    f_iwidth: 3.0 # inner width, unused
28
+
29
+    drag_gauss_power: 4.0 # drag_gauss_power
30
+    drag_gauss_width: 3.5 # drag_gauss_width
31
+
32
+    mass_gauss_power: 6.0 # mass_gauss_power
33
+    mass_gauss_width: 1.0 # mass_gauss_width
34
+
35
+    polar_shift: 6.0
36
+
37
+    k_MT: 1e-4              #friction of MT
38
+    MT_potential_power: -2
39
+    MT_factor: 1e-2         #strength of MT
40
+    #
41
+    # Nucleus related parameters
42
+    Nnuc: 200   # number of points on the nucleus
43
+    N_P: -1e0 # pressure
44
+    N_mu: 100 # area constraint relaxation
45
+    N_target_area: 0.7
46
+    N_kb: 5e-4 # bending stiffness
47
+    N_ω:  1e-1 # inplane stiffness
48
+    N_W0: 7e-1  # potential offset
49
+    N_kcont: 5e0 # contact force intensity
50
+    N_αcont: 1e1 # contact force sharpness
51
+    N_kc: 1e-3 # centrosome link stiffness
52
+    N_l0c: 5e-1 # centrosome link rest length
53
+    N_r_init: 2.0e-1 # initial nucleus radius
54
+
55
+flags:
56
+    confine:              true
57
+    adjust_drag:          false
58
+    polymerize:           true
59
+    dryrun:               true
60
+    plot:                 true
61
+    pretty:               false
62
+    continuous:           true
63
+    innerloop:            false
64
+    weighted_confinement: true
65
+    write_animation:      true
66
+    landscape_plot:       false
67
+    plot_drag:            true
68
+    circular_wall:        false
69
+    cortex:               true
70
+    centrosome:           true
71
+    nucleus:              false
72
+    follow_cam:           false
73
+    debug:                false
74
+    force_cortex_area:    true
75
+    write_metrics:        true
76
+
77
+config:
78
+    output_prefix: nonuc_width
79
+
80
+    plot_period: 20
81
+
82
+    metrics:
83
+        start_iteration: 1
84
+        periods: 2
85
+
86
+    load_state:
87
+        do_load: false
88
+        filename: "initial_conditions/torino_width_1_x.csv"
89
+        do_resample: false
90
+        do_recenter: false
91
+
92
+        init_centro: false
93
+        filename_centro: "initial_conditions/torino_width_1_centro.csv"
94
+
95
+        # shift_nucleus: 0.25 # 3/4 of a period = 3/4 * 2π / f.ω0
96
+
97
+   

+ 50
- 0
metrics_nonuc_beta.jl View File

@@ -0,0 +1,50 @@
1
+push!(LOAD_PATH, "src")
2
+
3
+import CellSim
4
+import Dates
5
+
6
+# The configuration file from which parameters are taken
7
+base_config = "configs_metrics/no_nucleus/varia_width_param.yaml"
8
+
9
+# The output prefix, this overrides the one set in the configuration file
10
+output_prefix = "nonuc_beta"
11
+
12
+
13
+# Load configuration
14
+P, F, config = CellSim.read_config(base_config)
15
+
16
+# Override the output prefix and create it
17
+config["output_prefix"] = output_prefix
18
+mkpath(output_prefix)
19
+
20
+# Set batch mode (only closes Figures at the end to avoid clutter)
21
+config["batch"] = true
22
+
23
+# Log file, used to list parameter value so we don't have to
24
+# compute them by hand. We cannot use the YAML files as Julia can
25
+# only read YAML files, not write to them.
26
+
27
+# Log file name
28
+parameter_log_file = string(output_prefix, "/parameter_log.txt")
29
+
30
+# Open the log file and write the date on top
31
+param_log = open(parameter_log_file, "a")
32
+date = string(Dates.now())
33
+write(param_log, string("\n", date, "\n\n"))
34
+
35
+# The range in which the varying parameter is taken
36
+betas = collect(range(0.0, 0.3; length=21))[2:end]
37
+
38
+# Loop
39
+for beta in betas
40
+    # Set the parameter value
41
+    P.f_β = beta
42
+
43
+    # Write the current value to the log file
44
+    write(param_log, beta)
45
+
46
+    # Run the simulation
47
+    CellSim.launch(P, F, config)
48
+end
49
+
50
+close(param_log)

+ 48
- 0
metrics_nonuc_width.jl View File

@@ -0,0 +1,48 @@
1
+push!(LOAD_PATH, "src")
2
+
3
+import CellSim
4
+import Dates
5
+
6
+# The configuration file from which parameters are taken
7
+base_config = "configs_metrics/no_nucleus/varia_width_param.yaml"
8
+
9
+# The output prefix, this overrides the one set in the configuration file
10
+output_prefix = "nonuc_width"
11
+
12
+# Load configuration
13
+P, F, config = CellSim.read_config(base_config)
14
+
15
+# Override the output prefix and create it
16
+config["output_prefix"] = output_prefix
17
+mkpath(output_prefix)
18
+
19
+# Set batch mode (only closes Figures at the end to avoid clutter)
20
+config["batch"] = true
21
+
22
+# Log file, used to list parameter value so we don't have to
23
+# compute them by hand. We cannot use the YAML files as Julia can
24
+# only read YAML files, not write to them.
25
+
26
+# Log file name
27
+parameter_log_file = string(output_prefix, "/parameter_log.txt")
28
+
29
+# Open the log file and write the date on top
30
+# If it already exists, we do not delete it, but write at the end
31
+param_log = open(parameter_log_file, "a")
32
+date = string(Dates.now())
33
+write(param_log, string("\n", date, "\n\n"))
34
+
35
+# The range in which the varying parameter is taken
36
+ws = range(0.3, 0.8; length=20)
37
+
38
+# Loop
39
+for w in ws
40
+    # Set the parameter value
41
+    P.f_width = w
42
+
43
+    # Write the current value to the log file
44
+    write(param_log, w)
45
+
46
+    # Run the simulation
47
+    CellSim.launch(P, F, config)
48
+end

+ 0
- 5
plot_data/v_A_KMT_old.csv View File

@@ -1,5 +0,0 @@
1
-1.0000000e-02, 1.2479861e+00, 3.5497255e-01
2
-1.0000000e-03, 1.2486894e+00, 3.5497255e-01
3
-1.0000000e-04, 1.2490348e+00, 3.4220539e-01
4
-1.0000000e-05, 1.2490957e+00, 3.5497255e-01
5
-5.0000000e-04, 1.2488582e+00, 3.6025749e-01

+ 0
- 8
plot_data/v_A_mu_old.csv View File

@@ -1,8 +0,0 @@
1
-1.0000000e+00, 2.3333711e+00, 2.6803770e-02
2
-1.0000000e+01, 1.4754294e+00, 9.4672871e-02
3
-1.0000000e+02, 1.7349530e+00, 6.5838259e-01
4
-2.0000000e+01, 1.2490348e+00, 3.4220539e-01
5
-2.0000000e+02, 1.7869130e+00, 6.8148005e-01
6
-4.0000000e+01, 1.7276809e+00, 4.9410254e-01
7
-4.0000000e+02, 1.8205925e+00, 6.9421457e-01
8
-6.0000000e+01, 1.7194636e+00, 6.1754733e-01

+ 0
- 9
plot_data/v_kb_new.csv View File

@@ -1,9 +0,0 @@
1
-kb, average_velocity
2
-1.0000000e-02, 1.2525998e+00
3
-1.0000000e-03, 2.1871950e+00
4
-1.5000000e-02, 9.9519337e-01
5
-3.5000000e-02, 3.5142459e-01
6
-5.0000000e-02, 0.0000000e+00
7
-5.0000000e-03, 1.7396688e+00
8
-5.0000000e-04, 2.2194480e+00
9
-5.0000000e-05, 2.2446257e+00

+ 0
- 5
plot_data/v_kb_new_mun60.csv View File

@@ -1,5 +0,0 @@
1
-kb, average_velocity
2
-1.0000000e-02, 2.2299850e+00
3
-5.0000000e-03, 2.3088442e+00
4
-5.0000000e-04, 2.3740540e+00
5
-5.0000000e-05, 2.3774231e+00

+ 0
- 11
plot_data/v_kb_old.csv View File

@@ -1,11 +0,0 @@
1
-kb, average_velocity
2
-1.0000000e-02, 8.9820605e-01
3
-1.0000000e-03, 1.5669716e+00
4
-1.5000000e-02, 6.8384677e-01
5
-3.0000000e-02, 2.1192436e-01
6
-3.5000000e-02, 9.0601369e-02
7
-4.0000000e-02, 6.6551982e-02
8
-5.0000000e-02, 0.0000000e+00
9
-5.0000000e-03, 1.2490348e+00
10
-5.0000000e-04, 1.5905221e+00
11
-5.0000000e-05, 1.6089460e+00

+ 0
- 9
plot_data/v_kb_old_mun100.csv View File

@@ -1,9 +0,0 @@
1
-kb, average_velocity
2
-1.0000000e-02, 8.9820605e-01
3
-1.0000000e-03, 1.5669716e+00
4
-1.5000000e-02, 6.8384677e-01
5
-3.0000000e-02, 2.1192436e-01
6
-5.0000000e-02, 0.0000000e+00
7
-5.0000000e-03, 1.2490348e+00
8
-5.0000000e-04, 1.5905221e+00
9
-5.0000000e-05, 1.6089460e+00

+ 0
- 8
plot_data/v_kb_old_mun60.csv View File

@@ -1,8 +0,0 @@
1
-kb, average_velocity
2
-1.0000000e-01, 7.1000942e-01
3
-1.0000000e-02, 1.6571078e+00
4
-1.0000000e-03, 1.7679177e+00
5
-1.0000000e-04, 1.7764378e+00
6
-5.0000000e-01, 2.3491861e-01
7
-5.0000000e-02, 8.6198437e-01
8
-5.0000000e-05, 1.7766501e+00

+ 0
- 7
plot_data/v_omega_new.csv View File

@@ -1,7 +0,0 @@
1
-f_ω, average_velocity
2
-1.0000000e+01, 3.5744794e+00
3
-1.2000000e+01, 3.2068714e+00
4
-1.4000000e+01, 0.0000000e+00
5
-4.0000000e+00, 0.0000000e+00
6
-6.0000000e+00, 2.7847729e+00
7
-8.0000000e+00, 2.8826021e+00

+ 0
- 8
plot_data/v_omega_old.csv View File

@@ -1,8 +0,0 @@
1
-f_ω, average_velocity
2
-1.0000000e+01, 3.1528608e+00
3
-1.2000000e+01, 0.0000000e+00
4
-2.0000000e+00, 0.0000000e+00
5
-4.0000000e+00, 0.0000000e+00
6
-5.0000000e+00, 0.0000000e+00
7
-6.0000000e+00, 2.7257282e+00
8
-8.0000000e+00, 2.5176551e+00

+ 10
- 1
src/CellSim.jl View File

@@ -172,6 +172,7 @@ function read_config(config_filename::String)
172 172
           y_flags["pretty"],
173 173
           y_flags["landscape_plot"],
174 174
           y_flags["follow_cam"],
175
+          get(y_flags, "follow_nucleus", false),
175 176
           y_flags["plot_drag"],
176 177
 
177 178
           # output options
@@ -194,6 +195,10 @@ function read_config(config_filename::String)
194 195
         config["output_prefix"] = "runs/"
195 196
     end
196 197
 
198
+    if !haskey(config, "recompute_nucleus_coords")
199
+        config["recompute_nucleus_coords"] = 5
200
+    end
201
+
197 202
     if (config["metrics"]["start_iteration"] <= 0) && !F.nucleus
198 203
         println("[WARNING] metrics.start_iteration is non-positive and nucleus is deactivated, metrics will never start!")
199 204
     end
@@ -456,7 +461,7 @@ function launch(P::CSC.Params, F::CSC.Flags, config)
456 461
             if F.centrosome
457 462
                 Nucleus.compute_centronuclear_force(potentials, coords, nucleus_coords, P, F)
458 463
             end
459
-            Nucleus.update_coords(old_nucleus_coords, nucleus_coords, potentials, P, F, temparrays)
464
+            Nucleus.update_coords(old_nucleus_coords, nucleus_coords, potentials, P, F, temparrays, k)
460 465
 
461 466
         end
462 467
 
@@ -531,6 +536,10 @@ function launch(P::CSC.Params, F::CSC.Flags, config)
531 536
         Plotting.plot_metrics(metrics)
532 537
     end
533 538
 
539
+    if get(config, "batch", false)
540
+        Plotting.close()
541
+    end
542
+
534 543
     return
535 544
 end
536 545
 

+ 1
- 0
src/CellSimCommon.jl View File

@@ -111,6 +111,7 @@ mutable struct Flags
111 111
     pretty::Bool
112 112
     landscape_plot::Bool
113 113
     follow_cam::Bool
114
+    follow_nucleus::Bool
114 115
     plot_drag::Bool
115 116
 
116 117
     # output options

+ 78
- 5
src/Nucleus.jl View File

@@ -36,7 +36,7 @@ mutable struct NucleusCoords
36 36
     # normal vector
37 37
     n::Matrix{Float64}
38 38
 
39
-    # local length element
39
+    # local length element, i.e. log(r)
40 40
     η::Vector{Float64}
41 41
 
42 42
     # nuclear membrane length
@@ -70,6 +70,75 @@ function g_p(x::Vector{Float64}, α::Float64)
70 70
     return -(2α*min.(α*x.-1, 0.0).*log.(α*x) .+ min.(α*x.-1, 0.0).^2 ./x)
71 71
 end
72 72
 
73
+function compute_curvature(c::NucleusCoords)
74
+    A = zeros(3,3)
75
+    b = zeros(3)
76
+
77
+    Nnuc = size(c.Y, 1)
78
+
79
+    for i in 1:Nnuc
80
+        A[1,1] = 8*( c.Y[c.circ_idx.m2[i],1]^2
81
+                    +c.Y[c.circ_idx.m1[i],1]^2
82
+                    +c.Y[i,1]^2
83
+                    +c.Y[c.circ_idx.p1[i],1]^2)
84
+        A[1,2] = 8*( c.Y[c.circ_idx.m2[i],1]*c.Y[c.circ_idx.m2[i],2]
85
+                     +c.Y[c.circ_idx.m1[i],1]*c.Y[c.circ_idx.m1[i],2]
86
+                     +c.Y[i,1]*c.Y[i,2]
87
+                     +c.Y[c.circ_idx.p1[i],1]*c.Y[c.circ_idx.p1[i],2])
88
+        A[2,1] = A[1,2]
89
+        A[1,3] = -4*( c.Y[c.circ_idx.m2[i],1]
90
+                    +c.Y[c.circ_idx.m1[i],1]
91
+                    +c.Y[i,1]
92
+                    +c.Y[c.circ_idx.p1[i],1])
93
+        A[3,1] = A[1,3]
94
+        A[2,2] = 8*( c.Y[c.circ_idx.m2[i],2]^2
95
+                    +c.Y[c.circ_idx.m1[i],2]^2
96
+                    +c.Y[i,2]^2
97
+                    +c.Y[c.circ_idx.p1[i],2]^2)
98
+        A[2,3] = -4*( c.Y[c.circ_idx.m2[i],2]
99
+                    +c.Y[c.circ_idx.m1[i],2]
100
+                    +c.Y[i,2]
101
+                    +c.Y[c.circ_idx.p1[i],2])
102
+        A[3,2] = A[2,3]
103
+        A[3,3] = 8
104
+
105
+        b[1] = 4*( c.Y[c.circ_idx.m2[i],1]^3
106
+                    +c.Y[c.circ_idx.m1[i],1]^3
107
+                    +c.Y[i,1]^3
108
+                    +c.Y[c.circ_idx.p1[i],1]^3
109
+                    +c.Y[c.circ_idx.m2[i],1]*c.Y[c.circ_idx.m2[i],2]^2
110
+                    +c.Y[c.circ_idx.m1[i],1]*c.Y[c.circ_idx.m1[i],2]^2
111
+                    +c.Y[i,1]*c.Y[i,2]^2
112
+                    +c.Y[c.circ_idx.p1[i],1]*c.Y[c.circ_idx.p1[i],2]^2)
113
+        b[2] = 4*( c.Y[c.circ_idx.m2[i],2]^3
114
+                    +c.Y[c.circ_idx.m1[i],2]^3
115
+                    +c.Y[i,2]^3
116
+                    +c.Y[c.circ_idx.p1[i],2]^3
117
+                    +c.Y[c.circ_idx.m2[i],1]^2*c.Y[c.circ_idx.m2[i],2]
118
+                    +c.Y[c.circ_idx.m1[i],1]^2*c.Y[c.circ_idx.m1[i],2]
119
+                    +c.Y[i,1]^2*c.Y[i,2]
120
+                    +c.Y[c.circ_idx.p1[i],1]^2*c.Y[c.circ_idx.p1[i],2])
121
+        b[3] = -0.25*(A[1,1] + A[2,2])
122
+
123
+        x = A\b
124
+        c.k[i] = 1/sqrt(x[1]^2 + x[2]^2 - x[3])
125
+    end
126
+end
127
+
128
+function recompute_nucleus_coords(c::NucleusCoords)
129
+    delta_Y = c.Y - c.Y[c.circ_idx.m1,:]
130
+    c.r[:] = sqrt.(sum(abs2, delta_Y; dims=2))
131
+    c.q[:] = 0.5*(c.r + c.r[c.circ_idx.p1])
132
+
133
+    c.θ[:] = angle.(delta_Y[:,1] + delta_Y[:,2]*im)
134
+    delta_θ = rem.(c.θ - c.θ[c.circ_idx.m1], 2π, RoundNearest)
135
+    c.θ[:] = cumsum([c.θ[1]; delta_θ[1:end-1]])
136
+
137
+    compute_curvature(c)
138
+    c.η[:] = log.(c.r)
139
+    c.L = sum(c.r)
140
+end
141
+
73 142
 function compute_contact_force(pots::CSC.InteractionPotentials,
74 143
                                cor_coords::PointCoords, c::NucleusCoords,
75 144
                                P::Params, F::Flags)
@@ -352,10 +421,10 @@ function initialize_coords(P::Params, F::Flags, cortex_c::PointCoords; fill_wall
352 421
     # The nucleus is initialized as a circle centered on the
353 422
     # barycenter of the cell, with radius P.N_r_init
354 423
 
355
-    t = collect(range(0, stop=2pi, length=P.Nnuc+1))[1:P.Nnuc]
424
+    t = collect(range(-0.5pi, stop=1.5pi, length=P.Nnuc+1))[1:P.Nnuc]
356 425
 
357
-    θ0 = π/P.Nnuc
358
-    θ = collect(π/2 + θ0 .+ (-1:(P.Nnuc-2))*2*θ0)
426
+    θ0 = 2π/P.Nnuc
427
+    θ = collect(-0.5*θ0 .+ (0:(P.Nnuc-1))*θ0)
359 428
 
360 429
     if fill_wall
361 430
         bc = [0.0 0.5π/P.f_ω0]
@@ -384,7 +453,7 @@ end
384 453
 
385 454
 function update_coords(c::NucleusCoords, new_c::NucleusCoords,
386 455
                        potentials::CSC.InteractionPotentials,
387
-                       P::Params, F::Flags, temparrays::CSC.TempArrays6)
456
+                       P::Params, F::Flags, temparrays::CSC.TempArrays6, iter::Int64)
388 457
 
389 458
     N_W = potentials.N_W
390 459
     N_∇W = potentials.N_∇W
@@ -402,6 +471,10 @@ function update_coords(c::NucleusCoords, new_c::NucleusCoords,
402 471
     update_θ(c, new_c, N_W, N_∇W, P, F, temparrays)
403 472
     update_Y(c, new_c, N_W, N_∇W, P, F, temparrays)
404 473
 
474
+    if iter%5 == 0
475
+        recompute_nucleus_coords(new_c)
476
+    end
477
+
405 478
     if F.DEBUG
406 479
         println("POST alpha, beta, r, q, K, θ")
407 480
         # display([new_c.α new_c.β new_c.r new_c.q new_c.k new_c.θ])

+ 11
- 11
src/Plotting.jl View File

@@ -40,10 +40,10 @@ function init_plot(coords::Cortex.PointCoords, P::CellSimCommon.Params, F::CellS
40 40
 
41 41
     if F.nucleus
42 42
         # Nucleus
43
-        ax.plot(zeros(P.Nnuc), zeros(P.Nnuc), color="yellow", zorder=16)
43
+        ax.plot(zeros(P.Nnuc), zeros(P.Nnuc), ".-", color="yellow", zorder=16)
44 44
 
45 45
         # Nucleus fillin
46
-        ax.fill(zeros(P.Nnuc), zeros(P.Nnuc), color="yellow", zorder=16)[1]
46
+        ax.fill(zeros(P.Nnuc), zeros(P.Nnuc), color="xkcd:light yellow", zorder=16)[1]
47 47
 
48 48
         # Normals
49 49
         # ax.quiver(zeros(P.Nnuc), zeros(P.Nnuc),
@@ -228,22 +228,22 @@ function update_plot(coords::Cortex.PointCoords, nucleus_coords::Union{Nucleus.N
228 228
     # scatters[idx_s].set_color(colors)
229 229
     # idx_s += 1
230 230
 
231
-    lims = ax.get_ylim()
232
-
233
-    x_min, x_max = minimum(x[:,2]), maximum(x[:,2])
234
-    x_mid = 0.5(x_max+x_min)
235 231
 
236 232
     if F.follow_cam
237
-        lims = ax.get_xlim()
238
-        x_min, x_max = minimum(x[:,1]), maximum(x[:,1])
233
+        if F.follow_nucleus
234
+            follow_x = nucleus_coords.Y
235
+        else
236
+            follow_x = coords.x
237
+        end
238
+        x_min, x_max = minimum(follow_x[:,1]), maximum(follow_x[:,1])
239
+        y_min, y_max = minimum(follow_x[:,2]), maximum(follow_x[:,2])
239 240
         x_mid = 0.5(x_max+x_min)
240 241
         x_span = (x_max-x_min)
241
-        y_min, y_max = minimum(x[:,2]), maximum(x[:,2])
242 242
         y_mid = 0.5(y_max+y_min)
243 243
         y_span = (y_max-y_min)
244 244
 
245
-        ax.set_xlim((x_mid-x_span, x_mid+x_span))
246
-        ax.set_ylim((y_mid-y_span, y_mid+y_span))
245
+        ax.set_xlim((x_mid-0.7*x_span, x_mid+0.7*x_span))
246
+        ax.set_ylim((y_mid-0.7*y_span, y_mid+0.7*y_span))
247 247
     end
248 248
 
249 249
     # if F.plot_drag

Loading…
Cancel
Save