diff --git a/PySONIC/core/astim_titrations.log b/PySONIC/core/astim_titrations.log index 953a3b6..c8e70d3 100644 --- a/PySONIC/core/astim_titrations.log +++ b/PySONIC/core/astim_titrations.log @@ -1,42 +1,1095 @@ titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 0.06, 0.05, 100.0, 1.0, 'sonic') 46270.75195312497 titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.4, 'sonic') 55572.50976562497 titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.6, 'sonic') 38813.78173828122 titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.8, 'sonic') 33174.133300781235 titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 0.10400000000000001, 0.0, 100.0, 1.0, 'sonic') 40338.13476562497 titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 0.105, 0.0, 100.0, 1.0, 'sonic') 40205.38330078122 titrate(NeuronalBilayerSonophore(32.0 nm, OtsukaSTN), 500000.0, 1.0, 0.0, 100.0, 0.8, 'sonic') nan titrate(NeuronalBilayerSonophore(32.0 nm, OtsukaSTN), 500000.0, 1.0, 0.0, 100.0, 0.6, 'sonic') nan titrate(NeuronalBilayerSonophore(32.0 nm, OtsukaSTN), 500000.0, 1.0, 0.0, 100.0, 1.0, 'sonic') 19830.322265625 titrate(NeuronalBilayerSonophore(32.0 nm, OtsukaSTN), 500000.0, 1.0, 0.0, 100.0, 0.2, 'sonic') nan titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.2, 'sonic') nan titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 1.0, 'sonic') nan titrate(NeuronalBilayerSonophore(32.0 nm, OtsukaSTN), 500000.0, 0.7000000000000001, 0.0, 100.0, 1.0, 'sonic') 19830.322265624985 titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 0.1, 0.05, 100.0, 1.0, 'sonic') 38635.25390624997 titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 0.1, 0.05, 100.0, 1.0, 0.9, 'sonic') 46211.24267578122 titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 0.1, 0.05, 100.0, 1.0, 0.5, 'sonic') nan titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 0.1, 0.05, 100.0, 1.0, 1.0, 'sonic') 38800.04882812497 titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 501000.0, 0.1, 0.05, 100.0, 1.0, 1.0, 'sonic') 38800.04882812497 titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 0.1, 0.05, 100.0, 0.13, 1.0, 'sonic') nan titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 0.1, 0.05, 100.0, 0.11, 1.0, 'sonic') nan titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 0.1, 0.05, 100.0, 0.34, 1.0, 'sonic') 126544.18945312494 titrate(NeuronalBilayerSonophore(32.0 nm, CorticalFS), 500000.0, 1.0, 0.0, 100.0, 0.01, 1.0, 'sonic') nan titrate(NeuronalBilayerSonophore(32.0 nm, CorticalFS), 500000.0, 1.0, 0.0, 100.0, 0.02, 1.0, 'sonic') nan titrate(NeuronalBilayerSonophore(32.0 nm, CorticalFS), 500000.0, 1.0, 0.0, 100.0, 0.03, 1.0, 'sonic') nan titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 0.10300000000000001, 0.05, 100.0, 1.0, 1.0, 'sonic') 38562.01171874997 titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 0.10400000000000001, 0.05, 100.0, 1.0, 1.0, 'sonic') 38488.76953124997 titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 0.105, 0.05, 100.0, 1.0, 1.0, 'sonic') 38374.32861328122 titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 0.095, 0.05, 100.0, 1.0, 1.0, 'sonic') 39294.43359374997 titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 0.065, 0.05, 100.0, 1.0, 1.0, 'sonic') 44567.87109374997 titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 0.061, 0.05, 100.0, 1.0, 1.0, 'sonic') 45904.54101562497 titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 0.101, 0.05, 100.0, 1.0, 1.0, 'sonic') 38708.49609374997 titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 0.15, 0.1) 35430.908203124985 titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 100000.0, 0.15, 0.1) 35559.082031249985 titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 0.15, 0.1) 36099.243164062485 titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 1000000.0, 0.15, 0.1) 37023.925781249985 titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 2000000.0, 0.15, 0.1) 39166.25976562497 titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 3000000.0, 0.15, 0.1) 41491.69921874997 titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 0.15, 0.1) 44201.66015624997 titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 0.15, 0.1) 75988.76953124994 titrate(NeuronalBilayerSonophore(22.6 nm, CorticalRS), 500000.0, 0.15, 0.1) 45254.51660156247 titrate(NeuronalBilayerSonophore(45.3 nm, CorticalRS), 500000.0, 0.15, 0.1) 34826.660156249985 titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 0.15, 0.1) 33755.493164062485 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 0.15, 0.1) 22888.183593749985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 10.0, 0.01) nan +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 10.0, 0.02) nan +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 10.0, 0.03) nan +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 10.0, 0.04) nan +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 10.0, 0.05) nan +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 10.0, 0.06) nan +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 10.0, 0.07) nan +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 10.0, 0.08) nan +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 0.06, 0.05, 100.0, 1.0, 'sonic') 46270.75195312497 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.4, 'sonic') 55572.50976562497 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.6, 'sonic') 38813.78173828122 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.8, 'sonic') 33174.133300781235 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 0.10400000000000001, 0.0, 100.0, 1.0, 'sonic') 40338.13476562497 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 0.105, 0.0, 100.0, 1.0, 'sonic') 40205.38330078122 +titrate(NeuronalBilayerSonophore(32.0 nm, OtsukaSTN), 500000.0, 1.0, 0.0, 100.0, 0.8, 'sonic') nan +titrate(NeuronalBilayerSonophore(32.0 nm, OtsukaSTN), 500000.0, 1.0, 0.0, 100.0, 0.6, 'sonic') nan +titrate(NeuronalBilayerSonophore(32.0 nm, OtsukaSTN), 500000.0, 1.0, 0.0, 100.0, 1.0, 'sonic') 19830.322265625 +titrate(NeuronalBilayerSonophore(32.0 nm, OtsukaSTN), 500000.0, 1.0, 0.0, 100.0, 0.2, 'sonic') nan +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.2, 'sonic') nan +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 1.0, 'sonic') nan +titrate(NeuronalBilayerSonophore(32.0 nm, OtsukaSTN), 500000.0, 0.7000000000000001, 0.0, 100.0, 1.0, 'sonic') 19830.322265624985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 0.1, 0.05, 100.0, 1.0, 'sonic') 38635.25390624997 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 0.1, 0.05, 100.0, 1.0, 0.9, 'sonic') 46211.24267578122 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 0.1, 0.05, 100.0, 1.0, 0.5, 'sonic') nan +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 0.1, 0.05, 100.0, 1.0, 1.0, 'sonic') 38800.04882812497 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 501000.0, 0.1, 0.05, 100.0, 1.0, 1.0, 'sonic') 38800.04882812497 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 0.1, 0.05, 100.0, 0.13, 1.0, 'sonic') nan +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 0.1, 0.05, 100.0, 0.11, 1.0, 'sonic') nan +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 0.1, 0.05, 100.0, 0.34, 1.0, 'sonic') 126544.18945312494 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalFS), 500000.0, 1.0, 0.0, 100.0, 0.01, 1.0, 'sonic') nan +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalFS), 500000.0, 1.0, 0.0, 100.0, 0.02, 1.0, 'sonic') nan +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalFS), 500000.0, 1.0, 0.0, 100.0, 0.03, 1.0, 'sonic') nan +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 0.10300000000000001, 0.05, 100.0, 1.0, 1.0, 'sonic') 38562.01171874997 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 0.10400000000000001, 0.05, 100.0, 1.0, 1.0, 'sonic') 38488.76953124997 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 0.105, 0.05, 100.0, 1.0, 1.0, 'sonic') 38374.32861328122 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 0.095, 0.05, 100.0, 1.0, 1.0, 'sonic') 39294.43359374997 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 0.065, 0.05, 100.0, 1.0, 1.0, 'sonic') 44567.87109374997 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 0.061, 0.05, 100.0, 1.0, 1.0, 'sonic') 45904.54101562497 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 0.101, 0.05, 100.0, 1.0, 1.0, 'sonic') 38708.49609374997 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 0.15, 0.1) 35430.908203124985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 100000.0, 0.15, 0.1) 35559.082031249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 0.15, 0.1) 36099.243164062485 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 1000000.0, 0.15, 0.1) 37023.925781249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 2000000.0, 0.15, 0.1) 39166.25976562497 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 3000000.0, 0.15, 0.1) 41491.69921874997 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 0.15, 0.1) 44201.66015624997 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 0.15, 0.1) 75988.76953124994 +titrate(NeuronalBilayerSonophore(22.6 nm, CorticalRS), 500000.0, 0.15, 0.1) 45254.51660156247 +titrate(NeuronalBilayerSonophore(45.3 nm, CorticalRS), 500000.0, 0.15, 0.1) 34826.660156249985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 0.15, 0.1) 33755.493164062485 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 0.0, 100.0, 0.01, 1.0, 'sonic') nan +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 0.0, 100.0, 0.02, 1.0, 'sonic') nan +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 0.0, 100.0, 0.03, 1.0, 'sonic') nan +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 0.0, 100.0, 0.04, 1.0, 'sonic') nan +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 0.0, 100.0, 0.05, 1.0, 'sonic') nan +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 0.0, 100.0, 0.06, 1.0, 'sonic') nan +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 0.0, 100.0, 0.07, 1.0, 'sonic') nan +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 0.0, 100.0, 0.08, 1.0, 'sonic') nan +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 0.0, 100.0, 0.09, 1.0, 'sonic') nan +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 0.0, 100.0, 0.1, 1.0, 'sonic') nan +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 0.0, 100.0, 0.11, 1.0, 'sonic') nan +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 0.0, 100.0, 0.12, 1.0, 'sonic') nan +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 0.0, 100.0, 0.13, 1.0, 'sonic') 548419.1894531248 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 0.0, 100.0, 0.17, 1.0, 'sonic') 275592.0410156249 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 0.0, 100.0, 0.15, 1.0, 'sonic') 378652.95410156227 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 0.0, 100.0, 0.16, 1.0, 'sonic') 321130.37109374977 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 0.0, 100.0, 0.14, 1.0, 'sonic') 452453.61328124977 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 0.0, 100.0, 0.19, 1.0, 'sonic') 209362.79296874988 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 0.0, 100.0, 0.18, 1.0, 'sonic') 238970.94726562488 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 0.0, 100.0, 0.22, 1.0, 'sonic') 149450.68359374994 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 0.0, 100.0, 0.21, 1.0, 'sonic') 165948.48632812488 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 0.0, 100.0, 0.24, 1.0, 'sonic') 124035.64453124994 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 0.0, 100.0, 0.23, 1.0, 'sonic') 135855.10253906244 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 0.0, 100.0, 0.26, 1.0, 'sonic') 105871.58203124994 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 0.0, 100.0, 0.25, 1.0, 'sonic') 114367.67578124994 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 0.0, 100.0, 0.2, 1.0, 'sonic') 185815.14358520496 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 0.0, 100.0, 0.27, 1.0, 'sonic') 98565.67382812494 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 0.0, 100.0, 0.32, 1.0, 'sonic') 74157.71484374997 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 0.0, 100.0, 0.29, 1.0, 'sonic') 86773.68164062494 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 0.0, 100.0, 0.3, 1.0, 'sonic') 82086.18164062494 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 0.0, 100.0, 0.33, 1.0, 'sonic') 70715.33203124997 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 0.0, 100.0, 0.28, 1.0, 'sonic') 92427.06298828119 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 0.0, 100.0, 0.31, 1.0, 'sonic') 77984.61914062494 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 0.0, 100.0, 0.34, 1.0, 'sonic') 67932.12890624997 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 0.0, 100.0, 0.35000000000000003, 1.0, 'sonic') 65313.72070312497 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 0.0, 100.0, 0.36, 1.0, 'sonic') 62878.41796874997 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 0.0, 100.0, 0.42, 1.0, 'sonic') 52331.54296874997 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 0.0, 100.0, 0.38, 1.0, 'sonic') 58630.37109374997 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 0.0, 100.0, 0.37, 1.0, 'sonic') 60562.13378906247 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 0.0, 100.0, 0.4, 1.0, 'sonic') 55288.69628906247 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 0.0, 100.0, 0.41000000000000003, 1.0, 'sonic') 53750.61035156247 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 0.0, 100.0, 0.39, 1.0, 'sonic') 56900.02441406247 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 0.0, 100.0, 0.43, 1.0, 'sonic') 50939.94140624997 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 0.0, 100.0, 0.44, 1.0, 'sonic') 49694.82421874997 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 0.0, 100.0, 0.45, 1.0, 'sonic') 48669.43359374997 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 0.0, 100.0, 0.47000000000000003, 1.0, 'sonic') 46765.13671874997 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 0.0, 100.0, 0.49, 1.0, 'sonic') 45007.32421874997 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 0.0, 100.0, 0.46, 1.0, 'sonic') 47676.08642578122 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 0.0, 100.0, 0.48, 1.0, 'sonic') 45840.45410156247 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 0.0, 100.0, 0.51, 1.0, 'sonic') 43395.99609374997 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 0.0, 100.0, 0.53, 1.0, 'sonic') 41931.15234374997 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 0.0, 100.0, 0.54, 1.0, 'sonic') 41345.21484374997 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 0.0, 100.0, 0.52, 1.0, 'sonic') 42663.57421874997 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 0.0, 100.0, 0.5700000000000001, 1.0, 'sonic') 39752.19726562497 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 0.0, 100.0, 0.56, 1.0, 'sonic') 40264.89257812497 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 0.0, 100.0, 0.5, 1.0, 'sonic') 44162.750244140596 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 0.0, 100.0, 0.55, 1.0, 'sonic') 40786.74316406247 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 0.0, 100.0, 0.58, 1.0, 'sonic') 39294.43359374997 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 0.0, 100.0, 0.62, 1.0, 'sonic') 37481.689453124985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 0.0, 100.0, 0.63, 1.0, 'sonic') 37097.167968749985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 0.0, 100.0, 0.61, 1.0, 'sonic') 37902.83203124997 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 0.0, 100.0, 0.6, 1.0, 'sonic') 38342.28515624997 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 0.0, 100.0, 0.59, 1.0, 'sonic') 38800.04882812497 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 0.0, 100.0, 0.64, 1.0, 'sonic') 36676.025390624985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 0.0, 100.0, 0.65, 1.0, 'sonic') 36291.503906249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 0.0, 100.0, 0.66, 1.0, 'sonic') 35925.292968749985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 0.0, 100.0, 0.67, 1.0, 'sonic') 35577.392578124985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 0.0, 100.0, 0.68, 1.0, 'sonic') 35266.113281249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 0.0, 100.0, 0.73, 1.0, 'sonic') 33947.753906249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 0.0, 100.0, 0.72, 1.0, 'sonic') 34185.791015624985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 0.0, 100.0, 0.6900000000000001, 1.0, 'sonic') 34931.945800781235 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 0.0, 100.0, 0.71, 1.0, 'sonic') 34419.250488281235 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 0.0, 100.0, 0.76, 1.0, 'sonic') 33288.574218749985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 0.0, 100.0, 0.74, 1.0, 'sonic') 33728.027343749985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 0.0, 100.0, 0.7000000000000001, 1.0, 'sonic') 34680.175781249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 0.0, 100.0, 0.75, 1.0, 'sonic') 33508.300781249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 0.0, 100.0, 0.77, 1.0, 'sonic') 33068.847656249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 0.0, 100.0, 1.0, 1.0, 'sonic') 30889.892578124985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 0.0, 100.0, 0.78, 1.0, 'sonic') 32867.431640624985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.01, 1.0, 'sonic') nan +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 0.0, 100.0, 0.79, 1.0, 'sonic') 32702.636718749985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 0.0, 100.0, 0.8, 1.0, 'sonic') 32482.910156249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.02, 1.0, 'sonic') nan +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.03, 1.0, 'sonic') nan +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.04, 1.0, 'sonic') nan +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.05, 1.0, 'sonic') nan +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.06, 1.0, 'sonic') nan +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.07, 1.0, 'sonic') nan +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.08, 1.0, 'sonic') nan +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.09, 1.0, 'sonic') nan +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.1, 1.0, 'sonic') nan +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.11, 1.0, 'sonic') nan +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.12, 1.0, 'sonic') nan +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 0.0, 100.0, 0.81, 1.0, 'sonic') 32336.425781249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 0.0, 100.0, 0.8200000000000001, 1.0, 'sonic') 32135.009765624985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 0.0, 100.0, 0.8300000000000001, 1.0, 'sonic') 31988.525390624985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 0.0, 100.0, 0.84, 1.0, 'sonic') 31842.041015624985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 0.0, 100.0, 0.85, 1.0, 'sonic') 31695.556640624985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 0.0, 100.0, 0.86, 1.0, 'sonic') 31604.003906249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.14, 1.0, 'sonic') 453479.00390624977 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.15, 1.0, 'sonic') 378845.21484374977 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 0.0, 100.0, 0.87, 1.0, 'sonic') 31475.830078124985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.13, 1.0, 'sonic') 551065.0634765623 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.17, 1.0, 'sonic') 275015.2587890624 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.16, 1.0, 'sonic') 320798.4924316404 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.18, 1.0, 'sonic') 238311.76757812488 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.2, 1.0, 'sonic') 185192.87109374988 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.19, 1.0, 'sonic') 208648.68164062488 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 0.0, 100.0, 0.88, 1.0, 'sonic') 31402.587890624985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.21, 1.0, 'sonic') 165417.48046874988 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.22, 1.0, 'sonic') 148937.98828124994 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.23, 1.0, 'sonic') 135479.73632812494 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.24, 1.0, 'sonic') 123687.74414062494 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.25, 1.0, 'sonic') 114147.94921874994 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.27, 1.0, 'sonic') 98474.12109374994 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.26, 1.0, 'sonic') 105670.16601562494 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 0.0, 100.0, 0.89, 1.0, 'sonic') 31329.345703124985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.28, 1.0, 'sonic') 92395.01953124994 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.31, 1.0, 'sonic') 78112.79296874994 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.29, 1.0, 'sonic') 86789.70336914057 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.3, 1.0, 'sonic') 82168.57910156244 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.33, 1.0, 'sonic') 70935.05859374997 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.32, 1.0, 'sonic') 74336.24267578122 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 0.0, 100.0, 0.9, 1.0, 'sonic') 31269.836425781235 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.34, 1.0, 'sonic') 68151.85546874997 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.35000000000000003, 1.0, 'sonic') 65588.37890624997 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 0.0, 100.0, 0.91, 1.0, 'sonic') 31237.792968749985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 0.0, 100.0, 0.92, 1.0, 'sonic') 31182.861328124985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.4, 1.0, 'sonic') 55627.44140624997 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.37, 1.0, 'sonic') 60859.68017578122 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.41000000000000003, 1.0, 'sonic') 54089.35546874997 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.36, 1.0, 'sonic') 63132.476806640596 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.38, 1.0, 'sonic') 58882.14111328122 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.39, 1.0, 'sonic') 57197.57080078122 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 0.0, 100.0, 0.93, 1.0, 'sonic') 31127.643585205064 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.43, 1.0, 'sonic') 51324.46289062497 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.44, 1.0, 'sonic') 50061.03515624997 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.45, 1.0, 'sonic') 49035.64453124997 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.42, 1.0, 'sonic') 52660.56060791013 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.48, 1.0, 'sonic') 46252.44140624997 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.47000000000000003, 1.0, 'sonic') 47131.34765624997 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 0.0, 100.0, 0.9400000000000001, 1.0, 'sonic') 31091.308593749985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.46, 1.0, 'sonic') 48044.586181640596 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 0.0, 100.0, 0.9500000000000001, 1.0, 'sonic') 31052.39868164061 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 1.0, 1.0, 'sonic') 31484.985351562485 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 0.0, 100.0, 0.98, 1.0, 'sonic') 30963.134765624985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 0.0, 100.0, 0.97, 1.0, 'sonic') 31018.066406249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.49, 1.0, 'sonic') 45405.57861328122 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 0.0, 100.0, 0.96, 1.0, 'sonic') 31018.066406249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.51, 1.0, 'sonic') 43835.44921874997 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.5, 1.0, 'sonic') 44599.91455078122 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.52, 1.0, 'sonic') 43103.02734374997 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 0.0, 100.0, 0.99, 1.0, 'sonic') 30944.824218749985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.55, 1.0, 'sonic') 41217.04101562497 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.56, 1.0, 'sonic') 40704.34570312497 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.53, 1.0, 'sonic') 42398.07128906247 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.54, 1.0, 'sonic') 41743.46923828122 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.5700000000000001, 1.0, 'sonic') 40205.38330078122 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.58, 1.0, 'sonic') 39733.88671874997 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.59, 1.0, 'sonic') 39294.43359374997 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.6, 1.0, 'sonic') 38854.98046874997 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.61, 1.0, 'sonic') 38415.52734374997 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.64, 1.0, 'sonic') 37243.652343749985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.65, 1.0, 'sonic') 36877.441406249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.62, 1.0, 'sonic') 38003.54003906247 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.66, 1.0, 'sonic') 36511.230468749985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.63, 1.0, 'sonic') 37609.86328124997 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.75, 1.0, 'sonic') 34094.238281249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.67, 1.0, 'sonic') 36163.330078124985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.68, 1.0, 'sonic') 35852.050781249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.72, 1.0, 'sonic') 34753.417968749985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.7000000000000001, 1.0, 'sonic') 35211.181640624985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.74, 1.0, 'sonic') 34313.964843749985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.6900000000000001, 1.0, 'sonic') 35504.150390624985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.71, 1.0, 'sonic') 34973.144531249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.73, 1.0, 'sonic') 34533.691406249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.76, 1.0, 'sonic') 33892.822265624985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.77, 1.0, 'sonic') 33728.027343749985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 1.0, 0.0, 100.0, 0.01, 1.0, 'sonic') nan +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.78, 1.0, 'sonic') 33526.611328124985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 1.0, 0.0, 100.0, 0.02, 1.0, 'sonic') nan +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 1.0, 0.0, 100.0, 0.03, 1.0, 'sonic') nan +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 1.0, 0.0, 100.0, 0.04, 1.0, 'sonic') nan +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 1.0, 0.0, 100.0, 0.05, 1.0, 'sonic') nan +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.79, 1.0, 'sonic') 33361.816406249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 1.0, 0.0, 100.0, 0.06, 1.0, 'sonic') nan +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 1.0, 0.0, 100.0, 0.07, 1.0, 'sonic') nan +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 1.0, 0.0, 100.0, 0.08, 1.0, 'sonic') nan +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 1.0, 0.0, 100.0, 0.09, 1.0, 'sonic') nan +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 1.0, 0.0, 100.0, 0.1, 1.0, 'sonic') nan +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 1.0, 0.0, 100.0, 0.11, 1.0, 'sonic') nan +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 1.0, 0.0, 100.0, 0.12, 1.0, 'sonic') nan +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.8, 1.0, 'sonic') 33215.332031249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.81, 1.0, 'sonic') 33027.648925781235 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.8200000000000001, 1.0, 'sonic') 32883.45336914061 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.8300000000000001, 1.0, 'sonic') 32775.878906249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.84, 1.0, 'sonic') 32629.394531249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.86, 1.0, 'sonic') 32409.667968749985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.85, 1.0, 'sonic') 32510.375976562485 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 1.0, 0.0, 100.0, 0.13, 1.0, 'sonic') 583190.9179687498 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 1.0, 0.0, 100.0, 0.14, 1.0, 'sonic') 494219.97070312477 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.87, 1.0, 'sonic') 32336.425781249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 1.0, 0.0, 100.0, 0.15, 1.0, 'sonic') 414033.508300781 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 1.0, 0.0, 100.0, 0.17, 1.0, 'sonic') 289270.0195312499 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 1.0, 0.0, 100.0, 0.16, 1.0, 'sonic') 339321.89941406227 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.88, 1.0, 'sonic') 32217.407226562485 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 1.0, 0.0, 100.0, 0.18, 1.0, 'sonic') 261895.75195312488 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 1.0, 0.0, 100.0, 0.19, 1.0, 'sonic') 229531.86035156238 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 1.0, 0.0, 100.0, 0.2, 1.0, 'sonic') 196691.89453124988 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 1.0, 0.0, 100.0, 0.21, 1.0, 'sonic') 174133.30078124988 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 1.0, 0.0, 100.0, 0.22, 1.0, 'sonic') 161682.12890624988 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.89, 1.0, 'sonic') 32135.009765624985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 1.0, 0.0, 100.0, 0.25, 1.0, 'sonic') 122515.86914062494 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 1.0, 0.0, 100.0, 0.24, 1.0, 'sonic') 137837.2192382812 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 1.0, 0.0, 100.0, 0.27, 1.0, 'sonic') 110778.80859374994 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 1.0, 0.0, 100.0, 0.23, 1.0, 'sonic') 150731.2774658202 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 1.0, 0.0, 100.0, 0.26, 1.0, 'sonic') 116070.55664062494 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 1.0, 0.0, 100.0, 0.28, 1.0, 'sonic') 105944.82421874994 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 1.0, 0.0, 100.0, 0.3, 1.0, 'sonic') 94885.25390624994 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 1.0, 0.0, 100.0, 0.29, 1.0, 'sonic') 101495.36132812494 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.9, 1.0, 'sonic') 32061.767578124985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 1.0, 0.0, 100.0, 0.31, 1.0, 'sonic') 88897.70507812494 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 1.0, 0.0, 100.0, 0.32, 1.0, 'sonic') 84191.89453124994 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.91, 1.0, 'sonic') 31988.525390624985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.92, 1.0, 'sonic') 31915.283203124985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 1.0, 0.0, 100.0, 0.33, 1.0, 'sonic') 81262.20703124994 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.93, 1.0, 'sonic') 31851.196289062485 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 1.0, 0.0, 100.0, 0.35000000000000003, 1.0, 'sonic') 75988.76953124994 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 1.0, 0.0, 100.0, 0.36, 1.0, 'sonic') 73645.01953124997 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 1.0, 0.0, 100.0, 0.37, 1.0, 'sonic') 71447.75390624997 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 1.0, 0.0, 100.0, 0.34, 1.0, 'sonic') 78511.04736328119 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 1.0, 0.0, 100.0, 0.38, 1.0, 'sonic') 69689.94140624997 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 1.0, 0.0, 100.0, 0.39, 1.0, 'sonic') 68005.37109374997 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 1.0, 0.0, 100.0, 0.41000000000000003, 1.0, 'sonic') 64947.50976562497 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 1.0, 0.0, 100.0, 0.4, 1.0, 'sonic') 66421.50878906247 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 1.0, 0.0, 100.0, 0.42, 1.0, 'sonic') 63555.90820312497 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 1.0, 0.0, 100.0, 0.44, 1.0, 'sonic') 61047.36328124997 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 1.0, 0.0, 100.0, 0.45, 1.0, 'sonic') 59875.48828124997 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 1.0, 0.0, 100.0, 0.43, 1.0, 'sonic') 62246.70410156247 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 1.0, 0.0, 100.0, 0.46, 1.0, 'sonic') 58850.09765624997 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 1.0, 0.0, 100.0, 0.47000000000000003, 1.0, 'sonic') 57824.70703124997 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.9400000000000001, 1.0, 'sonic') 31786.53717041014 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.9500000000000001, 1.0, 'sonic') 31750.488281249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 1.0, 0.0, 100.0, 1.0, 1.0, 'sonic') 39953.61328124997 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.97, 1.0, 'sonic') 31622.314453124985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.96, 1.0, 'sonic') 31677.246093749985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.99, 1.0, 'sonic') 31530.761718749985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.98, 1.0, 'sonic') 31604.003906249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 1.0, 0.0, 100.0, 0.48, 1.0, 'sonic') 56890.86914062497 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 1.0, 0.0, 100.0, 0.49, 1.0, 'sonic') 55993.65234374997 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 1.0, 0.0, 100.0, 0.5, 1.0, 'sonic') 55133.05664062497 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 1.0, 0.0, 100.0, 0.52, 1.0, 'sonic') 53576.66015624997 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 1.0, 0.0, 100.0, 0.54, 1.0, 'sonic') 52111.81640624997 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 1.0, 0.0, 100.0, 0.51, 1.0, 'sonic') 54327.39257812497 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 1.0, 0.0, 100.0, 0.53, 1.0, 'sonic') 52803.03955078122 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 1.0, 0.0, 100.0, 0.55, 1.0, 'sonic') 51452.63671874997 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 1.0, 0.0, 100.0, 0.56, 1.0, 'sonic') 50793.45703124997 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 1.0, 0.0, 100.0, 0.58, 1.0, 'sonic') 49694.82421874997 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 1.0, 0.0, 100.0, 0.59, 1.0, 'sonic') 49255.37109374997 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 1.0, 0.0, 100.0, 0.5700000000000001, 1.0, 'sonic') 50161.74316406247 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 1.0, 0.0, 100.0, 0.61, 1.0, 'sonic') 48449.70703124997 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 1.0, 0.0, 100.0, 0.6, 1.0, 'sonic') 48834.22851562497 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 1.0, 0.0, 100.0, 0.66, 1.0, 'sonic') 46618.65234374997 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 1.0, 0.0, 100.0, 0.63, 1.0, 'sonic') 47662.35351562497 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 1.0, 0.0, 100.0, 0.62, 1.0, 'sonic') 48037.71972656247 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 1.0, 0.0, 100.0, 0.64, 1.0, 'sonic') 47296.14257812497 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 1.0, 0.0, 100.0, 0.65, 1.0, 'sonic') 46945.953369140596 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 1.0, 0.0, 100.0, 0.67, 1.0, 'sonic') 46284.48486328122 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 1.0, 0.0, 100.0, 0.6900000000000001, 1.0, 'sonic') 45666.50390624997 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 1.0, 0.0, 100.0, 0.68, 1.0, 'sonic') 45977.78320312497 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 1.0, 0.0, 100.0, 0.7000000000000001, 1.0, 'sonic') 45373.53515624997 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 1.0, 0.0, 100.0, 0.71, 1.0, 'sonic') 45098.87695312497 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 1.0, 0.0, 100.0, 0.72, 1.0, 'sonic') 44815.06347656247 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 1.0, 0.0, 100.0, 0.73, 1.0, 'sonic') 44567.87109374997 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 1.0, 0.0, 100.0, 0.74, 1.0, 'sonic') 44302.36816406247 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 1.0, 0.0, 100.0, 0.75, 1.0, 'sonic') 44055.17578124997 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 1.0, 0.0, 100.0, 0.77, 1.0, 'sonic') 43615.72265624997 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 1.0, 0.0, 100.0, 0.76, 1.0, 'sonic') 43835.44921874997 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.01, 1.0, 'sonic') nan +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 1.0, 0.0, 100.0, 0.78, 1.0, 'sonic') 43395.99609374997 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.02, 1.0, 'sonic') nan +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 1.0, 0.0, 100.0, 0.8, 1.0, 'sonic') 43048.09570312497 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.03, 1.0, 'sonic') nan +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.04, 1.0, 'sonic') nan +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.05, 1.0, 'sonic') nan +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.06, 1.0, 'sonic') nan +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 1.0, 0.0, 100.0, 0.79, 1.0, 'sonic') 43208.31298828122 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.07, 1.0, 'sonic') nan +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.08, 1.0, 'sonic') nan +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.09, 1.0, 'sonic') nan +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.1, 1.0, 'sonic') nan +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.12, 1.0, 'sonic') nan +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.11, 1.0, 'sonic') nan +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.13, 1.0, 'sonic') nan +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.14, 1.0, 'sonic') nan +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.15, 1.0, 'sonic') nan +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.16, 1.0, 'sonic') nan +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.17, 1.0, 'sonic') nan +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.18, 1.0, 'sonic') nan +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.19, 1.0, 'sonic') nan +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.21, 1.0, 'sonic') nan +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.2, 1.0, 'sonic') nan +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.22, 1.0, 'sonic') nan +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 1.0, 0.0, 100.0, 0.81, 1.0, 'sonic') 42883.30078124997 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.23, 1.0, 'sonic') nan +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.24, 1.0, 'sonic') nan +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 1.0, 0.0, 100.0, 0.8200000000000001, 1.0, 'sonic') 42736.81640624997 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 1.0, 0.0, 100.0, 0.8300000000000001, 1.0, 'sonic') 42590.33203124997 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 1.0, 0.0, 100.0, 0.84, 1.0, 'sonic') 42443.84765624997 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 1.0, 0.0, 100.0, 0.85, 1.0, 'sonic') 42315.67382812497 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 1.0, 0.0, 100.0, 0.86, 1.0, 'sonic') 42182.92236328122 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.27, 1.0, 'sonic') 495007.32421874977 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.25, 1.0, 'sonic') 574420.1660156248 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.26, 1.0, 'sonic') 532608.0322265623 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.3, 1.0, 'sonic') 406484.98535156227 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.28, 1.0, 'sonic') 462668.6096191404 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.29, 1.0, 'sonic') 432785.7971191404 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 1.0, 0.0, 100.0, 0.87, 1.0, 'sonic') 42077.63671874997 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.31, 1.0, 'sonic') 382946.77734374977 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 1.0, 0.0, 100.0, 0.88, 1.0, 'sonic') 41949.46289062497 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.32, 1.0, 'sonic') 361047.36328124977 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.33, 1.0, 'sonic') 341564.94140624977 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.34, 1.0, 'sonic') 323986.81640624977 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 1.0, 1.0, 'sonic') 65075.68359374997 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.36, 1.0, 'sonic') 292272.9492187499 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.37, 1.0, 'sonic') 278869.6289062499 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.35000000000000003, 1.0, 'sonic') 307507.32421874977 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.38, 1.0, 'sonic') 266198.7304687499 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.39, 1.0, 'sonic') 254214.47753906238 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 1.0, 0.0, 100.0, 0.89, 1.0, 'sonic') 41802.97851562497 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.41000000000000003, 1.0, 'sonic') 233404.54101562488 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.4, 1.0, 'sonic') 243235.0158691405 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.42, 1.0, 'sonic') 224038.69628906238 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.43, 1.0, 'sonic') 215167.23632812488 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.44, 1.0, 'sonic') 206726.07421874988 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 1.0, 0.0, 100.0, 0.9, 1.0, 'sonic') 41638.18359374997 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.46, 1.0, 'sonic') 192297.36328124988 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.45, 1.0, 'sonic') 199346.92382812488 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.47000000000000003, 1.0, 'sonic') 185577.39257812488 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.49, 1.0, 'sonic') 173034.66796874988 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.48, 1.0, 'sonic') 179141.23535156238 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 1.0, 0.0, 100.0, 0.92, 1.0, 'sonic') 41271.97265624997 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.5, 1.0, 'sonic') 167642.21191406238 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.51, 1.0, 'sonic') 162506.10351562488 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.52, 1.0, 'sonic') 157580.56640624988 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 1.0, 0.0, 100.0, 0.93, 1.0, 'sonic') 41125.48828124997 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.56, 1.0, 'sonic') 140148.92578124994 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.53, 1.0, 'sonic') 152819.82421874988 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.55, 1.0, 'sonic') 143975.83007812494 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.54, 1.0, 'sonic') 148237.6098632812 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 1.0, 0.0, 100.0, 0.91, 1.0, 'sonic') 41445.92285156247 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.59, 1.0, 'sonic') 129455.56640624994 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.58, 1.0, 'sonic') 132897.94921874994 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.5700000000000001, 1.0, 'sonic') 136441.04003906244 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 1.0, 0.0, 100.0, 0.9400000000000001, 1.0, 'sonic') 40937.80517578122 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.6, 1.0, 'sonic') 126159.66796874994 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.62, 1.0, 'sonic') 120007.32421874994 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.61, 1.0, 'sonic') 122937.01171874994 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 1.0, 0.0, 100.0, 0.9500000000000001, 1.0, 'sonic') 40777.58789062497 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.63, 1.0, 'sonic') 117315.67382812494 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.65, 1.0, 'sonic') 112188.72070312494 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.66, 1.0, 'sonic') 109753.41796874994 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.68, 1.0, 'sonic') 105084.22851562494 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.6900000000000001, 1.0, 'sonic') 102868.65234374994 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.67, 1.0, 'sonic') 107370.75805664057 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.64, 1.0, 'sonic') 114697.19409942621 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.74, 1.0, 'sonic') 93640.13671874994 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 1.0, 0.0, 100.0, 0.96, 1.0, 'sonic') 40631.10351562497 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.7000000000000001, 1.0, 'sonic') 100817.87109374994 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.71, 1.0, 'sonic') 98931.88476562494 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.72, 1.0, 'sonic') 97114.56298828119 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 1.0, 0.0, 100.0, 0.97, 1.0, 'sonic') 40466.30859374997 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.76, 1.0, 'sonic') 90344.23828124994 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.73, 1.0, 'sonic') 95352.17285156244 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.75, 1.0, 'sonic') 91973.87695312494 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 1.0, 0.0, 100.0, 0.98, 1.0, 'sonic') 40319.82421874997 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.77, 1.0, 'sonic') 88764.95361328119 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 4000000.0, 1.0, 0.0, 100.0, 0.99, 1.0, 'sonic') 40134.429931640596 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.78, 1.0, 'sonic') 87229.15649414057 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.02, 1.0, 'sonic') nan +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.01, 1.0, 'sonic') nan +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.04, 1.0, 'sonic') nan +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.03, 1.0, 'sonic') nan +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.79, 1.0, 'sonic') 85748.29101562494 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.05, 1.0, 'sonic') nan +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.8200000000000001, 1.0, 'sonic') 81921.38671874994 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.81, 1.0, 'sonic') 83120.72753906244 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.8, 1.0, 'sonic') 84372.71118164057 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.8300000000000001, 1.0, 'sonic') 80694.58007812494 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.84, 1.0, 'sonic') 79531.86035156244 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.85, 1.0, 'sonic') 78405.76171874994 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.86, 1.0, 'sonic') 77307.12890624994 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.87, 1.0, 'sonic') 76208.49609374994 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.06, 1.0, 'sonic') 515176.39160156227 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.89, 1.0, 'sonic') 74116.51611328122 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.9, 1.0, 'sonic') 73132.32421874997 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.88, 1.0, 'sonic') 75145.33996582025 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 1.0, 1.0, 'sonic') nan +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.91, 1.0, 'sonic') 72134.39941406247 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.07, 1.0, 'sonic') 328985.59570312477 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.11, 1.0, 'sonic') 112316.89453124994 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.92, 1.0, 'sonic') 71186.82861328122 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.08, 1.0, 'sonic') 234283.44726562488 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.1, 1.0, 'sonic') 137750.24414062494 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.12, 1.0, 'sonic') 94519.04296874994 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.93, 1.0, 'sonic') 70367.43164062497 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.09, 1.0, 'sonic') 175259.39941406238 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.9400000000000001, 1.0, 'sonic') 69561.76757812497 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.14, 1.0, 'sonic') 71887.20703124997 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.96, 1.0, 'sonic') 68005.37109374997 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.9500000000000001, 1.0, 'sonic') 68769.83642578122 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.13, 1.0, 'sonic') 81573.48632812494 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.97, 1.0, 'sonic') 67272.94921874997 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.98, 1.0, 'sonic') 66540.52734374997 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.17, 1.0, 'sonic') 54766.84570312497 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.99, 1.0, 'sonic') 65808.10546874997 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.15, 1.0, 'sonic') 64888.00048828122 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.16, 1.0, 'sonic') 59028.62548828122 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.18, 1.0, 'sonic') 50958.25195312497 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.19, 1.0, 'sonic') 48101.80664062497 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.2, 1.0, 'sonic') 45739.74609374997 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.21, 1.0, 'sonic') 43615.72265624997 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.22, 1.0, 'sonic') 41711.42578124997 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.3, 1.0, 'sonic') 35119.628906249985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.27, 1.0, 'sonic') 36163.330078124985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.29, 1.0, 'sonic') 35147.094726562485 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.31, 1.0, 'sonic') 35073.852539062485 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.28, 1.0, 'sonic') 35440.063476562485 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.26, 1.0, 'sonic') 37059.4024658203 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.24, 1.0, 'sonic') 39166.25976562497 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.25, 1.0, 'sonic') 38067.62695312497 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.32, 1.0, 'sonic') 35064.697265624985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.23, 1.0, 'sonic') 40393.06640624997 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.34, 1.0, 'sonic') 35064.697265624985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.36, 1.0, 'sonic') 35046.386718749985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.33, 1.0, 'sonic') 35064.697265624985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.35000000000000003, 1.0, 'sonic') 35064.697265624985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.37, 1.0, 'sonic') 35046.386718749985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.39, 1.0, 'sonic') 35046.386718749985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.38, 1.0, 'sonic') 35046.386718749985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.4, 1.0, 'sonic') 35046.386718749985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.41000000000000003, 1.0, 'sonic') 35046.386718749985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.43, 1.0, 'sonic') 35046.386718749985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.42, 1.0, 'sonic') 35046.386718749985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.44, 1.0, 'sonic') 35046.386718749985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.45, 1.0, 'sonic') 35046.386718749985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.46, 1.0, 'sonic') 35046.386718749985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.48, 1.0, 'sonic') 35046.386718749985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.47000000000000003, 1.0, 'sonic') 35046.386718749985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.5, 1.0, 'sonic') 35046.386718749985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.53, 1.0, 'sonic') 34753.417968749985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.51, 1.0, 'sonic') 35046.386718749985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.49, 1.0, 'sonic') 35046.386718749985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.52, 1.0, 'sonic') 34918.212890624985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.55, 1.0, 'sonic') 34419.250488281235 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.54, 1.0, 'sonic') 34606.933593749985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.56, 1.0, 'sonic') 34268.188476562485 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.58, 1.0, 'sonic') 33975.219726562485 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.5700000000000001, 1.0, 'sonic') 34121.704101562485 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.6, 1.0, 'sonic') 33728.027343749985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.59, 1.0, 'sonic') 33837.31842041014 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.61, 1.0, 'sonic') 33581.542968749985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.63, 1.0, 'sonic') 33361.816406249985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.62, 1.0, 'sonic') 33462.524414062485 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.64, 1.0, 'sonic') 33233.642578124985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.67, 1.0, 'sonic') 32922.363281249985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.68, 1.0, 'sonic') 32807.922363281235 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.65, 1.0, 'sonic') 33142.089843749985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.66, 1.0, 'sonic') 33013.916015624985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.6900000000000001, 1.0, 'sonic') 32720.947265624985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.7000000000000001, 1.0, 'sonic') 32629.394531249985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.71, 1.0, 'sonic') 32556.152343749985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.72, 1.0, 'sonic') 32441.711425781235 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.73, 1.0, 'sonic') 32363.891601562485 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.74, 1.0, 'sonic') 32281.494140624985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.75, 1.0, 'sonic') 32208.251953124985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.76, 1.0, 'sonic') 32135.009765624985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.77, 1.0, 'sonic') 32061.767578124985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.79, 1.0, 'sonic') 31915.283203124985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.78, 1.0, 'sonic') 31988.525390624985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.8, 1.0, 'sonic') 31842.041015624985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.81, 1.0, 'sonic') 31777.954101562485 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.8300000000000001, 1.0, 'sonic') 31677.246093749985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.84, 1.0, 'sonic') 31604.003906249985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.8200000000000001, 1.0, 'sonic') 31711.57836914061 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.99, 1.0, 'sonic') nan +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 20000.0, 1.0, 0.0, 100.0, 0.01, 1.0, 'sonic') 101577.75878906244 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.87, 1.0, 'sonic') 31420.612335205064 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.88, 1.0, 'sonic') 31384.277343749985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.85, 1.0, 'sonic') 31549.072265624985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 20000.0, 1.0, 0.0, 100.0, 0.02, 1.0, 'sonic') 62750.24414062497 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.86, 1.0, 'sonic') 31475.830078124985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 20000.0, 1.0, 0.0, 100.0, 0.03, 1.0, 'sonic') 46797.18017578122 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 20000.0, 1.0, 0.0, 100.0, 0.04, 1.0, 'sonic') 38369.75097656247 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 20000.0, 1.0, 0.0, 100.0, 0.05, 1.0, 'sonic') 33508.300781249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 20000.0, 1.0, 0.0, 100.0, 0.06, 1.0, 'sonic') 30450.439453124985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.89, 1.0, 'sonic') 31329.345703124985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 20000.0, 1.0, 0.0, 100.0, 0.07, 1.0, 'sonic') 28527.832031249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 20000.0, 1.0, 0.0, 100.0, 0.08, 1.0, 'sonic') 27282.714843749985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 20000.0, 1.0, 0.0, 100.0, 0.09, 1.0, 'sonic') 26348.876953124985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 20000.0, 1.0, 0.0, 100.0, 0.11, 1.0, 'sonic') 25158.691406249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 20000.0, 1.0, 0.0, 100.0, 0.1, 1.0, 'sonic') 25633.621215820298 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.9, 1.0, 'sonic') 31265.258789062485 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 20000.0, 1.0, 0.0, 100.0, 0.14, 1.0, 'sonic') 24810.791015624985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 20000.0, 1.0, 0.0, 100.0, 0.12, 1.0, 'sonic') 24973.29711914061 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 20000.0, 1.0, 0.0, 100.0, 0.13, 1.0, 'sonic') 24884.033203124985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 20000.0, 1.0, 0.0, 100.0, 0.15, 1.0, 'sonic') 24751.281738281235 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.92, 1.0, 'sonic') 31182.861328124985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 20000.0, 1.0, 0.0, 100.0, 0.16, 1.0, 'sonic') 24719.238281249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 20000.0, 1.0, 0.0, 100.0, 0.17, 1.0, 'sonic') 24645.996093749985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.91, 1.0, 'sonic') 31237.792968749985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 20000.0, 1.0, 0.0, 100.0, 0.18, 1.0, 'sonic') 24604.797363281235 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 20000.0, 1.0, 0.0, 100.0, 0.19, 1.0, 'sonic') 24572.753906249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 20000.0, 1.0, 0.0, 100.0, 0.2, 1.0, 'sonic') 24279.785156249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 20000.0, 1.0, 0.0, 100.0, 0.22, 1.0, 'sonic') 23693.847656249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 20000.0, 1.0, 0.0, 100.0, 0.21, 1.0, 'sonic') 23945.617675781235 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 20000.0, 1.0, 0.0, 100.0, 0.23, 1.0, 'sonic') 23428.344726562485 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.9500000000000001, 1.0, 'sonic') 31036.376953124985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 20000.0, 1.0, 0.0, 100.0, 0.24, 1.0, 'sonic') 23199.462890624985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 20000.0, 1.0, 0.0, 100.0, 0.25, 1.0, 'sonic') 22988.891601562485 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 20000.0, 1.0, 0.0, 100.0, 0.26, 1.0, 'sonic') 22814.941406249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 20000.0, 1.0, 0.0, 100.0, 0.27, 1.0, 'sonic') 22622.680664062485 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.96, 1.0, 'sonic') 31018.066406249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 20000.0, 1.0, 0.0, 100.0, 0.28, 1.0, 'sonic') 22467.041015624985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 20000.0, 1.0, 0.0, 100.0, 0.29, 1.0, 'sonic') 22302.246093749985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 20000.0, 1.0, 0.0, 100.0, 0.3, 1.0, 'sonic') 22174.072265624985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 20000.0, 1.0, 0.0, 100.0, 0.32, 1.0, 'sonic') 21954.345703124985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 20000.0, 1.0, 0.0, 100.0, 0.31, 1.0, 'sonic') 22045.32623291014 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 20000.0, 1.0, 0.0, 100.0, 0.34, 1.0, 'sonic') 21862.792968749985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 20000.0, 1.0, 0.0, 100.0, 0.33, 1.0, 'sonic') 21890.258789062485 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 20000.0, 1.0, 0.0, 100.0, 0.35000000000000003, 1.0, 'sonic') 21789.550781249985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.93, 1.0, 'sonic') 31123.352050781235 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 20000.0, 1.0, 0.0, 100.0, 0.36, 1.0, 'sonic') 21734.619140624985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 20000.0, 1.0, 0.0, 100.0, 0.37, 1.0, 'sonic') 21716.308593749985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.98, 1.0, 'sonic') 30905.91430664061 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.97, 1.0, 'sonic') 30963.134765624985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 20000.0, 1.0, 0.0, 100.0, 0.38, 1.0, 'sonic') 21661.376953124985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 20000.0, 1.0, 0.0, 100.0, 0.39, 1.0, 'sonic') 21643.066406249985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalRS), 500000.0, 1.0, 0.0, 100.0, 0.9400000000000001, 1.0, 'sonic') 31091.308593749985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 20000.0, 1.0, 0.0, 100.0, 0.41000000000000003, 1.0, 'sonic') 21569.824218749985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 20000.0, 1.0, 0.0, 100.0, 0.4, 1.0, 'sonic') 21588.134765624985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 20000.0, 1.0, 0.0, 100.0, 0.42, 1.0, 'sonic') 21524.047851562485 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 20000.0, 1.0, 0.0, 100.0, 0.43, 1.0, 'sonic') 21496.582031249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 20000.0, 1.0, 0.0, 100.0, 0.44, 1.0, 'sonic') 21459.38873291014 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 20000.0, 1.0, 0.0, 100.0, 0.45, 1.0, 'sonic') 21441.650390624985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 20000.0, 1.0, 0.0, 100.0, 0.46, 1.0, 'sonic') 21423.339843749985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 20000.0, 1.0, 0.0, 100.0, 0.49, 1.0, 'sonic') 21350.097656249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 20000.0, 1.0, 0.0, 100.0, 0.48, 1.0, 'sonic') 21368.408203124985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 20000.0, 1.0, 0.0, 100.0, 1.0, 1.0, 'sonic') 20837.402343749985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 20000.0, 1.0, 0.0, 100.0, 0.47000000000000003, 1.0, 'sonic') 21384.42993164061 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 20000.0, 1.0, 0.0, 100.0, 0.5, 1.0, 'sonic') 21350.097656249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 20000.0, 1.0, 0.0, 100.0, 0.52, 1.0, 'sonic') 21276.855468749985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 20000.0, 1.0, 0.0, 100.0, 0.51, 1.0, 'sonic') 21304.321289062485 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 20000.0, 1.0, 0.0, 100.0, 0.53, 1.0, 'sonic') 21276.855468749985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 20000.0, 1.0, 0.0, 100.0, 0.55, 1.0, 'sonic') 21221.923828124985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 20000.0, 1.0, 0.0, 100.0, 0.56, 1.0, 'sonic') 21221.923828124985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 20000.0, 1.0, 0.0, 100.0, 0.5700000000000001, 1.0, 'sonic') 21203.613281249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 20000.0, 1.0, 0.0, 100.0, 0.54, 1.0, 'sonic') 21239.089965820298 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 20000.0, 1.0, 0.0, 100.0, 0.58, 1.0, 'sonic') 21203.613281249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 20000.0, 1.0, 0.0, 100.0, 0.61, 1.0, 'sonic') 21130.371093749985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 20000.0, 1.0, 0.0, 100.0, 0.6, 1.0, 'sonic') 21148.681640624985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 20000.0, 1.0, 0.0, 100.0, 0.59, 1.0, 'sonic') 21162.414550781235 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 20000.0, 1.0, 0.0, 100.0, 0.62, 1.0, 'sonic') 21130.371093749985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 20000.0, 1.0, 0.0, 100.0, 0.63, 1.0, 'sonic') 21130.371093749985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 20000.0, 1.0, 0.0, 100.0, 0.65, 1.0, 'sonic') 21084.594726562485 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 20000.0, 1.0, 0.0, 100.0, 0.64, 1.0, 'sonic') 21091.46118164061 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 20000.0, 1.0, 0.0, 100.0, 0.66, 1.0, 'sonic') 21075.439453124985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 20000.0, 1.0, 0.0, 100.0, 0.67, 1.0, 'sonic') 21057.128906249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 20000.0, 1.0, 0.0, 100.0, 0.68, 1.0, 'sonic') 21057.128906249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 20000.0, 1.0, 0.0, 100.0, 0.6900000000000001, 1.0, 'sonic') 21057.128906249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 20000.0, 1.0, 0.0, 100.0, 0.7000000000000001, 1.0, 'sonic') 21057.128906249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 20000.0, 1.0, 0.0, 100.0, 0.71, 1.0, 'sonic') 21015.930175781235 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 20000.0, 1.0, 0.0, 100.0, 0.72, 1.0, 'sonic') 21011.352539062485 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 20000.0, 1.0, 0.0, 100.0, 0.73, 1.0, 'sonic') 21002.197265624985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 20000.0, 1.0, 0.0, 100.0, 0.74, 1.0, 'sonic') 21002.197265624985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 20000.0, 1.0, 0.0, 100.0, 0.75, 1.0, 'sonic') 20983.886718749985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 20000.0, 1.0, 0.0, 100.0, 0.76, 1.0, 'sonic') 20983.886718749985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 20000.0, 1.0, 0.0, 100.0, 0.77, 1.0, 'sonic') 20983.886718749985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 20000.0, 1.0, 0.0, 100.0, 0.78, 1.0, 'sonic') 20983.886718749985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 20000.0, 1.0, 0.0, 100.0, 0.8, 1.0, 'sonic') 20938.110351562485 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 20000.0, 1.0, 0.0, 100.0, 0.79, 1.0, 'sonic') 20942.687988281235 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.01, 1.0, 'sonic') 102447.50976562494 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 20000.0, 1.0, 0.0, 100.0, 0.81, 1.0, 'sonic') 20928.955078124985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 20000.0, 1.0, 0.0, 100.0, 0.8200000000000001, 1.0, 'sonic') 20928.955078124985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.02, 1.0, 'sonic') 63629.15039062497 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 20000.0, 1.0, 0.0, 100.0, 0.84, 1.0, 'sonic') 20910.644531249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.03, 1.0, 'sonic') 47644.04296874997 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 20000.0, 1.0, 0.0, 100.0, 0.8300000000000001, 1.0, 'sonic') 20928.955078124985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.04, 1.0, 'sonic') 39093.01757812497 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 20000.0, 1.0, 0.0, 100.0, 0.85, 1.0, 'sonic') 20910.644531249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.05, 1.0, 'sonic') 34121.704101562485 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.06, 1.0, 'sonic') 31125.64086914061 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.07, 1.0, 'sonic') 29132.080078124985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 20000.0, 1.0, 0.0, 100.0, 0.86, 1.0, 'sonic') 20910.644531249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.08, 1.0, 'sonic') 28179.931640624985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.1, 1.0, 'sonic') 26989.746093749985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.09, 1.0, 'sonic') 27502.441406249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.11, 1.0, 'sonic') 26623.535156249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 20000.0, 1.0, 0.0, 100.0, 0.87, 1.0, 'sonic') 20910.644531249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.12, 1.0, 'sonic') 26330.566406249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.13, 1.0, 'sonic') 26110.839843749985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.14, 1.0, 'sonic') 25891.113281249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 20000.0, 1.0, 0.0, 100.0, 0.88, 1.0, 'sonic') 20910.644531249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.15, 1.0, 'sonic') 25744.628906249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.16, 1.0, 'sonic') 25598.144531249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 20000.0, 1.0, 0.0, 100.0, 0.89, 1.0, 'sonic') 20871.73461914061 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.17, 1.0, 'sonic') 25469.970703124985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.18, 1.0, 'sonic') 25378.417968749985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 20000.0, 1.0, 0.0, 100.0, 0.91, 1.0, 'sonic') 20864.868164062485 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 20000.0, 1.0, 0.0, 100.0, 0.9, 1.0, 'sonic') 20869.445800781235 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.19, 1.0, 'sonic') 25266.26586914061 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.2, 1.0, 'sonic') 25186.157226562485 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 20000.0, 1.0, 0.0, 100.0, 0.92, 1.0, 'sonic') 20855.712890624985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.21, 1.0, 'sonic') 25112.915039062485 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.22, 1.0, 'sonic') 25044.250488281235 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.23, 1.0, 'sonic') 25012.207031249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.24, 1.0, 'sonic') 24938.964843749985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.25, 1.0, 'sonic') 24884.033203124985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 20000.0, 1.0, 0.0, 100.0, 0.9400000000000001, 1.0, 'sonic') 20855.712890624985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 20000.0, 1.0, 0.0, 100.0, 0.93, 1.0, 'sonic') 20855.712890624985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.26, 1.0, 'sonic') 24865.722656249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.27, 1.0, 'sonic') 24792.480468749985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 20000.0, 1.0, 0.0, 100.0, 0.9500000000000001, 1.0, 'sonic') 20837.402343749985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 20000.0, 1.0, 0.0, 100.0, 0.96, 1.0, 'sonic') 20837.402343749985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.29, 1.0, 'sonic') 24719.238281249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.28, 1.0, 'sonic') 24751.281738281235 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 20000.0, 1.0, 0.0, 100.0, 0.97, 1.0, 'sonic') 20837.402343749985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.3, 1.0, 'sonic') 24678.039550781235 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 20000.0, 1.0, 0.0, 100.0, 0.98, 1.0, 'sonic') 20837.402343749985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.31, 1.0, 'sonic') 24645.996093749985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.32, 1.0, 'sonic') 24645.996093749985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 20000.0, 1.0, 0.0, 100.0, 0.99, 1.0, 'sonic') 20837.402343749985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 1.0, 1.0, 'sonic') 21002.197265624985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.33, 1.0, 'sonic') 24591.064453124985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.35000000000000003, 1.0, 'sonic') 24426.269531249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.34, 1.0, 'sonic') 24572.753906249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.36, 1.0, 'sonic') 24279.785156249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.37, 1.0, 'sonic') 24133.300781249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.38, 1.0, 'sonic') 23986.816406249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.39, 1.0, 'sonic') 23840.332031249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.4, 1.0, 'sonic') 23712.158203124985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.41000000000000003, 1.0, 'sonic') 23620.605468749985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.43, 1.0, 'sonic') 23400.878906249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.42, 1.0, 'sonic') 23492.431640624985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.44, 1.0, 'sonic') 23281.860351562485 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.46, 1.0, 'sonic') 23107.910156249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.45, 1.0, 'sonic') 23181.152343749985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.47000000000000003, 1.0, 'sonic') 22996.902465820298 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.49, 1.0, 'sonic') 22833.251953124985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.5, 1.0, 'sonic') 22760.009765624985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.48, 1.0, 'sonic') 22915.649414062485 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.51, 1.0, 'sonic') 22686.767578124985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.52, 1.0, 'sonic') 22613.525390624985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.53, 1.0, 'sonic') 22540.283203124985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.54, 1.0, 'sonic') 22476.196289062485 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.55, 1.0, 'sonic') 22409.82055664061 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.56, 1.0, 'sonic') 22375.488281249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.5700000000000001, 1.0, 'sonic') 22302.246093749985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.58, 1.0, 'sonic') 22247.314453124985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.59, 1.0, 'sonic') 22183.227539062485 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.6, 1.0, 'sonic') 22155.761718749985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.61, 1.0, 'sonic') 22082.519531249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.62, 1.0, 'sonic') 22027.587890624985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.63, 1.0, 'sonic') 22009.277343749985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.64, 1.0, 'sonic') 21936.035156249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.66, 1.0, 'sonic') 21862.792968749985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.65, 1.0, 'sonic') 21890.258789062485 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.67, 1.0, 'sonic') 21807.861328124985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.68, 1.0, 'sonic') 21789.550781249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.7000000000000001, 1.0, 'sonic') 21716.308593749985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.6900000000000001, 1.0, 'sonic') 21734.619140624985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.71, 1.0, 'sonic') 21661.376953124985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.72, 1.0, 'sonic') 21643.066406249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.73, 1.0, 'sonic') 21588.134765624985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.74, 1.0, 'sonic') 21569.824218749985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.75, 1.0, 'sonic') 21524.047851562485 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.76, 1.0, 'sonic') 21496.582031249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.77, 1.0, 'sonic') 21457.67211914061 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.79, 1.0, 'sonic') 21423.339843749985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.78, 1.0, 'sonic') 21441.650390624985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.8, 1.0, 'sonic') 21377.563476562485 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.81, 1.0, 'sonic') 21350.097656249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 4000000.0, 1.0, 0.0, 100.0, 0.01, 1.0, 'sonic') 125720.21484374994 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.8200000000000001, 1.0, 'sonic') 21350.097656249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 4000000.0, 1.0, 0.0, 100.0, 0.03, 1.0, 'sonic') 63464.35546874997 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 4000000.0, 1.0, 0.0, 100.0, 0.02, 1.0, 'sonic') 82168.57910156244 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.8300000000000001, 1.0, 'sonic') 21304.321289062485 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.84, 1.0, 'sonic') 21295.166015624985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 4000000.0, 1.0, 0.0, 100.0, 0.04, 1.0, 'sonic') 51306.15234374997 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.85, 1.0, 'sonic') 21276.855468749985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 4000000.0, 1.0, 0.0, 100.0, 0.05, 1.0, 'sonic') 44366.45507812497 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 4000000.0, 1.0, 0.0, 100.0, 0.06, 1.0, 'sonic') 40466.30859374997 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 4000000.0, 1.0, 0.0, 100.0, 0.07, 1.0, 'sonic') 38195.80078124997 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.86, 1.0, 'sonic') 21235.656738281235 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 4000000.0, 1.0, 0.0, 100.0, 0.08, 1.0, 'sonic') 36511.230468749985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 4000000.0, 1.0, 0.0, 100.0, 0.09, 1.0, 'sonic') 35192.871093749985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 4000000.0, 1.0, 0.0, 100.0, 0.1, 1.0, 'sonic') 34259.033203124985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 4000000.0, 1.0, 0.0, 100.0, 0.11, 1.0, 'sonic') 33526.611328124985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.87, 1.0, 'sonic') 21221.923828124985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 4000000.0, 1.0, 0.0, 100.0, 0.12, 1.0, 'sonic') 32940.673828124985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 4000000.0, 1.0, 0.0, 100.0, 0.13, 1.0, 'sonic') 32427.978515624985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 4000000.0, 1.0, 0.0, 100.0, 0.14, 1.0, 'sonic') 31988.525390624985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.88, 1.0, 'sonic') 21203.613281249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 4000000.0, 1.0, 0.0, 100.0, 0.15, 1.0, 'sonic') 31604.003906249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 4000000.0, 1.0, 0.0, 100.0, 0.16, 1.0, 'sonic') 31311.035156249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.89, 1.0, 'sonic') 21203.613281249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 4000000.0, 1.0, 0.0, 100.0, 0.17, 1.0, 'sonic') 31018.066406249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.9, 1.0, 'sonic') 21157.836914062485 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 4000000.0, 1.0, 0.0, 100.0, 0.18, 1.0, 'sonic') 30743.408203124985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 4000000.0, 1.0, 0.0, 100.0, 0.19, 1.0, 'sonic') 30505.371093749985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.91, 1.0, 'sonic') 21148.681640624985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.92, 1.0, 'sonic') 21130.371093749985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 4000000.0, 1.0, 0.0, 100.0, 0.2, 1.0, 'sonic') 30303.955078124985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 4000000.0, 1.0, 0.0, 100.0, 0.21, 1.0, 'sonic') 30139.160156249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 4000000.0, 1.0, 0.0, 100.0, 0.22, 1.0, 'sonic') 29946.899414062485 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 4000000.0, 1.0, 0.0, 100.0, 0.23, 1.0, 'sonic') 29791.259765624985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.93, 1.0, 'sonic') 21130.371093749985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 4000000.0, 1.0, 0.0, 100.0, 0.24, 1.0, 'sonic') 29644.775390624985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 4000000.0, 1.0, 0.0, 100.0, 1.0, 1.0, 'sonic') 24279.785156249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.9400000000000001, 1.0, 'sonic') 21089.172363281235 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 4000000.0, 1.0, 0.0, 100.0, 0.25, 1.0, 'sonic') 29515.457153320298 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 4000000.0, 1.0, 0.0, 100.0, 0.26, 1.0, 'sonic') 29406.738281249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.96, 1.0, 'sonic') 21075.439453124985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 4000000.0, 1.0, 0.0, 100.0, 0.27, 1.0, 'sonic') 29260.253906249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.9500000000000001, 1.0, 'sonic') 21075.439453124985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 4000000.0, 1.0, 0.0, 100.0, 0.28, 1.0, 'sonic') 28994.750976562485 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 4000000.0, 1.0, 0.0, 100.0, 0.3, 1.0, 'sonic') 28601.074218749985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 4000000.0, 1.0, 0.0, 100.0, 0.29, 1.0, 'sonic') 28775.024414062485 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.98, 1.0, 'sonic') 21057.128906249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.97, 1.0, 'sonic') 21057.128906249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 4000000.0, 1.0, 0.0, 100.0, 0.31, 1.0, 'sonic') 28381.347656249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.99, 1.0, 'sonic') 21015.930175781235 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 4000000.0, 1.0, 0.0, 100.0, 0.32, 1.0, 'sonic') 28234.863281249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 4000000.0, 1.0, 0.0, 100.0, 0.33, 1.0, 'sonic') 28042.602539062485 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 4000000.0, 1.0, 0.0, 100.0, 0.34, 1.0, 'sonic') 27886.962890624985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 4000000.0, 1.0, 0.0, 100.0, 0.36, 1.0, 'sonic') 27593.994140624985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 4000000.0, 1.0, 0.0, 100.0, 0.35000000000000003, 1.0, 'sonic') 27740.478515624985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 4000000.0, 1.0, 0.0, 100.0, 0.37, 1.0, 'sonic') 27461.242675781235 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 4000000.0, 1.0, 0.0, 100.0, 0.39, 1.0, 'sonic') 27227.783203124985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 4000000.0, 1.0, 0.0, 100.0, 0.38, 1.0, 'sonic') 27355.957031249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 4000000.0, 1.0, 0.0, 100.0, 0.41000000000000003, 1.0, 'sonic') 27008.056640624985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 4000000.0, 1.0, 0.0, 100.0, 0.4, 1.0, 'sonic') 27099.323272705064 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 4000000.0, 1.0, 0.0, 100.0, 0.42, 1.0, 'sonic') 26916.503906249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 4000000.0, 1.0, 0.0, 100.0, 0.44, 1.0, 'sonic') 26715.087890624985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 4000000.0, 1.0, 0.0, 100.0, 0.43, 1.0, 'sonic') 26797.485351562485 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 4000000.0, 1.0, 0.0, 100.0, 0.45, 1.0, 'sonic') 26623.535156249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 4000000.0, 1.0, 0.0, 100.0, 0.47000000000000003, 1.0, 'sonic') 26477.050781249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 4000000.0, 1.0, 0.0, 100.0, 0.46, 1.0, 'sonic') 26550.292968749985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 4000000.0, 1.0, 0.0, 100.0, 0.48, 1.0, 'sonic') 26364.89868164061 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 4000000.0, 1.0, 0.0, 100.0, 0.49, 1.0, 'sonic') 26289.367675781235 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 4000000.0, 1.0, 0.0, 100.0, 0.52, 1.0, 'sonic') 26110.839843749985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 4000000.0, 1.0, 0.0, 100.0, 0.51, 1.0, 'sonic') 26184.082031249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 4000000.0, 1.0, 0.0, 100.0, 0.54, 1.0, 'sonic') 25964.355468749985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 4000000.0, 1.0, 0.0, 100.0, 0.5, 1.0, 'sonic') 26218.41430664061 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 4000000.0, 1.0, 0.0, 100.0, 0.53, 1.0, 'sonic') 26037.597656249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 4000000.0, 1.0, 0.0, 100.0, 0.55, 1.0, 'sonic') 25909.423828124985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 4000000.0, 1.0, 0.0, 100.0, 0.56, 1.0, 'sonic') 25845.336914062485 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 4000000.0, 1.0, 0.0, 100.0, 0.5700000000000001, 1.0, 'sonic') 25817.871093749985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 4000000.0, 1.0, 0.0, 100.0, 0.58, 1.0, 'sonic') 25744.628906249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 4000000.0, 1.0, 0.0, 100.0, 0.59, 1.0, 'sonic') 25689.697265624985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 4000000.0, 1.0, 0.0, 100.0, 0.6, 1.0, 'sonic') 25630.187988281235 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 4000000.0, 1.0, 0.0, 100.0, 0.61, 1.0, 'sonic') 25598.144531249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 4000000.0, 1.0, 0.0, 100.0, 0.62, 1.0, 'sonic') 25543.212890624985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 4000000.0, 1.0, 0.0, 100.0, 0.63, 1.0, 'sonic') 25524.902343749985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 4000000.0, 1.0, 0.0, 100.0, 0.64, 1.0, 'sonic') 25451.660156249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 4000000.0, 1.0, 0.0, 100.0, 0.66, 1.0, 'sonic') 25378.417968749985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 4000000.0, 1.0, 0.0, 100.0, 0.68, 1.0, 'sonic') 25305.175781249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 4000000.0, 1.0, 0.0, 100.0, 0.65, 1.0, 'sonic') 25405.883789062485 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 4000000.0, 1.0, 0.0, 100.0, 0.67, 1.0, 'sonic') 25332.641601562485 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 4000000.0, 1.0, 0.0, 100.0, 0.6900000000000001, 1.0, 'sonic') 25250.244140624985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 4000000.0, 1.0, 0.0, 100.0, 0.72, 1.0, 'sonic') 25158.691406249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 4000000.0, 1.0, 0.0, 100.0, 0.7000000000000001, 1.0, 'sonic') 25231.933593749985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 4000000.0, 1.0, 0.0, 100.0, 0.71, 1.0, 'sonic') 25177.001953124985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 4000000.0, 1.0, 0.0, 100.0, 0.74, 1.0, 'sonic') 25085.449218749985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 4000000.0, 1.0, 0.0, 100.0, 0.76, 1.0, 'sonic') 25030.517578124985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 4000000.0, 1.0, 0.0, 100.0, 0.73, 1.0, 'sonic') 25112.915039062485 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 4000000.0, 1.0, 0.0, 100.0, 0.77, 1.0, 'sonic') 25012.207031249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 4000000.0, 1.0, 0.0, 100.0, 0.75, 1.0, 'sonic') 25046.53930664061 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.01, 1.0, 'sonic') nan +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 4000000.0, 1.0, 0.0, 100.0, 0.78, 1.0, 'sonic') 24957.275390624985 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.02, 1.0, 'sonic') 533679.1992187498 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 4000000.0, 1.0, 0.0, 100.0, 0.79, 1.0, 'sonic') 24938.964843749985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 4000000.0, 1.0, 0.0, 100.0, 0.8, 1.0, 'sonic') 24901.77154541014 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.03, 1.0, 'sonic') 279089.3554687499 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.04, 1.0, 'sonic') 149482.7270507812 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.05, 1.0, 'sonic') 93200.68359374994 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 4000000.0, 1.0, 0.0, 100.0, 0.81, 1.0, 'sonic') 24884.033203124985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 4000000.0, 1.0, 0.0, 100.0, 0.8200000000000001, 1.0, 'sonic') 24865.722656249985 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.07, 1.0, 'sonic') 54968.26171874997 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.06, 1.0, 'sonic') 67817.68798828122 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.08, 1.0, 'sonic') 47497.55859374997 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.09, 1.0, 'sonic') 42617.79785156247 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.1, 1.0, 'sonic') 39605.71289062497 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 4000000.0, 1.0, 0.0, 100.0, 0.85, 1.0, 'sonic') 24792.480468749985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 4000000.0, 1.0, 0.0, 100.0, 0.8300000000000001, 1.0, 'sonic') 24824.523925781235 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 4000000.0, 1.0, 0.0, 100.0, 0.84, 1.0, 'sonic') 24810.791015624985 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.11, 1.0, 'sonic') 37316.894531249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 4000000.0, 1.0, 0.0, 100.0, 0.86, 1.0, 'sonic') 24753.57055664061 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.12, 1.0, 'sonic') 35412.597656249985 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.13, 1.0, 'sonic') 34167.480468749985 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.14, 1.0, 'sonic') 33215.332031249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 4000000.0, 1.0, 0.0, 100.0, 0.87, 1.0, 'sonic') 24737.548828124985 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.15, 1.0, 'sonic') 32363.891601562485 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.17, 1.0, 'sonic') 31018.066406249985 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.16, 1.0, 'sonic') 31631.469726562485 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.18, 1.0, 'sonic') 30432.128906249985 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.19, 1.0, 'sonic') 29919.433593749985 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 1.0, 1.0, 'sonic') 22082.519531249985 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.2, 1.0, 'sonic') 29443.216323852525 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.21, 1.0, 'sonic') 29067.993164062485 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.22, 1.0, 'sonic') 28747.558593749985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 4000000.0, 1.0, 0.0, 100.0, 0.88, 1.0, 'sonic') 24719.238281249985 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.23, 1.0, 'sonic') 28454.589843749985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 4000000.0, 1.0, 0.0, 100.0, 0.89, 1.0, 'sonic') 24719.238281249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 4000000.0, 1.0, 0.0, 100.0, 0.9, 1.0, 'sonic') 24664.306640624985 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.24, 1.0, 'sonic') 28161.621093749985 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.25, 1.0, 'sonic') 27886.962890624985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 4000000.0, 1.0, 0.0, 100.0, 0.91, 1.0, 'sonic') 24645.996093749985 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.26, 1.0, 'sonic') 27648.925781249985 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.27, 1.0, 'sonic') 27429.199218749985 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.28, 1.0, 'sonic') 27227.783203124985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 4000000.0, 1.0, 0.0, 100.0, 0.92, 1.0, 'sonic') 24645.996093749985 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.29, 1.0, 'sonic') 27062.988281249985 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.3, 1.0, 'sonic') 26861.572265624985 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.31, 1.0, 'sonic') 26696.777343749985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 4000000.0, 1.0, 0.0, 100.0, 0.93, 1.0, 'sonic') 24604.797363281235 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.33, 1.0, 'sonic') 26403.808593749985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 4000000.0, 1.0, 0.0, 100.0, 0.9500000000000001, 1.0, 'sonic') 24572.753906249985 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.32, 1.0, 'sonic') 26550.292968749985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 4000000.0, 1.0, 0.0, 100.0, 0.9400000000000001, 1.0, 'sonic') 24591.064453124985 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.34, 1.0, 'sonic') 26257.324218749985 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.35000000000000003, 1.0, 'sonic') 26129.150390624985 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.37, 1.0, 'sonic') 25891.113281249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 4000000.0, 1.0, 0.0, 100.0, 0.96, 1.0, 'sonic') 24517.822265624985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 4000000.0, 1.0, 0.0, 100.0, 0.99, 1.0, 'sonic') 24353.027343749985 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.36, 1.0, 'sonic') 25999.832153320298 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.38, 1.0, 'sonic') 25776.672363281235 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 4000000.0, 1.0, 0.0, 100.0, 0.97, 1.0, 'sonic') 24453.735351562485 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.39, 1.0, 'sonic') 25689.697265624985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalLTS), 4000000.0, 1.0, 0.0, 100.0, 0.98, 1.0, 'sonic') 24385.070800781235 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.4, 1.0, 'sonic') 25598.144531249985 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.42, 1.0, 'sonic') 25396.728515624985 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.44, 1.0, 'sonic') 25231.933593749985 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.41000000000000003, 1.0, 'sonic') 25483.703613281235 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.43, 1.0, 'sonic') 25323.486328124985 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.45, 1.0, 'sonic') 25158.691406249985 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.46, 1.0, 'sonic') 25085.449218749985 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.47000000000000003, 1.0, 'sonic') 25012.207031249985 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.48, 1.0, 'sonic') 24938.964843749985 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.49, 1.0, 'sonic') 24884.033203124985 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.5, 1.0, 'sonic') 24819.946289062485 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.52, 1.0, 'sonic') 24719.238281249985 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.53, 1.0, 'sonic') 24645.996093749985 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.54, 1.0, 'sonic') 24591.064453124985 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.51, 1.0, 'sonic') 24754.714965820298 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.55, 1.0, 'sonic') 24517.822265624985 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.56, 1.0, 'sonic') 24426.269531249985 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.5700000000000001, 1.0, 'sonic') 24353.027343749985 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.58, 1.0, 'sonic') 24234.008789062485 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.59, 1.0, 'sonic') 24151.611328124985 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.6, 1.0, 'sonic') 24060.058593749985 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.61, 1.0, 'sonic') 23986.816406249985 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.62, 1.0, 'sonic') 23913.574218749985 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.63, 1.0, 'sonic') 23840.332031249985 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.64, 1.0, 'sonic') 23767.089843749985 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.65, 1.0, 'sonic') 23693.847656249985 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.66, 1.0, 'sonic') 23620.605468749985 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.67, 1.0, 'sonic') 23547.363281249985 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.68, 1.0, 'sonic') 23474.121093749985 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.6900000000000001, 1.0, 'sonic') 23419.189453124985 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.7000000000000001, 1.0, 'sonic') 23345.947265624985 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.71, 1.0, 'sonic') 23286.437988281235 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.72, 1.0, 'sonic') 23254.394531249985 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.73, 1.0, 'sonic') 23181.152343749985 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.74, 1.0, 'sonic') 23126.220703124985 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.76, 1.0, 'sonic') 23034.667968749985 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.75, 1.0, 'sonic') 23062.133789062485 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.77, 1.0, 'sonic') 22961.425781249985 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.79, 1.0, 'sonic') 22888.183593749985 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.78, 1.0, 'sonic') 22915.649414062485 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.8, 1.0, 'sonic') 22814.941406249985 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.81, 1.0, 'sonic') 22769.165039062485 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.8200000000000001, 1.0, 'sonic') 22741.699218749985 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.8300000000000001, 1.0, 'sonic') 22686.767578124985 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.84, 1.0, 'sonic') 22668.457031249985 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.85, 1.0, 'sonic') 22595.214843749985 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.87, 1.0, 'sonic') 22521.972656249985 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.86, 1.0, 'sonic') 22556.30493164061 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.88, 1.0, 'sonic') 22480.773925781235 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.89, 1.0, 'sonic') 22448.730468749985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 1.0, 1.0, 'sonic') nan +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.9, 1.0, 'sonic') 22407.531738281235 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.91, 1.0, 'sonic') 22375.488281249985 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.92, 1.0, 'sonic') 22334.289550781235 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.9400000000000001, 1.0, 'sonic') 22302.246093749985 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.93, 1.0, 'sonic') 22302.246093749985 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.9500000000000001, 1.0, 'sonic') 22247.314453124985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.01, 1.0, 'sonic') 29772.949218749985 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.96, 1.0, 'sonic') 22229.003906249985 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.97, 1.0, 'sonic') 22174.072265624985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.02, 1.0, 'sonic') 27429.199218749985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.04, 1.0, 'sonic') 25817.871093749985 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.98, 1.0, 'sonic') 22155.761718749985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.03, 1.0, 'sonic') 26348.876953124985 +titrate(NeuronalBilayerSonophore(16.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.99, 1.0, 'sonic') 22114.562988281235 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.05, 1.0, 'sonic') 25524.902343749985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.06, 1.0, 'sonic') 25323.486328124985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.07, 1.0, 'sonic') 25186.157226562485 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.11, 1.0, 'sonic') 24893.188476562485 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.08, 1.0, 'sonic') 25085.449218749985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.09, 1.0, 'sonic') 25012.207031249985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.1, 1.0, 'sonic') 24938.964843749985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.12, 1.0, 'sonic') 24865.722656249985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.13, 1.0, 'sonic') 24819.946289062485 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.14, 1.0, 'sonic') 24792.480468749985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.15, 1.0, 'sonic') 24792.480468749985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.16, 1.0, 'sonic') 24737.548828124985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.17, 1.0, 'sonic') 24719.238281249985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.2, 1.0, 'sonic') 24673.461914062485 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.18, 1.0, 'sonic') 24719.238281249985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.19, 1.0, 'sonic') 24719.238281249985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.21, 1.0, 'sonic') 24664.306640624985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.22, 1.0, 'sonic') 24664.306640624985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.28, 1.0, 'sonic') 24604.797363281235 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.23, 1.0, 'sonic') 24645.996093749985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.25, 1.0, 'sonic') 24645.996093749985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.24, 1.0, 'sonic') 24645.996093749985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.26, 1.0, 'sonic') 24645.996093749985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.27, 1.0, 'sonic') 24645.996093749985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.29, 1.0, 'sonic') 24600.219726562485 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.31, 1.0, 'sonic') 24591.064453124985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.3, 1.0, 'sonic') 24600.219726562485 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.32, 1.0, 'sonic') 24591.064453124985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.33, 1.0, 'sonic') 24591.064453124985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.34, 1.0, 'sonic') 24572.753906249985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.36, 1.0, 'sonic') 24517.822265624985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.35000000000000003, 1.0, 'sonic') 24572.753906249985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.41000000000000003, 1.0, 'sonic') 23840.332031249985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.37, 1.0, 'sonic') 24353.027343749985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.38, 1.0, 'sonic') 24206.542968749985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.39, 1.0, 'sonic') 24078.369140624985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.4, 1.0, 'sonic') 23941.040039062485 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.45, 1.0, 'sonic') 23400.878906249985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.42, 1.0, 'sonic') 23712.158203124985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.44, 1.0, 'sonic') 23492.431640624985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.43, 1.0, 'sonic') 23583.41217041014 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.46, 1.0, 'sonic') 23281.860351562485 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.48, 1.0, 'sonic') 23107.910156249985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.47000000000000003, 1.0, 'sonic') 23199.462890624985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.53, 1.0, 'sonic') 22700.500488281235 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.5, 1.0, 'sonic') 22961.425781249985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.49, 1.0, 'sonic') 23034.667968749985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.51, 1.0, 'sonic') 22846.984863281235 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.52, 1.0, 'sonic') 22773.742675781235 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.54, 1.0, 'sonic') 22627.258300781235 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.55, 1.0, 'sonic') 22595.214843749985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.56, 1.0, 'sonic') 22521.972656249985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.58, 1.0, 'sonic') 22375.488281249985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.5700000000000001, 1.0, 'sonic') 22448.730468749985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.59, 1.0, 'sonic') 22320.556640624985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.6, 1.0, 'sonic') 22261.047363281235 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.61, 1.0, 'sonic') 22229.003906249985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.62, 1.0, 'sonic') 22155.761718749985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.63, 1.0, 'sonic') 22100.830078124985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.64, 1.0, 'sonic') 22082.519531249985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.65, 1.0, 'sonic') 22009.277343749985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.66, 1.0, 'sonic') 21963.500976562485 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.67, 1.0, 'sonic') 21936.035156249985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.6900000000000001, 1.0, 'sonic') 21862.792968749985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.68, 1.0, 'sonic') 21881.103515624985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.7000000000000001, 1.0, 'sonic') 21789.550781249985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.71, 1.0, 'sonic') 21748.352050781235 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.72, 1.0, 'sonic') 21716.308593749985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.73, 1.0, 'sonic') 21675.109863281235 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.74, 1.0, 'sonic') 21643.066406249985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.76, 1.0, 'sonic') 21569.824218749985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.75, 1.0, 'sonic') 21601.867675781235 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.77, 1.0, 'sonic') 21569.824218749985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.78, 1.0, 'sonic') 21514.892578124985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.79, 1.0, 'sonic') 21496.582031249985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.8, 1.0, 'sonic') 21450.805664062485 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.81, 1.0, 'sonic') 21423.339843749985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.8200000000000001, 1.0, 'sonic') 21385.574340820298 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.8300000000000001, 1.0, 'sonic') 21368.408203124985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.84, 1.0, 'sonic') 21350.097656249985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.88, 1.0, 'sonic') 21237.94555664061 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.85, 1.0, 'sonic') 21308.898925781235 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.86, 1.0, 'sonic') 21295.166015624985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.87, 1.0, 'sonic') 21276.855468749985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.89, 1.0, 'sonic') 21221.923828124985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.9, 1.0, 'sonic') 21203.613281249985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.91, 1.0, 'sonic') 21203.613281249985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.92, 1.0, 'sonic') 21157.836914062485 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.93, 1.0, 'sonic') 21148.681640624985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.9400000000000001, 1.0, 'sonic') 21130.371093749985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.9500000000000001, 1.0, 'sonic') 21130.371093749985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.96, 1.0, 'sonic') 21084.594726562485 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.98, 1.0, 'sonic') 21057.128906249985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.97, 1.0, 'sonic') 21075.439453124985 +titrate(NeuronalBilayerSonophore(64.0 nm, CorticalLTS), 500000.0, 1.0, 0.0, 100.0, 0.99, 1.0, 'sonic') 21057.128906249985 +titrate(NeuronalBilayerSonophore(32.0 nm, CorticalRS), 20000.0, 1.0, 1.0, 100.0, 0.01, 1.0) nan + diff --git a/PySONIC/core/bls_lookups.json b/PySONIC/core/bls_lookups.json index 32f6a32..9d86ca1 100644 --- a/PySONIC/core/bls_lookups.json +++ b/PySONIC/core/bls_lookups.json @@ -1,696 +1,705 @@ { "32.0": { "-80.00": { "LJ_approx": { "x0": 1.7875580514692446e-09, "C": 14506.791031634148, "nrep": 3.911252335063797, "nattr": 0.9495868868453603 }, "Delta_eq": 1.2344323203763867e-09 }, "-71.40": { "LJ_approx": { "x0": 1.710159362626304e-09, "C": 16757.44053535206, "nrep": 3.9149844779001572, "nattr": 0.9876139143736086 }, "Delta_eq": 1.2566584760815426e-09 }, "-54.00": { "LJ_approx": { "x0": 1.588820457014353e-09, "C": 21124.28839722447, "nrep": 3.9219530533405726, "nattr": 1.0531179666960837 }, "Delta_eq": 1.302942739961778e-09 }, "-71.90": { "LJ_approx": { "x0": 1.7142977983903395e-09, "C": 16627.43538695451, "nrep": 3.9147721975981384, "nattr": 0.9855168537576823 }, "Delta_eq": 1.2553492695740507e-09 }, "-89.50": { "LJ_approx": { "x0": 1.8913883171160228e-09, "C": 12016.525797229067, "nrep": 3.9069373029335464, "nattr": 0.9021994595277029 }, "Delta_eq": 1.2107230911508513e-09 }, "-61.93": { "LJ_approx": { "x0": 1.6390264131559902e-09, "C": 19180.97634755811, "nrep": 3.9188840789597705, "nattr": 1.0250251620607604 }, "Delta_eq": 1.281743450351987e-09 }, "-53.00": { "LJ_approx": { "x0": 1.5830321174402216e-09, "C": 21361.655211483354, "nrep": 3.9223254792281588, "nattr": 1.0564645995714745 }, "Delta_eq": 1.305609024046854e-09 }, "-53.58": { "LJ_approx": { "x0": 1.5863754403940291e-09, "C": 21224.206759769622, "nrep": 3.922109852077156, "nattr": 1.0545313303221624 }, "Delta_eq": 1.3040630712174578e-09 }, "-48.87": { "LJ_approx": { "x0": 1.5603070731170595e-09, "C": 22321.280954434333, "nrep": 3.9238276518118833, "nattr": 1.0698008224359472 }, "Delta_eq": 1.3165739825437056e-09 }, "0.00": { "LJ_approx": { "x0": 1.429523524073023e-09, "C": 28748.036227122713, "nrep": 3.9338919786768276, "nattr": 1.1551044201542804 }, "Delta_eq": 1.4e-09 }, "-70.00": { "LJ_approx": { "x0": 1.698788510560293e-09, "C": 17120.631318195712, "nrep": 3.915575488491436, "nattr": 0.9934238714780391 }, "Delta_eq": 1.2603339470322538e-09 }, "-58.00": { "LJ_approx": { "x0": 1.6131662659976035e-09, "C": 20156.47605325608, "nrep": 3.9204295233162925, "nattr": 1.0393049952285334 }, "Delta_eq": 1.2922508866011204e-09 }, "-140.00": { "LJ_approx": { "x0": 3.5396589580589484e-09, "C": 1255.8321160636908, "nrep": 3.879907809497444, "nattr": 0.4190657482583384 }, "Delta_eq": 1.1019265101358682e-09 }, "-200.00": { "LJ_approx": { "x0": 5.467498689940948e-09, "C": 298.4575230665454, "nrep": 3.8382806376855165, "nattr": 0.0014805372073950717 }, "Delta_eq": 1.0050623818936587e-09 } }, "64.0": { "-80.00": { "LJ_approx": { "x0": 1.783357531675752e-09, "C": 14639.319598806138, "nrep": 3.9113027551187414, "nattr": 0.9404151935643594 }, "Delta_eq": 1.2344323203763867e-09 }, "-71.90": { "LJ_approx": { "x0": 1.7103254451796522e-09, "C": 16775.90747591089, "nrep": 3.9148582072320104, "nattr": 0.9747613204242506 }, "Delta_eq": 1.2553492695740507e-09 }, "-71.40": { "LJ_approx": { "x0": 1.7061996856525807e-09, "C": 16906.878806702443, "nrep": 3.9150725853841957, "nattr": 0.976778398349503 }, "Delta_eq": 1.2566584760815426e-09 }, "-54.00": { "LJ_approx": { "x0": 1.585264156646392e-09, "C": 21303.176047683613, "nrep": 3.92211004079812, "nattr": 1.0402641595550777 }, "Delta_eq": 1.302942739961778e-09 }, "-89.50": { "LJ_approx": { "x0": 1.886870747500225e-09, "C": 12129.260307725155, "nrep": 3.906945602966425, "nattr": 0.895598309376088 }, "Delta_eq": 1.2107230911508513e-09 }, "-61.93": { "LJ_approx": { "x0": 1.635297932833928e-09, "C": 19347.359224637305, "nrep": 3.9190113341505843, "nattr": 1.0129039638328117 }, "Delta_eq": 1.281743450351987e-09 }, "-58.00": { "LJ_approx": { "x0": 1.6095250707781465e-09, "C": 20329.27848623273, "nrep": 3.92057191136993, "nattr": 1.0267862446034561 }, "Delta_eq": 1.2922508866011204e-09 }, "-140.00": { "LJ_approx": { "x0": 3.5398097121754107e-09, "C": 1255.8690004347025, "nrep": 3.8798490490747404, "nattr": 0.4604604439108636 }, "Delta_eq": 1.1019265101358682e-09 }, "-200.00": { "LJ_approx": { "x0": 6.6005456899992844e-09, "C": 144.85407475420143, "nrep": 3.838295127819493, "nattr": 0.00992375961984237 }, "Delta_eq": 1.0050623818936587e-09 } }, "50.0": { "-71.90": { "LJ_approx": { "x0": 1.7114794411958874e-09, "C": 16732.841575829825, "nrep": 3.914827883392826, "nattr": 0.9781401389550711 }, "Delta_eq": 1.2553492695740507e-09 } }, "10.0": { "0.00": { "LJ_approx": { "x0": 1.4403460578039628e-09, "C": 27932.27792195569, "nrep": 3.9334138654752686, "nattr": 1.19526523864855 }, "Delta_eq": 1.4e-09 }, "-71.90": { "LJ_approx": { "x0": 1.7286986021591825e-09, "C": 16087.514816365254, "nrep": 3.9147885683678543, "nattr": 1.012616990226475 }, "Delta_eq": 1.2553492695740507e-09 } }, "100.0": { "0.00": { "LJ_approx": { "x0": 1.4254455131143225e-09, "C": 29048.417918044444, "nrep": 3.9342659189249254, "nattr": 1.1351227816904121 }, "Delta_eq": 1.4e-09 }, "-71.90": { "LJ_approx": { "x0": 1.7087681652667724e-09, "C": 16833.83962398515, "nrep": 3.914908533680663, "nattr": 0.9697102045586926 }, "Delta_eq": 1.2553492695740507e-09 }, "-71.40": { "LJ_approx": { "x0": 1.7046480280451768e-09, "C": 16965.15489682674, "nrep": 3.9151238997284845, "nattr": 0.9716928395857687 }, "Delta_eq": 1.2566584760815426e-09 }, "-54.00": { "LJ_approx": { "x0": 1.5838767580748841e-09, "C": 21372.412565003375, "nrep": 3.922191259312523, "nattr": 1.0344167918733638 }, "Delta_eq": 1.302942739961778e-09 }, "-89.50": { "LJ_approx": { "x0": 1.8850831984948754e-09, "C": 12173.857567383837, "nrep": 3.906959887367545, "nattr": 0.8923154523792497 }, "Delta_eq": 1.2107230911508513e-09 }, "-61.93": { "LJ_approx": { "x0": 1.6338405482612552e-09, "C": 19411.96069791924, "nrep": 3.9190798895919405, "nattr": 1.0073171165886772 }, "Delta_eq": 1.281743450351987e-09 } }, "500.0": { "0.00": { "LJ_approx": { "x0": 1.4236928207491738e-09, "C": 29174.423851140436, "nrep": 3.934489087598531, "nattr": 1.1244706663694597 }, "Delta_eq": 1.4e-09 } }, "15.0": { "-71.90": { "LJ_approx": { "x0": 1.722207527516432e-09, "C": 16331.124295102756, "nrep": 3.914721476976037, "nattr": 1.0021304453280393 }, "Delta_eq": 1.2553492695740507e-09 }, "-71.40": { "LJ_approx": { "x0": 1.7180439454408102e-09, "C": 16459.15520614834, "nrep": 3.9149304238974905, "nattr": 1.0043742068193204 }, "Delta_eq": 1.2566584760815426e-09 }, "-54.00": { "LJ_approx": { "x0": 1.5959361190370466e-09, "C": 20763.823187183425, "nrep": 3.921785737782814, "nattr": 1.0737976563473925 }, "Delta_eq": 1.302942739961778e-09 }, "-89.50": { "LJ_approx": { "x0": 1.9002701433896942e-09, "C": 11795.576706463997, "nrep": 3.9070059150621814, "nattr": 0.9114123498082551 }, "Delta_eq": 1.2107230911508513e-09 }, "-61.93": { "LJ_approx": { "x0": 1.646473044478369e-09, "C": 18846.9803104403, "nrep": 3.918766624746869, "nattr": 1.044220870098494 }, "Delta_eq": 1.281743450351987e-09 } }, "70.0": { "-61.93": { "LJ_approx": { "x0": 1.6349587829329923e-09, "C": 19362.426097728276, "nrep": 3.9190260877993097, "nattr": 1.0116609492531905 }, "Delta_eq": 1.281743450351987e-09 }, "-71.90": { "LJ_approx": { "x0": 1.7099628637265945e-09, "C": 16789.420291577666, "nrep": 3.9148688185890483, "nattr": 0.9736446481917082 }, "Delta_eq": 1.2553492695740507e-09 }, "-71.40": { "LJ_approx": { "x0": 1.7058388214243274e-09, "C": 16920.455606556396, "nrep": 3.9150834388621805, "nattr": 0.9756530742858303 }, "Delta_eq": 1.2566584760815426e-09 }, "-54.00": { "LJ_approx": { "x0": 1.584940743805642e-09, "C": 21319.35643207058, "nrep": 3.9221277053335264, "nattr": 1.0389567310289958 }, "Delta_eq": 1.302942739961778e-09 }, "-89.50": { "LJ_approx": { "x0": 1.886457143504779e-09, "C": 12139.584658299475, "nrep": 3.9069481854501382, "nattr": 0.8948872453823127 }, "Delta_eq": 1.2107230911508513e-09 } }, "150.0": { "-71.90": { "LJ_approx": { "x0": 1.707781542586275e-09, "C": 16870.340248462282, "nrep": 3.914948339378328, "nattr": 0.9660711186661354 }, "Delta_eq": 1.2553492695740507e-09 }, "-71.40": { "LJ_approx": { "x0": 1.7036651779798684e-09, "C": 17001.86272239105, "nrep": 3.9151643485118117, "nattr": 0.9680342060844059 }, "Delta_eq": 1.2566584760815426e-09 }, "-54.00": { "LJ_approx": { "x0": 1.5830041112065094e-09, "C": 21415.64649760579, "nrep": 3.9222512220871013, "nattr": 1.0303387653647968 }, "Delta_eq": 1.302942739961778e-09 }, "-89.50": { "LJ_approx": { "x0": 1.883936689519767e-09, "C": 12202.390459945682, "nrep": 3.906974649816042, "nattr": 0.8898102498996743 }, "Delta_eq": 1.2107230911508513e-09 }, "-61.93": { "LJ_approx": { "x0": 1.6329212539031057e-09, "C": 19452.44141782297, "nrep": 3.9191317215599946, "nattr": 1.0033715654432673 }, "Delta_eq": 1.281743450351987e-09 } }, "16.0": { "-71.90": { "LJ_approx": { "x0": 1.721337196662225e-09, "C": 16363.738563915058, "nrep": 3.9147202446411637, "nattr": 1.0005179992350384 }, "Delta_eq": 1.2553492695740507e-09 }, "-71.40": { "LJ_approx": { "x0": 1.717176984027311e-09, "C": 16491.97282711717, "nrep": 3.9149293522242252, "nattr": 1.0027563589061772 }, "Delta_eq": 1.2566584760815426e-09 }, "-54.00": { "LJ_approx": { "x0": 1.5951507107307484e-09, "C": 20803.713978702526, "nrep": 3.921796023871708, "nattr": 1.0717457519944718 }, "Delta_eq": 1.302942739961778e-09 }, "-89.50": { "LJ_approx": { "x0": 1.899300769652515e-09, "C": 11819.650350288994, "nrep": 3.906993085458305, "nattr": 0.9105930969008011 }, "Delta_eq": 1.2107230911508513e-09 }, "-61.93": { "LJ_approx": { "x0": 1.6456524054221337e-09, "C": 18883.851022856303, "nrep": 3.918771854603072, "nattr": 1.042336408142498 }, "Delta_eq": 1.281743450351987e-09 }, "-58.00": { "LJ_approx": { "x0": 1.6196423302303851e-09, "C": 19847.346684716063, "nrep": 3.920294617611314, "nattr": 1.0573210567487794 }, "Delta_eq": 1.2922508866011204e-09 }, "-140.00": { "LJ_approx": { "x0": 3.536300349187651e-09, "C": 1259.968827699725, "nrep": 3.8800144975132485, "nattr": 0.35722933384459793 }, "Delta_eq": 1.1019265101358682e-09 }, "-200.00": { "LJ_approx": { "x0": 4.448077576688761e-09, "C": 658.9502615105886, "nrep": 3.8382596040618573, "nattr": -0.0007412836249291593 }, "Delta_eq": 1.0050623818936587e-09 } }, "40.0": { "-71.90": { "LJ_approx": { "x0": 1.7127556130633909e-09, "C": 16685.139617894773, "nrep": 3.9147997833590855, "nattr": 0.9816110605284186 }, "Delta_eq": 1.2553492695740507e-09 } }, "30.0": { "-71.90": { "LJ_approx": { "x0": 1.7147994934556977e-09, "C": 16608.65261608246, "nrep": 3.914764637335829, "nattr": 0.9867268079339511 }, "Delta_eq": 1.2553492695740507e-09 } }, "25.4": { "-71.90": { "LJ_approx": { "x0": 1.7162265501918752e-09, "C": 16555.217050637588, "nrep": 3.9147464050871856, "nattr": 0.9900398844251959 }, "Delta_eq": 1.2553492695740507e-09 }, "-61.93": { "LJ_approx": { "x0": 1.6408385667642563e-09, "C": 19099.831853142834, "nrep": 3.9188405082474103, "nattr": 1.0301853851264013 }, "Delta_eq": 1.281743450351987e-09 } }, "40.3": { "-71.90": { "LJ_approx": { "x0": 1.7127058661258177e-09, "C": 16686.9995037205, "nrep": 3.914800799246736, "nattr": 0.981479342025535 }, "Delta_eq": 1.2553492695740507e-09 }, "-61.93": { "LJ_approx": { "x0": 1.637531858311385e-09, "C": 19247.790954282773, "nrep": 3.918928365198691, "nattr": 1.020450016688262 }, "Delta_eq": 1.281743450351987e-09 } }, "45.0": { "-71.90": { "LJ_approx": { "x0": 1.712051746586677e-09, "C": 16711.456749369456, "nrep": 3.914814642254888, "nattr": 0.979726839958776 }, "Delta_eq": 1.2553492695740507e-09 } }, "20.0": { "-71.90": { "LJ_approx": { "x0": 1.7186388439609698e-09, "C": 16464.85454836168, "nrep": 3.9147266088229755, "nattr": 0.9952322612710219 }, "Delta_eq": 1.2553492695740507e-09 } }, "60.0": { "-71.90": { "LJ_approx": { "x0": 1.710603828012074e-09, "C": 16765.5278159216, "nrep": 3.9148503824940146, "nattr": 0.9756024890579372 }, "Delta_eq": 1.2553492695740507e-09 } }, "34.0": { "-71.90": { "LJ_approx": { "x0": 1.7138494069983225e-09, "C": 16644.21766668786, "nrep": 3.9147795488410644, "nattr": 0.9844103642751335 }, "Delta_eq": 1.2553492695740507e-09 } }, "22.6": { "-71.90": { "LJ_approx": { "x0": 1.717347083819261e-09, "C": 16513.244775760173, "nrep": 3.914735582752492, "nattr": 0.9925083846044295 }, "Delta_eq": 1.2553492695740507e-09 + }, + "-54.00": { + "LJ_approx": { + "x0": 1.5915583742563881e-09, + "C": 20985.87279990122, + "nrep": 3.9218681449692334, + "nattr": 1.06169568520175 + }, + "Delta_eq": 1.302942739961778e-09 } }, "45.3": { "-71.90": { "LJ_approx": { "x0": 1.7120143529753677e-09, "C": 16712.8535932463, "nrep": 3.9148154954695285, "nattr": 0.9796234512533043 }, "Delta_eq": 1.2553492695740507e-09 } }, "31.0": { "0.00": { "LJ_approx": { "x0": 1.429704934686545e-09, "C": 28734.55271989346, "nrep": 3.9338783401809607, "nattr": 1.155904475115303 }, "Delta_eq": 1.4e-09 }, "-71.90": { "LJ_approx": { "x0": 1.714533452342314e-09, "C": 16618.61152256, "nrep": 3.9147686086169227, "nattr": 0.9860860917336786 }, "Delta_eq": 1.2553492695740507e-09 } }, "31.1": { "-71.90": { "LJ_approx": { "x0": 1.714515996985078e-09, "C": 16619.26565583038, "nrep": 3.914768856863524, "nattr": 0.986044873313721 }, "Delta_eq": 1.2553492695740507e-09 } }, "45.2": { "-71.90": { "LJ_approx": { "x0": 1.7120203335936594e-09, "C": 16712.630620283762, "nrep": 3.914815347514677, "nattr": 0.9796407085930723 }, "Delta_eq": 1.2553492695740507e-09 } } } \ No newline at end of file diff --git a/PySONIC/plt/actmap.py b/PySONIC/plt/actmap.py index b8d4731..5e041e9 100644 --- a/PySONIC/plt/actmap.py +++ b/PySONIC/plt/actmap.py @@ -1,284 +1,271 @@ # -*- coding: utf-8 -*- # @Author: Theo Lemaire # @Email: theo.lemaire@epfl.ch # @Date: 2019-06-04 18:24:29 # @Last Modified by: Theo Lemaire -# @Last Modified time: 2019-08-22 15:44:09 +# @Last Modified time: 2019-09-30 19:19:23 import os import pickle import numpy as np import pandas as pd import matplotlib.pyplot as plt from matplotlib.ticker import FormatStrFormatter from ..core import NeuronalBilayerSonophore from ..utils import logger, si_format, loadData from ..constants import * from .pltutils import cm2inch, setNormalizer from ..postpro import detectSpikes class Map: @staticmethod def computeMeshEdges(x, scale): ''' Compute the appropriate edges of a mesh that quads a linear or logarihtmic distribution. :param x: the input vector :param scale: the type of distribution ('lin' for linear, 'log' for logarihtmic) :return: the edges vector ''' if scale == 'log': x = np.log10(x) dx = x[1] - x[0] n = x.size + 1 return {'lin': np.linspace, 'log': np.logspace}[scale](x[0] - dx / 2, x[-1] + dx / 2, n) class ActivationMap(Map): def __init__(self, root, pneuron, a, Fdrive, tstim, PRF, amps, DCs): self.root = root self.pneuron = pneuron self.a = a self.nbls = NeuronalBilayerSonophore(self.a, self.pneuron) self.Fdrive = Fdrive self.tstim = tstim self.PRF = PRF self.amps = amps self.DCs = DCs self.Ascale = self.getAmpScale() self.title = '{} neuron @ {}Hz, {}Hz PRF ({}m sonophore)'.format( self.pneuron.name, *si_format([self.Fdrive, self.PRF, self.a])) out_fname = 'actmap {} {}Hz PRF{}Hz {}s.csv'.format( self.pneuron.name, *si_format([self.Fdrive, self.PRF, self.tstim], space='')) out_fpath = os.path.join(self.root, out_fname) if os.path.isfile(out_fpath): self.data = np.loadtxt(out_fpath, delimiter=',') else: self.data = self.compute() np.savetxt(out_fpath, self.data, delimiter=',') def getAmpScale(self): Amin, Amax, nA = self.amps.min(), self.amps.max(), self.amps.size if np.all(np.isclose(self.amps, np.logspace(np.log10(Amin), np.log10(Amax), nA))): return 'log' elif np.all(np.isclose(self.amps, np.linspace(Amin, Amax, nA))): return 'lin' else: raise ValueError('Unknown distribution type') def classify(self, data): ''' Classify based on charge temporal profile. ''' # Detect spikes in data ispikes, _ = detectSpikes(data) # Compute firing metrics if ispikes.size == 0: # if no spike, assign -1 return -1 elif ispikes.size == 1: # if only 1 spike, assign 0 return 0 else: # if more than 1 spike, assign firing rate t = data['t'].values sr = 1 / np.diff(t[ispikes]) return np.mean(sr) - @staticmethod - def correctAmp(A): - return np.round(A * 1e-3, 1) * 1e3 - def compute(self): logger.info('Generating activation map for %s neuron', self.pneuron.name) actmap = np.empty((self.amps.size, self.DCs.size)) nfiles = self.DCs.size * self.amps.size for i, A in enumerate(self.amps): for j, DC in enumerate(self.DCs): fname = '{}.pkl'.format(self.nbls.filecode( - self.Fdrive, self.correctAmp(A), self.tstim, 0., self.PRF, DC, 1., 'sonic')) + self.Fdrive, A, self.tstim, 0., self.PRF, DC, 1., 'sonic')) fpath = os.path.join(self.root, fname) if not os.path.isfile(fpath): print(fpath) logger.error('"{}" file not found'.format(fname)) actmap[i, j] = np.nan else: # Load data logger.debug('Loading file {}/{}: "{}"'.format( i * self.amps.size + j + 1, nfiles, fname)) df, _ = loadData(fpath) actmap[i, j] = self.classify(df) return actmap @staticmethod def adjustFRbounds(actmap): ''' Check firing rate bounding. ''' minFR, maxFR = (actmap[actmap > 0].min(), actmap.max()) logger.info('FR range: %.0f - %.0f Hz', minFR, maxFR) if FRbounds is None: FRbounds = (minFR, maxFR) else: if minFR < FRbounds[0]: logger.warning( 'Minimal firing rate (%.0f Hz) is below defined lower bound (%.0f Hz)', minFR, FRbounds[0]) if maxFR > FRbounds[1]: logger.warning( 'Maximal firing rate (%.0f Hz) is above defined upper bound (%.0f Hz)', maxFR, FRbounds[1]) @staticmethod def fit2Colormap(actmap, cmap): actmap[actmap == -1] = np.nan actmap[actmap == 0] = 1e-3 cmap.set_bad('silver') cmap.set_under('k') return actmap, cmap def addThresholdCurve(self, ax): - Athrs_fname = 'Athrs_{}_{:.0f}nm_{}Hz_PRF{}Hz_{}s.xlsx'.format( - self.pneuron.name, self.a * 1e9, - *si_format([self.Fdrive, self.PRF, self.tstim], 0, space='')) - fpath = os.path.join(self.root, Athrs_fname) - if os.path.isfile(fpath): - df = pd.read_excel(fpath, sheet_name='Data') - DCs = df['Duty factor'].values - Athrs = df['Adrive (kPa)'].values - iDCs = np.argsort(DCs) - DCs = DCs[iDCs] - Athrs = Athrs[iDCs] - ax.plot(DCs * 1e2, Athrs, '-', color='#F26522', linewidth=2, - label='threshold amplitudes') - ax.legend(loc='lower center', frameon=False, fontsize=8) - else: - logger.warning('%s file not found -> cannot draw threshold curve', fpath) + Athrs = np.array([ + self.nbls.titrate(self.Fdrive, self.tstim, 0., self.PRF, DC) for DC in self.DCs]) + ax.plot(DCs * 1e2, Athrs, '-', color='#F26522', linewidth=2, + label='threshold amplitudes') + ax.legend(loc='lower center', frameon=False, fontsize=8) def render(self, Ascale='log', FRscale='log', FRbounds=None, fs=8, cmap='viridis', - interactive=False, Vbounds=None, trange=None, thresholds=False): + interactive=False, Vbounds=None, trange=None, thresholds=False, + figsize=cm2inch(8, 5.8)): # Compute FR normalizer mymap = plt.get_cmap(cmap) norm, sm = setNormalizer(mymap, FRbounds, FRscale) # Compute mesh edges xedges = self.computeMeshEdges(self.DCs, 'lin') yedges = self.computeMeshEdges(self.amps, self.Ascale) # Create figure - fig, ax = plt.subplots(figsize=cm2inch(8, 5.8)) + fig, ax = plt.subplots(figsize=figsize) fig.subplots_adjust(left=0.15, bottom=0.15, right=0.8, top=0.92) ax.set_title(self.title, fontsize=fs) ax.set_xlabel('Duty cycle (%)', fontsize=fs, labelpad=-0.5) ax.set_ylabel('Amplitude (kPa)', fontsize=fs) ax.set_xlim(np.array([self.DCs.min(), self.DCs.max()]) * 1e2) for item in ax.get_xticklabels() + ax.get_yticklabels(): item.set_fontsize(fs) # Plot activation map with specific color code actmap, cmap = self.fit2Colormap(self.data, plt.get_cmap(cmap)) if Ascale == 'log': ax.set_yscale('log') ax.pcolormesh(xedges * 1e2, yedges * 1e-3, actmap, cmap=mymap, norm=norm) if thresholds: self.addThresholdCurve(ax) # Plot firing rate colorbar pos1 = ax.get_position() # get the map axis position cbarax = fig.add_axes([pos1.x1 + 0.02, pos1.y0, 0.03, pos1.height]) fig.colorbar(sm, cax=cbarax) cbarax.set_ylabel('Firing rate (Hz)', fontsize=fs) for item in cbarax.get_yticklabels(): item.set_fontsize(fs) if interactive: fig.canvas.mpl_connect( 'button_press_event', lambda event: self.onClick(event, (xedges, yedges), trange, Vbounds)) return fig def onClick(self, event, meshedges, trange, Vbounds): ''' Retrieve the specific input parameters of the x and y dimensions when the user clicks on a cell in the 2D map, and define filename from it. ''' # Get DC and A from x and y coordinates x, y = event.xdata, event.ydata DC = self.DCs[np.searchsorted(meshedges[0], x * 1e-2) - 1] Adrive = self.amps[np.searchsorted(meshedges[1], y * 1e3) - 1] # Define filepath fname = '{}.pkl'.format(self.nbls.filecode( - self.Fdrive, self.correctAmp(Adrive), self.tstim, 0., self.PRF, DC, 1. , 'sonic')) + self.Fdrive, Adrive, self.tstim, 0., self.PRF, DC, 1. , 'sonic')) fpath = os.path.join(self.root, fname) # Plot Q-trace try: self.plotQVeff(fpath, trange=trange, ybounds=Vbounds) plt.show() except FileNotFoundError as err: logger.error(err) - def plotQVeff(self, filepath, tonset=10e-3, trange=None, ybounds=None, fs=8, lw=1): + def plotQVeff(self, filepath, tonset=10e-3, trange=None, ybounds=None, + fs=8, lw=1, figsize=cm2inch(7, 3)): ''' Plot superimposed profiles of membrane charge density and effective membrane potential. :param filepath: full path to the data file :param tonset: pre-stimulus onset to add to profiles (s) :param trange: time lower and upper bounds on graph (s) :param ybounds: y-axis bounds (mV / nC/cm2) :return: handle to the generated figure ''' # Check file existence fname = os.path.basename(filepath) if not os.path.isfile(filepath): raise FileNotFoundError('Error: "{}" file does not exist'.format(fname)) # Load data (with optional time restriction) logger.debug('Loading data from "%s"', fname) with open(filepath, 'rb') as fh: frame = pickle.load(fh) df = frame['data'] if trange is not None: tmin, tmax = trange df = df.loc[(df['t'] >= tmin) & (df['t'] <= tmax)] # Load variables, add onset and rescale t, Qm, Vm = [df[k].values for k in ['t', 'Qm', 'Vm']] t = np.hstack((np.array([-tonset, t[0]]), t)) # s Vm = np.hstack((np.array([self.pneuron.Vm0] * 2), Vm)) # mV Qm = np.hstack((np.array([self.pneuron.Qm0()] * 2), Qm)) # C/m2 t *= 1e3 # ms Qm *= 1e5 # nC/cm2 # Determine axes bounds if ybounds is None: ybounds = (min(Vm.min(), Qm.min()), max(Vm.max(), Qm.max())) # Create figure - fig, ax = plt.subplots(figsize=cm2inch(7, 3)) + fig, ax = plt.subplots(figsize=figsize) fig.canvas.set_window_title(fname) plt.subplots_adjust(left=0.2, bottom=0.2, right=0.95, top=0.95) for key in ['top', 'right']: ax.spines[key].set_visible(False) for key in ['bottom', 'left']: ax.spines[key].set_position(('axes', -0.03)) ax.spines[key].set_linewidth(2) ax.yaxis.set_tick_params(width=2) ax.yaxis.set_major_formatter(FormatStrFormatter('%.0f')) ax.set_xticks([]) ax.set_xlabel('{}s'.format(si_format(np.ptp(t), space=' ')), fontsize=fs) ax.set_ylabel('mV - $\\rm nC/cm^2$', fontsize=fs, labelpad=-15) ax.set_ylim(ybounds) ax.set_yticks(ybounds) for item in ax.get_yticklabels(): item.set_fontsize(fs) # Plot Qm and Vmeff profiles ax.plot(t, Vm, color='darkgrey', linewidth=lw) ax.plot(t, Qm, color='k', linewidth=lw) # fig.tight_layout() return fig diff --git a/PySONIC/plt/pltutils.py b/PySONIC/plt/pltutils.py index d003ff7..61a2822 100644 --- a/PySONIC/plt/pltutils.py +++ b/PySONIC/plt/pltutils.py @@ -1,407 +1,407 @@ # -*- coding: utf-8 -*- # @Author: Theo Lemaire # @Email: theo.lemaire@epfl.ch # @Date: 2017-08-21 14:33:36 # @Last Modified by: Theo Lemaire -# @Last Modified time: 2019-08-24 22:02:53 +# @Last Modified time: 2019-09-27 19:25:34 ''' Useful functions to generate plots. ''' import re import numpy as np import pandas as pd from scipy.signal import peak_widths import matplotlib from matplotlib.patches import Rectangle from matplotlib import cm, colors import matplotlib.pyplot as plt from ..core import getModel from ..utils import logger, isIterable, loadData, rescale, swapFirstLetterCase from ..constants import SPIKE_MIN_DT, SPIKE_MIN_QAMP, SPIKE_MIN_QPROM # Matplotlib parameters matplotlib.rcParams['pdf.fonttype'] = 42 matplotlib.rcParams['ps.fonttype'] = 42 matplotlib.rcParams['font.family'] = 'arial' def figtitle(meta): ''' Return appropriate title based on simulation metadata. ''' if 'Cm0' in meta: return '{:.0f}nm radius BLS structure: MECH-STIM {:.0f}kHz, {:.2f}kPa, {:.1f}nC/cm2'.format( meta['a'] * 1e9, meta['Fdrive'] * 1e-3, meta['Adrive'] * 1e-3, meta['Qm'] * 1e5) else: if 'DC' in meta: if meta['DC'] < 1: wavetype = 'PW' suffix = ', {:.2f}Hz PRF, {:.0f}% DC'.format(meta['PRF'], meta['DC'] * 1e2) else: wavetype = 'CW' suffix = '' if 'Astim' in meta: return '{} neuron: {} E-STIM {:.2f}mA/m2, {:.0f}ms{}'.format( meta['neuron'], wavetype, meta['Astim'], meta['tstim'] * 1e3, suffix) else: return '{} neuron ({:.1f}nm): {} A-STIM {:.0f}kHz {:.2f}kPa, {:.0f}ms{} - {} model'.format( meta['neuron'], meta['a'] * 1e9, wavetype, meta['Fdrive'] * 1e-3, meta['Adrive'] * 1e-3, meta['tstim'] * 1e3, suffix, meta['method']) else: return '{} neuron: V-CLAMP {:.1f}-{:.1f}mV, {:.0f}ms'.format( meta['neuron'], meta['Vhold'], meta['Vstep'], meta['tstim'] * 1e3) def cm2inch(*tupl): inch = 2.54 if isinstance(tupl[0], tuple): return tuple(i / inch for i in tupl[0]) else: return tuple(i / inch for i in tupl) def extractPltVar(model, pltvar, df, meta=None, nsamples=0, name=''): if 'func' in pltvar: s = 'model.{}'.format(pltvar['func']) try: var = eval(s) except AttributeError: var = eval(s.replace('model', 'model.pneuron')) elif 'key' in pltvar: var = df[pltvar['key']] elif 'constant' in pltvar: var = eval(pltvar['constant']) * np.ones(nsamples) else: var = df[name] if isinstance(var, pd.Series): var = var.values var = var.copy() if var.size == nsamples - 1: var = np.insert(var, 0, var[0]) var *= pltvar.get('factor', 1) return var def setGrid(n, ncolmax=3): ''' Determine number of rows and columns in figure grid, based on number of variables to plot. ''' if n <= ncolmax: return (1, n) else: return ((n - 1) // ncolmax + 1, ncolmax) def setNormalizer(cmap, bounds, scale='lin'): norm = { 'lin': colors.Normalize, 'log': colors.LogNorm }[scale](*bounds) sm = cm.ScalarMappable(norm=norm, cmap=cmap) sm._A = [] return norm, sm class GenericPlot: def __init__(self, filepaths): ''' Constructor. :param filepaths: list of full paths to output data files to be compared ''' if not isIterable(filepaths): filepaths = [filepaths] self.filepaths = filepaths def __call__(self, *args, **kwargs): return self.render(*args, **kwargs) @staticmethod def getData(entry, frequency=1, trange=None): if entry is None: raise ValueError('non-existing data') if isinstance(entry, str): data, meta = loadData(entry, frequency) else: data, meta = entry data = data.iloc[::frequency] if trange is not None: tmin, tmax = trange data = data.loc[(data['t'] >= tmin) & (data['t'] <= tmax)] return data, meta def render(self, *args, **kwargs): return NotImplementedError @staticmethod def getSimType(fname): ''' Get sim type from filename. ''' mo = re.search('(^[A-Z]*)_(.*).pkl', fname) if not mo: raise ValueError('Could not find sim-key in filename: "{}"'.format(fname)) return mo.group(1) @staticmethod def getModel(*args, **kwargs): return getModel(*args, **kwargs) @staticmethod def figtitle(*args, **kwargs): return figtitle(*args, **kwargs) @staticmethod def getTimePltVar(tscale): ''' Return time plot variable for a given temporal scale. ''' return { 'desc': 'time', 'label': 'time', 'unit': tscale, 'factor': {'ms': 1e3, 'us': 1e6}[tscale], 'onset': {'ms': 1e-3, 'us': 1e-6}[tscale] } @staticmethod def createBackBone(*args, **kwargs): return NotImplementedError @staticmethod def prettify(ax, xticks=None, yticks=None, xfmt='{:.0f}', yfmt='{:+.0f}'): try: ticks = ax.get_ticks() ticks = (min(ticks), max(ticks)) ax.set_ticks(ticks) ax.set_ticklabels([xfmt.format(x) for x in ticks]) except AttributeError: if xticks is None: xticks = ax.get_xticks() xticks = (min(xticks), max(xticks)) if yticks is None: yticks = ax.get_yticks() yticks = (min(yticks), max(yticks)) ax.set_xticks(xticks) ax.set_yticks(yticks) if xfmt is not None: ax.set_xticklabels([xfmt.format(x) for x in xticks]) if yfmt is not None: ax.set_yticklabels([yfmt.format(y) for y in yticks]) @staticmethod def addInset(fig, ax, inset): ''' Create inset axis. ''' inset_ax = fig.add_axes(ax.get_position()) inset_ax.set_zorder(1) inset_ax.set_xlim(inset['xlims'][0], inset['xlims'][1]) inset_ax.set_ylim(inset['ylims'][0], inset['ylims'][1]) inset_ax.set_xticks([]) inset_ax.set_yticks([]) inset_ax.add_patch(Rectangle((inset['xlims'][0], inset['ylims'][0]), inset['xlims'][1] - inset['xlims'][0], inset['ylims'][1] - inset['ylims'][0], color='w')) return inset_ax @staticmethod def materializeInset(ax, inset_ax, inset): ''' Materialize inset with zoom boox. ''' # Re-position inset axis axpos = ax.get_position() left, right, = rescale(inset['xcoords'], ax.get_xlim()[0], ax.get_xlim()[1], axpos.x0, axpos.x0 + axpos.width) bottom, top, = rescale(inset['ycoords'], ax.get_ylim()[0], ax.get_ylim()[1], axpos.y0, axpos.y0 + axpos.height) inset_ax.set_position([left, bottom, right - left, top - bottom]) for i in inset_ax.spines.values(): i.set_linewidth(2) # Materialize inset target region with contour frame ax.plot(inset['xlims'], [inset['ylims'][0]] * 2, linestyle='-', color='k') ax.plot(inset['xlims'], [inset['ylims'][1]] * 2, linestyle='-', color='k') ax.plot([inset['xlims'][0]] * 2, inset['ylims'], linestyle='-', color='k') ax.plot([inset['xlims'][1]] * 2, inset['ylims'], linestyle='-', color='k') # Link target and inset with dashed lines if possible if inset['xcoords'][1] < inset['xlims'][0]: ax.plot([inset['xcoords'][1], inset['xlims'][0]], [inset['ycoords'][0], inset['ylims'][0]], linestyle='--', color='k') ax.plot([inset['xcoords'][1], inset['xlims'][0]], [inset['ycoords'][1], inset['ylims'][1]], linestyle='--', color='k') elif inset['xcoords'][0] > inset['xlims'][1]: ax.plot([inset['xcoords'][0], inset['xlims'][1]], [inset['ycoords'][0], inset['ylims'][0]], linestyle='--', color='k') ax.plot([inset['xcoords'][0], inset['xlims'][1]], [inset['ycoords'][1], inset['ylims'][1]], linestyle='--', color='k') else: logger.warning('Inset x-coordinates intersect with those of target region') def postProcess(self, *args, **kwargs): return NotImplementedError @staticmethod def removeSpines(ax): for item in ['top', 'right']: ax.spines[item].set_visible(False) @staticmethod def setXTicks(ax, xticks=None): if xticks is not None: ax.set_xticks(xticks) @staticmethod def setYTicks(ax, yticks=None): if yticks is not None: ax.set_yticks(yticks) @staticmethod def setTickLabelsFontSize(ax, fs): for tick in ax.xaxis.get_major_ticks() + ax.yaxis.get_major_ticks(): tick.label.set_fontsize(fs) @staticmethod def setXLabel(ax, xplt, fs): ax.set_xlabel('$\\rm {}\ ({})$'.format(xplt['label'], xplt['unit']), fontsize=fs) @staticmethod def setYLabel(ax, yplt, fs): ax.set_ylabel('$\\rm {}\ ({})$'.format(yplt['label'], yplt.get('unit', '')), fontsize=fs) @classmethod def addCmap(cls, fig, cmap, handles, comp_values, comp_info, fs, prettify, zscale='lin'): # Create colormap and normalizer try: mymap = plt.get_cmap(cmap) except ValueError: mymap = plt.get_cmap(swapFirstLetterCase(cmap)) norm, sm = setNormalizer(mymap, (comp_values.min(), comp_values.max()), zscale) # Adjust line colors for lh, z in zip(handles, comp_values): if isIterable(lh): for item in lh: item.set_color(sm.to_rgba(z)) else: lh.set_color(sm.to_rgba(z)) # Add colorbar fig.subplots_adjust(left=0.1, right=0.8, bottom=0.15, top=0.95, hspace=0.5) cbarax = fig.add_axes([0.85, 0.15, 0.03, 0.8]) cbar = fig.colorbar(sm, cax=cbarax, orientation='vertical') cbarax.set_ylabel('$\\rm {}\ ({})$'.format( comp_info['desc'].replace(' ', '\ '), comp_info['unit']), fontsize=fs) if prettify: cls.prettify(cbar) for item in cbarax.get_yticklabels(): item.set_fontsize(fs) class ComparativePlot(GenericPlot): def __init__(self, filepaths, varname): ''' Constructor. :param filepaths: list of full paths to output data files to be compared :param varname: name of variable to extract and compare ''' super().__init__(filepaths) self.varname = varname self.comp_ref_key = None self.meta_ref = None self.comp_info = None self.is_unique_comp = False def checkColors(self, colors): if colors is None: colors = ['C{}'.format(j) for j in range(len(self.filepaths))] return colors def checkLines(self, lines): if lines is None: lines = ['-'] * len(self.filepaths) return lines def checkLabels(self, labels): if labels is not None: if len(labels) != len(self.filepaths): raise ValueError( 'Invalid labels ({}): not matching number of compared files ({})'.format( len(labels), len(self.filepaths))) if not all(isinstance(x, str) for x in labels): raise TypeError('Invalid labels: must be string typed') def checkSimType(self, meta): ''' Check consistency of sim types across files. ''' if meta['simkey'] != self.meta_ref['simkey']: raise ValueError('Invalid comparison: different simulation types') def checkCompValues(self, meta, comp_values): ''' Check consistency of differing values across files. ''' differing = {k: meta[k] != self.meta_ref[k] for k in meta.keys()} if sum(differing.values()) > 1: logger.warning('More than one differing inputs') self.comp_ref_key = None return [] zkey = (list(differing.keys())[list(differing.values()).index(True)]) if self.comp_ref_key is None: self.comp_ref_key = zkey self.is_unique_comp = True comp_values.append(self.meta_ref[self.comp_ref_key]) comp_values.append(meta[self.comp_ref_key]) else: if zkey != self.comp_ref_key: - logger.warning('inconsitent differing inputs') + logger.warning('inconsistent differing inputs') self.comp_ref_key = None return [] else: comp_values.append(meta[self.comp_ref_key]) return comp_values def checkConsistency(self, meta, comp_values): ''' Check consistency of sim types and check differing inputs. ''' if self.meta_ref is None: self.meta_ref = meta else: self.checkSimType(meta) comp_values = self.checkCompValues(meta, comp_values) if self.comp_ref_key is None: self.is_unique_comp = False return comp_values def getCompLabels(self, comp_values): if self.comp_info is not None: comp_values = np.array(comp_values) * self.comp_info.get('factor', 1) comp_labels = [ '$\\rm{} = {}\ {}$'.format(self.comp_info['label'], x, self.comp_info['unit']) for x in comp_values] else: comp_labels = comp_values return comp_values, comp_labels def chooseLabels(self, labels, comp_labels, full_labels): if labels is not None: return labels else: if self.is_unique_comp: return comp_labels else: return full_labels @staticmethod def getCommonLabel(lbls, sep=' ', merge_keys=None): if merge_keys is not None: for k in merge_keys: lbls = [lbl.replace(f'{sep}{k}', f'-{k}') for lbl in lbls] splt_lbls = [lbl.split(sep) for lbl in lbls] ncomps = len(splt_lbls[0]) splt_lbls = np.array(splt_lbls).T all_indentical = [np.all(x == x[0]) for x in splt_lbls] if np.sum(all_indentical) < ncomps - 1: logger.warning('More than one differing inputs') return '' common_lbl = sep.join(splt_lbls[all_indentical, 0]) if merge_keys is not None: for k in merge_keys: common_lbl = common_lbl.replace(f'-{k}', f'{sep}{k}') return common_lbl diff --git a/PySONIC/plt/timeseries.py b/PySONIC/plt/timeseries.py index 420dac1..bc41072 100644 --- a/PySONIC/plt/timeseries.py +++ b/PySONIC/plt/timeseries.py @@ -1,493 +1,492 @@ # -*- coding: utf-8 -*- # @Author: Theo Lemaire # @Email: theo.lemaire@epfl.ch # @Date: 2018-09-25 16:18:45 # @Last Modified by: Theo Lemaire -# @Last Modified time: 2019-09-27 13:32:58 +# @Last Modified time: 2019-09-28 12:46:19 import numpy as np import matplotlib.pyplot as plt from ..postpro import detectSpikes, convertPeaksProperties from ..utils import * from .pltutils import * class TimeSeriesPlot(GenericPlot): ''' Generic interface to build a plot displaying temporal profiles of model simulations. ''' @classmethod def setTimeLabel(cls, ax, tplt, fs): return super().setXLabel(ax, tplt, fs) @classmethod def setYLabel(cls, ax, yplt, fs, grouplabel=None): if grouplabel is not None: yplt['label'] = grouplabel return super().setYLabel(ax, yplt, fs) def checkInputs(self, *args, **kwargs): return NotImplementedError @staticmethod def getStimStates(df): try: stimstate = df['stimstate'] except KeyError: stimstate = df['states'] return stimstate.values @classmethod def getStimPulses(cls, t, states): ''' Determine the onset and offset times of pulses from a stimulation vector. :param t: time vector (s). :param states: a vector of stimulation state (ON/OFF) at each instant in time. :return: 3-tuple with number of patches, timing of STIM-ON an STIM-OFF instants. ''' # Compute states derivatives and identify bounds indexes of pulses dstates = np.diff(states) ipulse_on = np.where(dstates > 0.0)[0] + 1 ipulse_off = np.where(dstates < 0.0)[0] + 1 if ipulse_off.size < ipulse_on.size: ioff = t.size - 1 if ipulse_off.size == 0: ipulse_off = np.array([ioff]) else: ipulse_off = np.insert(ipulse_off, ipulse_off.size - 1, ioff) # Get time instants for pulses ON and OFF tpulse_on = t[ipulse_on] tpulse_off = t[ipulse_off] return tpulse_on, tpulse_off def addLegend(self, fig, ax, handles, labels, fs, color=None, ls=None): lh = ax.legend(handles, labels, loc=1, fontsize=fs, frameon=False) if color is not None: for l in lh.get_lines(): l.set_color(color) if ls: for l in lh.get_lines(): l.set_linestyle(ls) @classmethod def materializeSpikes(cls, ax, data, tplt, yplt, color, mode, add_to_legend=False): ispikes, properties = detectSpikes(data) t = data['t'].values Qm = data['Qm'].values if ispikes is not None: yoffset = 5 ax.plot(t[ispikes] * tplt['factor'], Qm[ispikes] * yplt['factor'] + yoffset, 'v', color=color, label='spikes' if add_to_legend else None) if mode == 'details': ileft = properties['left_bases'] iright = properties['right_bases'] properties = convertPeaksProperties(t, properties) ax.plot(t[ileft] * tplt['factor'], Qm[ileft] * yplt['factor'] - 5, '<', color=color, label='left-bases' if add_to_legend else None) ax.plot(t[iright] * tplt['factor'], Qm[iright] * yplt['factor'] - 10, '>', color=color, label='right-bases' if add_to_legend else None) ax.vlines( x=t[ispikes] * tplt['factor'], ymin=(Qm[ispikes] - properties['prominences']) * yplt['factor'], ymax=Qm[ispikes] * yplt['factor'], color=color, linestyles='dashed', label='prominences' if add_to_legend else '') ax.hlines( y=properties['width_heights'] * yplt['factor'], xmin=properties['left_ips'] * tplt['factor'], xmax=properties['right_ips'] * tplt['factor'], color=color, linestyles='dotted', label='half-widths' if add_to_legend else '') return add_to_legend @staticmethod def prepareTime(t, tplt): if tplt['onset'] > 0.0: tonset = t.min() - 0.05 * np.ptp(t) t = np.insert(t, 0, tonset) return t * tplt['factor'] @staticmethod def addPatches(ax, tpatch_on, tpatch_off, tplt, color='#8A8A8A'): for i in range(tpatch_on.size): ax.axvspan(tpatch_on[i] * tplt['factor'], tpatch_off[i] * tplt['factor'], edgecolor='none', facecolor=color, alpha=0.2) @staticmethod - def plotInset(inset_ax, t, y, tplt, yplt, line, color, lw): - inset_window = np.logical_and(t > (inset['xlims'][0] / tplt['factor']), - t < (inset['xlims'][1] / tplt['factor'])) - inset_ax.plot(t[inset_window] * tplt['factor'], y[inset_window] * yplt['factor'], - linewidth=lw, linestyle=line, color=color) + def plotInset(inset_ax, inset, t, y, tplt, yplt, line, color, lw): + inset_ax.plot(t, y, linewidth=lw, linestyle=line, color=color) return inset_ax @staticmethod def addInsetPatches(ax, inset_ax, inset, tpatch_on, tpatch_off, tplt, color): + return + tfactor = tplt['factor'] ybottom, ytop = ax.get_ylim() cond_on = np.logical_and(tpatch_on > (inset['xlims'][0] / tfactor), tpatch_on < (inset['xlims'][1] / tfactor)) cond_off = np.logical_and(tpatch_off > (inset['xlims'][0] / tfactor), tpatch_off < (inset['xlims'][1] / tfactor)) cond_glob = np.logical_and(tpatch_on < (inset['xlims'][0] / tfactor), tpatch_off > (inset['xlims'][1] / tfactor)) cond_onoff = np.logical_or(cond_on, cond_off) cond = np.logical_or(cond_onoff, cond_glob) npatches_inset = np.sum(cond) for i in range(npatches_inset): inset_ax.add_patch(Rectangle((tpatch_on[cond][i] * tfactor, ybottom), (tpatch_off[cond][i] - tpatch_on[cond][i]) * tfactor, ytop - ybottom, color=color, alpha=0.1)) class CompTimeSeries(ComparativePlot, TimeSeriesPlot): ''' Interface to build a comparative plot displaying profiles of a specific output variable across different model simulations. ''' def __init__(self, filepaths, varname): ''' Constructor. :param filepaths: list of full paths to output data files to be compared :param varname: name of variable to extract and compare ''' ComparativePlot.__init__(self, filepaths, varname) def checkPatches(self, patches): greypatch = False if patches == 'none': patches = [False] * len(self.filepaths) elif patches == 'all': patches = [True] * len(self.filepaths) elif patches == 'one': patches = [True] + [False] * (len(self.filepaths) - 1) greypatch = True elif isinstance(patches, list): if len(patches) != len(self.filepaths): raise ValueError( 'Invalid patches ({}): not matching number of compared files ({})'.format( len(patches), len(self.filepaths))) if not all(isinstance(p, bool) for p in patches): raise TypeError('Invalid patch sequence: all list items must be boolean typed') else: raise ValueError( 'Invalid patches: must be either "none", all", "one", or a boolean list') return patches, greypatch def checkInputs(self, lines, labels, colors, patches): self.checkLabels(labels) lines = self.checkLines(lines) colors = self.checkColors(colors) patches, greypatch = self.checkPatches(patches) return lines, labels, colors, patches, greypatch @staticmethod def createBackBone(figsize): fig, ax = plt.subplots(figsize=figsize) ax.set_zorder(0) return fig, ax @classmethod def postProcess(cls, ax, tplt, yplt, fs, meta, prettify): cls.removeSpines(ax) if 'bounds' in yplt: ax.set_ylim(*yplt['bounds']) cls.setTimeLabel(ax, tplt, fs) cls.setYLabel(ax, yplt, fs) if prettify: cls.prettify(ax, xticks=(0, meta['tstim'] * tplt['factor'])) cls.setTickLabelsFontSize(ax, fs) def render(self, figsize=(11, 4), fs=10, lw=2, labels=None, colors=None, lines=None, patches='one', inset=None, frequency=1, spikes='none', cmap=None, cscale='lin', trange=None, prettify=False): ''' Render plot. :param figsize: figure size (x, y) :param fs: labels fontsize :param lw: linewidth :param labels: list of labels to use in the legend :param colors: list of colors to use for each curve :param lines: list of linestyles :param patches: string indicating whether/how to mark stimulation periods with rectangular patches :param inset: string indicating whether/how to mark an inset zooming on a particular region of the graph :param frequency: frequency at which to plot samples :param spikes: string indicating how to show spikes ("none", "marks" or "details") :param cmap: color map to use for colobar-based comparison (if not None) :param cscale: color scale to use for colobar-based comparison :param trange: optional lower and upper bounds to time axis :return: figure handle ''' lines, labels, colors, patches, greypatch = self.checkInputs( lines, labels, colors, patches) fcodes = [] fig, ax = self.createBackBone(figsize) if inset is not None: inset_ax = self.addInset(fig, ax, inset) # Loop through data files handles, comp_values, full_labels = [], [], [] tmin, tmax = np.inf, -np.inf for j, filepath in enumerate(self.filepaths): # Load data try: data, meta = self.getData(filepath, frequency, trange) except ValueError as err: continue if 'tcomp' in meta: meta.pop('tcomp') full_labels.append(self.figtitle(meta)) # Extract model model = self.getModel(meta) fcodes.append(model.filecode(meta)) # Check consistency of sim types and check differing inputs comp_values = self.checkConsistency(meta, comp_values) # Extract time and stim pulses t = data['t'].values stimstate = self.getStimStates(data) tpatch_on, tpatch_off = self.getStimPulses(t, stimstate) tplt = self.getTimePltVar(model.tscale) t = self.prepareTime(t, tplt) # Extract y-variable pltvars = model.getPltVars() if self.varname not in pltvars: raise KeyError( 'Unknown plot variable: "{}". Possible plot variables are: {}'.format( self.varname, ', '.join(['"{}"'.format(p) for p in pltvars.keys()]))) yplt = pltvars[self.varname] y = extractPltVar(model, yplt, data, meta, t.size, self.varname) # Plot time series handles.append(ax.plot(t, y, linewidth=lw, linestyle=lines[j], color=colors[j])[0]) # Optional: add spikes if self.varname == 'Qm' and spikes != 'none': self.materializeSpikes(ax, data, tplt, yplt, colors[j], spikes) # Plot optional inset if inset is not None: - inset_ax = self.plotInset(inset_ax, t, y, tplt, yplt, lines[j], colors[j], lw) + inset_ax = self.plotInset(inset_ax, inset, t, y, tplt, yplt, lines[j], colors[j], lw) # Add optional STIM-ON patches if patches[j]: ybottom, ytop = ax.get_ylim() color = '#8A8A8A' if greypatch else handles[j].get_color() self.addPatches(ax, tpatch_on, tpatch_off, tplt, color) if inset is not None: self.addInsetPatches(ax, inset_ax, inset, tpatch_on, tpatch_off, tplt, color) tmin, tmax = min(tmin, t.min()), max(tmax, t.max()) # Determine labels if self.comp_ref_key is not None: self.comp_info = model.inputs().get(self.comp_ref_key, None) comp_values, comp_labels = self.getCompLabels(comp_values) labels = self.chooseLabels(labels, comp_labels, full_labels) # - split labels by space merge_keys = ['neuron'] common_label = self.getCommonLabel(full_labels.copy(), sep=' ', merge_keys=merge_keys) ax.set_title(common_label, fontsize=fs) # Post-process figure self.postProcess(ax, tplt, yplt, fs, meta, prettify) ax.set_xlim(tmin, tmax) fig.tight_layout() if inset is not None: self.materializeInset(ax, inset_ax, inset) # Add labels or colorbar legend if cmap is not None: if not self.is_unique_comp: raise ValueError('Colormap mode unavailable for multiple differing parameters') if self.comp_info is None: raise ValueError('Colormap mode unavailable for qualitative comparisons') self.addCmap( fig, cmap, handles, comp_values, self.comp_info, fs, prettify, zscale=cscale) else: self.addLegend(fig, ax, handles, labels, fs) # Add window title based on common pattern common_fcode = self.getCommonLabel(fcodes.copy(), sep='_') fig.canvas.set_window_title(common_fcode) return fig class GroupedTimeSeries(TimeSeriesPlot): ''' Interface to build a plot displaying profiles of several output variables arranged into specific schemes. ''' def __init__(self, filepaths, pltscheme=None): ''' Constructor. :param filepaths: list of full paths to output data files to be compared :param varname: name of variable to extract and compare ''' super().__init__(filepaths) self.pltscheme = pltscheme @staticmethod def createBackBone(pltscheme): naxes = len(pltscheme) if naxes == 1: fig, ax = plt.subplots(figsize=(11, 4)) axes = [ax] else: fig, axes = plt.subplots(naxes, 1, figsize=(11, min(3 * naxes, 9))) return fig, axes @classmethod def postProcess(cls, axes, tplt, fs, meta, prettify): for ax in axes: cls.removeSpines(ax) # if prettify: # cls.prettify(ax, xticks=(0, meta['tstim'] * tplt['factor']), yfmt=None) cls.setTickLabelsFontSize(ax, fs) for ax in axes[:-1]: ax.set_xticklabels([]) cls.setTimeLabel(axes[-1], tplt, fs) def render(self, fs=10, lw=2, labels=None, colors=None, lines=None, patches='one', save=False, outputdir=None, fig_ext='png', frequency=1, spikes='none', trange=None, prettify=False): ''' Render plot. :param fs: labels fontsize :param lw: linewidth :param labels: list of labels to use in the legend :param colors: list of colors to use for each curve :param lines: list of linestyles :param patches: boolean indicating whether to mark stimulation periods with rectangular patches :param save: boolean indicating whether or not to save the figure(s) :param outputdir: path to output directory in which to save figure(s) :param fig_ext: string indcating figure extension ("png", "pdf", ...) :param frequency: frequency at which to plot samples :param spikes: string indicating how to show spikes ("none", "marks" or "details") :param trange: optional lower and upper bounds to time axis :return: figure handle(s) ''' figs = [] for filepath in self.filepaths: # Load data and extract model try: data, meta = self.getData(filepath, frequency, trange) except ValueError as err: continue model = self.getModel(meta) # Extract time and stim pulses t = data['t'].values stimstate = self.getStimStates(data) tpatch_on, tpatch_off = self.getStimPulses(t, stimstate) tplt = self.getTimePltVar(model.tscale) t = self.prepareTime(t, tplt) # Check plot scheme if provided, otherwise generate it pltvars = model.getPltVars() if self.pltscheme is not None: for key in list(sum(list(self.pltscheme.values()), [])): if key not in pltvars: raise KeyError('Unknown plot variable: "{}"'.format(key)) pltscheme = self.pltscheme else: pltscheme = model.getPltScheme() # Create figure fig, axes = self.createBackBone(pltscheme) # Loop through each subgraph for ax, (grouplabel, keys) in zip(axes, pltscheme.items()): ax_legend_spikes = False # Extract variables to plot nvars = len(keys) ax_pltvars = [pltvars[k] for k in keys] if nvars == 1: ax_pltvars[0]['color'] = 'k' ax_pltvars[0]['ls'] = '-' # Set y-axis unit and bounds self.setYLabel(ax, ax_pltvars[0].copy(), fs, grouplabel=grouplabel) if 'bounds' in ax_pltvars[0]: ax_min = min([ap['bounds'][0] for ap in ax_pltvars]) ax_max = max([ap['bounds'][1] for ap in ax_pltvars]) ax.set_ylim(ax_min, ax_max) # Plot time series icolor = 0 for yplt, name in zip(ax_pltvars, pltscheme[grouplabel]): color = yplt.get('color', 'C{}'.format(icolor)) y = extractPltVar(model, yplt, data, meta, t.size, name) ax.plot(t, y, yplt.get('ls', '-'), c=color, lw=lw, label='$\\rm {}$'.format(yplt['label'])) if 'color' not in yplt: icolor += 1 # Optional: add spikes if name == 'Qm' and spikes != 'none': ax_legend_spikes = self.materializeSpikes( ax, data, tplt, yplt, color, spikes, add_to_legend=True) # Add legend if nvars > 1 or 'gate' in ax_pltvars[0]['desc'] or ax_legend_spikes: ax.legend(fontsize=fs, loc=7, ncol=nvars // 4 + 1, frameon=False) # Set x-limits and add optional patches for ax in axes: ax.set_xlim(t.min(), t.max()) if patches != 'none': self.addPatches(ax, tpatch_on, tpatch_off, tplt) # Post-process figure self.postProcess(axes, tplt, fs, meta, prettify) axes[0].set_title(self.figtitle(meta), fontsize=fs) fig.tight_layout() fig.canvas.set_window_title(model.filecode(meta)) # Save figure if needed (automatic or checked) if save: filecode = model.filecode(meta) if outputdir is None: outputdir = os.path.split(filepath)[0] plt_filename = '{}/{}.{}'.format(outputdir, filecode, fig_ext) plt.savefig(plt_filename) logger.info('Saving figure as "{}"'.format(plt_filename)) plt.close() figs.append(fig) return figs if __name__ == '__main__': # example of use filepaths = OpenFilesDialog('pkl')[0] comp_plot = CompTimeSeries(filepaths, 'Qm') fig = comp_plot.render( lines=['-', '--'], labels=['60 kPa', '80 kPa'], patches='one', colors=['r', 'g'], xticks=[0, 100], yticks=[-80, +50], inset={'xcoords': [5, 40], 'ycoords': [-35, 45], 'xlims': [57.5, 60.5], 'ylims': [10, 35]} ) scheme_plot = GroupedTimeSeries(filepaths) figs = scheme_plot.render() plt.show() diff --git a/PySONIC/postpro.py b/PySONIC/postpro.py index 3619615..cd73f49 100644 --- a/PySONIC/postpro.py +++ b/PySONIC/postpro.py @@ -1,414 +1,416 @@ # -*- coding: utf-8 -*- # @Author: Theo Lemaire # @Email: theo.lemaire@epfl.ch # @Date: 2017-08-22 14:33:04 # @Last Modified by: Theo Lemaire -# @Last Modified time: 2019-09-06 14:37:30 +# @Last Modified time: 2019-09-30 18:01:49 ''' Utility functions to detect spikes on signals and compute spiking metrics. ''' import pickle import numpy as np import pandas as pd from scipy.interpolate import interp1d from scipy.optimize import brentq from scipy.signal import find_peaks, peak_prominences from .constants import * from .utils import logger, debug, isIterable, loadData, plural def detectCrossings(x, thr=0.0, edge='both'): ''' Detect crossings of a threshold value in a 1D signal. :param x: 1D array_like data. :param edge: 'rising', 'falling', or 'both' :return: 1D array with the indices preceding the crossings ''' ine, ire, ife = np.array([[], [], []], dtype=int) x_padright = np.hstack((x, x[-1])) x_padleft = np.hstack((x[0], x)) if edge.lower() in ['falling', 'both']: ire = np.where((x_padright <= thr) & (x_padleft > thr))[0] if edge.lower() in ['rising', 'both']: ife = np.where((x_padright >= thr) & (x_padleft < thr))[0] ind = np.unique(np.hstack((ine, ire, ife))) - 1 return ind def getFixedPoints(x, dx, filter='stable', der_func=None): ''' Find fixed points in a 1D plane phase profile. :param x: variable (1D array) :param dx: derivative (1D array) :param filter: string indicating whether to consider only stable/unstable fixed points or both :param: der_func: derivative function :return: array of fixed points values (or None if none is found) ''' fps = [] edge = {'stable': 'falling', 'unstable': 'rising', 'both': 'both'}[filter] izc = detectCrossings(dx, edge=edge) if izc.size > 0: for i in izc: # If derivative function is provided, find root using iterative Brent method if der_func is not None: fps.append(brentq(der_func, x[i], x[i + 1], xtol=1e-16)) # Otherwise, approximate root by linear interpolation else: fps.append(x[i] - dx[i] * (x[i + 1] - x[i]) / (dx[i + 1] - dx[i])) return np.array(fps) else: return np.array([]) def getEqPoint1D(x, dx, x0): ''' Determine equilibrium point in a 1D plane phase profile, for a given starting point. :param x: variable (1D array) :param dx: derivative (1D array) :param x0: abscissa of starting point (float) :return: abscissa of equilibrium point (or np.nan if none is found) ''' # Find stable fixed points in 1D plane phase profile x_SFPs = getFixedPoints(x, dx, filter='stable') if x_SFPs.size == 0: return np.nan # Determine relevant stable fixed point from y0 sign y0 = np.interp(x0, x, dx, left=np.nan, right=np.nan) inds_subset = x_SFPs >= x0 ind_SFP = 0 if y0 < 0: inds_subset = ~inds_subset ind_SFP = -1 x_SFPs = x_SFPs[inds_subset] if len(x_SFPs) == 0: return np.nan return x_SFPs[ind_SFP] def convertTime2SampleCriterion(x, dt, nsamples): if isIterable(x) and len(x) == 2: return (convertTime2Sample(x[0], dt, nsamples), convertTime2Sample(x[1], dt, nsamples)) else: if isIterable(x) and len(x) == nsamples: return np.array([convertTime2Sample(item, dt, nsamples) for item in x]) elif x is None: return None else: return int(np.ceil(x / dt)) def computeTimeStep(t): ''' Compute time step based on time vector. :param t: time vector (s) :return: average time step (s) ''' # Compute time step vector dt = np.diff(t) # s # Raise error if time step vector is not uniform is_uniform_dt = np.allclose(np.diff(dt), np.zeros(dt.size - 1), atol=1e-5) if not is_uniform_dt: raise ValueError(f'non-uniform time step: from {dt.min():.2e} s (index {dt.argmin()}) to {dt.max():.2e} s (index {dt.argmax()})') # Return average dt value return np.mean(dt) # s def resample(t, y, dt): ''' Resample a dataframe at regular time step. ''' n = int(np.ptp(t) / dt) + 1 ts = np.linspace(t.min(), t.max(), n) ys = np.interp(ts, t, y) return ts, ys def resolveIndexes(indexes, y, choice='max'): if indexes.size == 0: return indexes icomp = np.array([np.floor(indexes), np.ceil(indexes)]).astype(int).T ycomp = np.array([y[i] for i in icomp]) method = {'min': np.argmin, 'max': np.argmax}[choice] ichoice = method(ycomp, axis=1) return np.array([x[ichoice[i]] for i, x in enumerate(icomp)]) def resampleDataFrame(data, dt): ''' Resample a dataframe at regular time step. ''' t = data['t'].values n = int(np.ptp(t) / dt) + 1 tnew = np.linspace(t.min(), t.max(), n) new_data = {} for key in data: kind = 'nearest' if key == 'stimstate' else 'linear' new_data[key] = interp1d(t, data[key].values, kind=kind)(tnew) return pd.DataFrame(new_data) def prependDataFrame(data): ''' Resample dataframe at regular time step. ''' tnew = np.insert(data['t'].values, 0, 0) new_data = {'t': tnew} for key in data: if key == 't': x0 = 0. elif key == 'stimstate': x0 = 0 else: x0 = data[key].values[0] new_data[key] = np.insert(data[key].values, 0, x0) return pd.DataFrame(new_data) def find_tpeaks(t, y, **kwargs): ''' Wrapper around the scipy.signal.find_peaks function that provides a time vector associated to the signal, and translates time-based selection criteria into index-based criteria before calling the function. :param t: time vector :param y: signal vector :return: 2-tuple with peaks timings and properties dictionary ''' # Remove initial samples from vectors if time values are redundant ipad = 0 while t[ipad + 1] == t[ipad]: ipad += 1 if ipad > 0: ss = 'from vectors (redundant time values)' if ipad == 1: logger.debug(f'Removing index 0 {ss}') else: logger.debug(f'Removing indexes 0-{ipad - 1} {ss}') t = t[ipad:] y = y[ipad:] # If time step is irregular, resample vectors at a uniform time step try: dt = computeTimeStep(t) # s t_raw, y_raw = None, None indexes_raw = None except ValueError as err: new_dt = max(np.diff(t).min(), 1e-7) logger.debug(f'Resampling vector at regular time step (dt = {new_dt:.2e}s)') t_raw, y_raw = t.copy(), y.copy() indexes_raw = np.arange(t_raw.size) t, y = resample(t, y, new_dt) dt = computeTimeStep(t) # s ipad = 0 # Compute index vector nsamples = t.size indexes = np.arange(nsamples) # Convert provided time-based input criteria into samples-based criteria time_based_inputs = ['distance', 'width', 'wlen', 'plateau_size'] for key in time_based_inputs: if key in kwargs: kwargs[key] = convertTime2SampleCriterion(kwargs[key], dt, nsamples) if 'width' not in kwargs: kwargs['width'] = 1 # Find peaks in the regularly sampled signal ipeaks, properties = find_peaks(y, **kwargs) # print(t[ipeaks] * 1e3) # Adjust peak prominences and bases with restricted analysis window length # based on smallest peak width if len(ipeaks) > 0: wlen = 5 * min(properties['widths']) properties['prominences'], properties['left_bases'], properties['right_bases'] = peak_prominences( y, ipeaks, wlen=wlen) # If needed, re-project index-based outputs onto original sampling if t_raw is not None: logger.debug(f're-projecting index-based outputs onto original sampling') # Interpolate peak indexes and round to neighbor integer with max y value ipeaks_raw = np.interp(t[ipeaks], t_raw, indexes_raw, left=np.nan, right=np.nan) ipeaks = resolveIndexes(ipeaks_raw, y_raw, choice='max') # print(t_raw[ipeaks] * 1e3) # Interpolate peak base indexes and round to neighbor integer with min y value for key in ['left_bases', 'right_bases']: if key in properties: # print(key) # print(t[properties[key]] * 1e3) ibase_raw = np.interp(t[properties[key]], t_raw, indexes_raw, left=np.nan, right=np.nan) properties[key] = resolveIndexes(ibase_raw, y_raw, choice='min') # print(t_raw[properties[key]] * 1e3) # Interpolate peak half-width interpolated positions for key in ['left_ips', 'right_ips']: if key in properties: # print(key) # print(properties[key]) # print(dt * properties[key] * 1e3) properties[key] = np.interp(dt * properties[key], t_raw, indexes_raw, left=np.nan, right=np.nan) # print(properties[key]) # If original vectors were cropped, correct offset in index-based outputs if ipad > 0: logger.debug(f'offseting index-based outputs by {ipad} to compensate initial cropping') ipeaks += ipad for key in ['left_bases', 'right_bases', 'left_ips', 'right_ips']: if key in properties: properties[key] += ipad # Convert index-based peak widths into time-based widths if 'widths' in properties: properties['widths'] = np.array(properties['widths']) * dt # Return updated properties return ipeaks, properties def detectSpikes(data, key='Qm', mpt=SPIKE_MIN_DT, mph=SPIKE_MIN_QAMP, mpp=SPIKE_MIN_QPROM): ''' Detect spikes in simulation output data, by detecting peaks with specific height, prominence and distance properties on a given signal. :param data: simulation output dataframe :param key: key of signal on which to detect peaks :param mpt: minimal time interval between two peaks (s) :param mph: minimal peak height (in signal units) :param mpp: minimal peak prominence (in signal units) :return: indexes and properties of detected spikes ''' if key not in data: raise ValueError(f'{key} vector not available in dataframe') # Detect peaks return find_tpeaks( data['t'].values, data[key].values, height=mph, distance=mpt, prominence=mpp ) def convertPeaksProperties(t, properties): ''' Convert index-based peaks properties into time-based properties. :param t: time vector (s) :param properties: properties dictionary (with index-based information) :return: properties dictionary (with time-based information) ''' indexes = np.arange(t.size) for key in ['left_bases', 'right_bases','left_ips', 'right_ips']: if key in properties: properties[key] = np.interp(properties[key], indexes, t, left=np.nan, right=np.nan) return properties def computeFRProfile(data): ''' Compute temporal profile of firing rate from simulaton output. :param data: simulation output dataframe :return: firing rate profile interpolated along time vector ''' # Detect spikes in data ispikes, _ = detectSpikes(data) # Compute firing rate as function of spike time t = data['t'].values tspikes = t[ispikes][:-1] sr = 1 / np.diff(t[ispikes]) + if len(sr) == 0: + return np.ones(t.size) * np.nan # Interpolate firing rate vector along time vector return np.interp(t, tspikes, sr, left=np.nan, right=np.nan) def computeSpikingMetrics(filenames): ''' Analyze the charge density profile from a list of files and compute for each one of them the following spiking metrics: - latency (ms) - firing rate mean and standard deviation (Hz) - spike amplitude mean and standard deviation (nC/cm2) - spike width mean and standard deviation (ms) :param filenames: list of files to analyze :return: a dataframe with the computed metrics ''' # Initialize metrics dictionaries keys = [ 'latencies (ms)', 'mean firing rates (Hz)', 'std firing rates (Hz)', 'mean spike amplitudes (nC/cm2)', 'std spike amplitudes (nC/cm2)', 'mean spike widths (ms)', 'std spike widths (ms)' ] metrics = {k: [] for k in keys} # Compute spiking metrics for fname in filenames: # Load data from file data, meta = loadData(fname) tstim = meta['tstim'] t = data['t'].values # Detect spikes in data and extract features ispikes, properties = detectSpikes(data) widths = properties['widths'] prominences = properties['prominences'] if ispikes.size > 0: # Compute latency latency = t[ispikes[0]] # Select prior-offset spikes ispikes_prior = ispikes[t[ispikes] < tstim] else: latency = np.nan ispikes_prior = np.array([]) # Compute spikes widths and amplitude if ispikes_prior.size > 0: widths_prior = widths[:ispikes_prior.size] prominences_prior = prominences[:ispikes_prior.size] else: widths_prior = np.array([np.nan]) prominences_prior = np.array([np.nan]) # Compute inter-spike intervals and firing rates if ispikes_prior.size > 1: ISIs_prior = np.diff(t[ispikes_prior]) FRs_prior = 1 / ISIs_prior else: ISIs_prior = np.array([np.nan]) FRs_prior = np.array([np.nan]) # Log spiking metrics logger.debug('%u spikes detected (%u prior to offset)', ispikes.size, ispikes_prior.size) logger.debug('latency: %.2f ms', latency * 1e3) logger.debug('average spike width within stimulus: %.2f +/- %.2f ms', np.nanmean(widths_prior) * 1e3, np.nanstd(widths_prior) * 1e3) logger.debug('average spike amplitude within stimulus: %.2f +/- %.2f nC/cm2', np.nanmean(prominences_prior) * 1e5, np.nanstd(prominences_prior) * 1e5) logger.debug('average ISI within stimulus: %.2f +/- %.2f ms', np.nanmean(ISIs_prior) * 1e3, np.nanstd(ISIs_prior) * 1e3) logger.debug('average FR within stimulus: %.2f +/- %.2f Hz', np.nanmean(FRs_prior), np.nanstd(FRs_prior)) # Complete metrics dictionaries metrics['latencies (ms)'].append(latency * 1e3) metrics['mean firing rates (Hz)'].append(np.mean(FRs_prior)) metrics['std firing rates (Hz)'].append(np.std(FRs_prior)) metrics['mean spike amplitudes (nC/cm2)'].append(np.mean(prominences_prior) * 1e5) metrics['std spike amplitudes (nC/cm2)'].append(np.std(prominences_prior) * 1e5) metrics['mean spike widths (ms)'].append(np.mean(widths_prior) * 1e3) metrics['std spike widths (ms)'].append(np.std(widths_prior) * 1e3) # Return dataframe with metrics return pd.DataFrame(metrics, columns=metrics.keys())