chemosim-lab / ProLIF

Interaction Fingerprints for protein-ligand complexes and more
https://prolif.readthedocs.io
Apache License 2.0
361 stars 68 forks source link

New interaction (Backbone NH-Pi ) #158

Closed DipBobDar closed 1 year ago

DipBobDar commented 1 year ago

Dear all,

Can you replace the cation in cation="[+{1-},$([NX3&!$([NX3]-O)]-[C]=[NX3+])]" with NH from the protein backbone and look for the interaction with any of the pi systems.

Could you may be give me a SMART for such and also is this the only place where the Cation is being initialized.

Thanks in advance for your help

cbouy commented 1 year ago

You can have a look at this tutorial on defining new interactions. In the way ProLIF names the interaction classes, if I understand correctly the interaction you'd need to inherit from would be the PiCation one (i.e. the "ligand" is the pi-system and the "protein" is the cation). As for the SMARTS, there's one suggested in the tutorial on ignoring the backbone, you'd need to modify it so that the nitrogen is the first atom appearing in the SMARTS pattern, something like [$([N;+0](-[H])-[C;X4]-[C^2]=O)]

Putting all of this together, you'd get:

class PiBackboneNH(plf.interactions.PiCation):
    def __init__(self):
        super().__init__(cation="[$([N;+0](-[H])-[C;X4]-[C^2]=O)]")

fp = plf.Fingerprint(interactions=["PiBackboneNH", <insert any other interaction here>])
DipBobDar commented 1 year ago

Thanks for your suggestion.

I wanted to check intramolecular interaction in a peptide and was initerested in the hbond-pi interactions between N-H in the peptide bond and pi-system residues like Tyr, Phe, Trp. Is it possible to use the existing format to do this or I need to do something else.

Thanks in advance.