diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index 7b2f9532..a0414e03 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -12,7 +12,7 @@ jobs:
strategy:
matrix:
os: [ubuntu-latest]
- python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"]
+ python-version: ["3.9", "3.10", "3.11", "3.12"]
include:
- os: macos-12
python-version: "3.10"
@@ -34,7 +34,7 @@ jobs:
run: tox
- name: "Upload coverage to Codecov"
- uses: codecov/codecov-action@v2
+ uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}
fail_ci_if_error: false
diff --git a/README.rst b/README.rst
index 8c124b2f..3ffbe544 100644
--- a/README.rst
+++ b/README.rst
@@ -85,7 +85,7 @@ News
Requirements
============
-* `Python 3.8+ `_
+* `Python 3.9+ `_
* `Pip `_ (installed by default in newer versions of Python)
* `Neuron 7.4+ `_ (compiled with Python support)
* `eFEL eFeature Extraction Library `_ (automatically installed by pip)
diff --git a/bluepyopt/ephys/morphologies.py b/bluepyopt/ephys/morphologies.py
index 5a1a5761..0ba6a6ac 100644
--- a/bluepyopt/ephys/morphologies.py
+++ b/bluepyopt/ephys/morphologies.py
@@ -318,6 +318,8 @@ def load(morpho_filename, replace_axon):
morpho = arbor.load_component(morpho_filename).component
elif morpho_suffix == '.swc':
morpho = arbor.load_swc_arbor(morpho_filename)
+ # turn loaded_morphology into morphology type
+ morpho = morpho.morphology
elif morpho_suffix == '.asc':
morpho = arbor.load_asc(morpho_filename).morphology
else:
diff --git a/bluepyopt/ephys/protocols.py b/bluepyopt/ephys/protocols.py
index 804329f2..aa742bca 100644
--- a/bluepyopt/ephys/protocols.py
+++ b/bluepyopt/ephys/protocols.py
@@ -602,7 +602,12 @@ def instantiate_iclamp_stimuli(self, decor, use_labels=False):
for i, stim in enumerate(self.stimuli):
if not isinstance(stim, stimuli.SynapticStimulus):
if hasattr(stim, 'envelope'):
- arb_iclamp = arbor.iclamp(stim.envelope())
+ envelope = stim.envelope()
+ envelope = [
+ (t * arbor.units.ms, curr * arbor.units.nA)
+ for (t, curr) in envelope
+ ]
+ arb_iclamp = arbor.iclamp(envelope)
else:
raise ValueError('Stimulus must provide envelope method '
' or be of type NrnNetStimStimulus to be'
@@ -648,7 +653,9 @@ def instantiate_recordings(self, cell_model, use_labels=False):
cell_model.probe('voltage',
arb_loc.ref if use_labels else arb_loc.loc,
- frequency=10) # could be a parameter
+ f"probe-{i}",
+ # frequency could be a parameter
+ frequency=10 * arbor.units.kHz)
return cell_model
diff --git a/bluepyopt/ephys/simulators.py b/bluepyopt/ephys/simulators.py
index de546633..a4d038ce 100644
--- a/bluepyopt/ephys/simulators.py
+++ b/bluepyopt/ephys/simulators.py
@@ -372,9 +372,11 @@ def run(self, arb_cell_model, tstop=None, dt=None):
dt = dt if dt is not None else self.dt
if dt is not None:
- return arb_cell_model.run(tfinal=tstop, dt=dt)
+ return arb_cell_model.run(
+ tfinal=tstop * arbor.units.ms, dt=dt * arbor.units.ms
+ )
else:
- return arb_cell_model.run(tfinal=tstop)
+ return arb_cell_model.run(tfinal=tstop * arbor.units.ms)
class ArbSimulatorException(Exception):
diff --git a/bluepyopt/ephys/templates/acc/decor_acc_template.jinja2 b/bluepyopt/ephys/templates/acc/decor_acc_template.jinja2
index 13ae43d1..eac074cb 100644
--- a/bluepyopt/ephys/templates/acc/decor_acc_template.jinja2
+++ b/bluepyopt/ephys/templates/acc/decor_acc_template.jinja2
@@ -1,5 +1,5 @@
(arbor-component
- (meta-data (version "0.1-dev"))
+ (meta-data (version "0.9-dev"))
(decor
{%- for mech, params in global_mechs.items() %}
{%- if mech is not none %}
@@ -10,7 +10,7 @@
{%- endif %}
{%- else %}
{%- for param in params %}
- (default ({{ param.name }} {{ param.value }}))
+ (default ({{ param.name }} {{ param.value }} (scalar 1.0)))
{%- endfor %}
{%- endif %}
{%- endfor %}
@@ -27,13 +27,13 @@
{%- endif %}
{%- else %}
{%- for param in params %}
- (paint {{loc.ref}} ({{ param.name }} {{ param.value }}))
+ (paint {{loc.ref}} ({{ param.name }} {{ param.value }} (scalar 1.0)))
{%- endfor %}
{%- endif %}
{%- endfor %}
{%- for synapse_name, mech_params in pprocess_mechs[loc].items() %}
- (place {{loc.ref}} (synapse (mechanism "{{ mech_params.mech }}" {%- for param in mech_params.params %} ("{{ param.name }}" {{ param.value }}){%- endfor %})) "{{ synapse_name }}")
+ (place {{loc.ref}} (synapse (mechanism "{{ mech_params.mech }}" {%- for param in mech_params.params %} ("{{ param.name }}" {{ param.value }} (scalar 1.0)){%- endfor %})) "{{ synapse_name }}")
{%- endfor %}
{%- endfor %}))
diff --git a/bluepyopt/ephys/templates/acc/label_dict_acc_template.jinja2 b/bluepyopt/ephys/templates/acc/label_dict_acc_template.jinja2
index 508c0aa1..ca2e7dac 100644
--- a/bluepyopt/ephys/templates/acc/label_dict_acc_template.jinja2
+++ b/bluepyopt/ephys/templates/acc/label_dict_acc_template.jinja2
@@ -1,5 +1,5 @@
(arbor-component
- (meta-data (version "0.1-dev"))
+ (meta-data (version "0.9-dev"))
(label-dict
{%- for loc, label in label_dict.items() %}
{{ label.defn }}
diff --git a/bluepyopt/tests/test_ephys/test_create_acc.py b/bluepyopt/tests/test_ephys/test_create_acc.py
index baae6def..367ef22a 100644
--- a/bluepyopt/tests/test_ephys/test_create_acc.py
+++ b/bluepyopt/tests/test_ephys/test_create_acc.py
@@ -537,7 +537,7 @@ def run_short_sim(cable_cell):
arb_cell_model.properties.catalogue.extend(arbor.bbp_catalogue(), "BBP::")
# Run a very short simulation to test mechanism instantiation
- arb_cell_model.run(tfinal=0.1)
+ arb_cell_model.run(tfinal=0.1 * arbor.units.ms)
@pytest.mark.unit
@@ -665,6 +665,10 @@ def check_acc_dir(test_dir, ref_dir):
with open(ref_dir_file / file) as f:
ref_file = f.read()
assert ref_file == test_file
+ # check that load_component is not raising any error here
+ fpath = pathlib.Path(test_dir) / file
+ if fpath.suffix == "acc":
+ arbor.load_component(fpath).component
@pytest.mark.unit
diff --git a/bluepyopt/tests/test_ephys/test_parameterscalers.py b/bluepyopt/tests/test_ephys/test_parameterscalers.py
index 846bf023..877cac90 100644
--- a/bluepyopt/tests/test_ephys/test_parameterscalers.py
+++ b/bluepyopt/tests/test_ephys/test_parameterscalers.py
@@ -1,7 +1,9 @@
"""Test ephys.parameterscalers"""
import json
-
+import pathlib
+import tempfile
+import arbor
import pytest
@@ -143,3 +145,33 @@ def test_parameterscalers_iexpr_generator_unsupported_attr():
'unsupported attribute tau.'):
iexpr = value_scaler.acc_scale_iexpr(
value=value, constant_formatter=lambda v: '%.9g' % v)
+
+
+@pytest.mark.unit
+def test_parameterscalers_iexpr():
+ """ephys.parameterscalers: Test iexpr"""
+ # iexpr from bluepyopt/tests/test_ephys/test_parameterscalers.py
+ iexpr = '(sub (scalar 0.62109375) ' \
+ '(mul (log (pi) ) ' \
+ '(exp (div (distance (region "soma")) ' \
+ '(scalar 0.421875) ) ) ) )'
+
+ # modified decor as in
+ # bluepyopt/tests/test_ephys/testdata/acc/simplecell/simple_cell_decor.acc
+ simple_cell_decor_with_iexpr = \
+ '(arbor-component\n' \
+ ' (meta-data (version "0.9-dev"))\n' \
+ ' (decor\n' \
+ ' (paint (region "soma") ' \
+ '(membrane-capacitance 0.01 (scalar 1.0)))\n' \
+ ' (paint (region "soma") ' \
+ '(scaled-mechanism (density (mechanism "default::hh" ' \
+ '("gnabar" 0.10299326453483033) ("gkbar" 0.027124836082684685))) ' \
+ f'("gkbar" {iexpr})))))'
+
+ with tempfile.TemporaryDirectory() as test_dir:
+ decor_filename = pathlib.Path(test_dir).joinpath("decor.acc")
+ with open(decor_filename, "w") as f:
+ f.write(simple_cell_decor_with_iexpr)
+ # check that load_component is not raising any error here
+ arbor.load_component(decor_filename).component
diff --git a/bluepyopt/tests/test_ephys/testdata/acc/CCell/CCell_decor.acc b/bluepyopt/tests/test_ephys/testdata/acc/CCell/CCell_decor.acc
index dd9c47e9..2427ea90 100644
--- a/bluepyopt/tests/test_ephys/testdata/acc/CCell/CCell_decor.acc
+++ b/bluepyopt/tests/test_ephys/testdata/acc/CCell/CCell_decor.acc
@@ -1,10 +1,10 @@
(arbor-component
- (meta-data (version "0.1-dev"))
+ (meta-data (version "0.9-dev"))
(decor
- (default (gSKv3_1bar_SKv3_1 65))
- (paint (region "soma") (gSKv3_1bar_SKv3_1 65))
- (paint (region "soma") (gSKv3_1bar_SKv3_1 65))
+ (default (gSKv3_1bar_SKv3_1 65 (scalar 1.0)))
+ (paint (region "soma") (gSKv3_1bar_SKv3_1 65 (scalar 1.0)))
+ (paint (region "soma") (gSKv3_1bar_SKv3_1 65 (scalar 1.0)))
(paint (region "dend") (density (mechanism "BBP::Ih")))
- (paint (region "apic") (gSKv3_1bar_SKv3_1 65))
- (paint (region "apic") (gSKv3_1bar_SKv3_1 65))
+ (paint (region "apic") (gSKv3_1bar_SKv3_1 65 (scalar 1.0)))
+ (paint (region "apic") (gSKv3_1bar_SKv3_1 65 (scalar 1.0)))
(paint (region "apic") (density (mechanism "BBP::Ih")))))
\ No newline at end of file
diff --git a/bluepyopt/tests/test_ephys/testdata/acc/CCell/CCell_label_dict.acc b/bluepyopt/tests/test_ephys/testdata/acc/CCell/CCell_label_dict.acc
index 08c4efd5..2fcd0172 100644
--- a/bluepyopt/tests/test_ephys/testdata/acc/CCell/CCell_label_dict.acc
+++ b/bluepyopt/tests/test_ephys/testdata/acc/CCell/CCell_label_dict.acc
@@ -1,5 +1,5 @@
(arbor-component
- (meta-data (version "0.1-dev"))
+ (meta-data (version "0.9-dev"))
(label-dict
(region-def "all" (all))
(region-def "apic" (tag 4))
diff --git a/bluepyopt/tests/test_ephys/testdata/acc/CCell/simple_axon_replacement.acc b/bluepyopt/tests/test_ephys/testdata/acc/CCell/simple_axon_replacement.acc
index 7dee06c1..b5df598b 100644
--- a/bluepyopt/tests/test_ephys/testdata/acc/CCell/simple_axon_replacement.acc
+++ b/bluepyopt/tests/test_ephys/testdata/acc/CCell/simple_axon_replacement.acc
@@ -1,6 +1,6 @@
(arbor-component
(meta-data
- (version "0.1-dev"))
+ (version "0.9-dev"))
(morphology
(branch 0 -1
(segment 0
diff --git a/bluepyopt/tests/test_ephys/testdata/acc/expsyn/simple_cell_decor.acc b/bluepyopt/tests/test_ephys/testdata/acc/expsyn/simple_cell_decor.acc
index ff1e8f1b..e1ed15e0 100644
--- a/bluepyopt/tests/test_ephys/testdata/acc/expsyn/simple_cell_decor.acc
+++ b/bluepyopt/tests/test_ephys/testdata/acc/expsyn/simple_cell_decor.acc
@@ -1,6 +1,6 @@
(arbor-component
- (meta-data (version "0.1-dev"))
+ (meta-data (version "0.9-dev"))
(decor
- (paint (region "soma") (membrane-capacitance 0.01))
+ (paint (region "soma") (membrane-capacitance 0.01 (scalar 1.0)))
(paint (region "soma") (density (mechanism "default::pas")))
- (place (locset "somacenter") (synapse (mechanism "default::expsyn" ("tau" 10))) "expsyn")))
\ No newline at end of file
+ (place (locset "somacenter") (synapse (mechanism "default::expsyn" ("tau" 10 (scalar 1.0)))) "expsyn")))
\ No newline at end of file
diff --git a/bluepyopt/tests/test_ephys/testdata/acc/expsyn/simple_cell_label_dict.acc b/bluepyopt/tests/test_ephys/testdata/acc/expsyn/simple_cell_label_dict.acc
index fe69d135..ab69054e 100644
--- a/bluepyopt/tests/test_ephys/testdata/acc/expsyn/simple_cell_label_dict.acc
+++ b/bluepyopt/tests/test_ephys/testdata/acc/expsyn/simple_cell_label_dict.acc
@@ -1,5 +1,5 @@
(arbor-component
- (meta-data (version "0.1-dev"))
+ (meta-data (version "0.9-dev"))
(label-dict
(region-def "all" (all))
(region-def "soma" (tag 1))
diff --git a/bluepyopt/tests/test_ephys/testdata/acc/l5pc/C060114A7_axon_replacement.acc b/bluepyopt/tests/test_ephys/testdata/acc/l5pc/C060114A7_axon_replacement.acc
index 1723e930..e9f03844 100644
--- a/bluepyopt/tests/test_ephys/testdata/acc/l5pc/C060114A7_axon_replacement.acc
+++ b/bluepyopt/tests/test_ephys/testdata/acc/l5pc/C060114A7_axon_replacement.acc
@@ -1,6 +1,6 @@
(arbor-component
(meta-data
- (version "0.1-dev"))
+ (version "0.9-dev"))
(morphology
(branch 0 -1
(segment 0
diff --git a/bluepyopt/tests/test_ephys/testdata/acc/l5pc/C060114A7_modified.acc b/bluepyopt/tests/test_ephys/testdata/acc/l5pc/C060114A7_modified.acc
index d47f3c7d..26451178 100644
--- a/bluepyopt/tests/test_ephys/testdata/acc/l5pc/C060114A7_modified.acc
+++ b/bluepyopt/tests/test_ephys/testdata/acc/l5pc/C060114A7_modified.acc
@@ -1,6 +1,6 @@
(arbor-component
(meta-data
- (version "0.1-dev"))
+ (version "0.9-dev"))
(morphology
(branch 0 -1
(segment 0
diff --git a/bluepyopt/tests/test_ephys/testdata/acc/l5pc/l5pc_decor.acc b/bluepyopt/tests/test_ephys/testdata/acc/l5pc/l5pc_decor.acc
index 9b499549..fb9c4e40 100644
--- a/bluepyopt/tests/test_ephys/testdata/acc/l5pc/l5pc_decor.acc
+++ b/bluepyopt/tests/test_ephys/testdata/acc/l5pc/l5pc_decor.acc
@@ -1,13 +1,13 @@
(arbor-component
- (meta-data (version "0.1-dev"))
+ (meta-data (version "0.9-dev"))
(decor
- (default (membrane-potential -65))
- (default (temperature-kelvin 307.14999999999998))
- (default (membrane-capacitance 0.01))
- (default (axial-resistivity 100))
+ (default (membrane-potential -65 (scalar 1.0)))
+ (default (temperature-kelvin 307.14999999999998 (scalar 1.0)))
+ (default (membrane-capacitance 0.01 (scalar 1.0)))
+ (default (axial-resistivity 100 (scalar 1.0)))
(paint (region "all") (density (mechanism "default::pas/e=-75" ("g" 3.0000000000000001e-05))))
- (paint (region "soma") (ion-reversal-potential "na" 50))
- (paint (region "soma") (ion-reversal-potential "k" -85))
+ (paint (region "soma") (ion-reversal-potential "na" 50 (scalar 1.0)))
+ (paint (region "soma") (ion-reversal-potential "k" -85 (scalar 1.0)))
(paint (region "soma") (density (mechanism "BBP::NaTs2_t" ("gNaTs2_tbar" 0.98395500000000002))))
(paint (region "soma") (density (mechanism "BBP::SKv3_1" ("gSKv3_1bar" 0.30347200000000002))))
(paint (region "soma") (density (mechanism "BBP::SK_E2" ("gSK_E2bar" 0.0084069999999999995))))
@@ -15,8 +15,8 @@
(paint (region "soma") (density (mechanism "BBP::Ca_LVAst" ("gCa_LVAstbar" 0.00033300000000000002))))
(paint (region "soma") (density (mechanism "BBP::CaDynamics_E2" ("gamma" 0.00060899999999999995) ("decay" 210.48528400000001))))
(paint (region "soma") (density (mechanism "BBP::Ih" ("gIhbar" 8.0000000000000007e-05))))
- (paint (region "axon") (ion-reversal-potential "na" 50))
- (paint (region "axon") (ion-reversal-potential "k" -85))
+ (paint (region "axon") (ion-reversal-potential "na" 50 (scalar 1.0)))
+ (paint (region "axon") (ion-reversal-potential "k" -85 (scalar 1.0)))
(paint (region "axon") (density (mechanism "BBP::NaTa_t" ("gNaTa_tbar" 3.1379679999999999))))
(paint (region "axon") (density (mechanism "BBP::Nap_Et2" ("gNap_Et2bar" 0.0068269999999999997))))
(paint (region "axon") (density (mechanism "BBP::K_Pst" ("gK_Pstbar" 0.97353800000000001))))
@@ -26,11 +26,11 @@
(paint (region "axon") (density (mechanism "BBP::Ca_HVA" ("gCa_HVAbar" 0.00098999999999999999))))
(paint (region "axon") (density (mechanism "BBP::Ca_LVAst" ("gCa_LVAstbar" 0.0087519999999999994))))
(paint (region "axon") (density (mechanism "BBP::CaDynamics_E2" ("gamma" 0.0029099999999999998) ("decay" 287.19873100000001))))
- (paint (region "dend") (membrane-capacitance 0.02))
+ (paint (region "dend") (membrane-capacitance 0.02 (scalar 1.0)))
(paint (region "dend") (density (mechanism "BBP::Ih" ("gIhbar" 8.0000000000000007e-05))))
- (paint (region "apic") (ion-reversal-potential "na" 50))
- (paint (region "apic") (ion-reversal-potential "k" -85))
- (paint (region "apic") (membrane-capacitance 0.02))
+ (paint (region "apic") (ion-reversal-potential "na" 50 (scalar 1.0)))
+ (paint (region "apic") (ion-reversal-potential "k" -85 (scalar 1.0)))
+ (paint (region "apic") (membrane-capacitance 0.02 (scalar 1.0)))
(paint (region "apic") (density (mechanism "BBP::NaTs2_t" ("gNaTs2_tbar" 0.026145000000000002))))
(paint (region "apic") (density (mechanism "BBP::SKv3_1" ("gSKv3_1bar" 0.0042259999999999997))))
(paint (region "apic") (density (mechanism "BBP::Im" ("gImbar" 0.00014300000000000001))))
diff --git a/bluepyopt/tests/test_ephys/testdata/acc/l5pc/l5pc_label_dict.acc b/bluepyopt/tests/test_ephys/testdata/acc/l5pc/l5pc_label_dict.acc
index ea26ab1a..feec6f79 100644
--- a/bluepyopt/tests/test_ephys/testdata/acc/l5pc/l5pc_label_dict.acc
+++ b/bluepyopt/tests/test_ephys/testdata/acc/l5pc/l5pc_label_dict.acc
@@ -1,5 +1,5 @@
(arbor-component
- (meta-data (version "0.1-dev"))
+ (meta-data (version "0.9-dev"))
(label-dict
(region-def "all" (all))
(region-def "soma" (tag 1))
diff --git a/bluepyopt/tests/test_ephys/testdata/acc/l5pc_py37/l5pc_decor.acc b/bluepyopt/tests/test_ephys/testdata/acc/l5pc_py37/l5pc_decor.acc
index 017c701f..449a04f2 100644
--- a/bluepyopt/tests/test_ephys/testdata/acc/l5pc_py37/l5pc_decor.acc
+++ b/bluepyopt/tests/test_ephys/testdata/acc/l5pc_py37/l5pc_decor.acc
@@ -1,13 +1,13 @@
(arbor-component
- (meta-data (version "0.1-dev"))
+ (meta-data (version "0.9-dev"))
(decor
- (default (membrane-potential -65))
- (default (temperature-kelvin 307.14999999999998))
- (default (membrane-capacitance 0.01))
- (default (axial-resistivity 100))
+ (default (membrane-potential -65 (scalar 1.0)))
+ (default (temperature-kelvin 307.14999999999998 (scalar 1.0)))
+ (default (membrane-capacitance 0.01 (scalar 1.0)))
+ (default (axial-resistivity 100 (scalar 1.0)))
(paint (region "all") (density (mechanism "default::pas/e=-75" ("g" 3.0000000000000001e-05))))
- (paint (region "soma") (ion-reversal-potential "na" 50))
- (paint (region "soma") (ion-reversal-potential "k" -85))
+ (paint (region "soma") (ion-reversal-potential "na" 50 (scalar 1.0)))
+ (paint (region "soma") (ion-reversal-potential "k" -85 (scalar 1.0)))
(paint (region "soma") (density (mechanism "BBP::NaTs2_t" ("gNaTs2_tbar" 0.98395500000000002))))
(paint (region "soma") (density (mechanism "BBP::SKv3_1" ("gSKv3_1bar" 0.30347200000000002))))
(paint (region "soma") (density (mechanism "BBP::SK_E2" ("gSK_E2bar" 0.0084069999999999995))))
@@ -15,8 +15,8 @@
(paint (region "soma") (density (mechanism "BBP::Ca_LVAst" ("gCa_LVAstbar" 0.00033300000000000002))))
(paint (region "soma") (density (mechanism "BBP::CaDynamics_E2" ("gamma" 0.00060899999999999995) ("decay" 210.48528400000001))))
(paint (region "soma") (density (mechanism "BBP::Ih" ("gIhbar" 8.0000000000000007e-05))))
- (paint (region "axon") (ion-reversal-potential "na" 50))
- (paint (region "axon") (ion-reversal-potential "k" -85))
+ (paint (region "axon") (ion-reversal-potential "na" 50 (scalar 1.0)))
+ (paint (region "axon") (ion-reversal-potential "k" -85 (scalar 1.0)))
(paint (region "axon") (density (mechanism "BBP::NaTa_t" ("gNaTa_tbar" 3.1379679999999999))))
(paint (region "axon") (density (mechanism "BBP::Nap_Et2" ("gNap_Et2bar" 0.0068269999999999997))))
(paint (region "axon") (density (mechanism "BBP::K_Pst" ("gK_Pstbar" 0.97353800000000001))))
@@ -26,11 +26,11 @@
(paint (region "axon") (density (mechanism "BBP::Ca_HVA" ("gCa_HVAbar" 0.00098999999999999999))))
(paint (region "axon") (density (mechanism "BBP::Ca_LVAst" ("gCa_LVAstbar" 0.0087519999999999994))))
(paint (region "axon") (density (mechanism "BBP::CaDynamics_E2" ("gamma" 0.0029099999999999998) ("decay" 287.19873100000001))))
- (paint (region "dend") (membrane-capacitance 0.02))
+ (paint (region "dend") (membrane-capacitance 0.02 (scalar 1.0)))
(paint (region "dend") (density (mechanism "BBP::Ih" ("gIhbar" 8.0000000000000007e-05))))
- (paint (region "apic") (ion-reversal-potential "na" 50))
- (paint (region "apic") (ion-reversal-potential "k" -85))
- (paint (region "apic") (membrane-capacitance 0.02))
+ (paint (region "apic") (ion-reversal-potential "na" 50 (scalar 1.0)))
+ (paint (region "apic") (ion-reversal-potential "k" -85 (scalar 1.0)))
+ (paint (region "apic") (membrane-capacitance 0.02 (scalar 1.0)))
(paint (region "apic") (density (mechanism "BBP::NaTs2_t" ("gNaTs2_tbar" 0.026145000000000002))))
(paint (region "apic") (density (mechanism "BBP::SKv3_1" ("gSKv3_1bar" 0.0042259999999999997))))
(paint (region "apic") (density (mechanism "BBP::Im" ("gImbar" 0.00014300000000000001))))
diff --git a/bluepyopt/tests/test_ephys/testdata/acc/simplecell/simple_axon_replacement.acc b/bluepyopt/tests/test_ephys/testdata/acc/simplecell/simple_axon_replacement.acc
index 8b8d954e..5aad006f 100644
--- a/bluepyopt/tests/test_ephys/testdata/acc/simplecell/simple_axon_replacement.acc
+++ b/bluepyopt/tests/test_ephys/testdata/acc/simplecell/simple_axon_replacement.acc
@@ -1,6 +1,6 @@
(arbor-component
(meta-data
- (version "0.1-dev"))
+ (version "0.9-dev"))
(morphology
(branch 0 -1
(segment 0
diff --git a/bluepyopt/tests/test_ephys/testdata/acc/simplecell/simple_cell_decor.acc b/bluepyopt/tests/test_ephys/testdata/acc/simplecell/simple_cell_decor.acc
index e5af159c..e1361030 100644
--- a/bluepyopt/tests/test_ephys/testdata/acc/simplecell/simple_cell_decor.acc
+++ b/bluepyopt/tests/test_ephys/testdata/acc/simplecell/simple_cell_decor.acc
@@ -1,5 +1,5 @@
(arbor-component
- (meta-data (version "0.1-dev"))
+ (meta-data (version "0.9-dev"))
(decor
- (paint (region "soma") (membrane-capacitance 0.01))
+ (paint (region "soma") (membrane-capacitance 0.01 (scalar 1.0)))
(paint (region "soma") (density (mechanism "default::hh" ("gnabar" 0.10299326453483033) ("gkbar" 0.027124836082684685))))))
\ No newline at end of file
diff --git a/bluepyopt/tests/test_ephys/testdata/acc/simplecell/simple_cell_label_dict.acc b/bluepyopt/tests/test_ephys/testdata/acc/simplecell/simple_cell_label_dict.acc
index ea26ab1a..feec6f79 100644
--- a/bluepyopt/tests/test_ephys/testdata/acc/simplecell/simple_cell_label_dict.acc
+++ b/bluepyopt/tests/test_ephys/testdata/acc/simplecell/simple_cell_label_dict.acc
@@ -1,5 +1,5 @@
(arbor-component
- (meta-data (version "0.1-dev"))
+ (meta-data (version "0.9-dev"))
(label-dict
(region-def "all" (all))
(region-def "soma" (tag 1))
diff --git a/bluepyopt/tests/test_ephys/testdata/acc/simplecell/simple_modified.acc b/bluepyopt/tests/test_ephys/testdata/acc/simplecell/simple_modified.acc
index 89a99ad3..0e29834f 100644
--- a/bluepyopt/tests/test_ephys/testdata/acc/simplecell/simple_modified.acc
+++ b/bluepyopt/tests/test_ephys/testdata/acc/simplecell/simple_modified.acc
@@ -1,6 +1,6 @@
(arbor-component
(meta-data
- (version "0.1-dev"))
+ (version "0.9-dev"))
(morphology
(branch 0 -1
(segment 0
diff --git a/bluepyopt/tests/test_ephys/testdata/acc/templates/decor_acc_template.jinja2 b/bluepyopt/tests/test_ephys/testdata/acc/templates/decor_acc_template.jinja2
index b55ca0bc..4f5a33c9 100644
--- a/bluepyopt/tests/test_ephys/testdata/acc/templates/decor_acc_template.jinja2
+++ b/bluepyopt/tests/test_ephys/testdata/acc/templates/decor_acc_template.jinja2
@@ -1,5 +1,5 @@
(arbor-component
- (meta-data (version "0.1-dev"))
+ (meta-data (version "0.9-dev"))
(meta-data (info "test-decor"))
(decor
{%- for mech, params in global_mechs.items() %}
@@ -11,7 +11,7 @@
{%- endif %}
{%- else %}
{%- for param in params %}
- (default ({{ param.name }} {{ param.value }}))
+ (default ({{ param.name }} {{ param.value }} (scalar 1.0)))
{%- endfor %}
{%- endif %}
{%- endfor %}
@@ -26,7 +26,7 @@
{%- endif %}
{%- else %}
{%- for param in params %}
- (paint {{loc.ref}} ({{ param.name }} {{ param.value }}))
+ (paint {{loc.ref}} ({{ param.name }} {{ param.value }} (scalar 1.0)))
{%- endfor %}
{%- endif %}
{%- endfor %}
diff --git a/bluepyopt/tests/test_ephys/testdata/acc/templates/label_dict_acc_template.jinja2 b/bluepyopt/tests/test_ephys/testdata/acc/templates/label_dict_acc_template.jinja2
index c439b12b..e2686dc0 100644
--- a/bluepyopt/tests/test_ephys/testdata/acc/templates/label_dict_acc_template.jinja2
+++ b/bluepyopt/tests/test_ephys/testdata/acc/templates/label_dict_acc_template.jinja2
@@ -1,5 +1,5 @@
(arbor-component
- (meta-data (version "0.1-dev"))
+ (meta-data (version "0.9-dev"))
(meta-data (info "test-label-dict"))
(label-dict
{%- for loc, label in label_dict.items() %}{# this is a comment #}
diff --git a/setup.py b/setup.py
index f62638c4..6db01366 100644
--- a/setup.py
+++ b/setup.py
@@ -37,7 +37,7 @@
]
EXTRA_ARBOR = [
- 'arbor>=0.7',
+ 'arbor>=0.10',
]
setuptools.setup(
diff --git a/tox.ini b/tox.ini
index b135d453..60af05f4 100644
--- a/tox.ini
+++ b/tox.ini
@@ -4,7 +4,6 @@ minversion = 4
[gh-actions]
python =
- 3.8: py3
3.9: py3
3.10: py3
3.11: py3
@@ -12,7 +11,7 @@ python =
[testenv]
envdir =
- py3{8,9,10,11,}{-unit,-functional,-style,-syntax}: {toxworkdir}/py3
+ py3{9,10,11,12,}{-unit,-functional,-style,-syntax}: {toxworkdir}/py3
docs: {toxworkdir}/docs
extras = tests
deps =
@@ -46,7 +45,7 @@ commands =
functional: pytest --cov=bluepyopt {[testenv]coverage_options} bluepyopt/tests -m neuroml
[testenv:docs]
-basepython = python3.8
+basepython = python3.9
changedir = docs
deps =
sphinx