Skip to content

Commit

Permalink
#4307 - Macro: Migrate Monomer library from MOL V2K to KET format (#4542
Browse files Browse the repository at this point in the history
)

- fixed performance issue with monomer library conversion
- removed connections from monomer group templates
- fixed keys of monomer group templates

Co-authored-by: Roman Rodionov <[email protected]>
  • Loading branch information
rrodionov91 and rrodionov91 authored Apr 26, 2024
1 parent 65a15fa commit 9e93a0e
Show file tree
Hide file tree
Showing 4 changed files with 37 additions and 280 deletions.
42 changes: 17 additions & 25 deletions packages/ketcher-core/src/application/editor/Editor.ts
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,6 @@ import {
import { BaseMode } from 'application/editor/modes/internal';
import assert from 'assert';
import { BaseSequenceItemRenderer } from 'application/render/renderers/sequence/BaseSequenceItemRenderer';
import { groupBy } from 'lodash';
import { SequenceRenderer } from 'application/render/renderers/sequence/SequenceRenderer';
import {
IKetMacromoleculesContent,
Expand Down Expand Up @@ -65,7 +64,8 @@ export class CoreEditor {
public drawingEntitiesManager: DrawingEntitiesManager;
public lastCursorPosition: Vec2 = new Vec2(0, 0);
public lastCursorPositionOfCanvas: Vec2 = new Vec2(0, 0);
private _monomersLibraryJson?: IKetMacromoleculesContent;
private _monomersLibraryParsedJson?: IKetMacromoleculesContent;
private _monomersLibrary: MonomerItemType[] = [];
public canvas: SVGSVGElement;
public canvasOffset: DOMRect;
public theme;
Expand All @@ -86,7 +86,8 @@ export class CoreEditor {
this.canvas = canvas;
resetEditorEvents();
this.events = editorEvents;
this._monomersLibraryJson = JSON.parse(monomersDataRaw);
this.setMonomersLibrary(monomersDataRaw);
this._monomersLibraryParsedJson = JSON.parse(monomersDataRaw);
this.subscribeEvents();
this.renderersContainer = new RenderersManager({ theme });
this.drawingEntitiesManager = new DrawingEntitiesManager();
Expand All @@ -107,34 +108,25 @@ export class CoreEditor {
return editor;
}

public get monomersLibraryJson() {
return this._monomersLibraryJson;
}

public get monomersLibrary() {
if (!this.monomersLibraryJson) {
return [];
}

private setMonomersLibrary(monomersDataRaw: string) {
const monomersLibraryParsedJson = JSON.parse(monomersDataRaw);
this._monomersLibraryParsedJson = monomersLibraryParsedJson;
const serializer = new KetSerializer();
this._monomersLibrary = serializer.convertMonomersLibrary(
monomersLibraryParsedJson,
);
}

return serializer.convertMonomersLibrary(this.monomersLibraryJson);
public get monomersLibraryParsedJson() {
return this._monomersLibraryParsedJson;
}

public get monomersLibraryGroupedByType() {
return groupBy(
this.monomersLibrary.map((libraryItem) => {
return {
...libraryItem,
label: libraryItem.props.MonomerName,
};
}),
(libraryItem) => libraryItem.props.MonomerType,
);
public get monomersLibrary() {
return this._monomersLibrary;
}

public get defaultRnaPresetsLibraryItems() {
const monomersLibraryJson = this.monomersLibraryJson;
const monomersLibraryJson = this.monomersLibraryParsedJson;

if (!monomersLibraryJson) {
return [];
Expand Down Expand Up @@ -531,7 +523,7 @@ export class CoreEditor {

ketcher.editor.setMacromoleculeConvertionError(conversionErrorMessage);
}
this._monomersLibraryJson = undefined;
this._monomersLibraryParsedJson = undefined;
}

private switchToMacromolecules() {
Expand Down
Loading

0 comments on commit 9e93a0e

Please sign in to comment.