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

Introduce hydrogen bonds in macromolecules mode #5403

Closed
ljubica-milovic opened this issue Aug 30, 2024 · 1 comment · Fixed by #5843
Closed

Introduce hydrogen bonds in macromolecules mode #5403

ljubica-milovic opened this issue Aug 30, 2024 · 1 comment · Fixed by #5843
Assignees
Labels
feature request Hydrogen bonds Bucket: Bugs related to Hydrogen bonds Macromolecules Test Cases Written Test cases has been written for that issue

Comments

@ljubica-milovic
Copy link
Collaborator

ljubica-milovic commented Aug 30, 2024

Background
It is hard to overestimate the importance of hydrogen bonds in macromolecules. They are crucial for the stability and function of macromolecules, and their existence allows the life to function as it does.

Proteins Nucleic acids
Primary structure Linear sequence of amino acids linked by peptide bonds (R1-R2) Linear sequence of nucleotides, linked by phosphodiester bonds (R1-R2 sugar-phosphate)
Secondary structure Local folding patterns like alpha helices and beta sheets, stabilized by hydrogen bonds Local nucleotide interactions like the double helix of DNA and hairpin loops of RNA, stabilized by hydrogen bonds of complementary nucleotides
Tertiary structure Overall 3D structure of a single polypeptide chain, stabilized by disulfide bridges (R3-R3 cysteine-cysteine), salt bridges, hydrophilic/phobic interactions, and hydrogen bonds Overall 3D structure of a single nucleotide chain, stabilized by ionic interactions, hydrophilic/phobic interactions, base stacking, and hydrogen bonds
Quaternary structure Interactions between multiple polypeptide chains, stabilized by, among other interactions, hydrogen bonds Interactions between multiple nucleic acid chains and/or polypeptide chains, stabilized by, among other interactions, hydrogen bonds

For these reasons, it is very important to introduce hydrogen bonds in Ketcher. Users will be able to represent macromolecules with a higher level of detail and precision.

Requirements

  1. User should be able to save macromolecules structures with hydrogen bonds to a .ket file.

  2. User should be able to load macromolecules structures with hydrogen bonds from a .ket file.

  3. The user should be able to select "Hydrogen Bond" from the bond menu in the sidebar (the same behavior like in micromolecules mode).

  4. User is able to establish hydrogen bonds between any two monomers who are not connected via a single bond.
    4.1. Hydrogen bonds do not require attachment points - they are ambiguous connections.
    4.2. Only one hydrogen bond is allowed to be established between two monomers.
    4.2.1. If the user tries to establish a hydrogen bond between two monomers who already have a hydrogen bond, they should get an error message: "Unable to establish multiple hydrogen bonds between two monomers".
    4.2.2. If the user tires to establish a hydrogen bond between two monomers who are connected via a single bond, they should get an error message: "Unbale to establish a hydrogen bond between two monomers connected with a single bond".
    4.3. Hydrogen bonds should be treated as side-chain connections for layout purposes.

  5. Unlike single bonds, there should not be a "Edit Connection Points" dialogue for hydrogen bonds, or a bond preview.
    5.1. Hovering over the hydrogen bond should result only in highlighting of the hydrogen bond and the monomers, excluding the attachment points of those monomers.

For example: a hydrogen bond is between two bases -> hovering over the hydrogen bond should highlight the bond (single bond used for the exmple)
image
and the highlight of the monomer
image

  1. When switching from macromolecules mode (where there are hydrogen bonds) to small molecules mode, and one of the monomers gets expanded, the hydrogen bond should temporarily disappear (switching back to macromolecules mode, the hydrogen bond should still be there).

  2. User shouldn't be able to establish hydrogen bonds with small molecules in macromolecules mode (both between two small molecules and between a small molecule and a monomer).

Many functionalities covered by requirements 4, 5, 6 and 7 will be amended later. This is just the introduction of hydrogen bonds and in the simplest way that still makes sense.
First ticket that will ament certain behaviors descried here (the layouting): #5712

UX
TBD

@ljubica-milovic ljubica-milovic added this to the Refined Backlog milestone Aug 30, 2024
@ljubica-milovic ljubica-milovic added the Hydrogen bonds Bucket: Bugs related to Hydrogen bonds label Sep 20, 2024
@rrodionov91 rrodionov91 self-assigned this Oct 16, 2024
@rrodionov91 rrodionov91 linked a pull request Oct 22, 2024 that will close this issue
9 tasks
@Zhirnoff Zhirnoff added the Test Cases Written Test cases has been written for that issue label Oct 23, 2024
rrodionov91 added a commit that referenced this issue Oct 28, 2024
- created BaseBond for PolymerBond and MonomerToAtomBond.
- added hydrogen bond renderer
- added hydrogen bonds serialization/deserialization and displaying in sequence and molecules modes
- added hiding of hydrogen bonds for expanded monomers
@AlexeyGirin
Copy link
Collaborator

Verified.

  • Ketcher Version 2.27.0-rc.1 Build at 2024-11-05; 14:55:18
  • Indigo Toolkit Version 1.26.0-rc.1.0-g904d2d992-wasm32-wasm-clang-19.0.0
  • Chrome Version 130.0.6723.117 (Official Build) (64-bit)
  • Win10

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature request Hydrogen bonds Bucket: Bugs related to Hydrogen bonds Macromolecules Test Cases Written Test cases has been written for that issue
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants