diff --git a/.github/workflows/basic.yml b/.github/workflows/basic.yml index 2e321da45dbfa500bf02f969fb2cd85ebfb76f3a..2e903bfc94f577a6ce78f8486973749aedbd8f4b 100644 --- a/.github/workflows/basic.yml +++ b/.github/workflows/basic.yml @@ -201,3 +201,4 @@ jobs: python python/example/single_cell_swc.py python/example/single_cell_detailed.swc python python/example/single_cell_detailed.py python/example/single_cell_detailed.swc python python/example/single_cell_detailed_recipe.py python/example/single_cell_detailed.swc + python python/example/single_cell_cable.py \ No newline at end of file diff --git a/.github/workflows/sanitize.yml b/.github/workflows/sanitize.yml index 1c36ae74744a788abc7a34712bed848251aeef89..805090d92d13d7acafa657aa8d522900daf701c0 100644 --- a/.github/workflows/sanitize.yml +++ b/.github/workflows/sanitize.yml @@ -127,3 +127,4 @@ jobs: python python/example/single_cell_swc.py python/example/single_cell_detailed.swc python python/example/single_cell_detailed.py python/example/single_cell_detailed.swc python python/example/single_cell_detailed_recipe.py python/example/single_cell_detailed.swc + python python/example/single_cell_cable.py \ No newline at end of file diff --git a/doc/tutorial/index.rst b/doc/tutorial/index.rst index ce94e4dd038de1392361e83238b2771ec0657ab8..b9fbbc59296c33c805bb8e76c1c9ebb88d3480b8 100644 --- a/doc/tutorial/index.rst +++ b/doc/tutorial/index.rst @@ -24,5 +24,6 @@ Tutorials single_cell_recipe single_cell_detailed single_cell_detailed_recipe + single_cell_cable network_ring mpi diff --git a/doc/tutorial/single_cell_cable.rst b/doc/tutorial/single_cell_cable.rst new file mode 100644 index 0000000000000000000000000000000000000000..ccd6e9ef2aa2159a285c3976799ba84a7d833b3e --- /dev/null +++ b/doc/tutorial/single_cell_cable.rst @@ -0,0 +1,77 @@ +.. _tutorialsinglecellcable: + +A simple dendrite +============================== + +In this example, we will set up a single dendrite represented by a passive cable. +On one end the dendrite is stimulated by a short current pulse. +We will investigate how this pulse travels along the dendrite and calculate the conduction velocity. + +.. Note:: + + **Concepts covered in this example:** + + 1. Creating a simulation recipe of a single dendrite. + 2. Placing probes on the morphology. + 3. Running the simulation and extracting the results. + 4. Investigating the influence of control volume policies. + +The full code +************* + +You can find the full code of the example at ``python/examples/single_cell_cable.py`` + +Executing the script will run the simulation with default parameters. + + +Walk-through +********** + +We set up a recipe for the simulation of a single dendrite with some parameters. + +.. literalinclude:: ../../python/example/single_cell_cable.py + :language: python + :lines: 11-31 + +Implementing the ``cell_description`` member function constructs the morphology and sets the properties of the dendrite as well as the current stimulus and the discretization policy. + +.. literalinclude:: ../../python/example/single_cell_cable.py + :language: python + :lines: 63-98 + +We parse the command line arguments, instantiate the recipe, run the simulation, extract results and plot: + +.. literalinclude:: ../../python/example/single_cell_cable.py + :language: python + :lines: 147-210 + +The output plot below shows how the current pulse is attenuated and +gets broader the further it travels along the dendrite from the current +clamp. + +.. figure:: single_cell_cable_result.svg + :width: 800 + :align: center + +The conduction velocity in simulation is calculated from the time of the maximum of the membrane potential. + +.. literalinclude:: ../../python/example/single_cell_cable.py + :language: python + :lines: 212- + +Please have in mind that the calculated (idealized) conduction velocity is only correct for an infinite cable. + +:: + + calculated conduction velocity: 0.47 m/s + simulated conduction velocity: 0.50 m/s + +When we set the control volume policy to cover the full dendrite, all probes will see the same voltage. + +.. code-block:: bash + + ./single_cell_cable.py --length 1000 --cv_policy_max_extent 1000 + +.. figure:: single_cell_cable_result_cv_policy.svg + :width: 800 + :align: center diff --git a/doc/tutorial/single_cell_cable_result.svg b/doc/tutorial/single_cell_cable_result.svg new file mode 100644 index 0000000000000000000000000000000000000000..daa686f49416fc5b078f518aeaaf55b98afeb1c8 --- /dev/null +++ b/doc/tutorial/single_cell_cable_result.svg @@ -0,0 +1,1102 @@ +<?xml version="1.0" encoding="utf-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<svg height="345.6pt" version="1.1" viewBox="0 0 460.8 345.6" width="460.8pt" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> + <metadata> + <rdf:RDF xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> + <cc:Work> + <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/> + <dc:date>2021-05-28T15:07:27.817942</dc:date> + <dc:format>image/svg+xml</dc:format> + <dc:creator> + <cc:Agent> + <dc:title>Matplotlib v3.4.2, https://matplotlib.org/</dc:title> + </cc:Agent> + </dc:creator> + </cc:Work> + </rdf:RDF> + </metadata> + <defs> + <style type="text/css">*{stroke-linecap:butt;stroke-linejoin:round;}</style> + </defs> + <g id="figure_1"> + <g id="patch_1"> + <path d="M 0 345.6 +L 460.8 345.6 +L 460.8 0 +L 0 0 +z +" style="fill:#ffffff;"/> + </g> + <g id="axes_1"> + <g id="patch_2"> + <path d="M 57.6 307.584 +L 414.72 307.584 +L 414.72 41.472 +L 57.6 41.472 +z +" style="fill:#ffffff;"/> + </g> + <g id="matplotlib.axis_1"> + <g id="xtick_1"> + <g id="line2d_1"> + <defs> + <path d="M 0 0 +L 0 3.5 +" id="m8a9369bea7" style="stroke:#000000;stroke-width:0.8;"/> + </defs> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="57.6" xlink:href="#m8a9369bea7" y="307.584"/> + </g> + </g> + <g id="text_1"> + <!-- 9 --> + <g transform="translate(54.41875 322.182437)scale(0.1 -0.1)"> + <defs> + <path d="M 703 97 +L 703 672 +Q 941 559 1184 500 +Q 1428 441 1663 441 +Q 2288 441 2617 861 +Q 2947 1281 2994 2138 +Q 2813 1869 2534 1725 +Q 2256 1581 1919 1581 +Q 1219 1581 811 2004 +Q 403 2428 403 3163 +Q 403 3881 828 4315 +Q 1253 4750 1959 4750 +Q 2769 4750 3195 4129 +Q 3622 3509 3622 2328 +Q 3622 1225 3098 567 +Q 2575 -91 1691 -91 +Q 1453 -91 1209 -44 +Q 966 3 703 97 +z +M 1959 2075 +Q 2384 2075 2632 2365 +Q 2881 2656 2881 3163 +Q 2881 3666 2632 3958 +Q 2384 4250 1959 4250 +Q 1534 4250 1286 3958 +Q 1038 3666 1038 3163 +Q 1038 2656 1286 2365 +Q 1534 2075 1959 2075 +z +" id="DejaVuSans-39" transform="scale(0.015625)"/> + </defs> + <use xlink:href="#DejaVuSans-39"/> + </g> + </g> + </g> + <g id="xtick_2"> + <g id="line2d_2"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="129.024" xlink:href="#m8a9369bea7" y="307.584"/> + </g> + </g> + <g id="text_2"> + <!-- 10 --> + <g transform="translate(122.6615 322.182437)scale(0.1 -0.1)"> + <defs> + <path d="M 794 531 +L 1825 531 +L 1825 4091 +L 703 3866 +L 703 4441 +L 1819 4666 +L 2450 4666 +L 2450 531 +L 3481 531 +L 3481 0 +L 794 0 +L 794 531 +z +" id="DejaVuSans-31" transform="scale(0.015625)"/> + <path d="M 2034 4250 +Q 1547 4250 1301 3770 +Q 1056 3291 1056 2328 +Q 1056 1369 1301 889 +Q 1547 409 2034 409 +Q 2525 409 2770 889 +Q 3016 1369 3016 2328 +Q 3016 3291 2770 3770 +Q 2525 4250 2034 4250 +z +M 2034 4750 +Q 2819 4750 3233 4129 +Q 3647 3509 3647 2328 +Q 3647 1150 3233 529 +Q 2819 -91 2034 -91 +Q 1250 -91 836 529 +Q 422 1150 422 2328 +Q 422 3509 836 4129 +Q 1250 4750 2034 4750 +z +" id="DejaVuSans-30" transform="scale(0.015625)"/> + </defs> + <use xlink:href="#DejaVuSans-31"/> + <use x="63.623047" xlink:href="#DejaVuSans-30"/> + </g> + </g> + </g> + <g id="xtick_3"> + <g id="line2d_3"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="200.448" xlink:href="#m8a9369bea7" y="307.584"/> + </g> + </g> + <g id="text_3"> + <!-- 11 --> + <g transform="translate(194.0855 322.182437)scale(0.1 -0.1)"> + <use xlink:href="#DejaVuSans-31"/> + <use x="63.623047" xlink:href="#DejaVuSans-31"/> + </g> + </g> + </g> + <g id="xtick_4"> + <g id="line2d_4"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="271.872" xlink:href="#m8a9369bea7" y="307.584"/> + </g> + </g> + <g id="text_4"> + <!-- 12 --> + <g transform="translate(265.5095 322.182437)scale(0.1 -0.1)"> + <defs> + <path d="M 1228 531 +L 3431 531 +L 3431 0 +L 469 0 +L 469 531 +Q 828 903 1448 1529 +Q 2069 2156 2228 2338 +Q 2531 2678 2651 2914 +Q 2772 3150 2772 3378 +Q 2772 3750 2511 3984 +Q 2250 4219 1831 4219 +Q 1534 4219 1204 4116 +Q 875 4013 500 3803 +L 500 4441 +Q 881 4594 1212 4672 +Q 1544 4750 1819 4750 +Q 2544 4750 2975 4387 +Q 3406 4025 3406 3419 +Q 3406 3131 3298 2873 +Q 3191 2616 2906 2266 +Q 2828 2175 2409 1742 +Q 1991 1309 1228 531 +z +" id="DejaVuSans-32" transform="scale(0.015625)"/> + </defs> + <use xlink:href="#DejaVuSans-31"/> + <use x="63.623047" xlink:href="#DejaVuSans-32"/> + </g> + </g> + </g> + <g id="xtick_5"> + <g id="line2d_5"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="343.296" xlink:href="#m8a9369bea7" y="307.584"/> + </g> + </g> + <g id="text_5"> + <!-- 13 --> + <g transform="translate(336.9335 322.182437)scale(0.1 -0.1)"> + <defs> + <path d="M 2597 2516 +Q 3050 2419 3304 2112 +Q 3559 1806 3559 1356 +Q 3559 666 3084 287 +Q 2609 -91 1734 -91 +Q 1441 -91 1130 -33 +Q 819 25 488 141 +L 488 750 +Q 750 597 1062 519 +Q 1375 441 1716 441 +Q 2309 441 2620 675 +Q 2931 909 2931 1356 +Q 2931 1769 2642 2001 +Q 2353 2234 1838 2234 +L 1294 2234 +L 1294 2753 +L 1863 2753 +Q 2328 2753 2575 2939 +Q 2822 3125 2822 3475 +Q 2822 3834 2567 4026 +Q 2313 4219 1838 4219 +Q 1578 4219 1281 4162 +Q 984 4106 628 3988 +L 628 4550 +Q 988 4650 1302 4700 +Q 1616 4750 1894 4750 +Q 2613 4750 3031 4423 +Q 3450 4097 3450 3541 +Q 3450 3153 3228 2886 +Q 3006 2619 2597 2516 +z +" id="DejaVuSans-33" transform="scale(0.015625)"/> + </defs> + <use xlink:href="#DejaVuSans-31"/> + <use x="63.623047" xlink:href="#DejaVuSans-33"/> + </g> + </g> + </g> + <g id="xtick_6"> + <g id="line2d_6"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="414.72" xlink:href="#m8a9369bea7" y="307.584"/> + </g> + </g> + <g id="text_6"> + <!-- 14 --> + <g transform="translate(408.3575 322.182437)scale(0.1 -0.1)"> + <defs> + <path d="M 2419 4116 +L 825 1625 +L 2419 1625 +L 2419 4116 +z +M 2253 4666 +L 3047 4666 +L 3047 1625 +L 3713 1625 +L 3713 1100 +L 3047 1100 +L 3047 0 +L 2419 0 +L 2419 1100 +L 313 1100 +L 313 1709 +L 2253 4666 +z +" id="DejaVuSans-34" transform="scale(0.015625)"/> + </defs> + <use xlink:href="#DejaVuSans-31"/> + <use x="63.623047" xlink:href="#DejaVuSans-34"/> + </g> + </g> + </g> + <g id="text_7"> + <!-- t/ms --> + <g transform="translate(225.040469 335.860562)scale(0.1 -0.1)"> + <defs> + <path d="M 1172 4494 +L 1172 3500 +L 2356 3500 +L 2356 3053 +L 1172 3053 +L 1172 1153 +Q 1172 725 1289 603 +Q 1406 481 1766 481 +L 2356 481 +L 2356 0 +L 1766 0 +Q 1100 0 847 248 +Q 594 497 594 1153 +L 594 3053 +L 172 3053 +L 172 3500 +L 594 3500 +L 594 4494 +L 1172 4494 +z +" id="DejaVuSans-74" transform="scale(0.015625)"/> + <path d="M 1625 4666 +L 2156 4666 +L 531 -594 +L 0 -594 +L 1625 4666 +z +" id="DejaVuSans-2f" transform="scale(0.015625)"/> + <path d="M 3328 2828 +Q 3544 3216 3844 3400 +Q 4144 3584 4550 3584 +Q 5097 3584 5394 3201 +Q 5691 2819 5691 2113 +L 5691 0 +L 5113 0 +L 5113 2094 +Q 5113 2597 4934 2840 +Q 4756 3084 4391 3084 +Q 3944 3084 3684 2787 +Q 3425 2491 3425 1978 +L 3425 0 +L 2847 0 +L 2847 2094 +Q 2847 2600 2669 2842 +Q 2491 3084 2119 3084 +Q 1678 3084 1418 2786 +Q 1159 2488 1159 1978 +L 1159 0 +L 581 0 +L 581 3500 +L 1159 3500 +L 1159 2956 +Q 1356 3278 1631 3431 +Q 1906 3584 2284 3584 +Q 2666 3584 2933 3390 +Q 3200 3197 3328 2828 +z +" id="DejaVuSans-6d" transform="scale(0.015625)"/> + <path d="M 2834 3397 +L 2834 2853 +Q 2591 2978 2328 3040 +Q 2066 3103 1784 3103 +Q 1356 3103 1142 2972 +Q 928 2841 928 2578 +Q 928 2378 1081 2264 +Q 1234 2150 1697 2047 +L 1894 2003 +Q 2506 1872 2764 1633 +Q 3022 1394 3022 966 +Q 3022 478 2636 193 +Q 2250 -91 1575 -91 +Q 1294 -91 989 -36 +Q 684 19 347 128 +L 347 722 +Q 666 556 975 473 +Q 1284 391 1588 391 +Q 1994 391 2212 530 +Q 2431 669 2431 922 +Q 2431 1156 2273 1281 +Q 2116 1406 1581 1522 +L 1381 1569 +Q 847 1681 609 1914 +Q 372 2147 372 2553 +Q 372 3047 722 3315 +Q 1072 3584 1716 3584 +Q 2034 3584 2315 3537 +Q 2597 3491 2834 3397 +z +" id="DejaVuSans-73" transform="scale(0.015625)"/> + </defs> + <use xlink:href="#DejaVuSans-74"/> + <use x="39.208984" xlink:href="#DejaVuSans-2f"/> + <use x="72.900391" xlink:href="#DejaVuSans-6d"/> + <use x="170.3125" xlink:href="#DejaVuSans-73"/> + </g> + </g> + </g> + <g id="matplotlib.axis_2"> + <g id="ytick_1"> + <g id="line2d_7"> + <defs> + <path d="M 0 0 +L -3.5 0 +" id="m0bee53e550" style="stroke:#000000;stroke-width:0.8;"/> + </defs> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="57.6" xlink:href="#m0bee53e550" y="295.488"/> + </g> + </g> + <g id="text_8"> + <!-- −65 --> + <g transform="translate(29.495313 299.287219)scale(0.1 -0.1)"> + <defs> + <path d="M 678 2272 +L 4684 2272 +L 4684 1741 +L 678 1741 +L 678 2272 +z +" id="DejaVuSans-2212" transform="scale(0.015625)"/> + <path d="M 2113 2584 +Q 1688 2584 1439 2293 +Q 1191 2003 1191 1497 +Q 1191 994 1439 701 +Q 1688 409 2113 409 +Q 2538 409 2786 701 +Q 3034 994 3034 1497 +Q 3034 2003 2786 2293 +Q 2538 2584 2113 2584 +z +M 3366 4563 +L 3366 3988 +Q 3128 4100 2886 4159 +Q 2644 4219 2406 4219 +Q 1781 4219 1451 3797 +Q 1122 3375 1075 2522 +Q 1259 2794 1537 2939 +Q 1816 3084 2150 3084 +Q 2853 3084 3261 2657 +Q 3669 2231 3669 1497 +Q 3669 778 3244 343 +Q 2819 -91 2113 -91 +Q 1303 -91 875 529 +Q 447 1150 447 2328 +Q 447 3434 972 4092 +Q 1497 4750 2381 4750 +Q 2619 4750 2861 4703 +Q 3103 4656 3366 4563 +z +" id="DejaVuSans-36" transform="scale(0.015625)"/> + <path d="M 691 4666 +L 3169 4666 +L 3169 4134 +L 1269 4134 +L 1269 2991 +Q 1406 3038 1543 3061 +Q 1681 3084 1819 3084 +Q 2600 3084 3056 2656 +Q 3513 2228 3513 1497 +Q 3513 744 3044 326 +Q 2575 -91 1722 -91 +Q 1428 -91 1123 -41 +Q 819 9 494 109 +L 494 744 +Q 775 591 1075 516 +Q 1375 441 1709 441 +Q 2250 441 2565 725 +Q 2881 1009 2881 1497 +Q 2881 1984 2565 2268 +Q 2250 2553 1709 2553 +Q 1456 2553 1204 2497 +Q 953 2441 691 2322 +L 691 4666 +z +" id="DejaVuSans-35" transform="scale(0.015625)"/> + </defs> + <use xlink:href="#DejaVuSans-2212"/> + <use x="83.789062" xlink:href="#DejaVuSans-36"/> + <use x="147.412109" xlink:href="#DejaVuSans-35"/> + </g> + </g> + </g> + <g id="ytick_2"> + <g id="line2d_8"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="57.6" xlink:href="#m0bee53e550" y="243.335749"/> + </g> + </g> + <g id="text_9"> + <!-- −60 --> + <g transform="translate(29.495313 247.134968)scale(0.1 -0.1)"> + <use xlink:href="#DejaVuSans-2212"/> + <use x="83.789062" xlink:href="#DejaVuSans-36"/> + <use x="147.412109" xlink:href="#DejaVuSans-30"/> + </g> + </g> + </g> + <g id="ytick_3"> + <g id="line2d_9"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="57.6" xlink:href="#m0bee53e550" y="191.183499"/> + </g> + </g> + <g id="text_10"> + <!-- −55 --> + <g transform="translate(29.495313 194.982717)scale(0.1 -0.1)"> + <use xlink:href="#DejaVuSans-2212"/> + <use x="83.789062" xlink:href="#DejaVuSans-35"/> + <use x="147.412109" xlink:href="#DejaVuSans-35"/> + </g> + </g> + </g> + <g id="ytick_4"> + <g id="line2d_10"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="57.6" xlink:href="#m0bee53e550" y="139.031248"/> + </g> + </g> + <g id="text_11"> + <!-- −50 --> + <g transform="translate(29.495313 142.830467)scale(0.1 -0.1)"> + <use xlink:href="#DejaVuSans-2212"/> + <use x="83.789062" xlink:href="#DejaVuSans-35"/> + <use x="147.412109" xlink:href="#DejaVuSans-30"/> + </g> + </g> + </g> + <g id="ytick_5"> + <g id="line2d_11"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="57.6" xlink:href="#m0bee53e550" y="86.878997"/> + </g> + </g> + <g id="text_12"> + <!-- −45 --> + <g transform="translate(29.495313 90.678216)scale(0.1 -0.1)"> + <use xlink:href="#DejaVuSans-2212"/> + <use x="83.789062" xlink:href="#DejaVuSans-34"/> + <use x="147.412109" xlink:href="#DejaVuSans-35"/> + </g> + </g> + </g> + <g id="text_13"> + <!-- U/mV --> + <g transform="translate(23.415625 188.162375)rotate(-90)scale(0.1 -0.1)"> + <defs> + <path d="M 556 4666 +L 1191 4666 +L 1191 1831 +Q 1191 1081 1462 751 +Q 1734 422 2344 422 +Q 2950 422 3222 751 +Q 3494 1081 3494 1831 +L 3494 4666 +L 4128 4666 +L 4128 1753 +Q 4128 841 3676 375 +Q 3225 -91 2344 -91 +Q 1459 -91 1007 375 +Q 556 841 556 1753 +L 556 4666 +z +" id="DejaVuSans-55" transform="scale(0.015625)"/> + <path d="M 1831 0 +L 50 4666 +L 709 4666 +L 2188 738 +L 3669 4666 +L 4325 4666 +L 2547 0 +L 1831 0 +z +" id="DejaVuSans-56" transform="scale(0.015625)"/> + </defs> + <use xlink:href="#DejaVuSans-55"/> + <use x="73.193359" xlink:href="#DejaVuSans-2f"/> + <use x="106.884766" xlink:href="#DejaVuSans-6d"/> + <use x="204.296875" xlink:href="#DejaVuSans-56"/> + </g> + </g> + </g> + <g id="line2d_12"> + <path clip-path="url(#p62e96f8787)" d="M 57.528576 295.488 +L 129.095424 295.488 +L 129.38112 251.185094 +L 129.809664 220.022323 +L 130.45248 189.354763 +L 131.309568 159.142569 +L 132.380928 129.399837 +L 133.66656 100.178513 +L 135.09504 72.805095 +L 136.237824 53.568 +L 136.52352 93.355815 +L 136.952064 117.940053 +L 137.523456 137.229367 +L 138.237696 153.474814 +L 139.02336 166.4727 +L 139.951872 178.166601 +L 140.951808 188.031543 +L 142.094592 197.062613 +L 143.3088 204.878116 +L 144.594432 211.7481 +L 146.022912 218.154411 +L 147.522816 223.851301 +L 149.094144 228.965142 +L 150.80832 233.777795 +L 152.59392 238.128035 +L 154.450944 242.08535 +L 156.450816 245.83011 +L 158.593536 249.362577 +L 160.80768 252.589048 +L 163.164672 255.636147 +L 165.664512 258.507712 +L 168.3072 261.209138 +L 171.16416 263.808142 +L 174.163968 266.23698 +L 177.378048 268.553761 +L 180.8064 270.751708 +L 184.520448 272.865431 +L 188.520192 274.880518 +L 192.805632 276.787121 +L 197.448192 278.605366 +L 202.447872 280.322455 +L 207.876096 281.950043 +L 213.804288 283.492842 +L 220.303872 284.950635 +L 227.446272 286.319985 +L 235.302912 287.595719 +L 244.01664 288.78105 +L 253.730304 289.873468 +L 264.658176 290.873363 +L 277.014528 291.775618 +L 291.15648 292.580431 +L 307.584 293.287344 +L 327.082752 293.896949 +L 350.79552 294.407119 +L 380.650752 294.816724 +L 414.791424 295.093951 +L 414.791424 295.093951 +" style="fill:none;stroke:#1f77b4;stroke-linecap:square;stroke-width:1.5;"/> + </g> + <g id="line2d_13"> + <path clip-path="url(#p62e96f8787)" d="M 57.528576 295.488 +L 129.666816 295.395342 +L 129.952512 295.08399 +L 130.238208 294.431589 +L 130.666752 292.744912 +L 131.238144 289.329082 +L 132.023808 283.099789 +L 133.30944 270.902294 +L 137.523456 229.687213 +L 138.094848 226.909147 +L 138.594816 225.532371 +L 139.02336 224.932674 +L 139.38048 224.739682 +L 139.7376 224.761041 +L 140.166144 225.004132 +L 140.737536 225.598567 +L 141.594624 226.868798 +L 142.95168 229.363168 +L 149.451264 241.855909 +L 151.87968 245.840463 +L 154.37952 249.515762 +L 156.950784 252.895901 +L 159.593472 256.003791 +L 162.379008 258.935221 +L 165.307392 261.69164 +L 168.378624 264.277389 +L 171.664128 266.749335 +L 175.163904 269.098174 +L 178.877952 271.318422 +L 182.806272 273.407575 +L 187.020288 275.397197 +L 191.591424 277.305962 +L 196.51968 279.117977 +L 201.805056 280.822255 +L 207.5904 282.449453 +L 213.875712 283.981093 +L 220.732416 285.418561 +L 228.231936 286.760127 +L 236.51712 288.012251 +L 245.659392 289.165994 +L 255.873024 290.227526 +L 267.372288 291.194919 +L 280.44288 292.066323 +L 295.44192 292.838426 +L 313.012224 293.513711 +L 333.939456 294.088203 +L 359.652096 294.562896 +L 392.57856 294.93742 +L 414.791424 295.097614 +L 414.791424 295.097614 +" style="fill:none;stroke:#ff7f0e;stroke-linecap:square;stroke-width:1.5;"/> + </g> + <g id="line2d_14"> + <path clip-path="url(#p62e96f8787)" d="M 57.528576 295.488 +L 131.595264 295.381129 +L 132.380928 295.084112 +L 133.095168 294.551378 +L 133.809408 293.727253 +L 134.595072 292.476048 +L 135.523584 290.557633 +L 136.666368 287.622591 +L 138.094848 283.254688 +L 140.523264 275.726141 +L 141.737472 272.746435 +L 142.808832 270.662974 +L 143.880192 269.044296 +L 144.951552 267.823577 +L 146.022912 266.933674 +L 147.165696 266.281725 +L 148.379904 265.858531 +L 149.665536 265.648597 +L 151.16544 265.641115 +L 152.879616 265.864422 +L 154.950912 266.365166 +L 157.665024 267.265272 +L 161.593344 268.825126 +L 178.092288 275.604641 +L 184.234752 277.773072 +L 190.44864 279.727852 +L 196.8768 281.514947 +L 203.66208 283.169136 +L 210.947328 284.71306 +L 218.803968 286.146568 +L 227.303424 287.468344 +L 236.588544 288.685168 +L 246.8736 289.805214 +L 258.30144 290.822306 +L 271.15776 291.739194 +L 285.79968 292.555651 +L 302.727168 293.271188 +L 322.725888 293.886663 +L 346.8672 294.399292 +L 377.2224 294.811601 +L 414.791424 295.108133 +L 414.791424 295.108133 +" style="fill:none;stroke:#2ca02c;stroke-linecap:square;stroke-width:1.5;"/> + </g> + <g id="line2d_15"> + <path clip-path="url(#p62e96f8787)" d="M 57.528576 295.488 +L 134.595072 295.382771 +L 136.094976 295.100883 +L 137.380608 294.632217 +L 138.66624 293.915136 +L 140.023296 292.883514 +L 141.666048 291.332618 +L 147.451392 285.615142 +L 149.37984 284.146726 +L 151.308288 282.960986 +L 153.236736 282.03591 +L 155.308032 281.295779 +L 157.522176 280.748621 +L 159.950592 280.383908 +L 162.664704 280.204801 +L 165.80736 280.223811 +L 169.592832 280.475062 +L 174.449664 281.032248 +L 181.449216 282.080156 +L 211.018752 286.728291 +L 222.23232 288.152099 +L 233.803008 289.394238 +L 246.15936 290.494383 +L 259.72992 291.474981 +L 274.800384 292.336956 +L 291.942144 293.090068 +L 311.86944 293.737086 +L 335.653632 294.279577 +L 365.08032 294.719155 +L 403.363584 295.056826 +L 414.791424 295.124498 +L 414.791424 295.124498 +" style="fill:none;stroke:#d62728;stroke-linecap:square;stroke-width:1.5;"/> + </g> + <g id="line2d_16"> + <path clip-path="url(#p62e96f8787)" d="M 57.528576 295.488 +L 138.737664 295.378178 +L 141.16608 295.098356 +L 143.380224 294.615105 +L 145.80864 293.847406 +L 149.522688 292.405369 +L 154.879488 290.363725 +L 158.379264 289.278814 +L 161.807616 288.450679 +L 165.378816 287.820891 +L 169.235712 287.371098 +L 173.521152 287.098722 +L 178.520832 287.011222 +L 184.520448 287.136867 +L 192.305664 287.534099 +L 204.304896 288.394234 +L 237.802752 290.875192 +L 255.373056 291.901642 +L 273.800448 292.751932 +L 294.227712 293.467328 +L 317.869056 294.066028 +L 346.224384 294.553469 +L 381.936384 294.934852 +L 414.791424 295.145087 +L 414.791424 295.145087 +" style="fill:none;stroke:#9467bd;stroke-linecap:square;stroke-width:1.5;"/> + </g> + <g id="line2d_17"> + <path clip-path="url(#p62e96f8787)" d="M 57.528576 295.488 +L 143.951616 295.377207 +L 147.808512 295.089115 +L 151.951104 294.54433 +L 159.02208 293.337397 +L 166.378752 292.172361 +L 172.164096 291.485008 +L 178.092288 291.00649 +L 184.591872 290.709563 +L 192.091392 290.595818 +L 201.376512 290.688423 +L 214.161408 291.056805 +L 242.873856 292.180532 +L 271.014912 293.162411 +L 297.370368 293.853198 +L 326.86848 294.397678 +L 362.437632 294.822887 +L 408.434688 295.138114 +L 414.791424 295.167869 +L 414.791424 295.167869 +" style="fill:none;stroke:#8c564b;stroke-linecap:square;stroke-width:1.5;"/> + </g> + <g id="line2d_18"> + <path clip-path="url(#p62e96f8787)" d="M 57.528576 295.488 +L 150.379776 295.377815 +L 156.736512 295.069085 +L 165.521664 294.387916 +L 178.949376 293.373436 +L 188.163072 292.918295 +L 197.94816 292.662328 +L 209.518848 292.591627 +L 224.73216 292.736552 +L 251.230464 293.249921 +L 301.012992 294.196413 +L 340.224768 294.69581 +L 386.721792 295.055804 +L 414.791424 295.190608 +L 414.791424 295.190608 +" style="fill:none;stroke:#e377c2;stroke-linecap:square;stroke-width:1.5;"/> + </g> + <g id="line2d_19"> + <path clip-path="url(#p62e96f8787)" d="M 57.528576 295.488 +L 158.379264 295.377369 +L 168.878592 295.046725 +L 198.6624 293.977649 +L 213.30432 293.761568 +L 231.088896 293.733496 +L 257.372928 293.93765 +L 368.080128 294.991662 +L 414.791424 295.211085 +L 414.791424 295.211085 +" style="fill:none;stroke:#7f7f7f;stroke-linecap:square;stroke-width:1.5;"/> + </g> + <g id="line2d_20"> + <path clip-path="url(#p62e96f8787)" d="M 57.528576 295.488 +L 168.235776 295.377694 +L 186.87744 295.001566 +L 213.518592 294.504258 +L 235.231488 294.341376 +L 262.729728 294.373015 +L 314.440704 294.704458 +L 393.721344 295.151897 +L 414.791424 295.227309 +L 414.791424 295.227309 +" style="fill:none;stroke:#bcbd22;stroke-linecap:square;stroke-width:1.5;"/> + </g> + <g id="line2d_21"> + <path clip-path="url(#p62e96f8787)" d="M 57.528576 295.488 +L 179.806464 295.377416 +L 210.733056 294.946325 +L 239.231232 294.662905 +L 268.3008 294.610244 +L 312.797952 294.782804 +L 414.791424 295.237715 +L 414.791424 295.237715 +" style="fill:none;stroke:#17becf;stroke-linecap:square;stroke-width:1.5;"/> + </g> + <g id="line2d_22"> + <path clip-path="url(#p62e96f8787)" d="M 57.528576 295.488 +L 186.377472 295.377155 +L 227.089152 294.876956 +L 255.587328 294.696825 +L 289.656576 294.720967 +L 373.936896 295.098589 +L 414.791424 295.241334 +L 414.791424 295.241334 +" style="fill:none;stroke:#1f77b4;stroke-linecap:square;stroke-width:1.5;"/> + </g> + <g id="patch_3"> + <path d="M 57.6 307.584 +L 57.6 41.472 +" style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;"/> + </g> + <g id="patch_4"> + <path d="M 414.72 307.584 +L 414.72 41.472 +" style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;"/> + </g> + <g id="patch_5"> + <path d="M 57.6 307.584 +L 414.72 307.584 +" style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;"/> + </g> + <g id="patch_6"> + <path d="M 57.6 41.472 +L 414.72 41.472 +" style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;"/> + </g> + <g id="legend_1"> + <g id="patch_7"> + <path d="M 362.995 210.931375 +L 407.72 210.931375 +Q 409.72 210.931375 409.72 208.931375 +L 409.72 48.472 +Q 409.72 46.472 407.72 46.472 +L 362.995 46.472 +Q 360.995 46.472 360.995 48.472 +L 360.995 208.931375 +Q 360.995 210.931375 362.995 210.931375 +z +" style="fill:#ffffff;opacity:0.8;stroke:#cccccc;stroke-linejoin:miter;"/> + </g> + <g id="line2d_23"> + <path d="M 364.995 54.570437 +L 384.995 54.570437 +" style="fill:none;stroke:#1f77b4;stroke-linecap:square;stroke-width:1.5;"/> + </g> + <g id="line2d_24"/> + <g id="text_14"> + <!-- 0 --> + <g transform="translate(392.995 58.070437)scale(0.1 -0.1)"> + <use xlink:href="#DejaVuSans-30"/> + </g> + </g> + <g id="line2d_25"> + <path d="M 364.995 69.248562 +L 384.995 69.248562 +" style="fill:none;stroke:#ff7f0e;stroke-linecap:square;stroke-width:1.5;"/> + </g> + <g id="line2d_26"/> + <g id="text_15"> + <!-- 1 --> + <g transform="translate(392.995 72.748562)scale(0.1 -0.1)"> + <use xlink:href="#DejaVuSans-31"/> + </g> + </g> + <g id="line2d_27"> + <path d="M 364.995 83.926688 +L 384.995 83.926688 +" style="fill:none;stroke:#2ca02c;stroke-linecap:square;stroke-width:1.5;"/> + </g> + <g id="line2d_28"/> + <g id="text_16"> + <!-- 2 --> + <g transform="translate(392.995 87.426688)scale(0.1 -0.1)"> + <use xlink:href="#DejaVuSans-32"/> + </g> + </g> + <g id="line2d_29"> + <path d="M 364.995 98.604812 +L 384.995 98.604812 +" style="fill:none;stroke:#d62728;stroke-linecap:square;stroke-width:1.5;"/> + </g> + <g id="line2d_30"/> + <g id="text_17"> + <!-- 3 --> + <g transform="translate(392.995 102.104812)scale(0.1 -0.1)"> + <use xlink:href="#DejaVuSans-33"/> + </g> + </g> + <g id="line2d_31"> + <path d="M 364.995 113.282938 +L 384.995 113.282938 +" style="fill:none;stroke:#9467bd;stroke-linecap:square;stroke-width:1.5;"/> + </g> + <g id="line2d_32"/> + <g id="text_18"> + <!-- 4 --> + <g transform="translate(392.995 116.782938)scale(0.1 -0.1)"> + <use xlink:href="#DejaVuSans-34"/> + </g> + </g> + <g id="line2d_33"> + <path d="M 364.995 127.961062 +L 384.995 127.961062 +" style="fill:none;stroke:#8c564b;stroke-linecap:square;stroke-width:1.5;"/> + </g> + <g id="line2d_34"/> + <g id="text_19"> + <!-- 5 --> + <g transform="translate(392.995 131.461062)scale(0.1 -0.1)"> + <use xlink:href="#DejaVuSans-35"/> + </g> + </g> + <g id="line2d_35"> + <path d="M 364.995 142.639187 +L 384.995 142.639187 +" style="fill:none;stroke:#e377c2;stroke-linecap:square;stroke-width:1.5;"/> + </g> + <g id="line2d_36"/> + <g id="text_20"> + <!-- 6 --> + <g transform="translate(392.995 146.139187)scale(0.1 -0.1)"> + <use xlink:href="#DejaVuSans-36"/> + </g> + </g> + <g id="line2d_37"> + <path d="M 364.995 157.317312 +L 384.995 157.317312 +" style="fill:none;stroke:#7f7f7f;stroke-linecap:square;stroke-width:1.5;"/> + </g> + <g id="line2d_38"/> + <g id="text_21"> + <!-- 7 --> + <g transform="translate(392.995 160.817312)scale(0.1 -0.1)"> + <defs> + <path d="M 525 4666 +L 3525 4666 +L 3525 4397 +L 1831 0 +L 1172 0 +L 2766 4134 +L 525 4134 +L 525 4666 +z +" id="DejaVuSans-37" transform="scale(0.015625)"/> + </defs> + <use xlink:href="#DejaVuSans-37"/> + </g> + </g> + <g id="line2d_39"> + <path d="M 364.995 171.995437 +L 384.995 171.995437 +" style="fill:none;stroke:#bcbd22;stroke-linecap:square;stroke-width:1.5;"/> + </g> + <g id="line2d_40"/> + <g id="text_22"> + <!-- 8 --> + <g transform="translate(392.995 175.495437)scale(0.1 -0.1)"> + <defs> + <path d="M 2034 2216 +Q 1584 2216 1326 1975 +Q 1069 1734 1069 1313 +Q 1069 891 1326 650 +Q 1584 409 2034 409 +Q 2484 409 2743 651 +Q 3003 894 3003 1313 +Q 3003 1734 2745 1975 +Q 2488 2216 2034 2216 +z +M 1403 2484 +Q 997 2584 770 2862 +Q 544 3141 544 3541 +Q 544 4100 942 4425 +Q 1341 4750 2034 4750 +Q 2731 4750 3128 4425 +Q 3525 4100 3525 3541 +Q 3525 3141 3298 2862 +Q 3072 2584 2669 2484 +Q 3125 2378 3379 2068 +Q 3634 1759 3634 1313 +Q 3634 634 3220 271 +Q 2806 -91 2034 -91 +Q 1263 -91 848 271 +Q 434 634 434 1313 +Q 434 1759 690 2068 +Q 947 2378 1403 2484 +z +M 1172 3481 +Q 1172 3119 1398 2916 +Q 1625 2713 2034 2713 +Q 2441 2713 2670 2916 +Q 2900 3119 2900 3481 +Q 2900 3844 2670 4047 +Q 2441 4250 2034 4250 +Q 1625 4250 1398 4047 +Q 1172 3844 1172 3481 +z +" id="DejaVuSans-38" transform="scale(0.015625)"/> + </defs> + <use xlink:href="#DejaVuSans-38"/> + </g> + </g> + <g id="line2d_41"> + <path d="M 364.995 186.673562 +L 384.995 186.673562 +" style="fill:none;stroke:#17becf;stroke-linecap:square;stroke-width:1.5;"/> + </g> + <g id="line2d_42"/> + <g id="text_23"> + <!-- 9 --> + <g transform="translate(392.995 190.173562)scale(0.1 -0.1)"> + <use xlink:href="#DejaVuSans-39"/> + </g> + </g> + <g id="line2d_43"> + <path d="M 364.995 201.351687 +L 384.995 201.351687 +" style="fill:none;stroke:#1f77b4;stroke-linecap:square;stroke-width:1.5;"/> + </g> + <g id="line2d_44"/> + <g id="text_24"> + <!-- 10 --> + <g transform="translate(392.995 204.851687)scale(0.1 -0.1)"> + <use xlink:href="#DejaVuSans-31"/> + <use x="63.623047" xlink:href="#DejaVuSans-30"/> + </g> + </g> + </g> + </g> + </g> + <defs> + <clipPath id="p62e96f8787"> + <rect height="266.112" width="357.12" x="57.6" y="41.472"/> + </clipPath> + </defs> +</svg> diff --git a/doc/tutorial/single_cell_cable_result_cv_policy.svg b/doc/tutorial/single_cell_cable_result_cv_policy.svg new file mode 100644 index 0000000000000000000000000000000000000000..ae297cd56b2f65a92282b14f27879628fb4d0e14 --- /dev/null +++ b/doc/tutorial/single_cell_cable_result_cv_policy.svg @@ -0,0 +1,1454 @@ +<?xml version="1.0" encoding="utf-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<svg height="345.6pt" version="1.1" viewBox="0 0 460.8 345.6" width="460.8pt" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> + <metadata> + <rdf:RDF xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> + <cc:Work> + <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/> + <dc:date>2021-05-28T18:00:30.953375</dc:date> + <dc:format>image/svg+xml</dc:format> + <dc:creator> + <cc:Agent> + <dc:title>Matplotlib v3.4.2, https://matplotlib.org/</dc:title> + </cc:Agent> + </dc:creator> + </cc:Work> + </rdf:RDF> + </metadata> + <defs> + <style type="text/css">*{stroke-linecap:butt;stroke-linejoin:round;}</style> + </defs> + <g id="figure_1"> + <g id="patch_1"> + <path d="M 0 345.6 +L 460.8 345.6 +L 460.8 0 +L 0 0 +z +" style="fill:#ffffff;"/> + </g> + <g id="axes_1"> + <g id="patch_2"> + <path d="M 57.6 307.584 +L 414.72 307.584 +L 414.72 41.472 +L 57.6 41.472 +z +" style="fill:#ffffff;"/> + </g> + <g id="matplotlib.axis_1"> + <g id="xtick_1"> + <g id="line2d_1"> + <defs> + <path d="M 0 0 +L 0 3.5 +" id="m3f1166deb8" style="stroke:#000000;stroke-width:0.8;"/> + </defs> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="57.6" xlink:href="#m3f1166deb8" y="307.584"/> + </g> + </g> + <g id="text_1"> + <!-- 9 --> + <g transform="translate(54.41875 322.182437)scale(0.1 -0.1)"> + <defs> + <path d="M 703 97 +L 703 672 +Q 941 559 1184 500 +Q 1428 441 1663 441 +Q 2288 441 2617 861 +Q 2947 1281 2994 2138 +Q 2813 1869 2534 1725 +Q 2256 1581 1919 1581 +Q 1219 1581 811 2004 +Q 403 2428 403 3163 +Q 403 3881 828 4315 +Q 1253 4750 1959 4750 +Q 2769 4750 3195 4129 +Q 3622 3509 3622 2328 +Q 3622 1225 3098 567 +Q 2575 -91 1691 -91 +Q 1453 -91 1209 -44 +Q 966 3 703 97 +z +M 1959 2075 +Q 2384 2075 2632 2365 +Q 2881 2656 2881 3163 +Q 2881 3666 2632 3958 +Q 2384 4250 1959 4250 +Q 1534 4250 1286 3958 +Q 1038 3666 1038 3163 +Q 1038 2656 1286 2365 +Q 1534 2075 1959 2075 +z +" id="DejaVuSans-39" transform="scale(0.015625)"/> + </defs> + <use xlink:href="#DejaVuSans-39"/> + </g> + </g> + </g> + <g id="xtick_2"> + <g id="line2d_2"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="129.024" xlink:href="#m3f1166deb8" y="307.584"/> + </g> + </g> + <g id="text_2"> + <!-- 10 --> + <g transform="translate(122.6615 322.182437)scale(0.1 -0.1)"> + <defs> + <path d="M 794 531 +L 1825 531 +L 1825 4091 +L 703 3866 +L 703 4441 +L 1819 4666 +L 2450 4666 +L 2450 531 +L 3481 531 +L 3481 0 +L 794 0 +L 794 531 +z +" id="DejaVuSans-31" transform="scale(0.015625)"/> + <path d="M 2034 4250 +Q 1547 4250 1301 3770 +Q 1056 3291 1056 2328 +Q 1056 1369 1301 889 +Q 1547 409 2034 409 +Q 2525 409 2770 889 +Q 3016 1369 3016 2328 +Q 3016 3291 2770 3770 +Q 2525 4250 2034 4250 +z +M 2034 4750 +Q 2819 4750 3233 4129 +Q 3647 3509 3647 2328 +Q 3647 1150 3233 529 +Q 2819 -91 2034 -91 +Q 1250 -91 836 529 +Q 422 1150 422 2328 +Q 422 3509 836 4129 +Q 1250 4750 2034 4750 +z +" id="DejaVuSans-30" transform="scale(0.015625)"/> + </defs> + <use xlink:href="#DejaVuSans-31"/> + <use x="63.623047" xlink:href="#DejaVuSans-30"/> + </g> + </g> + </g> + <g id="xtick_3"> + <g id="line2d_3"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="200.448" xlink:href="#m3f1166deb8" y="307.584"/> + </g> + </g> + <g id="text_3"> + <!-- 11 --> + <g transform="translate(194.0855 322.182437)scale(0.1 -0.1)"> + <use xlink:href="#DejaVuSans-31"/> + <use x="63.623047" xlink:href="#DejaVuSans-31"/> + </g> + </g> + </g> + <g id="xtick_4"> + <g id="line2d_4"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="271.872" xlink:href="#m3f1166deb8" y="307.584"/> + </g> + </g> + <g id="text_4"> + <!-- 12 --> + <g transform="translate(265.5095 322.182437)scale(0.1 -0.1)"> + <defs> + <path d="M 1228 531 +L 3431 531 +L 3431 0 +L 469 0 +L 469 531 +Q 828 903 1448 1529 +Q 2069 2156 2228 2338 +Q 2531 2678 2651 2914 +Q 2772 3150 2772 3378 +Q 2772 3750 2511 3984 +Q 2250 4219 1831 4219 +Q 1534 4219 1204 4116 +Q 875 4013 500 3803 +L 500 4441 +Q 881 4594 1212 4672 +Q 1544 4750 1819 4750 +Q 2544 4750 2975 4387 +Q 3406 4025 3406 3419 +Q 3406 3131 3298 2873 +Q 3191 2616 2906 2266 +Q 2828 2175 2409 1742 +Q 1991 1309 1228 531 +z +" id="DejaVuSans-32" transform="scale(0.015625)"/> + </defs> + <use xlink:href="#DejaVuSans-31"/> + <use x="63.623047" xlink:href="#DejaVuSans-32"/> + </g> + </g> + </g> + <g id="xtick_5"> + <g id="line2d_5"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="343.296" xlink:href="#m3f1166deb8" y="307.584"/> + </g> + </g> + <g id="text_5"> + <!-- 13 --> + <g transform="translate(336.9335 322.182437)scale(0.1 -0.1)"> + <defs> + <path d="M 2597 2516 +Q 3050 2419 3304 2112 +Q 3559 1806 3559 1356 +Q 3559 666 3084 287 +Q 2609 -91 1734 -91 +Q 1441 -91 1130 -33 +Q 819 25 488 141 +L 488 750 +Q 750 597 1062 519 +Q 1375 441 1716 441 +Q 2309 441 2620 675 +Q 2931 909 2931 1356 +Q 2931 1769 2642 2001 +Q 2353 2234 1838 2234 +L 1294 2234 +L 1294 2753 +L 1863 2753 +Q 2328 2753 2575 2939 +Q 2822 3125 2822 3475 +Q 2822 3834 2567 4026 +Q 2313 4219 1838 4219 +Q 1578 4219 1281 4162 +Q 984 4106 628 3988 +L 628 4550 +Q 988 4650 1302 4700 +Q 1616 4750 1894 4750 +Q 2613 4750 3031 4423 +Q 3450 4097 3450 3541 +Q 3450 3153 3228 2886 +Q 3006 2619 2597 2516 +z +" id="DejaVuSans-33" transform="scale(0.015625)"/> + </defs> + <use xlink:href="#DejaVuSans-31"/> + <use x="63.623047" xlink:href="#DejaVuSans-33"/> + </g> + </g> + </g> + <g id="xtick_6"> + <g id="line2d_6"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="414.72" xlink:href="#m3f1166deb8" y="307.584"/> + </g> + </g> + <g id="text_6"> + <!-- 14 --> + <g transform="translate(408.3575 322.182437)scale(0.1 -0.1)"> + <defs> + <path d="M 2419 4116 +L 825 1625 +L 2419 1625 +L 2419 4116 +z +M 2253 4666 +L 3047 4666 +L 3047 1625 +L 3713 1625 +L 3713 1100 +L 3047 1100 +L 3047 0 +L 2419 0 +L 2419 1100 +L 313 1100 +L 313 1709 +L 2253 4666 +z +" id="DejaVuSans-34" transform="scale(0.015625)"/> + </defs> + <use xlink:href="#DejaVuSans-31"/> + <use x="63.623047" xlink:href="#DejaVuSans-34"/> + </g> + </g> + </g> + <g id="text_7"> + <!-- t/ms --> + <g transform="translate(225.040469 335.860562)scale(0.1 -0.1)"> + <defs> + <path d="M 1172 4494 +L 1172 3500 +L 2356 3500 +L 2356 3053 +L 1172 3053 +L 1172 1153 +Q 1172 725 1289 603 +Q 1406 481 1766 481 +L 2356 481 +L 2356 0 +L 1766 0 +Q 1100 0 847 248 +Q 594 497 594 1153 +L 594 3053 +L 172 3053 +L 172 3500 +L 594 3500 +L 594 4494 +L 1172 4494 +z +" id="DejaVuSans-74" transform="scale(0.015625)"/> + <path d="M 1625 4666 +L 2156 4666 +L 531 -594 +L 0 -594 +L 1625 4666 +z +" id="DejaVuSans-2f" transform="scale(0.015625)"/> + <path d="M 3328 2828 +Q 3544 3216 3844 3400 +Q 4144 3584 4550 3584 +Q 5097 3584 5394 3201 +Q 5691 2819 5691 2113 +L 5691 0 +L 5113 0 +L 5113 2094 +Q 5113 2597 4934 2840 +Q 4756 3084 4391 3084 +Q 3944 3084 3684 2787 +Q 3425 2491 3425 1978 +L 3425 0 +L 2847 0 +L 2847 2094 +Q 2847 2600 2669 2842 +Q 2491 3084 2119 3084 +Q 1678 3084 1418 2786 +Q 1159 2488 1159 1978 +L 1159 0 +L 581 0 +L 581 3500 +L 1159 3500 +L 1159 2956 +Q 1356 3278 1631 3431 +Q 1906 3584 2284 3584 +Q 2666 3584 2933 3390 +Q 3200 3197 3328 2828 +z +" id="DejaVuSans-6d" transform="scale(0.015625)"/> + <path d="M 2834 3397 +L 2834 2853 +Q 2591 2978 2328 3040 +Q 2066 3103 1784 3103 +Q 1356 3103 1142 2972 +Q 928 2841 928 2578 +Q 928 2378 1081 2264 +Q 1234 2150 1697 2047 +L 1894 2003 +Q 2506 1872 2764 1633 +Q 3022 1394 3022 966 +Q 3022 478 2636 193 +Q 2250 -91 1575 -91 +Q 1294 -91 989 -36 +Q 684 19 347 128 +L 347 722 +Q 666 556 975 473 +Q 1284 391 1588 391 +Q 1994 391 2212 530 +Q 2431 669 2431 922 +Q 2431 1156 2273 1281 +Q 2116 1406 1581 1522 +L 1381 1569 +Q 847 1681 609 1914 +Q 372 2147 372 2553 +Q 372 3047 722 3315 +Q 1072 3584 1716 3584 +Q 2034 3584 2315 3537 +Q 2597 3491 2834 3397 +z +" id="DejaVuSans-73" transform="scale(0.015625)"/> + </defs> + <use xlink:href="#DejaVuSans-74"/> + <use x="39.208984" xlink:href="#DejaVuSans-2f"/> + <use x="72.900391" xlink:href="#DejaVuSans-6d"/> + <use x="170.3125" xlink:href="#DejaVuSans-73"/> + </g> + </g> + </g> + <g id="matplotlib.axis_2"> + <g id="ytick_1"> + <g id="line2d_7"> + <defs> + <path d="M 0 0 +L -3.5 0 +" id="m73994b230e" style="stroke:#000000;stroke-width:0.8;"/> + </defs> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="57.6" xlink:href="#m73994b230e" y="295.488"/> + </g> + </g> + <g id="text_8"> + <!-- −65.0 --> + <g transform="translate(19.954687 299.287219)scale(0.1 -0.1)"> + <defs> + <path d="M 678 2272 +L 4684 2272 +L 4684 1741 +L 678 1741 +L 678 2272 +z +" id="DejaVuSans-2212" transform="scale(0.015625)"/> + <path d="M 2113 2584 +Q 1688 2584 1439 2293 +Q 1191 2003 1191 1497 +Q 1191 994 1439 701 +Q 1688 409 2113 409 +Q 2538 409 2786 701 +Q 3034 994 3034 1497 +Q 3034 2003 2786 2293 +Q 2538 2584 2113 2584 +z +M 3366 4563 +L 3366 3988 +Q 3128 4100 2886 4159 +Q 2644 4219 2406 4219 +Q 1781 4219 1451 3797 +Q 1122 3375 1075 2522 +Q 1259 2794 1537 2939 +Q 1816 3084 2150 3084 +Q 2853 3084 3261 2657 +Q 3669 2231 3669 1497 +Q 3669 778 3244 343 +Q 2819 -91 2113 -91 +Q 1303 -91 875 529 +Q 447 1150 447 2328 +Q 447 3434 972 4092 +Q 1497 4750 2381 4750 +Q 2619 4750 2861 4703 +Q 3103 4656 3366 4563 +z +" id="DejaVuSans-36" transform="scale(0.015625)"/> + <path d="M 691 4666 +L 3169 4666 +L 3169 4134 +L 1269 4134 +L 1269 2991 +Q 1406 3038 1543 3061 +Q 1681 3084 1819 3084 +Q 2600 3084 3056 2656 +Q 3513 2228 3513 1497 +Q 3513 744 3044 326 +Q 2575 -91 1722 -91 +Q 1428 -91 1123 -41 +Q 819 9 494 109 +L 494 744 +Q 775 591 1075 516 +Q 1375 441 1709 441 +Q 2250 441 2565 725 +Q 2881 1009 2881 1497 +Q 2881 1984 2565 2268 +Q 2250 2553 1709 2553 +Q 1456 2553 1204 2497 +Q 953 2441 691 2322 +L 691 4666 +z +" id="DejaVuSans-35" transform="scale(0.015625)"/> + <path d="M 684 794 +L 1344 794 +L 1344 0 +L 684 0 +L 684 794 +z +" id="DejaVuSans-2e" transform="scale(0.015625)"/> + </defs> + <use xlink:href="#DejaVuSans-2212"/> + <use x="83.789062" xlink:href="#DejaVuSans-36"/> + <use x="147.412109" xlink:href="#DejaVuSans-35"/> + <use x="211.035156" xlink:href="#DejaVuSans-2e"/> + <use x="242.822266" xlink:href="#DejaVuSans-30"/> + </g> + </g> + </g> + <g id="ytick_2"> + <g id="line2d_8"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="57.6" xlink:href="#m73994b230e" y="263.526893"/> + </g> + </g> + <g id="text_9"> + <!-- −64.8 --> + <g transform="translate(19.954687 267.326112)scale(0.1 -0.1)"> + <defs> + <path d="M 2034 2216 +Q 1584 2216 1326 1975 +Q 1069 1734 1069 1313 +Q 1069 891 1326 650 +Q 1584 409 2034 409 +Q 2484 409 2743 651 +Q 3003 894 3003 1313 +Q 3003 1734 2745 1975 +Q 2488 2216 2034 2216 +z +M 1403 2484 +Q 997 2584 770 2862 +Q 544 3141 544 3541 +Q 544 4100 942 4425 +Q 1341 4750 2034 4750 +Q 2731 4750 3128 4425 +Q 3525 4100 3525 3541 +Q 3525 3141 3298 2862 +Q 3072 2584 2669 2484 +Q 3125 2378 3379 2068 +Q 3634 1759 3634 1313 +Q 3634 634 3220 271 +Q 2806 -91 2034 -91 +Q 1263 -91 848 271 +Q 434 634 434 1313 +Q 434 1759 690 2068 +Q 947 2378 1403 2484 +z +M 1172 3481 +Q 1172 3119 1398 2916 +Q 1625 2713 2034 2713 +Q 2441 2713 2670 2916 +Q 2900 3119 2900 3481 +Q 2900 3844 2670 4047 +Q 2441 4250 2034 4250 +Q 1625 4250 1398 4047 +Q 1172 3844 1172 3481 +z +" id="DejaVuSans-38" transform="scale(0.015625)"/> + </defs> + <use xlink:href="#DejaVuSans-2212"/> + <use x="83.789062" xlink:href="#DejaVuSans-36"/> + <use x="147.412109" xlink:href="#DejaVuSans-34"/> + <use x="211.035156" xlink:href="#DejaVuSans-2e"/> + <use x="242.822266" xlink:href="#DejaVuSans-38"/> + </g> + </g> + </g> + <g id="ytick_3"> + <g id="line2d_9"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="57.6" xlink:href="#m73994b230e" y="231.565787"/> + </g> + </g> + <g id="text_10"> + <!-- −64.6 --> + <g transform="translate(19.954687 235.365005)scale(0.1 -0.1)"> + <use xlink:href="#DejaVuSans-2212"/> + <use x="83.789062" xlink:href="#DejaVuSans-36"/> + <use x="147.412109" xlink:href="#DejaVuSans-34"/> + <use x="211.035156" xlink:href="#DejaVuSans-2e"/> + <use x="242.822266" xlink:href="#DejaVuSans-36"/> + </g> + </g> + </g> + <g id="ytick_4"> + <g id="line2d_10"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="57.6" xlink:href="#m73994b230e" y="199.60468"/> + </g> + </g> + <g id="text_11"> + <!-- −64.4 --> + <g transform="translate(19.954687 203.403899)scale(0.1 -0.1)"> + <use xlink:href="#DejaVuSans-2212"/> + <use x="83.789062" xlink:href="#DejaVuSans-36"/> + <use x="147.412109" xlink:href="#DejaVuSans-34"/> + <use x="211.035156" xlink:href="#DejaVuSans-2e"/> + <use x="242.822266" xlink:href="#DejaVuSans-34"/> + </g> + </g> + </g> + <g id="ytick_5"> + <g id="line2d_11"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="57.6" xlink:href="#m73994b230e" y="167.643573"/> + </g> + </g> + <g id="text_12"> + <!-- −64.2 --> + <g transform="translate(19.954687 171.442792)scale(0.1 -0.1)"> + <use xlink:href="#DejaVuSans-2212"/> + <use x="83.789062" xlink:href="#DejaVuSans-36"/> + <use x="147.412109" xlink:href="#DejaVuSans-34"/> + <use x="211.035156" xlink:href="#DejaVuSans-2e"/> + <use x="242.822266" xlink:href="#DejaVuSans-32"/> + </g> + </g> + </g> + <g id="ytick_6"> + <g id="line2d_12"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="57.6" xlink:href="#m73994b230e" y="135.682467"/> + </g> + </g> + <g id="text_13"> + <!-- −64.0 --> + <g transform="translate(19.954687 139.481685)scale(0.1 -0.1)"> + <use xlink:href="#DejaVuSans-2212"/> + <use x="83.789062" xlink:href="#DejaVuSans-36"/> + <use x="147.412109" xlink:href="#DejaVuSans-34"/> + <use x="211.035156" xlink:href="#DejaVuSans-2e"/> + <use x="242.822266" xlink:href="#DejaVuSans-30"/> + </g> + </g> + </g> + <g id="ytick_7"> + <g id="line2d_13"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="57.6" xlink:href="#m73994b230e" y="103.72136"/> + </g> + </g> + <g id="text_14"> + <!-- −63.8 --> + <g transform="translate(19.954687 107.520579)scale(0.1 -0.1)"> + <use xlink:href="#DejaVuSans-2212"/> + <use x="83.789062" xlink:href="#DejaVuSans-36"/> + <use x="147.412109" xlink:href="#DejaVuSans-33"/> + <use x="211.035156" xlink:href="#DejaVuSans-2e"/> + <use x="242.822266" xlink:href="#DejaVuSans-38"/> + </g> + </g> + </g> + <g id="ytick_8"> + <g id="line2d_14"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="57.6" xlink:href="#m73994b230e" y="71.760253"/> + </g> + </g> + <g id="text_15"> + <!-- −63.6 --> + <g transform="translate(19.954687 75.559472)scale(0.1 -0.1)"> + <use xlink:href="#DejaVuSans-2212"/> + <use x="83.789062" xlink:href="#DejaVuSans-36"/> + <use x="147.412109" xlink:href="#DejaVuSans-33"/> + <use x="211.035156" xlink:href="#DejaVuSans-2e"/> + <use x="242.822266" xlink:href="#DejaVuSans-36"/> + </g> + </g> + </g> + <g id="text_16"> + <!-- U/mV --> + <g transform="translate(13.875 188.162375)rotate(-90)scale(0.1 -0.1)"> + <defs> + <path d="M 556 4666 +L 1191 4666 +L 1191 1831 +Q 1191 1081 1462 751 +Q 1734 422 2344 422 +Q 2950 422 3222 751 +Q 3494 1081 3494 1831 +L 3494 4666 +L 4128 4666 +L 4128 1753 +Q 4128 841 3676 375 +Q 3225 -91 2344 -91 +Q 1459 -91 1007 375 +Q 556 841 556 1753 +L 556 4666 +z +" id="DejaVuSans-55" transform="scale(0.015625)"/> + <path d="M 1831 0 +L 50 4666 +L 709 4666 +L 2188 738 +L 3669 4666 +L 4325 4666 +L 2547 0 +L 1831 0 +z +" id="DejaVuSans-56" transform="scale(0.015625)"/> + </defs> + <use xlink:href="#DejaVuSans-55"/> + <use x="73.193359" xlink:href="#DejaVuSans-2f"/> + <use x="106.884766" xlink:href="#DejaVuSans-6d"/> + <use x="204.296875" xlink:href="#DejaVuSans-56"/> + </g> + </g> + </g> + <g id="line2d_15"> + <path clip-path="url(#p3097001ff2)" d="M 57.528576 295.488 +L 129.095424 295.488 +L 133.095168 157.040399 +L 136.237824 53.568 +L 140.380416 67.193589 +L 144.523008 80.051747 +L 148.6656 92.1857 +L 152.808192 103.636235 +L 156.950784 114.441845 +L 161.093376 124.638855 +L 165.307392 134.422606 +L 169.521408 143.646086 +L 173.735424 152.34138 +L 178.020864 160.673549 +L 182.306304 168.520725 +L 186.591744 175.911138 +L 190.948608 182.983881 +L 195.305472 189.638284 +L 199.73376 195.998581 +L 204.233472 202.070119 +L 208.733184 207.771129 +L 213.30432 213.206505 +L 217.94688 218.382184 +L 222.660864 223.304485 +L 227.446272 227.980064 +L 232.303104 232.41586 +L 237.23136 236.61906 +L 242.302464 240.65188 +L 247.444992 244.45946 +L 252.730368 248.097488 +L 258.158592 251.564037 +L 263.729664 254.858313 +L 269.443584 257.980573 +L 275.371776 260.966565 +L 281.51424 263.809969 +L 287.870976 266.506205 +L 294.441984 269.05234 +L 301.298688 271.471002 +L 308.512512 273.777147 +L 316.012032 275.940161 +L 323.940096 277.992911 +L 332.296704 279.923718 +L 341.081856 281.724225 +L 350.4384 283.413382 +L 360.43776 284.990097 +L 371.15136 286.451694 +L 382.722048 287.802531 +L 395.292672 289.04226 +L 409.00608 290.167776 +L 414.791424 290.581525 +L 414.791424 290.581525 +" style="fill:none;stroke:#1f77b4;stroke-linecap:square;stroke-width:1.5;"/> + </g> + <g id="line2d_16"> + <path clip-path="url(#p3097001ff2)" d="M 57.528576 295.488 +L 129.095424 295.488 +L 133.095168 157.040399 +L 136.237824 53.568 +L 140.380416 67.193589 +L 144.523008 80.051747 +L 148.6656 92.1857 +L 152.808192 103.636235 +L 156.950784 114.441845 +L 161.093376 124.638855 +L 165.307392 134.422606 +L 169.521408 143.646086 +L 173.735424 152.34138 +L 178.020864 160.673549 +L 182.306304 168.520725 +L 186.591744 175.911138 +L 190.948608 182.983881 +L 195.305472 189.638284 +L 199.73376 195.998581 +L 204.233472 202.070119 +L 208.733184 207.771129 +L 213.30432 213.206505 +L 217.94688 218.382184 +L 222.660864 223.304485 +L 227.446272 227.980064 +L 232.303104 232.41586 +L 237.23136 236.61906 +L 242.302464 240.65188 +L 247.444992 244.45946 +L 252.730368 248.097488 +L 258.158592 251.564037 +L 263.729664 254.858313 +L 269.443584 257.980573 +L 275.371776 260.966565 +L 281.51424 263.809969 +L 287.870976 266.506205 +L 294.441984 269.05234 +L 301.298688 271.471002 +L 308.512512 273.777147 +L 316.012032 275.940161 +L 323.940096 277.992911 +L 332.296704 279.923718 +L 341.081856 281.724225 +L 350.4384 283.413382 +L 360.43776 284.990097 +L 371.15136 286.451694 +L 382.722048 287.802531 +L 395.292672 289.04226 +L 409.00608 290.167776 +L 414.791424 290.581525 +L 414.791424 290.581525 +" style="fill:none;stroke:#ff7f0e;stroke-linecap:square;stroke-width:1.5;"/> + </g> + <g id="line2d_17"> + <path clip-path="url(#p3097001ff2)" d="M 57.528576 295.488 +L 129.095424 295.488 +L 133.095168 157.040399 +L 136.237824 53.568 +L 140.380416 67.193589 +L 144.523008 80.051747 +L 148.6656 92.1857 +L 152.808192 103.636235 +L 156.950784 114.441845 +L 161.093376 124.638855 +L 165.307392 134.422606 +L 169.521408 143.646086 +L 173.735424 152.34138 +L 178.020864 160.673549 +L 182.306304 168.520725 +L 186.591744 175.911138 +L 190.948608 182.983881 +L 195.305472 189.638284 +L 199.73376 195.998581 +L 204.233472 202.070119 +L 208.733184 207.771129 +L 213.30432 213.206505 +L 217.94688 218.382184 +L 222.660864 223.304485 +L 227.446272 227.980064 +L 232.303104 232.41586 +L 237.23136 236.61906 +L 242.302464 240.65188 +L 247.444992 244.45946 +L 252.730368 248.097488 +L 258.158592 251.564037 +L 263.729664 254.858313 +L 269.443584 257.980573 +L 275.371776 260.966565 +L 281.51424 263.809969 +L 287.870976 266.506205 +L 294.441984 269.05234 +L 301.298688 271.471002 +L 308.512512 273.777147 +L 316.012032 275.940161 +L 323.940096 277.992911 +L 332.296704 279.923718 +L 341.081856 281.724225 +L 350.4384 283.413382 +L 360.43776 284.990097 +L 371.15136 286.451694 +L 382.722048 287.802531 +L 395.292672 289.04226 +L 409.00608 290.167776 +L 414.791424 290.581525 +L 414.791424 290.581525 +" style="fill:none;stroke:#2ca02c;stroke-linecap:square;stroke-width:1.5;"/> + </g> + <g id="line2d_18"> + <path clip-path="url(#p3097001ff2)" d="M 57.528576 295.488 +L 129.095424 295.488 +L 133.095168 157.040399 +L 136.237824 53.568 +L 140.380416 67.193589 +L 144.523008 80.051747 +L 148.6656 92.1857 +L 152.808192 103.636235 +L 156.950784 114.441845 +L 161.093376 124.638855 +L 165.307392 134.422606 +L 169.521408 143.646086 +L 173.735424 152.34138 +L 178.020864 160.673549 +L 182.306304 168.520725 +L 186.591744 175.911138 +L 190.948608 182.983881 +L 195.305472 189.638284 +L 199.73376 195.998581 +L 204.233472 202.070119 +L 208.733184 207.771129 +L 213.30432 213.206505 +L 217.94688 218.382184 +L 222.660864 223.304485 +L 227.446272 227.980064 +L 232.303104 232.41586 +L 237.23136 236.61906 +L 242.302464 240.65188 +L 247.444992 244.45946 +L 252.730368 248.097488 +L 258.158592 251.564037 +L 263.729664 254.858313 +L 269.443584 257.980573 +L 275.371776 260.966565 +L 281.51424 263.809969 +L 287.870976 266.506205 +L 294.441984 269.05234 +L 301.298688 271.471002 +L 308.512512 273.777147 +L 316.012032 275.940161 +L 323.940096 277.992911 +L 332.296704 279.923718 +L 341.081856 281.724225 +L 350.4384 283.413382 +L 360.43776 284.990097 +L 371.15136 286.451694 +L 382.722048 287.802531 +L 395.292672 289.04226 +L 409.00608 290.167776 +L 414.791424 290.581525 +L 414.791424 290.581525 +" style="fill:none;stroke:#d62728;stroke-linecap:square;stroke-width:1.5;"/> + </g> + <g id="line2d_19"> + <path clip-path="url(#p3097001ff2)" d="M 57.528576 295.488 +L 129.095424 295.488 +L 133.095168 157.040399 +L 136.237824 53.568 +L 140.380416 67.193589 +L 144.523008 80.051747 +L 148.6656 92.1857 +L 152.808192 103.636235 +L 156.950784 114.441845 +L 161.093376 124.638855 +L 165.307392 134.422606 +L 169.521408 143.646086 +L 173.735424 152.34138 +L 178.020864 160.673549 +L 182.306304 168.520725 +L 186.591744 175.911138 +L 190.948608 182.983881 +L 195.305472 189.638284 +L 199.73376 195.998581 +L 204.233472 202.070119 +L 208.733184 207.771129 +L 213.30432 213.206505 +L 217.94688 218.382184 +L 222.660864 223.304485 +L 227.446272 227.980064 +L 232.303104 232.41586 +L 237.23136 236.61906 +L 242.302464 240.65188 +L 247.444992 244.45946 +L 252.730368 248.097488 +L 258.158592 251.564037 +L 263.729664 254.858313 +L 269.443584 257.980573 +L 275.371776 260.966565 +L 281.51424 263.809969 +L 287.870976 266.506205 +L 294.441984 269.05234 +L 301.298688 271.471002 +L 308.512512 273.777147 +L 316.012032 275.940161 +L 323.940096 277.992911 +L 332.296704 279.923718 +L 341.081856 281.724225 +L 350.4384 283.413382 +L 360.43776 284.990097 +L 371.15136 286.451694 +L 382.722048 287.802531 +L 395.292672 289.04226 +L 409.00608 290.167776 +L 414.791424 290.581525 +L 414.791424 290.581525 +" style="fill:none;stroke:#9467bd;stroke-linecap:square;stroke-width:1.5;"/> + </g> + <g id="line2d_20"> + <path clip-path="url(#p3097001ff2)" d="M 57.528576 295.488 +L 129.095424 295.488 +L 133.095168 157.040399 +L 136.237824 53.568 +L 140.380416 67.193589 +L 144.523008 80.051747 +L 148.6656 92.1857 +L 152.808192 103.636235 +L 156.950784 114.441845 +L 161.093376 124.638855 +L 165.307392 134.422606 +L 169.521408 143.646086 +L 173.735424 152.34138 +L 178.020864 160.673549 +L 182.306304 168.520725 +L 186.591744 175.911138 +L 190.948608 182.983881 +L 195.305472 189.638284 +L 199.73376 195.998581 +L 204.233472 202.070119 +L 208.733184 207.771129 +L 213.30432 213.206505 +L 217.94688 218.382184 +L 222.660864 223.304485 +L 227.446272 227.980064 +L 232.303104 232.41586 +L 237.23136 236.61906 +L 242.302464 240.65188 +L 247.444992 244.45946 +L 252.730368 248.097488 +L 258.158592 251.564037 +L 263.729664 254.858313 +L 269.443584 257.980573 +L 275.371776 260.966565 +L 281.51424 263.809969 +L 287.870976 266.506205 +L 294.441984 269.05234 +L 301.298688 271.471002 +L 308.512512 273.777147 +L 316.012032 275.940161 +L 323.940096 277.992911 +L 332.296704 279.923718 +L 341.081856 281.724225 +L 350.4384 283.413382 +L 360.43776 284.990097 +L 371.15136 286.451694 +L 382.722048 287.802531 +L 395.292672 289.04226 +L 409.00608 290.167776 +L 414.791424 290.581525 +L 414.791424 290.581525 +" style="fill:none;stroke:#8c564b;stroke-linecap:square;stroke-width:1.5;"/> + </g> + <g id="line2d_21"> + <path clip-path="url(#p3097001ff2)" d="M 57.528576 295.488 +L 129.095424 295.488 +L 133.095168 157.040399 +L 136.237824 53.568 +L 140.380416 67.193589 +L 144.523008 80.051747 +L 148.6656 92.1857 +L 152.808192 103.636235 +L 156.950784 114.441845 +L 161.093376 124.638855 +L 165.307392 134.422606 +L 169.521408 143.646086 +L 173.735424 152.34138 +L 178.020864 160.673549 +L 182.306304 168.520725 +L 186.591744 175.911138 +L 190.948608 182.983881 +L 195.305472 189.638284 +L 199.73376 195.998581 +L 204.233472 202.070119 +L 208.733184 207.771129 +L 213.30432 213.206505 +L 217.94688 218.382184 +L 222.660864 223.304485 +L 227.446272 227.980064 +L 232.303104 232.41586 +L 237.23136 236.61906 +L 242.302464 240.65188 +L 247.444992 244.45946 +L 252.730368 248.097488 +L 258.158592 251.564037 +L 263.729664 254.858313 +L 269.443584 257.980573 +L 275.371776 260.966565 +L 281.51424 263.809969 +L 287.870976 266.506205 +L 294.441984 269.05234 +L 301.298688 271.471002 +L 308.512512 273.777147 +L 316.012032 275.940161 +L 323.940096 277.992911 +L 332.296704 279.923718 +L 341.081856 281.724225 +L 350.4384 283.413382 +L 360.43776 284.990097 +L 371.15136 286.451694 +L 382.722048 287.802531 +L 395.292672 289.04226 +L 409.00608 290.167776 +L 414.791424 290.581525 +L 414.791424 290.581525 +" style="fill:none;stroke:#e377c2;stroke-linecap:square;stroke-width:1.5;"/> + </g> + <g id="line2d_22"> + <path clip-path="url(#p3097001ff2)" d="M 57.528576 295.488 +L 129.095424 295.488 +L 133.095168 157.040399 +L 136.237824 53.568 +L 140.380416 67.193589 +L 144.523008 80.051747 +L 148.6656 92.1857 +L 152.808192 103.636235 +L 156.950784 114.441845 +L 161.093376 124.638855 +L 165.307392 134.422606 +L 169.521408 143.646086 +L 173.735424 152.34138 +L 178.020864 160.673549 +L 182.306304 168.520725 +L 186.591744 175.911138 +L 190.948608 182.983881 +L 195.305472 189.638284 +L 199.73376 195.998581 +L 204.233472 202.070119 +L 208.733184 207.771129 +L 213.30432 213.206505 +L 217.94688 218.382184 +L 222.660864 223.304485 +L 227.446272 227.980064 +L 232.303104 232.41586 +L 237.23136 236.61906 +L 242.302464 240.65188 +L 247.444992 244.45946 +L 252.730368 248.097488 +L 258.158592 251.564037 +L 263.729664 254.858313 +L 269.443584 257.980573 +L 275.371776 260.966565 +L 281.51424 263.809969 +L 287.870976 266.506205 +L 294.441984 269.05234 +L 301.298688 271.471002 +L 308.512512 273.777147 +L 316.012032 275.940161 +L 323.940096 277.992911 +L 332.296704 279.923718 +L 341.081856 281.724225 +L 350.4384 283.413382 +L 360.43776 284.990097 +L 371.15136 286.451694 +L 382.722048 287.802531 +L 395.292672 289.04226 +L 409.00608 290.167776 +L 414.791424 290.581525 +L 414.791424 290.581525 +" style="fill:none;stroke:#7f7f7f;stroke-linecap:square;stroke-width:1.5;"/> + </g> + <g id="line2d_23"> + <path clip-path="url(#p3097001ff2)" d="M 57.528576 295.488 +L 129.095424 295.488 +L 133.095168 157.040399 +L 136.237824 53.568 +L 140.380416 67.193589 +L 144.523008 80.051747 +L 148.6656 92.1857 +L 152.808192 103.636235 +L 156.950784 114.441845 +L 161.093376 124.638855 +L 165.307392 134.422606 +L 169.521408 143.646086 +L 173.735424 152.34138 +L 178.020864 160.673549 +L 182.306304 168.520725 +L 186.591744 175.911138 +L 190.948608 182.983881 +L 195.305472 189.638284 +L 199.73376 195.998581 +L 204.233472 202.070119 +L 208.733184 207.771129 +L 213.30432 213.206505 +L 217.94688 218.382184 +L 222.660864 223.304485 +L 227.446272 227.980064 +L 232.303104 232.41586 +L 237.23136 236.61906 +L 242.302464 240.65188 +L 247.444992 244.45946 +L 252.730368 248.097488 +L 258.158592 251.564037 +L 263.729664 254.858313 +L 269.443584 257.980573 +L 275.371776 260.966565 +L 281.51424 263.809969 +L 287.870976 266.506205 +L 294.441984 269.05234 +L 301.298688 271.471002 +L 308.512512 273.777147 +L 316.012032 275.940161 +L 323.940096 277.992911 +L 332.296704 279.923718 +L 341.081856 281.724225 +L 350.4384 283.413382 +L 360.43776 284.990097 +L 371.15136 286.451694 +L 382.722048 287.802531 +L 395.292672 289.04226 +L 409.00608 290.167776 +L 414.791424 290.581525 +L 414.791424 290.581525 +" style="fill:none;stroke:#bcbd22;stroke-linecap:square;stroke-width:1.5;"/> + </g> + <g id="line2d_24"> + <path clip-path="url(#p3097001ff2)" d="M 57.528576 295.488 +L 129.095424 295.488 +L 133.095168 157.040399 +L 136.237824 53.568 +L 140.380416 67.193589 +L 144.523008 80.051747 +L 148.6656 92.1857 +L 152.808192 103.636235 +L 156.950784 114.441845 +L 161.093376 124.638855 +L 165.307392 134.422606 +L 169.521408 143.646086 +L 173.735424 152.34138 +L 178.020864 160.673549 +L 182.306304 168.520725 +L 186.591744 175.911138 +L 190.948608 182.983881 +L 195.305472 189.638284 +L 199.73376 195.998581 +L 204.233472 202.070119 +L 208.733184 207.771129 +L 213.30432 213.206505 +L 217.94688 218.382184 +L 222.660864 223.304485 +L 227.446272 227.980064 +L 232.303104 232.41586 +L 237.23136 236.61906 +L 242.302464 240.65188 +L 247.444992 244.45946 +L 252.730368 248.097488 +L 258.158592 251.564037 +L 263.729664 254.858313 +L 269.443584 257.980573 +L 275.371776 260.966565 +L 281.51424 263.809969 +L 287.870976 266.506205 +L 294.441984 269.05234 +L 301.298688 271.471002 +L 308.512512 273.777147 +L 316.012032 275.940161 +L 323.940096 277.992911 +L 332.296704 279.923718 +L 341.081856 281.724225 +L 350.4384 283.413382 +L 360.43776 284.990097 +L 371.15136 286.451694 +L 382.722048 287.802531 +L 395.292672 289.04226 +L 409.00608 290.167776 +L 414.791424 290.581525 +L 414.791424 290.581525 +" style="fill:none;stroke:#17becf;stroke-linecap:square;stroke-width:1.5;"/> + </g> + <g id="line2d_25"> + <path clip-path="url(#p3097001ff2)" d="M 57.528576 295.488 +L 129.095424 295.488 +L 133.095168 157.040399 +L 136.237824 53.568 +L 140.380416 67.193589 +L 144.523008 80.051747 +L 148.6656 92.1857 +L 152.808192 103.636235 +L 156.950784 114.441845 +L 161.093376 124.638855 +L 165.307392 134.422606 +L 169.521408 143.646086 +L 173.735424 152.34138 +L 178.020864 160.673549 +L 182.306304 168.520725 +L 186.591744 175.911138 +L 190.948608 182.983881 +L 195.305472 189.638284 +L 199.73376 195.998581 +L 204.233472 202.070119 +L 208.733184 207.771129 +L 213.30432 213.206505 +L 217.94688 218.382184 +L 222.660864 223.304485 +L 227.446272 227.980064 +L 232.303104 232.41586 +L 237.23136 236.61906 +L 242.302464 240.65188 +L 247.444992 244.45946 +L 252.730368 248.097488 +L 258.158592 251.564037 +L 263.729664 254.858313 +L 269.443584 257.980573 +L 275.371776 260.966565 +L 281.51424 263.809969 +L 287.870976 266.506205 +L 294.441984 269.05234 +L 301.298688 271.471002 +L 308.512512 273.777147 +L 316.012032 275.940161 +L 323.940096 277.992911 +L 332.296704 279.923718 +L 341.081856 281.724225 +L 350.4384 283.413382 +L 360.43776 284.990097 +L 371.15136 286.451694 +L 382.722048 287.802531 +L 395.292672 289.04226 +L 409.00608 290.167776 +L 414.791424 290.581525 +L 414.791424 290.581525 +" style="fill:none;stroke:#1f77b4;stroke-linecap:square;stroke-width:1.5;"/> + </g> + <g id="patch_3"> + <path d="M 57.6 307.584 +L 57.6 41.472 +" style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;"/> + </g> + <g id="patch_4"> + <path d="M 414.72 307.584 +L 414.72 41.472 +" style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;"/> + </g> + <g id="patch_5"> + <path d="M 57.6 307.584 +L 414.72 307.584 +" style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;"/> + </g> + <g id="patch_6"> + <path d="M 57.6 41.472 +L 414.72 41.472 +" style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;"/> + </g> + <g id="legend_1"> + <g id="patch_7"> + <path d="M 362.995 210.931375 +L 407.72 210.931375 +Q 409.72 210.931375 409.72 208.931375 +L 409.72 48.472 +Q 409.72 46.472 407.72 46.472 +L 362.995 46.472 +Q 360.995 46.472 360.995 48.472 +L 360.995 208.931375 +Q 360.995 210.931375 362.995 210.931375 +z +" style="fill:#ffffff;opacity:0.8;stroke:#cccccc;stroke-linejoin:miter;"/> + </g> + <g id="line2d_26"> + <path d="M 364.995 54.570437 +L 384.995 54.570437 +" style="fill:none;stroke:#1f77b4;stroke-linecap:square;stroke-width:1.5;"/> + </g> + <g id="line2d_27"/> + <g id="text_17"> + <!-- 0 --> + <g transform="translate(392.995 58.070437)scale(0.1 -0.1)"> + <use xlink:href="#DejaVuSans-30"/> + </g> + </g> + <g id="line2d_28"> + <path d="M 364.995 69.248562 +L 384.995 69.248562 +" style="fill:none;stroke:#ff7f0e;stroke-linecap:square;stroke-width:1.5;"/> + </g> + <g id="line2d_29"/> + <g id="text_18"> + <!-- 1 --> + <g transform="translate(392.995 72.748562)scale(0.1 -0.1)"> + <use xlink:href="#DejaVuSans-31"/> + </g> + </g> + <g id="line2d_30"> + <path d="M 364.995 83.926688 +L 384.995 83.926688 +" style="fill:none;stroke:#2ca02c;stroke-linecap:square;stroke-width:1.5;"/> + </g> + <g id="line2d_31"/> + <g id="text_19"> + <!-- 2 --> + <g transform="translate(392.995 87.426688)scale(0.1 -0.1)"> + <use xlink:href="#DejaVuSans-32"/> + </g> + </g> + <g id="line2d_32"> + <path d="M 364.995 98.604812 +L 384.995 98.604812 +" style="fill:none;stroke:#d62728;stroke-linecap:square;stroke-width:1.5;"/> + </g> + <g id="line2d_33"/> + <g id="text_20"> + <!-- 3 --> + <g transform="translate(392.995 102.104812)scale(0.1 -0.1)"> + <use xlink:href="#DejaVuSans-33"/> + </g> + </g> + <g id="line2d_34"> + <path d="M 364.995 113.282938 +L 384.995 113.282938 +" style="fill:none;stroke:#9467bd;stroke-linecap:square;stroke-width:1.5;"/> + </g> + <g id="line2d_35"/> + <g id="text_21"> + <!-- 4 --> + <g transform="translate(392.995 116.782938)scale(0.1 -0.1)"> + <use xlink:href="#DejaVuSans-34"/> + </g> + </g> + <g id="line2d_36"> + <path d="M 364.995 127.961062 +L 384.995 127.961062 +" style="fill:none;stroke:#8c564b;stroke-linecap:square;stroke-width:1.5;"/> + </g> + <g id="line2d_37"/> + <g id="text_22"> + <!-- 5 --> + <g transform="translate(392.995 131.461062)scale(0.1 -0.1)"> + <use xlink:href="#DejaVuSans-35"/> + </g> + </g> + <g id="line2d_38"> + <path d="M 364.995 142.639187 +L 384.995 142.639187 +" style="fill:none;stroke:#e377c2;stroke-linecap:square;stroke-width:1.5;"/> + </g> + <g id="line2d_39"/> + <g id="text_23"> + <!-- 6 --> + <g transform="translate(392.995 146.139187)scale(0.1 -0.1)"> + <use xlink:href="#DejaVuSans-36"/> + </g> + </g> + <g id="line2d_40"> + <path d="M 364.995 157.317312 +L 384.995 157.317312 +" style="fill:none;stroke:#7f7f7f;stroke-linecap:square;stroke-width:1.5;"/> + </g> + <g id="line2d_41"/> + <g id="text_24"> + <!-- 7 --> + <g transform="translate(392.995 160.817312)scale(0.1 -0.1)"> + <defs> + <path d="M 525 4666 +L 3525 4666 +L 3525 4397 +L 1831 0 +L 1172 0 +L 2766 4134 +L 525 4134 +L 525 4666 +z +" id="DejaVuSans-37" transform="scale(0.015625)"/> + </defs> + <use xlink:href="#DejaVuSans-37"/> + </g> + </g> + <g id="line2d_42"> + <path d="M 364.995 171.995437 +L 384.995 171.995437 +" style="fill:none;stroke:#bcbd22;stroke-linecap:square;stroke-width:1.5;"/> + </g> + <g id="line2d_43"/> + <g id="text_25"> + <!-- 8 --> + <g transform="translate(392.995 175.495437)scale(0.1 -0.1)"> + <use xlink:href="#DejaVuSans-38"/> + </g> + </g> + <g id="line2d_44"> + <path d="M 364.995 186.673562 +L 384.995 186.673562 +" style="fill:none;stroke:#17becf;stroke-linecap:square;stroke-width:1.5;"/> + </g> + <g id="line2d_45"/> + <g id="text_26"> + <!-- 9 --> + <g transform="translate(392.995 190.173562)scale(0.1 -0.1)"> + <use xlink:href="#DejaVuSans-39"/> + </g> + </g> + <g id="line2d_46"> + <path d="M 364.995 201.351687 +L 384.995 201.351687 +" style="fill:none;stroke:#1f77b4;stroke-linecap:square;stroke-width:1.5;"/> + </g> + <g id="line2d_47"/> + <g id="text_27"> + <!-- 10 --> + <g transform="translate(392.995 204.851687)scale(0.1 -0.1)"> + <use xlink:href="#DejaVuSans-31"/> + <use x="63.623047" xlink:href="#DejaVuSans-30"/> + </g> + </g> + </g> + </g> + </g> + <defs> + <clipPath id="p3097001ff2"> + <rect height="266.112" width="357.12" x="57.6" y="41.472"/> + </clipPath> + </defs> +</svg> diff --git a/python/example/single_cell_cable.py b/python/example/single_cell_cable.py new file mode 100755 index 0000000000000000000000000000000000000000..bf3d0ac5b602847890e22e7cc3558678a97f20e3 --- /dev/null +++ b/python/example/single_cell_cable.py @@ -0,0 +1,226 @@ +#!/usr/bin/env python3 + +import arbor +import argparse +import numpy as np + +import pandas +import seaborn # You may have to pip install these. + + +class Cable(arbor.recipe): + def __init__(self, probes, + Vm, length, radius, cm, rL, g, + stimulus_start, stimulus_duration, stimulus_amplitude, + cv_policy_max_extent): + """ + probes -- list of probes + + Vm -- membrane leak potential + length -- length of cable in μm + radius -- radius of cable in μm + cm -- membrane capacitance in F/m^2 + rL -- axial resistivity in Ω·cm + g -- membrane conductivity in S/cm^2 + + stimulus_start -- start of stimulus in ms + stimulus_duration -- duration of stimulus in ms + stimulus_amplitude -- amplitude of stimulus in nA + + cv_policy_max_extent -- maximum extent of control volume in μm + """ + + # (4.1) The base C++ class constructor must be called first, to ensure that + # all memory in the C++ class is initialized correctly. + arbor.recipe.__init__(self) + + self.the_probes = probes + + self.Vm = Vm + self.length = length + self.radius = radius + self.cm = cm + self.rL = rL + self.g = g + + self.cv_policy_max_extent = cv_policy_max_extent + + self.the_props = arbor.neuron_cable_properties() + self.the_cat = arbor.default_catalogue() + self.the_props.register(self.the_cat) + + def num_cells(self): + return 1 + + def num_sources(self, gid): + assert gid == 0 + return 0 + + def cell_kind(self, gid): + assert gid == 0 + return arbor.cell_kind.cable + + def cell_description(self, gid): + """A high level description of the cell with global identifier gid. + + For example the morphology, synapses and ion channels required + to build a multi-compartment neuron. + """ + assert gid == 0 + + tree = arbor.segment_tree() + + tree.append(arbor.mnpos, + arbor.mpoint(0, 0, 0, self.radius), + arbor.mpoint(self.length, 0, 0, self.radius), + tag=1) + + labels = arbor.label_dict({'cable': '(tag 1)', + 'start': '(location 0 0)'}) + + decor = arbor.decor() + decor.set_property(Vm=self.Vm) + decor.set_property(cm=self.cm) + decor.set_property(rL=self.rL) + + decor.paint('"cable"', + arbor.mechanism(f'pas/e={self.Vm}', {'g': self.g})) + + decor.place('"start"', arbor.iclamp(args.stimulus_start, + args.stimulus_duration, + args.stimulus_amplitude)) + + policy = arbor.cv_policy_max_extent(self.cv_policy_max_extent) + decor.discretization(policy) + + cell = arbor.cable_cell(tree, labels, decor) + + return cell + + def probes(self, gid): + assert gid == 0 + return self.the_probes + + def global_properties(self, kind): + return self.the_props + + +def get_rm(g): + """Return membrane resistivity in Ohm*m^2 + g -- membrane conductivity in S/m^2 + """ + return 1/g + + +def get_taum(cm, rm): + """Return membrane time constant in seconds + cm -- membrane capacitance in F/m^2 + rm -- membrane resistivity in Ohm*m^2 + """ + return cm*rm + + +def get_lambdam(a, rm, rL): + """Return electronic length in m + a -- cable radius in m + rm -- membrane resistivity in Ohm*m^2 + rL -- axial resistivity in Ohm*m + """ + return np.sqrt(a*rm/(2*rL)) + + +def get_vcond(lambdam, taum): + """Return conductance velocity in m/s + lambda -- electronic length in m + taum -- membrane time constant + """ + return 2*lambdam/taum + + +def get_tmax(data): + """Return time of maximum of membrane voltage""" + return data[np.argmax(data[:, 1])][0] + + +if __name__ == "__main__": + + parser = argparse.ArgumentParser(description='Cable') + + parser.add_argument( + '--Vm', help="membrane leak potential in mV", type=float, default=-65) + parser.add_argument( + '--length', help="cable length in μm", type=float, default=1000) + parser.add_argument( + '--radius', help="cable radius in μm", type=float, default=1) + parser.add_argument( + '--cm', help="membrane capacitance in F/m^2", type=float, default=0.01) + parser.add_argument( + '--rL', help="axial resistivity in Ω·cm", type=float, default=90) + parser.add_argument( + '--g', help="membrane conductivity in S/cm^2", type=float, default=0.001) + + parser.add_argument('--stimulus_start', + help="start of stimulus in ms", type=float, default=10) + parser.add_argument('--stimulus_duration', + help="duration of stimulus in ms", type=float, default=0.1) + parser.add_argument('--stimulus_amplitude', + help="amplitude of stimulus in nA", type=float, default=1) + + parser.add_argument('--cv_policy_max_extent', + help="maximum extent of control volume in μm", type=float, + default=10) + + # parse the command line arguments + args = parser.parse_args() + + # set up membrane voltage probes equidistantly along the dendrites + probes = [arbor.cable_probe_membrane_voltage( + f'(location 0 {r})') for r in np.linspace(0, 1, 11)] + recipe = Cable(probes, **vars(args)) + + # create a default execution context and a default domain decomposition + context = arbor.context() + domains = arbor.partition_load_balance(recipe, context) + + # configure the simulation and handles for the probes + sim = arbor.simulation(recipe, domains, context) + dt = 0.001 + handles = [sim.sample((0, i), arbor.regular_schedule(dt)) + for i in range(len(probes))] + + # run the simulation for 30 ms + sim.run(tfinal=30, dt=dt) + + # retrieve the sampled membrane voltages and convert to a pandas DataFrame + data = [sim.samples(handle)[0][0] for handle in handles] + data_dict = {str(i): d[:, 1] for i, d in enumerate(data)} + data_dict["t"] = data[0][:, 0] + + df = pandas.DataFrame.from_dict(data_dict) + + # plot all probes and save to file + for i in range(len(probes)): + plot = seaborn.lineplot(data=df, x="t", y=str( + i), ci=None, legend="full", label=i) + + plot.set(xlabel="t/ms") + plot.set(ylabel="U/mV") + plot.set_xlim(9, 14) + + plot.figure.savefig("single_cell_cable_result.svg") + + # calculcate the idealized conduction velocity, cf. cable equation + rm = get_rm(args.g*1/(0.01*0.01)) + taum = get_taum(args.cm, rm) + lambdam = get_lambdam(args.radius*1e-6, rm, args.rL*0.01) + vcond_ideal = get_vcond(lambdam, taum) + + # take the last and second probe + delta_t = (get_tmax(data[-1]) - get_tmax(data[1])) + + # 90% because we took the second probe + delta_x = args.length*0.9 + vcond = delta_x*1e-6/(delta_t*1e-3) + + print(f"calculated conduction velocity: {vcond_ideal:.2f} m/s") + print(f"simulated conduction velocity: {vcond:.2f} m/s")