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

Update the representation of sense and antisense chains in sequence mode (2/2) #6254

Open
ljubica-milovic opened this issue Jan 10, 2025 · 0 comments
Labels
feature request Hydrogen bonds Bucket: Bugs related to Hydrogen bonds Sequence mode Bucket: Sequence mode related issues

Comments

@ljubica-milovic
Copy link
Collaborator

ljubica-milovic commented Jan 10, 2025

Background

Continuation of the ticket from the previous release: #5942

Summary of differences between editing both chains and editing one chain

image

Removing/adding H-bonds

1.1. Right clicking on a symbol that has no hydrogen bonds with a symbol bellow/above it, should give the option to "Establish Hydrogen Bonds". If a symbol has H-bonds with a symbol opposite it, or there is no monomer opposite it, the option should be disabled.

A hydrogen bond should be established between the monomer that was clicked on and the monomer placed bellow/above it.
"Establish Hydrogen Bonds" is disabled if any of the symbols (the one that was clicked on, or the one opposite it) is the @ symbol representing multiple monomers.
If the symbol represents a nucleotide/nucleoside, a hydrogen bond should be established from the base (no need for a "sense base" check).

1.2. Right licking on a symbol that has any H-bonds should give the option to "Delete Hydrogen Bonds". If there are no H-bonds, the option should be disabled.

All hydrogen bonds from monomers that symbol represents should be deleted.

1.3. If multiple monomers/symbols are selected and at least one of them does not have hydrogen bonds established with the monomer/symbol above/bellow it the option "Establish Hydrogen Bonds" should be available from the r-click menu. If all symbols have H-bonds, the option should be disabled.

"Establish Hydrogen Bonds" is disabled if any of the symbols that do not have H-bonds already with the symbols opposite them are the @ symbol representing multiple monomers.
For all monomers/symbols that do not have H-bonds with their pairs, a H-bond should be established (if the symbols represent nucleotides/nucleotides, an H-bond comes from the base).
Edge case example:
image
image
If all symbols are selected the option "Establish Hydrogen Bonds" should be enabled, because no H-bond will be established with the CHEMs (the @ symbol already has an H-bond with the symbol bellow), but just between nucleotides/nucleosides:
image
image

1.4. If multiple monomers are selected, and any of them have hydrogen bonds, the option "Delete Hydrogen Bonds" should be available in the r-click menu. If no selected symbols have H-bonds, the option should be disabled.

All hydrogen bonds that the selected monomers have should be deleted.

1.5. If all hydrogen bonds between two chains are deleted, the user should get a warning message with the title "Deletion of all Hydrogen Bonds", and the text: "Deleting all hydrogen bonds will cause the separation of two chains. Do you wish to proceed?", and options "Cancel" (default) and "Continue".

When all H-bonds are deleted, the chain(s) that used to be placed bellow should be placed bellow the chain that was on top, one bellow the other starting from the chain on the left:
image
Remove all H-bonds for the first pair of sense and antisense:
image
This can happen by individually deleting H-bonds, deleting all H-bonds at once, or by deleting all monomers that have H-bonds.


Editing both chains

  1. If a line break (enter) is added, both backbone chains should be broken.

image
image


Editing one chain

  1. When in view mode, right clicking on any monomer in a double stranded chain should give the options to "Edit One Strand" and "Edit Both Strands", and the option "Edit Sequence" should be removed

3.1. "Edit Both Strands" mode logic is described in requirements 6. "Edit One Strand" mode is described bellow.

3.2. It should be obvious to the user that they are editing only one side of the sense/antisense duplex (see mockups).

The other chain(s) (the one(s) not being edited) should be dimmed.
The user is able to change the chain being edited by pressing up and down keys on the keyboard.
Editing both chains:
image
Editing one chain:
image

3.3. If a monomer/symbol is added to one chain (not to the left of a line), it should have no impact on the other chain (other than extending the backbone (adding lines) if there is a backbone in that place to accommodate the added monomers).

image
image
image
Establishment of backbone connections follows the same logic as for editing both chains, but just looking at positions around the caret for the chain being edited. If there is a monomer to the left, establish a backbone to the left, if there is one to the right establish a backbone to the right. No monomer is added to the other chain, and no new backbone needs to be established there.

3.4. If a monomer/symbol is added to one chain (to the left of a line), that line is replaced with the newly added monomer.

image
If there happens to be a monomer bellow the newly added monomer, no hydrogen bonds should be established automatically.

3.5. The lines can only be added left of a gap. When the user exits "Edit" mode, if the line(s) do not connect monomer symbols, all lines should be deleted. If the lines(s) connect monomer symbols, a new backbone should be established.

image
image

3.6. If a symbol is deleted on the chain, it should be replaced with a line. If a line is deleted on the chain, the backbone should be broken.

image

3.7. If a line break is added, only one chain backbone is broken.

image

3.8. The logic for updating (select and replace from the library) and modifying (RNA builder) monomers is the same as for editing both chains (requirement 6.6.) - the change does not impact the other chain.

Changing editing mode

4.1. While editing the chain(s) there should be an easy way to change editing mode (one strand vs both strands) (see mockups).

When the user hovers over the space above the caret, they should see an icon, that when clicked, will change the editing mode.
The icon should only be visible on hover over that area.
image

4.2.

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 Sequence mode Bucket: Sequence mode related issues
Projects
None yet
Development

No branches or pull requests

1 participant