Source code for snudda.utils.reposition_neurons

import h5py


[docs] class RepositionNeurons(object): """ Reposition neurons in the network file. """ def __init__(self, position_file): """ Constructor. Args: position_file : network position file """ self.position_file = position_file self.hdf5_file = h5py.File(position_file, "r+") assert "synapses" not in self.hdf5_file["network"], "This code should not be used after detection." def __del__(self): self.close()
[docs] def close(self): """ Close file.""" if self.hdf5_file: self.hdf5_file.close() self.hdf5_file = None
[docs] def place(self, neuron_id, position, rotation=None, verbose=True): """ Reposition neuron neuron_id to position with rotation. Args: neuron_id : Neuron ID affected position : New position of neuron rotation : New rotatoin of neuron verbose : Print info? """ info = (f"Moving neuron {neuron_id} from {self.hdf5_file['network/neurons/position'][neuron_id]} " f"to {position}") if rotation is not None: info += f" setting rotation to {rotation}" if verbose: print(info) self.hdf5_file["network/neurons/position"][neuron_id] = position if rotation is not None: self.hdf5_file["network/neurons/rotation"][neuron_id] = rotation.reshape((9,))
def set_morphology_id(self, neuron_id, morphology_id): raise DeprecationWarning("morpology_id is replaced by morphology_key ") """ Set morphologyID for neuron with neuron_id (neuron_id = None means all neurons) """ if neuron_id is not None: self.hdf5_file["network/neurons/morphology_id"][neuron_id] = morphology_id else: self.hdf5_file["network/neurons/morphology_id"][:] = morphology_id
[docs] def set_morphology_key(self, neuron_id, morphology_key): """ Set morphologyKey for neuron with neuron_id (neuron_id = None means all neurons) """ if neuron_id is not None: self.hdf5_file["network/neurons/morphology_key"][neuron_id] = morphology_key else: self.hdf5_file["network/neurons/morphology_key"][:] = morphology_key
[docs] def set_parameter_key(self, neuron_id, parameter_key): """ Set parameterKey for neuron with neuron_id (neuron_id = None means all neurons) """ if neuron_id is not None: self.hdf5_file["network/neurons/parameter_key"][neuron_id] = parameter_key else: self.hdf5_file["network/neurons/parameter_key"][:] = parameter_key
def set_parameter_id(self, neuron_id, parameter_id): raise DeprecationWarning("parameter_id is replaced by parameter_key") """ Set parameterID for neuron with neuron_id (neuron_id = None means all neurons) """ if neuron_id is not None: self.hdf5_file["network/neurons/parameter_id"][neuron_id] = parameter_id else: self.hdf5_file["network/neurons/parameter_id"][:] = parameter_id def set_modulation_id(self, neuron_id, modulation_id): raise DeprecationWarning("modulation_id is replaced by modulation_key") """ Set modulationID for neuron with neuron_id (neuron_id = None means all neurons) """ if neuron_id is not None: self.hdf5_file["network/neurons/modulation_id"][neuron_id] = modulation_id else: self.hdf5_file["network/neurons/modulation_id"][:] = modulation_id
[docs] def set_modulation_key(self, neuron_id, modulation_key): """ Set modulationKey for neuron with neuron_id (neuron_id = None means all neurons) """ if neuron_id is not None: self.hdf5_file["network/neurons/modulation_key"][neuron_id] = modulation_key else: self.hdf5_file["network/neurons/modulation_key"][:] = modulation_key