Hi Tony and Elaine,

I am currently using ChimeraX-1.1.1.  I think I may have found the issue then.  Whenever I type “rmsd” in the command line, it defaults to rmsdAlign.  Is there a way to fix this?  I’m not sure if it’s a bug or something I did on my end.  

You can see this in the screenshot below (I typed rmsd and get rmsdAlign in the log).


Thank you for the help,
Steven

On Oct 12, 2021, at 11:48 PM, Elaine Meng <meng@cgl.ucsf.edu> wrote:

Hi Steven,
Are you using a super-ancient version of ChimeraX?  I'm not aware if there was ever an rmsdAlign command.  By command I mean what you would type into the actual command line or use in a command file.  Maybe there is some other way to access the functionality via python.

However, if the structures are not already superimposed, you may want to use the "align" command instead of the "rmsd" command ... the former calculates a best-fit RMSD whereas the latter just calculates RMSD in the current positions without trying to superimpose/fit them, so if the structures are in some random positions relative to each other you will get a huge value.

align
<https://rbvi.ucsf.edu/chimerax/docs/user/commands/align.html>

rmsd
<https://rbvi.ucsf.edu/chimerax/docs/user/commands/rmsd.html>

Best,
Elaine
-----
Elaine C. Meng, Ph.D.                       
UCSF Chimera(X) team
Department of Pharmaceutical Chemistry
University of California, San Francisco

On Oct 12, 2021, at 2:39 PM, Steven Truong via ChimeraX-users <chimerax-users@cgl.ucsf.edu> wrote:

Hi Eric, Tony, et al.,

Thank you for answering my question.  For now, I’ll be doing what Tony suggested re: assigning a value with the RMSD command.  Currently, I’m having issues with using “rmsd” by itself (it seems like rmsdAlign is the only valid command).  I’m assuming this is the same command, just named differently.

Re: your inquiry, the protein does have the same sequences.  However, the chain ID is critical, since I am attempting to “stitch” fragments of proteins at different residues.  For example, if I align a fragment to the wrong chain, it will have a bond hanging on the other side of the protein (not good!).  This stitching can be done manually (e.g. if it’s not the right chain or residue ID, I can simply move the fragment), but I am trying to automate this process via Python scripts.  Additionally, I have been doing the bond-forming on Chimera (with the command “bond”).  I’m not sure if there’s a better way of going about this, but my idea currently is to 1. Identify which chains match up, 2. Align fragments from 1 protein to the other (which may have different chain ID identifiers), 3. Make bonds on Chimera.

Many thanks,
Steven

On Oct 12, 2021, at 9:31 PM, Eric Pettersen <pett@cgl.ucsf.edu> wrote:

Hi Steven,

On Oct 12, 2021, at 12:39 PM, Steven Truong via ChimeraX-users <chimerax-users@cgl.ucsf.edu> wrote:

Dear ChimeraX Admins,

I was hoping to use the “rmsd” command in ChimeraX to measure distances between models within a .py script.

Is there a way to use the output of “rmsd” (or generally any other output in Log) within the script? For example, if rmsd > 2 Angstroms, then do X.

Tony answered this.

Ultimately, I am attempting to align chains between models. Because my protein is asymmetric, chain A on Model #1 might actually be chain B on Model #2. I was hoping to use “rmsd” to map one chain to the other. Is it a better idea to do this in another program and re-write chain IDs in the .PDB file? If so, what other program would be better at making RMSD calculations between .PDB chains?

Do these chains have the same sequence?  Also, I'm a little uncertain what "map one chain to the other" means exactly.  At any rate, the matchmaker command can be used to superimpose one chain onto another and report the backbone (CA or C4'/P) RMSD for the match.  By default matchmaker iterates its match, pruning off poorly matching regions and re-matching to get a good fitting "core" match, and will report RMSD values for both the core region and across the entire sequence.  You can turn off the iteration if desired with matchmaker's "cutoffDistance none" option.

--Eric

Eric Pettersen
UCSF Computer Graphics Lab


Thank you,
Steven Truong
Cambridge University