Forum Replies Created
May 12, 2022 at 1:43 pm in reply to: Graph analysis with the matrices obtained from fMRI data #149187
Thank you for sharing the information regarding your analysis. I have met with my colleagues and we thing that this analysis can be done in Braph.
In order to know how to proceed with the implementation we would need several technical details regarding your analysis. I was wondering whether you would be available for a short meeting so that we can discuss them and decide on a plan on how to proceed with the implementation? Please contact me on my e-mail so that we can agree on a meeting time.
Looking forward to your response and the meeting.
MiteMay 6, 2022 at 10:14 am in reply to: Graph analysis with the matrices obtained from fMRI data #148678
Of course, we can try to help you with the implementation of this pipeline.
To transfer the data from SPM software to Braph2, you would first need to export the data from SPM in .txt, .xls or .mat format. Then, if you have one .txt file per subject (that holds the connectivity matrix that is associated with the subject), you can group all the subjects from same group within a folder and import that folder in the cohort part of Braph2.
In order for us to be able to provide you with detailed information about how to proceed, we would need more information about the nature of the analysis that you want to perform. For example, given the A matrix from DCM for each subject, do you want to analyze the topology of this matrix? Alternatively, do you want to use also B and C matrices in some way?
I am looking forward to your response and will get back to you with more detailed explanation of how to proceed with the analysis.
MiteMay 5, 2022 at 8:46 am in reply to: Graph analysis with the matrices obtained from fMRI data #148558
Thank you for showing an interest in Braph 2.0 and hope that it will prove to be a useful tool for your research.
The answer to your question is yes, graph analysis can be used to analyze the DCM matrices and provide explanation of the topological properties of the nodes. You can do it with Braph 2. While the pipelines for such analyses are not implemented to the core release of the software, it comes with all the tools needed to perform this analysis (directed measures are implemented).
Together with the release of the software, We will post detailed explanations of how to implement additional pipelines in the software (it will be only several lines of code written in Matlab according to predetermined rules). On other hand, we can also assist you in implementing this pipeline.
If you have any additional questions in meantime, please do not hesitate to ask and we will try to help as much as possible.
Since you are doing binary analysis, there is a good possibility that you encounter this issue due to the fact that some nodes are disconnected from the network at those densities. Currently in Braph the characteristic path length is calculated as a mean over the nodal path lengths of all nodes. This averaging assumes a connected networks, and will return NaN for the networks that have disconnected nodes.
One way is to calculate characteristic path length within connected subgraphs (also available in Braph). Alternatively, you could employ a different averaging procedure that would take into account the disconnected nodes; taking a harmonic mean of the nodal measures is a possible option.
If you would like to change the code in Braph, for binary undirected graphs, the characteristic path length is calculated on the lines 463/464 in GraphBU.m file. You could use any definition of the path length on line 464 and the code would work accordingly. Otherwise, please let me know if you need help and I can help you with any modification of the code you might need.
Braph’s interface might change slightly depending whether you would need to do weighted or binary analysis. For example, in the binary analysis of global measures you have plot view and table view that show the measures as a function of density/threshold. On the other hand, in the weighted analysis the results are presented in a table only, which is due to the fact we have only a single number characterizing the network topology.
Could you please share a bit more information about the interface at which you encounter this problem and the type of analysis you would like to do. If you could send me some snapshots that would be great, so that I can try and help you fix the issue.
Thank you for using Braph.
The issue with small worldness (and characteristic path length) is that they cannot be calculated (especially for small densities) due to the disconnections of some nodes in the graph. This is due to their current implementation, in which first the nodal path lengths for each node are calculated and then they are averaged out in order to calculate the characteristic path length. Therefore, if any disconnected nodes exist in the graph, the nodal path length will return NaN and the characteristic path length cannot be calculated.
As an alternative, you might want to calculate them only within connected subgraphs, where there are no disconnected nodes. If you calculate the small worldness from the command line, you can specify a second argument (“wsg”) as a function input, which ,if set to true, will calculate the small worldness within the connected component of the network. You can find the codes for this on line 1427 in the file Graph.m (for calculating the small worldness) and on line 460 in GraphBU.m (within the method “measure”) for the differences of calculating the path length only within the connected components. Currently, the default value of this argument is set to false. If you would like to change this so that the small worldness is always calculated within the connected components you can do so by changing line 1439 of Graph.m file.
Another alternative method is to implement the harmonic mean as I explained above.
I realize that the calculation of the small-worldness takes a lot of time. This is due to the fact that in order to calculate the small-worldness the network needs to be randomized many times, and currently, the randomization algorithm implemented in Braph is very slow. We hope that we can implement faster alternative methods in Braph soon.
Hope this helps you. Please do not hesitate to ask if you would need any more help.
Dear Hojoon Lee,
Thanks for using Braph and I hope that it proves to be a valuable tool in your research.
If you would like to implement harmonic mean implementation of the path length calculation, you would need to change the file GraphBU.m. Locate the method “measure” in the GraphBU.m file. Line 459 just calculates the mean of the path length of each node (in the original code). In order to implement the harmonic mean, just substitute line 459, with the following:
tmp = g.pl();
res = mean(tmp.^(-1)).^(-1);
which is the expression for the harmonic mean.
Hope this works. If there is anything more I can help you with, please let me know.
MiteJuly 1, 2019 at 11:43 am in reply to: load connectivity matrix from fMRI data, did what posted, there is still errors #29882
I double checked the matrices you sent me and it seems that you were trying to upload the time series for the individual regions instead of uploading pre-calculated adjacency matrices. Therefore, as the matrices that you uploaded were not square matrices Braph returned an error.
I checked and you can calculate adjacency matrices (without error) if you use the correlation coefficients offered in Braph, and you do not need the modified version. However, if you pre-calculate your adjacency matrices, then you can upload and analyze them via the modified version of Braph that I provided.
Hope this helps. Please let me know if this problem remains for you and how I can further help you.
MiteJune 12, 2019 at 10:14 am in reply to: load connectivity matrix from fMRI data, did what posted, there is still errors #28738
Thank you for using Braph and your kind words. Hopefully it will be a very useful tool for you during your research.
I am not sure what the mistake it currently, but if you send me an e-mail, I could send you a modified version of Braph that is able to upload pre-calculated connectivity matrices.
Looking forward to hearing from you.
Thank you for using Braph. I hope that you will find it useful during the course of your research.
Regarding the p-values for between group comparison: The fdr column represents the highest p-value that is significant after fdr correction. This value is calculated at a given density, among the multiple comparisons performed between all regions. That is why, when the region changes, the fdr value stays the same. However, since the multiple comparisons are different for each region, the associated uncorrected p-value changes. We discussed this issue previously on this forum and you can find more detailed explanations at: http://braph.org/forums/topic/confidence-intervals-and-p-statistic/ and http://braph.org/forums/topic/eeg-graph-analysis/ .
Regarding the small worldness calculation, you are right. This situation happens when the network is unconnected. Practically, this results in NaN for the path length of the disconnected nodes which then affects the calculation of the mean. To help you with this, could you let me know what type of analysis you are running (weighted or binary undirected (or directed from the command line) so that I can send you a list of changes that need to be done in order to get the harmonic mean.
Hope these explanations help. If you need any additional help, please do not hesitate to ask.
- This reply was modified 3 years, 2 months ago by Mite Mijalkov.