I should learn not to post while distracted. That last line was both over-engineered, and wrong. What you want is:

rmsd = sum(numpy.linalg.norm(xyz1-xyz2, axis=1))/len(xyz1)

On 2017-08-28 14:32, Tristan Croll wrote:
In this case calculating the rmsd is easy:

- get the coordinates of each structure as n x 3 numpy arrays. The
Pymol commands for this should look like:

xyz1 = cmd.get_coords('sele1', 1)
xyz2 = cmd.get_coords('sele2', 1)

Then,

rmsd = numpy.linalg.norm(numpy.sqrt((xyz1-xyz2)**2), axis=1)

Tristan Croll
Research Fellow
Cambridge Institute for Medical Research
University of Cambridge CB2 0XY

On 28 Aug 2017, at 10:04, Johannes Sommerkamp
<0000155b9e78396e-dmarc-requ...@jiscmail.ac.uk> wrote:

Thanks a lot for your answers and the PyMOL mailing list hint. I
didnt had in mind this list.

I read the Pymol Wiki. The commands

align moving, target, cycles=0, transform=0

align moving, target, cycles=0

give identical values for RMSD. So, the only difference is, that
the moving structure is not moved in the graphical output.
Additionally the RMSD with the argument cycles=0 can't be the RMSD
before any movement because the values differ for the super and the
align command. I think its just without refinement.
Since the two structure I want to compare are already aligned based
on the central beta sheet CA atoms, I want to calculate the RMSD
without any movement.

Regards
Johannes

On 27/08/17 19:18, Folmer Fredslund wrote:
Hi Johannes,

Did you read the PymoWIKI entry on the align command?

https://pymolwiki.org/index.php/Align#RMSD [1]

I think this should give you what you want within PyMOL.

Btw, there is a nice dedicated PyMOL mailing list
https://pymolwiki.org/index.php/PyMOL_mailing_list [2]
It is rather low traffic, but the replies are generally from the
developers or very knowledgeable users.

Hope this helps,
Folmer Fredslund

On 2017-08-27 13:09, Johannes Sommerkamp wrote:
Hello everybody,
I have superposed two structures based on the central beta-sheet CA
atoms with the "super" command in Pymol.
Now, I want to calculate the RMSD between ALL atoms or ALL CA atoms
without moving the structures again. The rms_cur command in Pymol
would do that, but only works if all atom identifiers match. Adding
"transform=0" to the super, oder align command still does the
alignment and moves the structure but does not show the movement.

Is there an easy way to just calculate the all atom RMSD between
two already superposed structures in pymol or any other programm?

Thanks in advance!
Johannes

--
Johannes Sommerkamp
Ruhr-Universität Bochum
AG Röntgenstrukturanalyse an Proteinen, LS Biophysik, ND04/396
Universitätsstraße 150
44801 Bochum
Tel: +49-(0)234/32-25754


Links:
------
[1] https://pymolwiki.org/index.php/Align#RMSD
[2] https://pymolwiki.org/index.php/PyMOL_mailing_list

Reply via email to