epam / epam/Indigo

Support Component and Mixture S-groups

Open
#3,773 0 comments 0 reactions 0 assignees View on GitHub
Draft
Dominant language
C++
Stars
406
Forks
134
Avg merge
2d 11h
Merged PRs (30d)
24

Description

**Background**
Add full support for Component, ordered Mixture and unordered Mixture S-groups in the Indigo data model and structure conversions.
Supporting Ketcher issue: https://github.com/epam/ketcher/issues/10459

**Requirements**

Indigo should support conversion between KET and MOL V2000 and V3000 formats and their variants, CDX, and CDXML.

KET

KET should support separate representations for:
Component
Mixture, ordered
Mixture, unordered

The S-group type, included atoms, and Component order, when specified, should be preserved. A Component without an order number should also be supported.

MOL V2000

The following S-group types should be supported:
COM — Component
FOR — Mixture, ordered
MIX — Mixture, unordered

Component order should be read from and written to M SNC.

MOL V3000

The following S-group types should be supported:
COM — Component
FOR — Mixture, ordered
MIX — Mixture, unordered

Component order should be read from and written to COMPNO.

CDX

Component, ordered Mixture, unordered Mixture, and Component order information should be converted to and from the corresponding KET representation.

CDXML

Component, ordered Mixture, unordered Mixture, and Component order information should be converted to and from the corresponding KET representation.

Conversion rules:
Component order should remain optional and be preserved when provided.
Ordered and unordered Mixtures should remain distinct.
A Mixture applied to multiple disconnected structures should remain one S-group.
If Component and Mixture S-groups are both present, both should be preserved.
Conversion should not change one supported S-group type into another.

PNG and SVG

Display the abbreviation outside the closing bracket, at its lower-right side:
Component without a component order — c
Component with component order N — cN, for example c1
Mixture, ordered — f
Mixture, unordered — mix

Render brackets for Component, ordered Mixture and unordered Mixture.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by locating the existing KET, MOL V2000/V3000, CDX, and CDXML conversion entry points, then find the PNG and SVG S-group rendering paths. Trace how S-group types, included atoms, and optional component order are represented. Done means all listed formats preserve Component, ordered Mixture, and unordered Mixture distinctions and the specified abbreviations and brackets render correctly.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
computer-graphics, data
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.