Hello, My name is Andrew Guo, an undergraduate at the University of Maryland College Park, doing research under Dr. John Orban with help from Dr. Andy LiWang from the University of California Merced, in the field of protein fold switching. Dr. LiWang recently used ChimeraX to calculate vdW contacts closer than 3.8 A between carbons in the context of a fold switching region in a small list of 26 "metamorphic" proteins (see here <https://doi.org/10.1073/pnas.2422725122>). I am now working on automating the whole process of calculating these contacts. In doing so, I have encountered a strange inconsistency that I do not know how to fix, and was hoping to gain some insight from the people who have developed ChimeraX. Previously, the overall contacts count was calculated by first calculating interdomain contacts then intradomain contacts and summing the two. It would be much simpler to calculate the contacts in one "whole" command instead of restricting the command to just interdomain or intradomain contacts. However, I have found that this "whole" command sometimes includes ligand contacts. For instance, for the pdb code 4O01A and region of interest residues 446-478, I have the following set of commands: interdomain: contacts /A:446-478@C* restrict /A:1-445,479-506@C* distance 3.8 reveal true name vdW output 13 intradomain: contacts /A:446-478@C* restrict /A:446-478@C* distance 3.8 reveal true name vdW output 8 "whole": contacts /A:446-478@C* restrict /A@C* distance 3.8 reveal true name vdW output 22 Obviously, 13 and 8 do not sum to 22. Ligand command: contacts /A:446-478@C* restrict ligand distance 3.8 reveal true name vdW This ligand command had an output of 1 and was the following: /A LEU 463 CD1 /A LBV 600 CMA (alt loc A) This contact was also the extra contact found in my "whole" command output, so I could just run the two commands (whole and ligand) and subtract the output of the ligand command from the output of the whole command. However, for the pdb code 3KMZA and region of interest residues 393-421, I have the following: interdomain: contacts /A:393-421@C* restrict /A:1-392@C* distance 3.8 reveal true name vdW output 0 intradomain: contacts /A:393-421@C* restrict /A:393-421@C* distance 3.8 reveal true name vdW output: 1 distances atom1 atom2 distance /A MET 400 CG /A GLU 401 C 3.788 "whole": contacts /A:393-421@C* restrict /A@C* distance 3.8 reveal true name vdW output: 1 distances atom1 atom2 distance /A MET 400 CG /A GLU 401 C 3.788 ligand: contacts /A:393-421@C* restrict ligand distance 3.8 reveal true name vdW output 6 1-6 = -5 contacts Using my method, I get -5. Clearly, this is bad. The ligand command gave these 6 contacts: 6 distances atom1 atom2 distance /A THR 397 CG2 /A GOL 3 O3 3.321 /A ARG 394 CD /A GOL 3 O2 3.411 /A ILE 396 CA /A GOL 3 O3 3.436 /A ILE 396 CG2 /A GOL 3 O2 3.667 /A ILE 396 C /A GOL 3 O3 3.703 /A ILE 396 CB /A GOL 3 O3 3.721 However, these contacts were not part of the output of the whole command, unlike in the case of 4O01A. Is there something I am doing wrong with how I am setting up my commands? Please let me know if further information is needed! Thank you, Andrew
Hi Andrew, It all makes sense to me, at least if I understood your message correctly. Notes: - chain A will include ligands that are in chain A, unless you explicitly say you want protein only - if you want element C you can just use element symbol C instead of @C* (atom names starting with C)... not that the latter is wrong, it's just longer (1) structure 4o01 -- you can just use this command if you care about the 21 distances with chain A protein only: contacts (protein & /A:446-478 & C) restrict (protein & /A & C) distance 3.8 (2) structure 3kmz -- the difference is that your first command restricted results to carbons but your whole ligand contacts (as per your second command) are with oxygens, not carbons. So your command would depend on what you actually want. You may not really care about GOL (glycerol) anyway. I hope this helps, Elaine ----- Elaine C. Meng, Ph.D. UCSF Chimera(X) team Resource for Biocomputing, Visualization, and Informatics Department of Pharmaceutical Chemistry University of California, San Francisco
On Aug 17, 2025, at 7:39 PM, Andrew Guo via ChimeraX-users <chimerax-users@cgl.ucsf.edu> wrote:
Hello,
My name is Andrew Guo, an undergraduate at the University of Maryland College Park, doing research under Dr. John Orban with help from Dr. Andy LiWang from the University of California Merced, in the field of protein fold switching. Dr. LiWang recently used ChimeraX to calculate vdW contacts closer than 3.8 A between carbons in the context of a fold switching region in a small list of 26 "metamorphic" proteins (see here).
I am now working on automating the whole process of calculating these contacts. In doing so, I have encountered a strange inconsistency that I do not know how to fix, and was hoping to gain some insight from the people who have developed ChimeraX. Previously, the overall contacts count was calculated by first calculating interdomain contacts then intradomain contacts and summing the two. It would be much simpler to calculate the contacts in one "whole" command instead of restricting the command to just interdomain or intradomain contacts. However, I have found that this "whole" command sometimes includes ligand contacts.
For instance, for the pdb code 4O01A and region of interest residues 446-478, I have the following set of commands: interdomain: contacts /A:446-478@C* restrict /A:1-445,479-506@C* distance 3.8 reveal true name vdW output 13 intradomain: contacts /A:446-478@C* restrict /A:446-478@C* distance 3.8 reveal true name vdW output 8
"whole": contacts /A:446-478@C* restrict /A@C* distance 3.8 reveal true name vdW output 22
Obviously, 13 and 8 do not sum to 22. Ligand command: contacts /A:446-478@C* restrict ligand distance 3.8 reveal true name vdW This ligand command had an output of 1 and was the following: /A LEU 463 CD1 /A LBV 600 CMA (alt loc A) This contact was also the extra contact found in my "whole" command output, so I could just run the two commands (whole and ligand) and subtract the output of the ligand command from the output of the whole command.
However, for the pdb code 3KMZA and region of interest residues 393-421, I have the following: interdomain: contacts /A:393-421@C* restrict /A:1-392@C* distance 3.8 reveal true name vdW output 0 intradomain: contacts /A:393-421@C* restrict /A:393-421@C* distance 3.8 reveal true name vdW output: 1 distances atom1 atom2 distance /A MET 400 CG /A GLU 401 C 3.788
"whole": contacts /A:393-421@C* restrict /A@C* distance 3.8 reveal true name vdW output: 1 distances atom1 atom2 distance /A MET 400 CG /A GLU 401 C 3.788
ligand: contacts /A:393-421@C* restrict ligand distance 3.8 reveal true name vdW output 6 1-6 = -5 contacts Using my method, I get -5. Clearly, this is bad. The ligand command gave these 6 contacts: 6 distances atom1 atom2 distance /A THR 397 CG2 /A GOL 3 O3 3.321 /A ARG 394 CD /A GOL 3 O2 3.411 /A ILE 396 CA /A GOL 3 O3 3.436 /A ILE 396 CG2 /A GOL 3 O2 3.667 /A ILE 396 C /A GOL 3 O3 3.703 /A ILE 396 CB /A GOL 3 O3 3.721
However, these contacts were not part of the output of the whole command, unlike in the case of 4O01A. Is there something I am doing wrong with how I am setting up my commands? Please let me know if further information is needed!
Thank you, Andrew _______________________________________________ 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/
Looks to me like you aren’t restricting your ligand selection to carbons only. In the case of LBV the contact is to a carbon so it’s counted in whole, but for glycerol the oxygen contacts aren’t counted in whole. -- Kevin M. Jude, PhD Structural Biology Research Specialist, Garcia Lab Howard Hughes Medical Institute Stanford University School of Medicine Beckman B177, 279 Campus Drive, Stanford CA 94305 From: Andrew Guo via ChimeraX-users <chimerax-users@cgl.ucsf.edu> Date: Sunday, August 17, 2025 at 9:17 PM To: chimerax-users@cgl.ucsf.edu <chimerax-users@cgl.ucsf.edu> Cc: John P. Orban <jorban@umd.edu> Subject: [chimerax-users] Question Regarding Contacts Command in ChimeraX Hello, My name is Andrew Guo, an undergraduate at the University of Maryland College Park, doing research under Dr. John Orban with help from Dr. Andy LiWang from the University of California Merced, in the field of protein fold switching. Dr. LiWang recently used ChimeraX to calculate vdW contacts closer than 3.8 A between carbons in the context of a fold switching region in a small list of 26 "metamorphic" proteins (see here<https://doi.org/10.1073/pnas.2422725122>). I am now working on automating the whole process of calculating these contacts. In doing so, I have encountered a strange inconsistency that I do not know how to fix, and was hoping to gain some insight from the people who have developed ChimeraX. Previously, the overall contacts count was calculated by first calculating interdomain contacts then intradomain contacts and summing the two. It would be much simpler to calculate the contacts in one "whole" command instead of restricting the command to just interdomain or intradomain contacts. However, I have found that this "whole" command sometimes includes ligand contacts. For instance, for the pdb code 4O01A and region of interest residues 446-478, I have the following set of commands: interdomain: contacts /A:446-478@C* restrict /A:1-445,479-506@C* distance 3.8 reveal true name vdW output 13 intradomain: contacts /A:446-478@C* restrict /A:446-478@C* distance 3.8 reveal true name vdW output 8 "whole": contacts /A:446-478@C* restrict /A@C* distance 3.8 reveal true name vdW output 22 Obviously, 13 and 8 do not sum to 22. Ligand command: contacts /A:446-478@C* restrict ligand distance 3.8 reveal true name vdW This ligand command had an output of 1 and was the following: /A LEU 463 CD1 /A LBV 600 CMA (alt loc A) This contact was also the extra contact found in my "whole" command output, so I could just run the two commands (whole and ligand) and subtract the output of the ligand command from the output of the whole command. However, for the pdb code 3KMZA and region of interest residues 393-421, I have the following: interdomain: contacts /A:393-421@C* restrict /A:1-392@C* distance 3.8 reveal true name vdW output 0 intradomain: contacts /A:393-421@C* restrict /A:393-421@C* distance 3.8 reveal true name vdW output: 1 distances atom1 atom2 distance /A MET 400 CG /A GLU 401 C 3.788 "whole": contacts /A:393-421@C* restrict /A@C* distance 3.8 reveal true name vdW output: 1 distances atom1 atom2 distance /A MET 400 CG /A GLU 401 C 3.788 ligand: contacts /A:393-421@C* restrict ligand distance 3.8 reveal true name vdW output 6 1-6 = -5 contacts Using my method, I get -5. Clearly, this is bad. The ligand command gave these 6 contacts: 6 distances atom1 atom2 distance /A THR 397 CG2 /A GOL 3 O3 3.321 /A ARG 394 CD /A GOL 3 O2 3.411 /A ILE 396 CA /A GOL 3 O3 3.436 /A ILE 396 CG2 /A GOL 3 O2 3.667 /A ILE 396 C /A GOL 3 O3 3.703 /A ILE 396 CB /A GOL 3 O3 3.721 However, these contacts were not part of the output of the whole command, unlike in the case of 4O01A. Is there something I am doing wrong with how I am setting up my commands? Please let me know if further information is needed! Thank you, Andrew
participants (3)
-
Andrew Guo -
Elaine Meng -
Kevin M Jude