Source code for emodelrunner.locations

"""Locations related functions and classes."""

# Copyright 2020-2022 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.
# You may obtain a copy of the License at

#     http://www.apache.org/licenses/LICENSE-2.0

# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

import logging

from bluepyopt import ephys

logger = logging.getLogger(__name__)


SOMA_LOC = ephys.locations.NrnSeclistCompLocation(
    name="soma", seclist_name="somatic", sec_index=0, comp_x=0.5
)


[docs] def multi_locations(sectionlist): """Define locations. Args: sectionlist (str): Name of the location(s) to return. Can be alldend, somadend, somaxon, allact, apical, basal, somatic, axonal Returns: list: locations corresponding to sectionlist """ if sectionlist == "alldend": seclist_locs = [ ephys.locations.NrnSeclistLocation("apical", seclist_name="apical"), ephys.locations.NrnSeclistLocation("basal", seclist_name="basal"), ] elif sectionlist == "somadend": seclist_locs = [ ephys.locations.NrnSeclistLocation("apical", seclist_name="apical"), ephys.locations.NrnSeclistLocation("basal", seclist_name="basal"), ephys.locations.NrnSeclistLocation("somatic", seclist_name="somatic"), ] elif sectionlist == "somaxon": seclist_locs = [ ephys.locations.NrnSeclistLocation("axonal", seclist_name="axonal"), ephys.locations.NrnSeclistLocation("somatic", seclist_name="somatic"), ] elif sectionlist == "allact": seclist_locs = [ ephys.locations.NrnSeclistLocation("apical", seclist_name="apical"), ephys.locations.NrnSeclistLocation("basal", seclist_name="basal"), ephys.locations.NrnSeclistLocation("somatic", seclist_name="somatic"), ephys.locations.NrnSeclistLocation("axonal", seclist_name="axonal"), ] else: seclist_locs = [ ephys.locations.NrnSeclistLocation(sectionlist, seclist_name=sectionlist) ] return seclist_locs