Hi, Jarrett

This is more than helpful! I just need to fix my own mistake in the selection

cmd.select(base_interface, "byres((not (/base//H+L) & base) within 10 of 
/base//H+L)")

Maybe one more question:

Selection: “not (/base//H+L)” returns all residues in pred, as well as the P 
chain of base. I understand this.
However, why “not /base//H+L” returns an empty selection?

Thanks!

From: Jarrett Johnson <jarrett.john...@schrodinger.com>
Sent: Thursday, June 29, 2023 6:31 AM
To: Zhou, Yingyao <yingyao.z...@novartis.com>
Cc: pymol-users@lists.sourceforge.net
Subject: Re: [PyMOL] Help with selecting interface residues between two 
structures


This Message is from an External Sender. Do not click links or open attachments 
unless you trust the sender.
Hi,

There might be a cleaner way to do this, but I propose creating a mapping of 
your chains from base to pred and use the `iterate` command to get the relevant 
identifiers and map them back to the prediction. Here is a full script that 
pulls from the PDB that attempts this idea.

from pymol
import cmd



# our reference

cmd.fetch('3hfm',
'base')

# dummy prediction

cmd.copy('pred',
'base')



# Heavy & Light chains in 3hfm are named L and H

# Antigen is Y so lets rename to A to simulate your case

cmd.alter('base & chain Y',
'chain="A"')



# change chain to emulate same residues different chain names

cmd.alter('pred & chain L',
'chain="A"')

cmd.alter('pred & chain H',
'chain="B"')

cmd.alter('pred & chain Y',
'chain="C"')



base_interface
= 'int_base'

cmd.select(base_interface,
'byres(base & (/base//H+L around 5))')



# After preparation:

# create a mapping of chains from base to pred

base_to_pred_chains
= {'L':
'A', 'H':
'B', 'A':
'C'}



# Create a list of identifiers in the interface from the selection

myspace
= {'int_set':
set()}

cmd.iterate(base_interface,
'int_set.add((chain, resi, resn))', space=myspace)



# Map them to a new selection onto the prediction

pred_interface
= 'int_pred'

cmd.select(pred_interface,
'none')

for
chain, resi,
resn in
myspace['int_set']:

    new_chain
= base_to_pred_chains[chain]

    # Add each pred residue to the selection

    cmd.select(pred_interface,

               f'pred & chain
{new_chain} & resi
{resi} & resn
{resn}',

               merge=1)


Hope that helps,
Jarrett J

On Thu, Jun 29, 2023 at 12:59 AM Zhou, Yingyao via PyMOL-users 
<pymol-users@lists.sourceforge.net<mailto:pymol-users@lists.sourceforge.net>> 
wrote:
I am a relatively new PyMOL user and would like to get some helps from the 
community.

I have two structures for the same antibody-antigen complex (with three chains: 
light chain L, heavy chain H, and an antigen chain A) .
Structure “base” is the experimental true structure, structure “pred” is the 
predicted structure. My goal is to determine how close the predicted interface 
is w.r.t. the experimental truth.

I first select the interface residues as defined by “base”

load base.pdb
load pred.pdb
select int_base, byres(base & (/base//H+L around 5))

How do I select the same corresponding residues in object “pred”?

In addition, what if in the pred structure, chains are named A, B, and C, 
corresponding to base structure L, H, A, respectively, how will I handle that?
(I was planning to rename the chains, if there is no nice trick to transfer the 
selections from base to pred)

Thanks!


_______________________________________________
PyMOL-users mailing list
Archives: 
http://www.mail-archive.com/pymol-users@lists.sourceforge.net<https://urldefense.com/v3/__http:/www.mail-archive.com/pymol-users@lists.sourceforge.net__;!!N3hqHg43uw!uwuPjMkMmShRv1H1Jo8JrmQlENOxFP1gKBxnxcRRsC88x9H66HcFQraBUdeu6fLNY9VT93bLYvg85UTGJumvXasRnMHv7MUuixo$>
Unsubscribe: 
https://sourceforge.net/projects/pymol/lists/pymol-users/unsubscribe<https://urldefense.com/v3/__https:/sourceforge.net/projects/pymol/lists/pymol-users/unsubscribe__;!!N3hqHg43uw!uwuPjMkMmShRv1H1Jo8JrmQlENOxFP1gKBxnxcRRsC88x9H66HcFQraBUdeu6fLNY9VT93bLYvg85UTGJumvXasRnMHvo8xE8pg$>


--

Jarrett Johnson | Senior Developer, PyMOL
[https://drive.google.com/uc?id=1zOlB9fluGZyuInRUQgKsdjtjpR5L9z6R&export=download]

_______________________________________________
PyMOL-users mailing list
Archives: http://www.mail-archive.com/pymol-users@lists.sourceforge.net
Unsubscribe: 
https://sourceforge.net/projects/pymol/lists/pymol-users/unsubscribe

Reply via email to