
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 1. Retrieve all interactions (favorable, neutral, and unfavorable) using the contacts command contacts overlapCutoff -0.4 saveFile all_contacts.txt 2. Retrieve only neutral and unfavorable interactions contacts overlapCutoff 0 saveFile non_favorable_contacts.txt 3. 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") 4. Load the extracted favorable contacts into ChimeraX for visualization open 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