Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Nexus integration #major #137

Merged
merged 54 commits into from
Jun 24, 2024
Merged
Show file tree
Hide file tree
Changes from 46 commits
Commits
Show all changes
54 commits
Select commit Hold shift + click to select a range
6f6fedb
Add bluepyemodelnexus
ilkilic Feb 6, 2024
403afe6
add bluepyemodelnexus part2
ilkilic Feb 8, 2024
e9a547c
Merge branch 'main' into nexus
ilkilic May 13, 2024
30b9162
update nexus api
ilkilic May 13, 2024
301cfae
update local2nexus example
ilkilic May 13, 2024
418d8a5
update setup
ilkilic May 13, 2024
8f17a01
add emodel simulation example with Nexus
ilkilic May 13, 2024
2812a59
remove temporarily mmb and ncmv3 examples
ilkilic May 13, 2024
7f07687
lint fix
ilkilic May 13, 2024
6850d8e
fix
ilkilic May 13, 2024
62c6fc9
lint fixes
ilkilic May 13, 2024
fddca98
update access_point
ilkilic May 13, 2024
96a5b03
add githash parameter in export_hoc scripts
ilkilic May 14, 2024
0a10293
docs: Add morph_modifiers info to README
ilkilic May 14, 2024
b3f3526
fix PlotOptimisation task output
ilkilic May 14, 2024
380111d
refine morph_modifers explanation in README
ilkilic May 14, 2024
73e9736
minor revision
ilkilic May 14, 2024
14fb0fb
minor fix
ilkilic May 14, 2024
d4a14a6
minor revision
ilkilic May 14, 2024
51f148d
minor refactoring
ilkilic May 15, 2024
5bab031
example: add plot scores in exploit_models notebook
ilkilic May 15, 2024
6dfeb7b
sleep before updating emw
ilkilic May 15, 2024
df369f1
Merge branch 'main' into nexus
ilkilic May 16, 2024
a82c1d8
migrate utcfromtimestamp to fromtimestamp
ilkilic May 16, 2024
df60cbc
add NexusAccessPoint unit tests
ilkilic May 17, 2024
9a0bb16
add NexusForgeAccessPoint unit tests
ilkilic May 17, 2024
1c91311
update copyright
ilkilic May 17, 2024
b343f7a
add debug log for morphology used when using Nexus
ilkilic May 22, 2024
d2e8153
minor fix
ilkilic Jun 3, 2024
4471385
move export_emodels_nexus to export_emodel module
ilkilic Jun 3, 2024
9c67a4b
readme: minor improvement
ilkilic Jun 3, 2024
ba35845
add MEModel, update image attachment, refactor download dir
ilkilic Jun 5, 2024
e78260a
lint fix
ilkilic Jun 5, 2024
76c849f
Merge branch 'main' into nexus
ilkilic Jun 5, 2024
fb17d33
lint fix
ilkilic Jun 5, 2024
83c702e
verify successful download of each datafile for the resource
ilkilic Jun 7, 2024
fb7933b
Merge branch 'main' into nexus
ilkilic Jun 18, 2024
1285c56
update nexus-forge requirement
ilkilic Jun 18, 2024
fd5f9d7
update copyright
ilkilic Jun 18, 2024
0eb35dd
allow custom nexus endpoint address
Jun 19, 2024
2d0f8d8
fix run_emodel readme
Jun 19, 2024
dd9035b
apply isort to run_emode.py
Jun 19, 2024
df9f29b
reintroduce EModel_pipeline_nexus class for legacy support
Jun 19, 2024
b107b59
update copyright
Jun 19, 2024
f102fe2
small fix
Jun 19, 2024
19165b6
add memodel example
ilkilic Jun 20, 2024
8411d20
fix imports
ilkilic Jun 20, 2024
95238df
remove memodel id
ilkilic Jun 20, 2024
9991aed
remove gitlab CI
ilkilic Jun 20, 2024
cbbe8e2
Merge branch 'main' into nexus
ilkilic Jun 20, 2024
3649687
Merge branch 'main' into nexus
ilkilic Jun 20, 2024
40b865a
Merge branch 'main' into nexus
ilkilic Jun 21, 2024
e9bae7c
update readme local2nexus
ilkilic Jun 24, 2024
341b3bf
isort fix + add comment
ilkilic Jun 24, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,9 @@ software/
SOURCES.txt
*.svg
*.DS_Store
nexus_temp/
.tmp/
figures/

*~
*.pyc
Expand Down Expand Up @@ -136,6 +139,7 @@ celerybeat-schedule
venv/
ENV/
myvenv/
myvenv_cli/

