[gmx-users] spatial distribution function in a binary solvent mixture

chris.neale at utoronto.ca chris.neale at utoronto.ca
Wed Aug 3 03:31:38 CEST 2011

Here's the totally wasteful way for you to get what you want:

1. for each molecule in type A: trjorder everything around that  
molecule and output only the closest N atoms of type A and the closest  
M atoms of type B. Ensure that the coordinate order is: your central  
molecule of type A is first, the remaining type A second, and the type  
B third.

2. concatenate all of these trajectories into one single large trajectory

3. trjconv -fit trans+rot , fitting only to the single central molecule.

4a. g_spatial for the non-central type A
4b. g_spatial for type B

* now repeat switching types A and B in the above steps to get the  
SDFs arouns type B.

A much better idea is for you to modify g_spatial to do this all  
within one loop. But if you don't know C then you are out of luck there.

g_sdf may not work because you are underdetermined (there is a  
symmetry about the long axis that you can not specify). But perhaps  
you could use that to your advantage and select some totally unrelated  
atom as the third atom for the fit. My best guess is that this would  
be no worse than g_spatial.

A final option is for you to use g_mindist to output all of the  
contacts and then run over that with your own script to process the  
data into an SDF and output it in cube format.


-- original message --

  Thanks Chris. I presume g_sdf won't be helpful for my system.

[Hide Quoted Text]
I think that you have a misconception about what g_spatial does. For a
system with many type A and many type B, you need to average over all
of one type as the central solute to compute an rdf, and perhaps that
is what you want for your sdf. g_spatial, however, does not do any
fitting. g_sdf did that. You can obtain an old version of the source
(4.0.7 should have it I think) if you want to use g_sdf. I have never
used g_sdf myself.

In case that doesn't answer your question, then let me make one more

g_spatial requires that a bin exists for every count. Thus either (a)
find a large memory node somewhere or (b) pre-process your trajectory
using trjorder to order the solvent molecules and then keep only the N
closest, then run g_spatial. But again, I think that this will not
provide what you are looking for but is likely to give you a smear
over your box.


-- original message --

     Dear all,

    I'm working with a binary solvent mixture containing 2000 molecules
    type-A + 200 type-B). Both the types of solvent molecules have similar
structure (they are both diatomic molecules) except the polarity.I'm
trying to calculate sdf of type-B solvent molecules. I followed the
step-by-step instructions from the manual using g_spatial.
    I'm trying to reduce the bin width to 0.05A. The *.cube file generated
with a bin width of 0.09A is already 4.9GB in size. As I'm more
interested in the first solvation shell around the type-B solvent
molecule, I was wondering if I could find a way to control the maximum
radius of the sphere around central molecule (center of coordinates?)?
Also, can anyone please let me know how g_spatial deals with the angular
part of sdf?

(I've searched a lot but could not gather enough meaningful information)


More information about the gromacs.org_gmx-users mailing list