Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

missing link between _ihm_sphere_obj_site and _ihm_model_representation_details #107

Open
aozalevsky opened this issue Jul 3, 2024 · 3 comments

Comments

@aozalevsky
Copy link
Collaborator

In the scenario when a residue is represented on multiple scales simultaneously:

  1. martini-like (multiple beads per residue, by-feature)
  2. Ca (on bead per residue, 'by-residue`)

It's impossible to distinguish beads corresponding to those levels.

Part of the problem is that each bead maps only to chain + residue numbers. Thus, both martini-like and Ca bead maps to the same residue. By linking _ihm_sphere_obj_site -> _ihm_model_representation_details we can explicitly specify groups of beads, even if they correspond to the sub-residue levels.

Another side of this issue is that a bead resolution (like X residues per bead, or X beads per residue), which is a property of representation, can't be accessed from the _ihm_model_representation_details alone. In current examples, for instance, NPC (PDBDEV_00000012) one record from _ihm_model_representation_details :

15 1 2 Nup85 B 40 sphere . flexible by-feature 5

corresponds to a collection of 5 beads with different resolutions (from 6 to 10 residues per bead):

661 2 1 10 B 384.656 -36.334 194.513 5.750 . 1                                                                                                                                                                                                                                                                                
662 2 11 20 B 393.670 -56.265 193.917 5.750 . 1                                                                                                                                                                                                                                                                               
663 2 21 30 B 382.286 -63.889 194.476 5.750 . 1                                                                                                                                                                                                                                                                               
664 2 31 40 B 371.511 -70.143 196.024 5.750 . 1                                                                                                                                                                                                                                                                               
665 2 41 46 B 358.367 -59.733 188.068 4.931 . 1 

Thus, one has to read the table with actual coordinates to get accurate sizes (which are properties of representation).

@brindakv
Copy link
Collaborator

brindakv commented Jul 3, 2024

@aozalevsky ihm_sphere_obj_site is linked to ihm_model_representation_details via ihm_model_list and ihm_model_representation.

Multiple beads per residue in a single representation is not currently supported. On the other hand, multiple residues per bead is supported. If a residue or segment needs to be represented at different scales using different beads, they are identified via different representations.

@aozalevsky
Copy link
Collaborator Author

@brindakv, thanks for the feedback. I guess the most important thing is that

Multiple beads per residue in a single representation is not currently supported.

I wasn't aware of that. This is somewhat surprising because I was able to generate and then read such an example with python-ihm without any warnings or errors. At a glance, nothing in the by-feature definitions restricts that behavior.

About linking. To be more specific, _ihm_sphere_obj_site is linked to _ihm_model_representation_details indirectly and only at the sequence level (i.e. chain + residue numbers):

        _ihm_sphere_obj_site.entity_id
        _ihm_sphere_obj_site.seq_id_begin
        _ihm_sphere_obj_site.seq_id_end
        _ihm_sphere_obj_site.asym_id

can only be loosely matched to
_ihm_model_representation_details.entity_poly_segment_id, especially if there are multiple _ihm_model_representation_details rows covering the same segment. Moreover, _ihm_model_representation_details (at least in the current python-ihm implementation) doesn't guarantee the homogeneity of objects (for example, that all beads have the same size) in one segment.

@brindakv
Copy link
Collaborator

brindakv commented Jul 4, 2024

@aozalevsky Adding a reference to ihm_model_representation_details from ihm_sphere_obj_site will not solve the problem of incorrect residue/segment mapping between ihm_sphere_obj_site and ihm_model_representation_details.

One can still provide different residue/segment information in the two tables and it would still be valid according to dictionary definitions.

One way to enforce correct mapping is to add tooling and steps in the processing pipeline to check this explicitly. If we decide to go down this path, there are several other checks that need to be implemented as well.

Adding support for multiple beads per residue in a single representation will require a broader discussion and specific use cases that cannot be handled with current definitions.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants