On 16/07/2011 8:33 PM, Martin Kamp Jensen wrote:
On Fri, Jul 15, 2011 at 1:41 PM, Mark Abraham <[email protected] <mailto:[email protected]>> wrote:

    On 15/07/2011 7:31 PM, Martin Kamp Jensen wrote:
    Hello,

    I am trying to evaluate energy values of several conformations
    using a (pseudo)trajectory. Currently, I am concatenating
    GROMOS-96 files (.g96) and using that as a trajectory. For some
    reason the second conformation in a trajectory is ignored. So
    e.g. if I have three conformations (1.g96, 2.g96, and 3.g96),
    then concatenate them into 1+2+3.g96, and then use the latter
    file as a trajectory, the conformation of 2.g96 is ignored when
    using mdrun -rerun with a suitable binary run file.

    I have created an archive [1] with files demonstrating the
    problem. Use the "run" script for a stepwise demonstration of the
    problem: The output of mdrun shows that the last frame processed
    is one less then expected for concatenated files. Further, it is
    the second frame that is missing which can be determined by
    looking at the energy values in the energy file generated by mdrun.

    I have no clue what is going on here. I hope someone can provide
    some insights. (The same approach seems to work fine with PDB
    files instead of GROMOS-96 files, but there is less precision in
    PDB files and because of some irrelevant details it is easier for
    me to work with GROMOS-96 files at the moment.)

    [1] http://dl.dropbox.com/u/2666968/GROMACS/missingframe.tar

    Thanks,
    Martin.

    That's a bug. Reading the .g96 file format as a trajectory uses
    some dirty dirty non-thread-safe code, and the cleanup a few years
    ago to make things thread-safe did that without preserving correct
    functionality. I suggest you concatenate separate .g96 files using
    trjcat into .trr format, and use rerun on that.


Too bad, but thank you for explaining. Is your suggestion based on the fact that the functionality is completely unreliable?

Yes. The behaviour of the code is (in principle) unpredictable, but you might get lucky and observe regularities, and here you did.

I mean, if the bugs are known (e.g. 2nd frame is always ignored), it would maybe be better to just work around them.

If anything, the bug will lead to skipping alternate frames. You could try constructing the input to have empty frames, or duplicate frames, and check the output very carefully to see patterns in what happens.

(It would be a bit sad to write out 100 or 1000 g96 files and then use trjcat since I will need to do that millions of times during a run of my application.)

You could write .gro files if they have enough precision, or .xtc files (there's a C library for doing the latter on the GROMACS webpage).

Mark
-- 
gmx-users mailing list    [email protected]
http://lists.gromacs.org/mailman/listinfo/gmx-users
Please search the archive at 
http://www.gromacs.org/Support/Mailing_Lists/Search before posting!
Please don't post (un)subscribe requests to the list. Use the 
www interface or send it to [email protected].
Can't post? Read http://www.gromacs.org/Support/Mailing_Lists

Reply via email to