Support Component and Mixture S-groups
- 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