epam / ketcher

Web-based molecule sketcher
https://lifescience.opensource.epam.com/ketcher/demo.html
Apache License 2.0
442 stars 159 forks source link

Support agents for rxn format #1698

Open dariasviridova opened 1 year ago

dariasviridova commented 1 year ago

As a Ketcher User I want to have reagent/condition information in "MDL rxnfile V2000"/'MDL rxnfile V3000' formats So that I have information how does reaction go and use this reaction information further (e.g. for analysis)

Business need:

Reagent - substance that can be added to mixture of reactants to trigger a chain of chemical reactions. Reagent is not consumed during chemical reaction. Chemical condition specifies the condition under which the reaction shall go (temperature, UV etc.). Reagent and condition are defined above or under the arrow and are considered as separate reaction participants. In rxn dormat specification reagent and conditions are united with entity agent.

Context:

There were several requests (https://github.com/epam/ketcher/issues/1523, https://github.com/epam/ketcher/issues/1404) from the End Users for supporting reagents in reaction in different file formats. For now User can add reagents and conditions simply by adding molecule/text above or below an arrow. However, system will not identify them as agent. To have full information about reaction to analyze and export it, system shall be able to identify agents as a separate entity.

Assumptions:

In scope Support reagent(s) only for "MDL rxnfile V2000"/'MDL rxnfile format V3000' formats

Out of the scope Validation of reagent(s) and warning messages for text-based agents.

Acceptance criteria: No User GIVEN WHEN THEN
1 Ketcher User User added arrow (any reagent arrow type) on canvas


AND User added molecule/text on canvas above/below an arrow (in the area bounded by perpendiculars passing through the end of the arrow)
User clicks on saving icon or uses a shortcut Ctr+C


AND User chooses "MDL rxnfile V2000"/'MDL rxnfile V3000' format from the 'File format' dropdown
System shall detect molecule/text as agent and write agent information in according to format specification* in "Preview" tab
Ketcher User User opened 'Open structure' tab
AND clicked on 'Paste from clipboard'
User pastes 'MDL rxnfile V2000'/'MDL rxnfile V3000' that contains agents information
AND clicks 'Add to Canvas' or 'Display as a New Project'
System shall display agents information on canvas according to 'MDL rxnfile V2000'/'MDL rxnfile V3000' format specification
Ketcher user User opened 'Open structure' tab
AND clicked on 'Open from file'
User chooses 'MDL rxnfile V2000'/'MDL rxnfile V3000' that contains agents information
AND clicks 'Add to Canvas' or 'Display as a New Project'
System shall display agents information on canvas according to format specification

rxn specification_

  1. A reaction file consists of a REACTANT block, a PRODUCT block, and (optionally) an AGENT block. Reaction files containing reaction agents are non-standard. The number of agents is displayed in the file header (after the number of reactants and the number of products) if it is non-zero. The additional block with agent(s) is presented.

example of 'MDL rxnfile V2000'

2022-08-24_16h09_58

example of 'MDL rxnfile V3000'

2022-08-30_13h22_01

1.1 MDL rxnfile V2000/MDL rxnfile V3000 does not support text elements. Text element is lost when file is converted to MDL rxnfile V2000/MDL rxnfile V3000

  1. MDL rxnfile V2000/MDL rxnfile V3000 do not support multistep reactions. When User adds more than one arrow on canvas, User shall not be able to save file in MDL rxnfile V2000/MDL rxnfile V3000 (as is).
Pandaaaa906 commented 1 year ago

I fork and wrote a branch about this issue

https://github.com/Pandaaaa906/ketcher/tree/%231698_support_agents_for_rxn_format