Steepness in Sigmoidal Jansen-Rit coupling confused with global coupling

35 views
Skip to first unread message

DK

unread,
May 31, 2022, 10:44:43 AM5/31/22
to TVB Users
Hi all,

I just had a look at the SigmoidalJansenRit coupling and found that in the documentation it is defined as

cmin+(cmax−cmin)/(1.0+exp(−a(x−midpoint)/σ))

while in the source code the pre() and post() functions look like this:

def pre(self, x_i, x_j): 
  pre = self.cmax / (1.0 + numpy.exp(self.r * (self.midpoint - (x_j[:, 0] - x_j[:, 1])))) 
  return pre[:, numpy.newaxis]

def post(self, gx): 
  return self.a * gx

here, the variable r was used instead of a in pre(), which corresponds to the sigmoid formula in the original Jansen and Rit (1995) paper. In their paper, r = 0.56, while this is the default of variable a in TVB and r = 1.0. Am I overlooking something or have those variables been mixed-up in the source code?

Best,
Dominik

WOODMAN Michael

unread,
May 31, 2022, 1:48:13 PM5/31/22
to 'lala z' via TVB Users
Hi,

The original JR paper is not directly replicable in TVB as is, because their implementation would place ODEs per connection between neural masses, while TVB implements only ODEs per neural mass.  Because of this, the implementation of JR in TVB is an approximation, where r corresponds to r in the JR paper, and a is the generic global coupling scaling, which is present across all coupling functions, because it is the first parameter to vary when testing a model.

In hindsight, if the synaptic dynamics in the original JR were absolutely required for a TVB model it would be possible but require some coding.

cheers,
Marmaduke

--
You received this message because you are subscribed to the Google Groups "TVB Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to tvb-users+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/tvb-users/7e447a74-0a99-4726-9ef4-24492343abf9n%40googlegroups.com.

DK

unread,
Jun 1, 2022, 7:17:54 AM6/1/22
to TVB Users
Hi Marmaduke,

Thanks for the explanation. However, I can't quite make the connection to what I wanted to say. Maybe I haven't properly expressed myself. Let me try again. In the documentation, here, the sigmoidal JR coupling is given as

cmin+(cmax−cmin)/(1.0+exp(−a(x−midpoint)/σ))

1. As far as I can see from the source code (besides that this equation does not seem to be implemented as stated in the documentation) the parameter a is used for global scaling as you said in your reply and not in the exponential of the sigmoidal JR coupling as stated in the equation of the documentation.
2. In the source code, the parameter r is used in the exponential as it was in the original equation by Jansen and Rit (1995). However, the default of r is set to 1.0 in the TVB implementation, while it was set to 0.56 in the original paper. In the TVB code, the parameter of the global scaling a defaults to 0.56 instead.

I am wondering if in the documentation the sigmoidal JR coupling should be

a * cmax/(1.0+exp(r(midpoint-x)))

as it appears to be implemented in the source code? And if the defaults of a and r should be be a = 1.0 and r = 0.56 instead of a = 0.56 and r = 1.0?

Maybe you were addressing this issue with your reply and I really missed it. If so, I would appreciate it if you could explain this more explicitly so I can understand what's going on.

Best,
Dominik

WOODMAN Michael

unread,
Jun 2, 2022, 11:08:09 AM6/2/22
to TVB Users
Hi,

The docstring does appear to be insufficient, but my reply is more about the source code: the parameter settings of the coupling function can't match the original paper because the original paper introduces extra differential equations beyond the sigmoid, per connection.  In other words, even if we do set a=1 and r=0.56, we don't get the system as described in the original paper.  

In hindsight, it would be parsimonious for all parameters to match their published values, but given the above approximation, I expect this value was chosen because it worked in the implementation phase.  In the use of the model for a given project, one would tune this value during parameter exploration. 

Does this make more sense?  

cheers,
Marmaduke


DK

unread,
Jun 3, 2022, 2:49:50 AM6/3/22
to TVB Users
Hi Marmaduke,

Thanks for the explanation. I agree, it is confusing if the parameters do not match the published ones even though it would not change the fact that the model more generally does not replicate Jansen and Rit (1995). Is it stated somewhere in the docs that the model is not equivalent to the original JR? It would be a pity if people used/published this model only to find out that it does not replicate the original widely used JR model.

Best,
Dominik

Reply all
Reply to author
Forward
0 new messages