[gmx-users] REMD demuxing

Andrea C. Vaiana vaiana at lanl.gov
Mon Jan 8 21:43:22 CET 2007


David,
Great, it works, and really fast too!
Thanks for all the help.

Nikos,
thanks for pointing out the python module, I think I'll be making 
extensive use of it in the future.

Andrea


David van der Spoel wrote:
> Andrea C. Vaiana wrote:
>> Hello everyone,
>> I'm trying to find a better way of demuxing REMD runs, I wrote a 
>> python script to do this but it is very slow because it relies on 
>> system calls to trjconv in order to read/write frames. I checked the 
>> documentation and mailing lists, it seems that this should be 
>> possible using "trjcat -demux...". I've tried this and reached 
>> similar problems (seemingly unresolved...) as Merc Martens in july. 
>> I've attached the last mail from that thread at the bottom of this 
>> email.
>>
>> I have an remd.xvg file that looks like this:
>>
>> 0.000000   0   1   2   3   4   5   6   7   8   9   10   11   12   
>> 13   15   14   16   17  ....
>> 0.187500   0   1   2   3   4   5   6   7   8   9   10   11   12   
>> 13   15   14   16   17
>> 0.375000   0   1   2   3   5   4   6   7   8   9   10   11   12   
>> 13   15   14   16   17
>> 0.562500   0   1   2   3   5   4   6   7   8   9   10   11   12   
>> 13   15   14   16   17
>> 0.750000   0   1   2   3   5   4   6   7   8   9   10   11   12   
>> 13   15   14   16   17
>> 0.937500   0   1   2   3   5   4   6   7   8   9   10   11   12   
>> 13   16   14   15   17
>> .
>> .
>> .
>>
>>
>>
>> When I run:
>> trjcat -dt 0.75 -f  run3.0.xtc ... run3.47.xtc -o  run3.U.0.xtc ... 
>> run3.U.47.xtc   -demux remd.xvg
>>
>> NOTE: I dump to the xtc file every 0.75ps but I'm using an xvg file 
>> (created from my log file) with all the replica exchanges i.e., every 
>> 0.1875ps. Would this cause problems?
>>
>> I get 48 identical xtc files named: run3.U.0.xtc #run3.U0.xtc.1# ... 
>> #run3.U0.xtc.47#
>> each of these is very small (219 K wheras my trajectories are 10 M).
>>
>> a gmxdump on one of these produces:
>>
>> run3.U.0.xtc frame 0:
>>   natoms=         0  step=         0  time=         0  prec=2.8026e-45
>>   box (3x3):
>>      box[    0]={ 5.65765e+00,  0.00000e+00,  0.00000e+00}
>>      box[    1]={ 0.00000e+00,  5.44156e+00,  0.00000e+00}
>>      box[    2]={ 0.00000e+00,  0.00000e+00,  5.42684e+00}
>> not available: x
>> run3.U.0.xtc frame 1:
>>   natoms=         0  step=       500  time=      0.75  prec=2.8026e-45
>>   box (3x3):
>>      box[    0]={ 5.65765e+00,  0.00000e+00,  0.00000e+00}
>>      box[    1]={ 0.00000e+00,  5.44156e+00,  0.00000e+00}
>>      box[    2]={ 0.00000e+00,  0.00000e+00,  5.42684e+00}
>> not available: x
>> run3.U.0.xtc frame 2:
>>   natoms=         0  step=      1000  time=       1.5  prec=2.8026e-45
>>   box (3x3):
>>      box[    0]={ 5.65765e+00,  0.00000e+00,  0.00000e+00}
>>      box[    1]={ 0.00000e+00,  5.44156e+00,  0.00000e+00}
>>      box[    2]={ 0.00000e+00,  0.00000e+00,  5.42684e+00}
>> not available: x
>> .
>> .
>> .
>>
>> Does anyone know what's wrong?
>> Alternatively: does anyone have a fast python routine for 
>> reading/writing xtc frames?
>>
>>
>> thanks for any help.
>>
>> Andrea
>>
>>> merc mertens
>>> Mon, 17 Jul 2006 09:20:41 -0700
>>>
>>> hello,
>>>
>>> i am still trying to figure out how demultiplexing with trjcat 
>>> (version 3.3.1) works.
>>> i produced 3 trajectories, each containing only one frame:
>>> e.g.
>>>
>>> traj0.xtc frame 0:
>>>    natoms=     14670  step=       500  time=         1  prec=      1000
>>>    box (3x3):
>>>       box[    0]={ 8.47401e+00,  0.00000e+00,  0.00000e+00}
>>>       box[    1]={ 0.00000e+00,  4.98164e+00,  0.00000e+00}
>>>       box[    2]={ 0.00000e+00,  0.00000e+00,  3.48938e+00}
>>>    x (14670x3):
>>>       x[    0]={ 1.95100e+00,  2.11100e+00,  3.09600e+00}
>>>       x[    1]={ 1.95000e+00,  2.14800e+00,  3.19000e+00}
>>>       x[    2]={ 1.88400e+00,  2.15100e+00,  3.03200e+00}
>>>       x[    3]={ 1.94800e+00,  2.01100e+00,  3.11200e+00}
>>> ...
>>>
>>> traj1.xtc and traj2.xtc look the same (apart from containing 
>>> different coordinates).
>>>
>>> remd.xvg for -demux contains only one line:
>>>
>>> "1 2 1 0"
>>>
>>> using those files with:
>>> trjcat -f traj0.xtc traj1.xtc traj2.xtc -demux remd.xvg
>>>
>>> produces: trajout.xtc
>>>
>>> trajout.xtc frame 0:
>>>    natoms=         0  step=       500  time=         1  prec=  -1.99104
>>>    box (3x3):
>>>       box[    0]={ 8.48018e+00,  0.00000e+00,  0.00000e+00}
>>>       box[    1]={ 0.00000e+00,  4.98527e+00,  0.00000e+00}
>>>       box[    2]={ 0.00000e+00,  0.00000e+00,  3.49192e+00}
>>> not available: x
>>>
>>> so, even if there are definitely coordinates in the trajectory and 
>>> there can not be a mistake in the frame number, since there is only 
>>> one, it seems strange to me, that trjcat does not output anything 
>>> but the box to the *xtc file. further, the statement "not available: 
>>> x" seems curious to me.
>>> thanks for any help,
>>> merc
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>   
>>
> There is a perl script in src/contrib/scripts which does what you 
> need, i.e. generate input to trjcat.
>

-- 

Andrea C. Vaiana
Post Doctoral Research Associate
Theoretical Biology and Biophysics
Mail stop K710, T-10
Los Alamos, NM 87545
Los Alamos National Laboratory












More information about the gromacs.org_gmx-users mailing list