<html>
<head>
<style>
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
FONT-SIZE: 10pt;
FONT-FAMILY:Tahoma
}
</style>
</head>
<body class='hmmessage'><div style="text-align: left;">Hi,<br><br>Do you really want to plainly cat the trajectories?<br>In that case the unix cat command would also do the trick.<br><br>trjcat -cat does not remove double frames, but does seem to remove<br>frames with time before the last written frame.<br><br>I found and fixed a bug in trjcat (fix is only in the CVS head tree)<br>where trjcat would skip frames with -b when some files were not used.<br></div>I pasted the fix below.<br>You can try to see if it also solves your problem.<br><br>Berk.<br><br>In gmx_trjcat.c replace the if (i &gt;0) { ... } with the code below.<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* set the next time from the last frame in previous file */<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (i &gt; 0) {<br>&nbsp;&nbsp;&nbsp; if (frame_out &gt;= 0) {<br>&nbsp;&nbsp;&nbsp; &nbsp; if(cont_type[i]==TIME_CONTINUE) {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; begin =frout.time;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; begin += 0.5*timestep;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; settime[i]=frout.time;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; cont_type[i]=TIME_EXPLICIT;&nbsp;&nbsp;&nbsp; &nbsp; <br>&nbsp;&nbsp;&nbsp; &nbsp; }<br>&nbsp;&nbsp;&nbsp; &nbsp; else if(cont_type[i]==TIME_LAST) {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; begin=frout.time;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; begin += 0.5*timestep;<br>&nbsp;&nbsp;&nbsp; &nbsp; }<br>&nbsp;&nbsp;&nbsp; &nbsp; /* Or, if the time in the next part should be changed by the<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; * same amount, start at half a timestep from the last time<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; * so we dont repeat frames.<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; */<br>&nbsp;&nbsp;&nbsp; &nbsp; /* I don't understand the comment above, but for all the cases<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; * I tried the code seems to work properly. B. Hess 2008-4-2.<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; */<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; /* Or, if time is set explicitly, we check for overlap/gap */<br>&nbsp;&nbsp;&nbsp; if(cont_type[i]==TIME_EXPLICIT) <br>&nbsp;&nbsp;&nbsp; &nbsp; if( ( i &lt; nfile_in ) &amp;&amp;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ( frout.time &lt; settime[i]-1.5*timestep ) ) <br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; fprintf(stderr, "WARNING: Frames around t=%f %s have a different "<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; "spacing than the rest,\n"<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; "might be a gap or overlap that couldn't be corrected "<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; "automatically.\n",convert_time(frout.time),time_unit());<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br><br><br><hr id="stopSpelling">&gt; Date: Fri, 11 Jul 2008 15:57:54 +0200<br>&gt; From: michel.cuendet@isb-sib.ch<br>&gt; To: gmx-users@gromacs.org<br>&gt; Subject: [gmx-users] trjcat -cat skips frames<br>&gt; <br>&gt; <br>&gt; Hi all,<br>&gt; <br>&gt; I have 162 small independent trajectories (from time 100 to time 300ps, <br>&gt; 2ps interval) in directories named 1/ ... 162/. I want to merge them <br>&gt; into one big trajectory for analysis purposes:<br>&gt; <br>&gt; trjcat -cat -o traj_tot.xtc -f */traj.xtc<br>&gt; <br>&gt; trjcat seems to start skipping some frames after about the 100th <br>&gt; trajectory. It does not start reading at time 100 anymore. Total number <br>&gt; of frames is 15432 instead of the 162*101 = 16632 that it should be. <br>&gt; Output looks like below.<br>&gt; <br>&gt; Concatenating the trajectories in two batches of about 80 trajectories <br>&gt; each and then combining the two resulting files together works.<br>&gt; <br>&gt; Cheers,<br>&gt; Michel<br>&gt; <br>&gt; ===================================================================<br>&gt; <br>&gt; Reading frame       0 time  100.000   <br>&gt; <br>&gt; Continue writing frames from 100/traj.xtc t=100 ps, frame=0      <br>&gt; Last frame        100 time  300.000    -&gt;  frame    100 time  300.000 ps     <br>&gt; Reading frame       0 time  100.000   <br>&gt; lasttime 300<br>&gt; <br>&gt; Continue writing frames from 101/traj.xtc t=100 ps, frame=101      <br>&gt; Last frame        100 time  300.000    -&gt;  frame    200 time  298.000 ps     <br>&gt; Reading frame       0 time  100.000   <br>&gt; lasttime 300<br>&gt; <br>&gt; <br>&gt; [ ... normal output until... ]<br>&gt; <br>&gt; <br>&gt; Continue writing frames from 44/traj.xtc t=100 ps, frame=10100      <br>&gt; Last frame        100 time  300.000    -&gt;  frame  10200 time  300.000 ps     <br>&gt; Reading frame       0 time  100.000   <br>&gt; lasttime 300<br>&gt; <br>&gt; Continue writing frames from 45/traj.xtc t=100 ps, frame=10201      <br>&gt; Last frame        100 time  300.000    -&gt;  frame  10300 time  298.000 ps     <br>&gt; Reading frame       0 time  100.000   <br>&gt; lasttime 300<br>&gt; Reading frame       1 time  102.000   <br>&gt; Continue writing frames from 46/traj.xtc t=102 ps, frame=10302      <br>&gt; Last frame        100 time  300.000    -&gt;  frame  10400 time  298.000 ps     <br>&gt; Reading frame       0 time  100.000   <br>&gt; lasttime 300<br>&gt; Reading frame       1 time  102.000   <br>&gt; Continue writing frames from 47/traj.xtc t=102 ps, frame=10402      <br>&gt; Last frame        100 time  300.000    -&gt;  frame  10500 time  298.000 ps     <br>&gt; Reading frame       0 time  100.000   <br>&gt; lasttime 300<br>&gt; Reading frame       2 time  104.000   <br>&gt; Continue writing frames from 48/traj.xtc t=104 ps, frame=10502      <br>&gt; Last frame        100 time  300.000    -&gt;  frame  10600 time  300.000 ps     <br>&gt; Reading frame       0 time  100.000   <br>&gt; lasttime 300<br>&gt; Reading frame       2 time  104.000   <br>&gt; Continue writing frames from 49/traj.xtc t=104 ps, frame=10601      <br>&gt; Last frame        100 time  300.000    -&gt;  frame  10690 time  282.000 ps     <br>&gt; Reading frame       0 time  100.000   <br>&gt; lasttime 300<br>&gt; Reading frame       3 time  106.000   <br>&gt; Continue writing frames from 4/traj.xtc t=106 ps, frame=10700      <br>&gt; Last frame        100 time  300.000    -&gt;  frame  10790 time  286.000 ps     <br>&gt; Reading frame       0 time  100.000   <br>&gt; lasttime 300<br>&gt; Reading frame       3 time  106.000   <br>&gt; Continue writing frames from 50/traj.xtc t=106 ps, frame=10798      <br>&gt; Last frame        100 time  300.000    -&gt;  frame  10890 time  290.000 ps     <br>&gt; Reading frame       0 time  100.000   <br>&gt; lasttime 300<br>&gt; <br>&gt; [ ... more drifting the first frame read until ... ]<br>&gt; <br>&gt; Reading frame      30 time  160.000   <br>&gt; Continue writing frames from 99/traj.xtc t=160 ps, frame=15290      <br>&gt; Last frame        100 time  300.000    -&gt;  frame  15360 time  300.000 ps     <br>&gt; Reading frame       0 time  100.000   <br>&gt; lasttime 300<br>&gt; Reading frame      30 time  160.000   <br>&gt; Continue writing frames from 9/traj.xtc t=160 ps, frame=15361      <br>&gt; Last frame        100 time  300.000    -&gt;  frame  15430 time  298.000 ps     <br>&gt; <br>&gt; Last frame written was 15431, time 300.000000 ps<br>&gt; <br>&gt; ===================================================================<br>&gt; <br>&gt; <br>&gt; ==========================================================<br>&gt; Michel Cuendet, Ph.D<br>&gt; Molecular Modeling Group<br>&gt; Swiss Institute of Bioinformatics<br>&gt; CH-1015 Lausanne, Switzerland<br>&gt; http://ludwig-sun1.unil.ch/~mcuendet<br>&gt; ==========================================================<br>&gt; <br>&gt; <br>&gt; _______________________________________________<br>&gt; gmx-users mailing list    gmx-users@gromacs.org<br>&gt; http://www.gromacs.org/mailman/listinfo/gmx-users<br>&gt; Please search the archive at http://www.gromacs.org/search before posting!<br>&gt; Please don't post (un)subscribe requests to the list. Use the <br>&gt; www interface or send it to gmx-users-request@gromacs.org.<br>&gt; Can't post? Read http://www.gromacs.org/mailing_lists/users.php<br><br /><hr />Express yourself instantly with MSN Messenger! <a href='http://clk.atdmt.com/AVE/go/onm00200471ave/direct/01/' target='_new'>MSN Messenger</a></body>
</html>