# Spyder project settings
.spyderproject
Expand Down
2 changes: 1 addition & 1 deletion COPYING
Original file line number Diff line number Diff line change
Expand Up @@ -187,7 +187,7 @@
same "printed page" as the copyright notice for easier
identification within third-party archives.

Copyright 2023 Blue Brain Project / EPFL
Copyright 2023-2024 Blue Brain Project / EPFL

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
Expand Down
2 changes: 1 addition & 1 deletion LICENSE.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ The examples are under the CC-BY-NC-SA license, as specified by the
LICENSE.txt file.


Copyright 2023 Blue Brain Project / EPFL
Copyright 2023-2024 Blue Brain Project / EPFL

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
Expand Down
5 changes: 3 additions & 2 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ BluePyEModel can be pip installed with the following command:
If you do not wish to install all dependencies, specific dependencies can be selected by indicating which ones to install between brackets in place of 'all' (If you want multiple dependencies, they have to be separated by commas). The available dependencies are:

* luigi
* nexus
* all

To get started with the E-Model building pipeline
Expand All @@ -75,7 +76,7 @@ The pipeline is divided in 6 steps:
* ``plotting``: reads the models and runs the optimisation protocols and/or validation protocols on them. Then, plots the resulting traces along the e-feature scores and parameter distributions.
* ``exporting``: read the parameter of the best models and export them in files that can be used either in NEURON or for circuit building.

These six steps are to be run in order as for example validation cannot be run if no models have been stored. Steps "validation", "plotting" and "exporting" are optional. Step "extraction" can also be optional in the case where the file containing the protocols and optimisation targets is created by hand or if it is obtained from an older project.
These six steps are to be run in order as for example validation cannot be run if no models have been stored. Steps ``validation``, ``plotting`` and ``exporting`` are optional. Step ``extraction`` can also be optional in the case where the file containing the protocols and optimisation targets is created by hand or if it is obtained from an older project.

Schematics of BluePyEModel classes
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Expand All @@ -91,7 +92,7 @@ This work was supported by funding to the Blue Brain Project, a research center
Copyright
~~~~~~~~~

Copyright (c) 2023 Blue Brain Project/EPFL
Copyright (c) 2023-2024 Blue Brain Project/EPFL

This work is licensed under `Apache 2.0 <https://www.apache.org/licenses/LICENSE-2.0.html>`_

Expand Down
2 changes: 1 addition & 1 deletion bluepyemodel/__init__.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
"""Main module of BluePyEModel."""

"""
Copyright 2023, EPFL/Blue Brain Project
Copyright 2023-2024 Blue Brain Project / EPFL

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
Expand Down
14 changes: 6 additions & 8 deletions bluepyemodel/access_point/__init__.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
"""E-model access_point module"""

"""
Copyright 2023, EPFL/Blue Brain Project
Copyright 2023-2024 Blue Brain Project / EPFL

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
Expand Down Expand Up @@ -70,12 +70,10 @@ def get_access_point(access_point, emodel, **kwargs):
brain_region = brain_region.replace("__", " ") if brain_region else None

if access_point == "nexus":
try:
from bluepyemodelnexus.nexus import NexusAccessPoint
except ImportError as exc:
raise ImportError(
"The internal bluepyemodelnexus package is required to use the Nexus access point."
) from exc
from bluepyemodel.access_point.nexus import NexusAccessPoint

if not kwargs.get("project"):
raise ValueError("Nexus project name is required for Nexus access point.")

return NexusAccessPoint(
emodel=emodel,
Expand All @@ -88,7 +86,7 @@ def get_access_point(access_point, emodel, **kwargs):
synapse_class=kwargs.get("synapse_class", None),
project=kwargs.get("project", None),
organisation=kwargs.get("organisation", "bbp"),
endpoint=kwargs.get("endpoint", "https://bbp.epfl.ch/nexus/v1"),
endpoint=kwargs.get("endpoint", "https://staging.nexus.ocp.bbp.epfl.ch/v1"),
forge_path=kwargs.get("forge_path", None),
forge_ontology_path=kwargs.get("forge_ontology_path", None),
access_token=kwargs.get("access_token", None),
Expand Down
2 changes: 1 addition & 1 deletion bluepyemodel/access_point/access_point.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
"""DataAccessPoint class."""

"""
Copyright 2023, EPFL/Blue Brain Project
Copyright 2023-2024 Blue Brain Project / EPFL

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
Expand Down
Loading
Loading