-
Hi, I have recently installed Graphein and I would like to start using it on a problem I have in mind. In files downloaded from PDB resolved by NMR, one has the hydrogen atoms resolved. Therefore, it's possible to know if, for example, an From the website, I see Graphein is capable of determining what kinds of interactions two different residues have (peptide backbone, H-Bonds, Disulphide, ionic…). If I'm not mistaken, this is done by calculating the distances, and perhaps angles, between atoms (please correct me if I'm wrong). Is it mandatory that residues have the standard labelling for this determination, or would Graphein correctly determine the interactions with non-standard labelling, as in the example I gave for Best, Marcos Verissimo Alves |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 1 reply
-
Hi @mverissi Great question! You are correct that these assignments are based on distances and angles. The answer is it depends and you'll need to look at the function definition to make that determination. If you look at the definition of say, H bonds, we can see that it simply depends on atom naming so these would be picked up. However, if we look at ionic interactions, these are determined (in part) based on residue labelling. However, it would actually be very straightforward to add support for e.g. Without making any changes to the Graphein source code (though I'd be super appreciative of a PR 😁), you could simply do something like: import graphein.protein as gp
gp.resi_atoms.IONIC_RESIS = ["ARG", "LYS", "HIS", "ASP", "GLU", "ASH"] # N.b. we have added "ASH"
gp.construct_graph(pdb_code="4hhb", edge_construction_functions = [gp.add_ionic_interactions]) |
Beta Was this translation helpful? Give feedback.
Hi @mverissi
Great question! You are correct that these assignments are based on distances and angles. The answer is it depends and you'll need to look at the function definition to make that determination.
If you look at the definition of say, H bonds, we can see that it simply depends on atom naming so these would be picked up.
However, if we look at ionic interactions, these are determined (in part) based on residue labelling.
However, it would actually be very straightforward to add support for e.g.
ASH
, you would simply need to add the relevant residue names to the lists in resi_atoms.py.Without making any changes to the Graphein source code (though I'd be super appreciative of a PR…