Hi Christian,

On May 2, 2025, at 3:00 AM, christian.steinmetzger--- via ChimeraX-users <chimerax-users@cgl.ucsf.edu> wrote:

Dear ChimeraX users,

I'm working with some different ribosome structures which I first want to align to a reference structure (as rigid bodies) and then calculate RMSD values with respect to the reference. The number of chains are the same between my structures and the reference, and the chain names + residue numbers are congruent as well. However, some of my chains have residues missing or added at the ends, have a small number of insertions (using insertion codes in the pdb file) or point mutations.

What I have tried so far is:

"matchmaker #2 to #1 pairing ss show true"
"save file.defattr #2 attrName r:seq_rmsd modelIds false" (to store the resulting RMSD values for later use)

which aligns based on CA for protein chains and C4' for RNA. I haven't given any explicit chain specification (each model has 56 chains). Am I correct to think that the RMSD values I get are based on a whole-structure rigid-body alignment that takes all chains into account simultaneously?

Yes.

Or does it align each chain in #2 to its matching chain in #1 individually?

That would significantly rearrange structure 2.  No, it doesn't do this.

For the proteins I think per-residue CA-RMSD values are suitable for what I need, but for the RNA chains I would like to get per-residue all-atom RMSDs, not just C4'. Can this be achieved with matchmaker?

No, matchmaker only considers the atoms it's using in the pairing.

I have also tried to use the align command like this:

"align #2 toAtoms #1 each structure matchChainIds true matchNumbering true"

which, to my understanding, would do the alignment not just based on CA/C4', but for all atoms. Is that correct?

That's right.

With this, what would be the best way to extract per-residue RMSD values? The "rmsd" command rightfully complains about unequal numbers of atoms between #1 and #2. Is there a way to implicitly select only the atoms that are congruent between #1 and #2?

I don't know how conversant with Python you are, but I think you have to resort to Python for this.  You can use chimera.core.commands.run to run ChimeraX commands, and run() will return information from the command.  For instance, matchmaker and align both return information about the atom/residue pairing used (among other things; matchmaker info; align info).  There is a collection of ChimeraX Recipes for how to program various tasks, the Show residue-residue distance heatmap recipe does many of the kinds of things you want to do and would be a reasonable starting point.

--Eric

Eric Pettersen
UCSF Computer Graphics Lab


Kind regards,
Christian
_______________________________________________
ChimeraX-users mailing list -- chimerax-users@cgl.ucsf.edu
To unsubscribe send an email to chimerax-users-leave@cgl.ucsf.edu
Archives: https://mail.cgl.ucsf.edu/mailman/archives/list/chimerax-users@cgl.ucsf.edu/