I am currently conducting a structural brain network analysis on my diffusion MRI data, using the connectomestats NBS algorithm. However, although the data (the connectivity matrices, design matrix, contrast and the threshold) itself was kept identical, while we were unable to find any significant subnetworks through the Matlab-based NBS GUI, when we ran NBS through connectomestats, we were able to find both positive and negative subnetworks at the same given threshold. I was wondering why this may be the case, and if the two algorithms are greatly different.

There’s a lot of factors that could potentially introduce discrepancies in results between the two implementations. These are primarily due to the GLM implementation (e.g. orthogonalisation & shuffling via Freedman-Lane), rather than specifically the statistical enhancement portion of NBS, which is comparatively simple and highly unlikely to differ between the two implementations. You should however check whether the MatLab implementation is using the number of edges in a connected component as the enhanced statistic: it is possible to use e.g. the mass or supra-threshold mass, I have not implemented these in connectomestats but I don’t know what the default is in the MatLab implementation.

There are a number of intermediate outputs generated by connectomestats against which you could compare the respective data in the MatLab implementation, to more narrowly focus hypothesis generation on where the difference in outcomes of statistical thresholding ultimately arises from.