Bio3d network analysis

Issue #408 resolved
Former user created an issue

Hi

I am working on understanding allosteric motions for myo1b motor protein structures from 200 ns simulations. I got nice cross correlations which show nice differences for each construct. Now, i want to use those cross-correlations for network analysis to see any correlated or anti-correlated motions between nodes (subdomains) defined. First of all, it seems to me that networks change based on cutoff.cij. Secondly, I have applied Cmap filtering for cna analysis and it gives me nice sub-domains however I loose some correlations,which are seen in cross-correlation map, between nodes because of 'dcut'.

So, I do not want to use 'cmap' for filtering because it is helpful to determine nodes but it removes some correlations which I think they are significant. My question is: Is there any way to define 'best' cutoff value without filtering them with contact map?

I appreciate any of your help! Thanks,

Comments (2)

  1. Xinqiu Yao

    Hi,

    Currently, the only way to find a suitable cutoff is to try a range of different values, map the couplings (as lines connecting residue pairs) after filtering to molecular structure, and judge it by your own expertise about your system. You can use the function pymol.dccm to visualize the correlations. To my experience, a cutoff value in the range 0.3~0.7 is acceptable. Too low or too high indicates that your system is either very rigid or very dynamic.

    Note that long distance correlation can be spurious due to the limited simulation time (nano-second time scale is not long enough). I may suggest test the "robustness" of these correlations. For example, you can run multiple MD replicates (e.g. 5) under the same simulation conditions except for a randomly generated initial velocities, or split a single long MD trajectory into multiple chunks. Calculate correlations for each replicate (or chunk) and see if the correlation is constantly strong (above a certain threshold) across replicates. If it is, keep this correlation no matter how far the residue pairs spatially locate; Otherwise, apply the contact map to filter it. This is the same idea as we have implemented in our recent paper. You can do this type of filtering using the function filter.dccm. An example of how to use it is shown below:

    # 'cijs' is a 3-D array containing correlation matrices from multiple replicates/chunks.
    # 'cm' is the contact map
    cij <- filter.dccm(cijs, cutoff.cij=0.4, cmap=cm)
    pymol.dccm(cij, pdb, type='launch')
    
    # use different 'cutoff.cij' and try above commands again.
    

    Any other comment, guys?

  2. Log in to comment