
Dear Kenshiro Tabata, I see a couple of issues with your approach: (1) you are not considering the electrostatic characteristics of the polar interactions. Even if there is a good contact distance between two atoms, they may be electrostatically repulsive and thus unfavorable if both are negatively charged or both are positively charged. So you may want to run "hbonds" to get favorable polar interactions, which are primarily H-bonding. <https://rbvi.ucsf.edu/chimerax/docs/user/commands/hbonds.html> (2) it is not just the VDW overlap cutoff that is different for the "contacts" and "clashes" calculations, but also the "hbAllowance" which is default 0.4 for clashes. This is to allow H-bonding atom pairs to come closer than otherwise expected because of their favorable H-bonding, without being counted as a clash. Your understanding is basically correct, except for this small modification. The "hbAllowance" is explained here: <https://rbvi.ucsf.edu/chimerax/docs/user/commands/clashes.html#hbondAllowanc...> It may not be necessary to run both "contacts" and "clashes" (which are the same except for those two distance-related parameters). Instead we suggest running only a contacts calculation and then filtering the out the clashing results by the overlap value. The overlap cutoff value of 0 in your command is rather restrictive, you may want to allow a small positive to allow for flexibility, but that is your choice. However, since (1) above already includes the favorable polar results, you may want to restrict the contacts calculation to only nonpolar atoms. It is a judgment call how you want to define nonpolar atoms, but some possibilities are: - carbon atoms only, e.g. specified in command line as C - alpha-carbons + sidechains of nonpolar amino acids (another judment call as to which ones you include), for example specified in command line as (sidechain & :ala,val,leu,ile,phe,trp) <https://rbvi.ucsf.edu/chimerax/docs/user/commands/atomspec.html#builtin> If you only include nonpolar atoms in the contacts calculation the hbAllowance parameter is irrelevant. So your command could be something like contacts C overlapCutoff -0.4 saveFile all_contacts.txt - OR - contacts (sidechain & :ala,val,leu,ile,phe,trp) overlapCutoff -0.4 saveFile all_contacts.txt However, if you were still planning to include all kinds of atoms in the contacts calculation, including polar, you should probably run with hbAllowance 0.4, e.g. contacts overlapCutoff -0.4 hbAllowance 0.4 saveFile all_contacts.txt After you run the contacts calculation, then you'd edit all_contacts.txt and deletel the rows that have overlap greater than what you want to consider favorable before reformatting into a pb file. I hope this helps, Elaine ----- Elaine C. Meng, Ph.D. UCSF Chimera(X) team Department of Pharmaceutical Chemistry University of California, San Francisco
On Mar 6, 2025, at 9:31 AM, 田畑 健士郎 via ChimeraX-users <chimerax-users@cgl.ucsf.edu> wrote:
Subject: Inquiry About Favorable Contacts and Display Methods in ChimeraX Dear ChimeraX Developers, My name is Kenshiro Tabata. I hope this email finds you well. I am currently using ChimeraX to analyze the effects of point mutations on protein structure, particularly in cases where a larger side chain (e.g., methionine) is replaced by a smaller one (e.g., valine). In such cases, I expect that interactions with the opposing amino acids may be reduced due to the decreased side-chain volume. To investigate this, I would like to ask for your guidance regarding the interpretation and visualization of favorable contacts.1) Understanding Favorable Contacts I understand that the contacts command identifies all types of interactions, whereas the clashes command detects only unfavorable interactions. Based on this, I interpreted the positive VDW overlap as indicating unfavorable (repulsive) interactions, while an overlap between 0 and -0.4 represents favorable (attractive) interactions. Could you confirm if this understanding is correct?2) Best Approach for Displaying Only Favorable Contacts To analyze how the mutation affects interactions, I would like to display only favorable contacts. Below is the approach I have considered: Proposed Approach • Retrieve all interactions (favorable, neutral, and unfavorable) using the contacts commandcontacts overlapCutoff -0.4 saveFile all_contacts.txt
• Retrieve only neutral and unfavorable interactionscontacts overlapCutoff 0 saveFile non_favorable_contacts.txt
• Compute the difference between these two sets using Python, extract only favorable contacts, and format them into a ChimeraX pseudobond file# File paths all_contacts_path = "all_contacts.txt" non_favorable_contacts_path = "non_favorable_contacts.txt" favorable_contacts_path = "favorable_contacts.pb"
# Read files with open(all_contacts_path, "r") as f: all_contacts = set(f.readlines())
with open(non_favorable_contacts_path, "r") as f: non_favorable_contacts = set(f.readlines())
# Extract favorable contacts favorable_contacts = all_contacts - non_favorable_contacts
# Convert to ChimeraX pseudobond file format with open(favorable_contacts_path, "w") as f: f.write("; Pseudobond file for favorable contacts\n") f.write("; radius = 0.1\n; color = green\n; dashes = 6\n") for line in favorable_contacts: parts = line.strip().split() if len(parts) >= 4: atom1 = f"/{parts[0]}:{parts[1]}@{parts[2]}" atom2 = f"/{parts[3]}:{parts[4]}@{parts[5]}" f.write(f"{atom1} {atom2}\n")
• Load the extracted favorable contacts into ChimeraX for visualizationopen favorable_contacts.pb
Would this be an appropriate approach? Alternatively, is there a simpler or more precise way to achieve this in ChimeraX? I appreciate your time and assistance, and I look forward to your advice. Best regards, Kenshiro Tabata _______________________________________________ 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/