Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
-
None
-
TVB 1.3-6899 Linux x64
-
1.3.1
Description
When editing the weights or tract lengths of a connectivity matrix, if we set an integer value (in the mathematical sense, ie 1), the type of this value (in the computer science sense) is an integer (eg, 1) and not a float (1.0).
I found this issue for a particular combination of parameters in my simulations. The problems raises because the connectivity matrix is an integer array and we're trying to assign a float number:
in_strength[in_strength==0] = numpy.inf
OverflowError: cannot convert float infinity to integer
`in_strength`, as the name suggests, is the in-strength from a binary connectivity matrix created with the Connectivity editor. Since the connectivity has *int* values, `in_strength` is an int array.
Both the 'weights' and 'tract lengths' are supposed to be float arrays always as defined in the base class ConnectivityData @ connectivity_data.py
The steps to reproduce this bug with the UI are:
1) From tvb-data import the file paupau.zip using the Connectivity ZIP importer.
2) Go to Connectivity-> Large-scale connectivity. Edit the connectivity so at least one of the nodes will have an in-strength equal to 0.
3) Save the new matrix.
4) In the Simulator page, selected the newly created matrix, using the hyperbolicTangent coupling and the Larter-Breakspear model. Run the simulation.
The example can be found on the cluster in Project 205/ Simulation TVB-1660