From: Josh Vermaas (vermaas2_at_illinois.edu)
Date: Mon Mar 09 2015 - 08:30:25 CDT

Hi Monika,

It is possible to write out a "trajectory pdb". I think, based on the
documentation for the animate command
(http://www.ks.uiuc.edu/Research/vmd/current/ug/node121.html), that it
would be something like this:

animate write pdb output.pdb beg 0 end 0 sel $sel

The $sel writepdb version of file writing I believe can only handle one
frame at a time. Also, does it need to be a pdb output? A binary format
is going to be much smaller.

-Josh Vermaas

On 03/09/2015 05:26 AM, Monika Madhavi wrote:
> Thanks Norman, your answer is exactly what I wanted. Is it possible to loop
> this around each frame also. Can I write the pdb entries for my
> atomselection ($sel here) for each frame in the same pdb?
>
> Regards,
> Monika
>
> On Mon, Mar 9, 2015 at 3:12 PM, Norman Geist <norman.geist_at_uni-greifswald.de
>> wrote:
>> This is not the way it should be done. It is much easier and faster to
>> just collect the resids you need 1st and write out the coordinates
>> afterwards. You can easily collect the list of resids with “lappend”.
>>
>>
>>
>> example:
>>
>>
>>
>> set myresids {}
>>
>> for {whatever} {
>>
>> if {whatever} {
>>
>> lappend myresids $resid
>>
>> }
>>
>> }
>>
>> set residlist [lrange $myresids 0 end]
>>
>> set sel [atomselect top “resid $residlist”]
>>
>> $sel writepdb my.pdb
>>
>> $sel delete
>>
>>
>>
>> Norman Geist.
>>
>>
>>
>> *From:* owner-vmd-l_at_ks.uiuc.edu [mailto:owner-vmd-l_at_ks.uiuc.edu] *On
>> Behalf Of *Monika Madhavi
>> *Sent:* Monday, March 09, 2015 7:24 AM
>> *To:* Joaquim Rui de Castro Rodrigues
>> *Cc:* vmd-l_at_ks.uiuc.edu
>> *Subject:* Re: vmd-l: How to write coordinates to a pdb without replacing
>> existing entries
>>
>>
>>
>> Thanks Rui,
>> Actually I can select the residue ids I want to select but they are
>> selected in a random manner and the number is large. Therefore I am
>> wondering whether I can write coordinates of the selected molecule at the
>> time it is selected without giving the whole list of ids at the end.
>>
>> Regards,
>> Monika
>>
>> Monika Madhavi
>> Department of Physics
>> University of Colombo
>>
>> On Mar 8, 2015 11:03 PM, "Monika Madhavi" <monikamadhavi_at_gmail.com> wrote:
>>
>> I want to achieve the result I would get if I write this command while
>> looping around without writing line 2 as it is.
>>
>> set residlist {1 2 3 4 5}
>>
>> set sel [atomselect top "resid 1 2 3 4 5"]
>>
>> $sel writepdb out.pdb
>>
>> $sel delete
>>
>> Regards,
>>
>> Monik
>>
>>
>>
>>
>>
>> On Sun, Mar 8, 2015 at 10:47 PM, Monika Madhavi <monikamadhavi_at_gmail.com>
>> wrote:
>>
>> Thanks Joaquim. Actually i set N outside the loop. What i want is to write
>> all the coordinates in a single pdb file. As an example, something like
>>
>> If my molecule is water,
>>
>> Resid atomname coordinates
>> 1 H1 .........
>> 1 H2 ........
>> 1 OH .........
>> 2 H1 .........
>> 2 H1 ..........
>> 2 OH .........
>> .
>> .
>> .
>>
>> Regards,
>> Monika
>>
>> Monika Madhavi
>> Department of Physics
>> University of Colombo
>>
>> On Mar 8, 2015 10:11 PM, "Joaquim Rui de Castro Rodrigues" <
>> joaquim.rodrigues_at_ipleiria.pt> wrote:
>>
>> Dear Monika,
>>
>> I don't quite get what you are trying to achieve... Do you want to get
>> separate PDB files for each resid?
>> Anyhow, I see a few problems with your script:
>> - the for loop contains a strange comparison: $i<N. I just tested this and
>> it results in an infinite loop. You must set N outside of the loop.
>> - you're looping over resid's, but always writing to same the same file
>> (out.pdb)
>> - you're building atomselections at each iterations without deleting them