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
> <[log in to unmask]> 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
|