Support for Markush bonds
- Dominant language
- C++
- Stars
- 406
- Forks
- 134
- Avg merge
- 2d 11h
- Merged PRs (30d)
- 24
Description
**Background**
A Markush bond is a bond between a specific atom and one atom in a group of possible atoms.
A haptic bond also involves a group of atoms, but it represents a connection to all the atoms in a group. This distinction is important because Markush and haptic bonds can look similar in formats, but they do not represent the same case.
---
An SVG/PNG render ticket should be written in the future to complete Indigo's support for Markush bonds.
Ketcher ticket TBD.
---
**Requirement**
1. Indigo should support conversion between KET and MOL V3000 (and variants), CDX, and CDXML.
**MOL V3000**
MOL V3000 supports Markush bonds through multiple bond endpoints.
According to the CTfile specification, ENDPTS defines multiple endpoints for a bond. The same specification defines two attachment modes: ANY for one-to-any attachment and ALL for one-to-all attachment.
For Markush bonds, the relevant representation is:
ENDPTS=(...)
ATTACH=ANY
For haptic bonds, the relevant representation is:
ENDPTS=(...)
ATTACH=ALL
**CDX**
CDX is a ChemDraw binary format. For this analysis, the relevant point is that CDX can contain variable attachment and multi-center attachment information. Variable attachment is the relevant case for Markush bonds, while multi-center attachment is relevant for haptic bonds.
**CDXML**
CDXML is a ChemDraw XML format. As with CDX, the relevant cases for this analysis are variable attachment and multi-center attachment. Variable attachment should be treated as the Markush bond case, while multi-center attachment should be treated separately as the haptic bond case.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by tracing Indigo’s existing conversion paths for KET, MOL V3000, CDX, and CDXML, then compare how those paths represent Markush and haptic bonds. Use the CTfile ENDPTS and ATTACH=ANY/ALL distinctions and the CDX/CDXML variable-attachment cases as the requirements; done means the specified formats convert Markush bonds without conflating them with haptic bonds.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- tooling
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100