Details

Bug

Status: Closed

Major

Resolution: Fixed

None

None

TVB 1.36899 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 instrength 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 tvbdata import the file paupau.zip using the Connectivity ZIP importer.
2) Go to Connectivity> Largescale connectivity. Edit the connectivity so at least one of the nodes will have an instrength equal to 0.
3) Save the new matrix.
4) In the Simulator page, selected the newly created matrix, using the hyperbolicTangent coupling and the LarterBreakspear model. Run the simulation.
The example can be found on the cluster in Project 205/ Simulation TVB1660