cmd.pseudoatom is only for creating atoms, not adding coordinates. What
you're doing is creating a separate atom for each molecular state, which
means N-atoms x M-states = a huge inefficiency!.
Look at what particle01.py is doing in terms of merely updating existing
coordinates using alter_state. Then, the only additional trick to
incorporate is to copy the first state before using alter_state to modify
coordinates for the copied state.
see examples/devel/particle02.py (just added) for a working example of what
your code should do instead.
DeLano Scientific LLC
Subscriber Support Services
"Not yet a PyMOL Subscriber, but want to support the project? Email
sales@... to quote your lab, school, or employer. Thank you for
sponsoring this open-source endeavor!" -WLD
> -----Original Message-----
> From: Paride Legovini [mailto:legovini@...]
> Sent: Tuesday, November 06, 2007 4:48 PM
> To: DeLano Scientific
> Cc: pymol-users@...
> Subject: Re: [PyMOL] file format for homebrew MD software
> DeLano Scientific wrote:
> > One option is to simply create and modify coordinates
> real-time using
> > Python. See example particle01.py
> I'm trying the code I'm pasting at the end of this email, but
> I have a strange problem with pseudoatom: it is EXTREMELY
> slow, and I mean that is takes AGES to read 100 files, eating
> 100% of my CPU. Loading files with 'load' works fine. What's wrong?
> The dat files are just xyz coordinates and I'm experimenting
> with no ten atoms per file. A partial example:
> $ cat data/step000011.dat
> 0.097806 0.094156 0.934356
> 0.083930 0.020571 1.938765
> and so on...
> ---------- code starts here ----------
> from glob import glob
> from pymol import cmd
> file_list = glob("data/step*.dat")
> # for some reason file_list is unsorted.
> counter = 0
> for file in file_list:
> counter = counter + 1
> f = open(file, "r")
> for line in f:
> position = line.split()
> cmd.pseudoatom("polymer", pos=position)