Chemaxon Object Notation - CXON

    Code: cxon

    Chemaxon Object Notation (CXON [sɪksɒn]) is a Chemaxon specific JSON representation for chemical documents.

    About the format

    The CXON file format is primarily designed to support web based transfer of chemical documents. CXON files can store both chemical (explicit molelcules, Markush structures, chemical reactions) and graphical content (visual properties, graphical objects, formatted text boxes, etc.).

    Main characteristics:

    • A CXON document is a well formed JSON
    • The applied standards were chosen to support the matching of the content to web-based technologies, e.g. HTML color-codes are used to represent colors or the standard SVG Path is used to store graphical paths
    • A CXON document can be easily inserted in REST payloads as is
    • CXON can be used with JSON.stringify and JSON.parse natively in JavaScript

    Schema

    The CXON format has a JSON Schema descriptor. The all-time latest CXON schema specification can be accessed here.

    Document Structure

    ChemicalDocument

    Chemaxon specific JSON representation of a chemical document.

    Fields

    field type description
    $schema string The url for the schema the CXON file is compliant with.
    $version string The version of the CXON schema (e.g.: 1.0.0-beta).
    title string The title of the entire chemical document.
    comment string? Comment for the chemical document.
    molecules Molecule[] List of the simple Molecules in the document. Reaction and Markush components are handled separately.
    reactions Reaction[] List of chemical Reactions in the document.
    markushStructures MarkushStructure[] List of Markush structures in the document.
    graphicalObjects (Arrow | Bracket | Ellipse | Image | Path | Rectangle | TextBox | PlusSign | GraphicalArc)[]? List of graphical objects in the document.
    displayProperties DisplayProperties? Object to hold all display related properties, such as visibility options, rendering hints, or graphical statuses.
    properties ExtraProperties? Key-value pairs of additional custom properties.

    Molecule

    A simple chemical structure. Can be listed in the document as is, or defined as an entity in a Reaction or Markush structure.

    Fields

    field type description
    id string Reference id of this object. Should be unique for the entire document.
    nature MoleculeNature Logical property of the molecule, marking its type from cheminformatical point of view. PLAIN is for regular molecules, NO_STRUCTURE for placeholder molecule for search purposes.
    chiralityInterpretation MoleculeChiralityInterpretation? Describes how this molecule should be interpreted regarding chirality. Default is UNKNOWN. If ABSOLUTE value is set, this molecule describes one specific enantiomer. If UNKNOWN value is set, the chirality is unknown, it can represent any of the enantiomers or their mixture.
    atoms Atom[] The list of the Atoms in this molecule.
    bonds Bond[] The list of the Bonds in this molecule.
    groups (Abbreviation)[] The list of the Groups in this molecule.
    properties ExtraProperties? Key-value pairs of additional custom properties.

    Abbreviation

    An abbreviation group. These groups can be represented with their structure it self, or by a placeholder atom.

    Fields

    field type description
    id string Reference id of this group. Should be unique for the entire document
    type AbbreviationType Type of this Group. Use AMINO_ACID for aminoacids, and ABBREVIATION for all other.
    name string The name of this Group. In case of abbreviation this is the default label for the placeholder.
    location Location? The coordinate of this Group. This location should be used if the group is contracted. If omitted, it should be considered as (0;0;0).
    atoms string[] The reference ids of the Atoms in this Group.
    bonds string[]? The reference ids of the Bonds in this Group.
    attachmentPoints AttachmentPoint[]? The AttachmentPoints of this group.

    AttachmentPoint

    AttachmentPoint descriptor object. Describes a site in this Group on which it can bond with other substances. It has an order which can have conventional meaning, such as in case of amino acids the amid bonds are formed from one amino acid's 2nd AttachmentPoint to another's 1st AttachmentPoint.

    Fields

    field type description
    atom string? The reference id of the Atom that serves as the site of chemical bonding with other substances.
    order number? The unique order of the AttachmentPoint. The AttachmentPoint orders in a Group should be a sequential set of positive integers starting from 1.

    Reaction

    A chemical Reaction. Only single step reactions are supported.

    Fields

    field type description
    id string Reference id of this object. Should be unique for the entire document
    direction ReactionDirection? The direction of the reaction. If omitted, the reaction direction is FORWARD
    reactants Molecule[] The list of the reactants of the reaction.
    agents Molecule[] The list of the agents of the reaction.
    products Molecule[] The list of the products of the reaction.

    MarkushStructure

    A Markush structure object. A Markush structure is defined by a scaffold, a list of Definitions and an optional Logic to describe extra rules for Definition substitutions.

    Fields

    field type description
    id string? Reference id of this object. Should be unique for the entire document.
    scaffold (Molecule | Reaction)? The scaffold (root structure) of this Markush.
    definitions Definitions[]? The list of the variable Definitions for this Markush.
    logic Logic[]? The extra rules for the Definiton substitutions

    Definitions

    Markush Definitons is a list of alternatives the R-atoms can be substituted with.

    Fields

    field type description
    name string? The name of the definition. Usually the label of the corresponding R-atom. Functions as an id as well, so it has to be unique within this Markush structure.
    alternatives Molecule[]? The applicable alternatives for this definition. This definition can be substituted with any of these alternatives.

    Logic

    The extra rules for the Definiton substitutions

    Fields

    field type description
    targetDefinition string? The name of the Definition this logic defined for.
    occurenceCount string? The desired substitution count of the target Definition as a string. The value represents either an exact count or an open or closed range.
    restH boolean? This Logic triggers if and only if all substitutions of the R-atoms of the scaffold are either an alternative from the target or a Hydrogen atom.
    thenDefinition string? Makes this Logic an if-then type conditional Logic and specifies the then-definition name.

    Atom

    An atom object. Basic building block of molecule objects. Either can be a natural chemical element, or a logical placeholder for custom entities, such as groups attachment points, query entities or Markush atoms.

    Fields

    field type description
    id string Reference id of this object. Should be unique for the entire document
    symbol string The symbol of this Atom, that is the chemical symbol of a natural element, or the symbol of a logical atom.
    homology string? homology group, represented as a string
    atomList string? atom list, represented as a string. E.g. '[F,Cl]' or '![Na,Mg,Ca]'
    rGroupRef string? Definition of the R group
    alias string? A custom label to override the label of this Atom in some cases.
    charge number? The electrical charge (formal charge) of this Atom as a signed integer. Should be omitted for uncharged Atoms.
    isotope number? The isotopical mass (sum of the count of protons and count of neutrons in the nucleus) of this Atom as a positive integer.
    location Location? The coordinate of this Atom. If omitted, it should be considered as (0;0;0).
    mapping number? Atom-to-Atom mapping index: correspondence of Atoms in different structures. Do not confuse with numbering, which is a dynamic, calculated value, stored as the name of the numbering algorithm for the entire document.
    radical AtomRadical? Free radical value of the Atom.
    stereo Stereo? The stereochemistry-properties attached to this atom
    implicitHydrogenCount number? Indicates the suggested number of implicit hydrogens bound to this Atom. Correct values can vary in different systems. When the value is considered incorrect it can be ignored. This is not a query property.
    query AtomQuery? The query features attached to this atom
    rGroupAttachmentOrder number? The order number of the atom in the series of the R-Atom's (in the scaffold that is to be substituted by this R-Definition) neighbours (see rGroupLigandOrder property of an R-Atom) this Attachment-atom will substitute. (In other words: in the scaffold, each atom connected to an R-Atom is mapped to an attachment-point in each alternative of the corresponding R-Definition. This property on the attachment point and the rGroupLigandOrder property of the R-Atom define this mapping.)
    rGroupLigandOrder string[]? The reference ids of the Atoms connected to this R-Atom (in a markush scaffold). This property defines the order of these atoms, so an attachment Atom's (in an R-Definition alternative) rGroupAttachmentOrder can be an order number from this ordered list.
    properties ExtraProperties? Key-value pairs of additional custom properties.

    Location

    Three dimensional coordinate to mark a Location. In CXON it is a molecular Cartesian coordinate in Angstroms.

    Fields

    field type description
    x number X-coordinate.
    y number Y-coordinate.
    z number Z-coordinate.

    Bond

    A Bond object, which is a basic building block of Molecule objects. Can be a chemical bond or a query bond.

    Fields

    field type description
    id string Reference id of this object. Should be unique for the entire document.
    type BondType Type of this Bond. Can be a chemical covalent bond (SINGLE, DOUBLE, TRIPLE, AROMATIC, COORDINATE) or stereochemically enhanced covalent bond (UP, DOWN, UP_OR_DOWN), or a query bond (ANY, CIS_OR_TRANS, SINGLE_OR_AROMATIC, SINGLE_OR_DOUBLE, DOUBLE_OR_AROMATIC, UP_OR_DOWN).
    startAtom string The reference id of the Atom this bond starts at. The direction is not important in most cases, but relevant for stereochemical and dative bonds.
    endAtom string The reference id of the Atom this bond ends at. The direction is not important in most cases, but relevant for stereochemical and dative bonds.
    query BondQuery? The query features attached to this bond
    properties ExtraProperties? Key-value pairs of additional custom properties.

    Paragraph

    Paragraphs are newline separated portions of a text. Paragraph consists of an array of sections, which are independently formattable portions of text.

    Fields

    field type description
    sections Section[] The content of the Paragraph. An array of formatted Sections, which are continuous portions of text separated only for formatting, the content should be joined without any additional delimiter.

    Section

    Sections of a Paragraph separated only for formatting purposes. Each Section has one formatting setup, there are no embedded sections, hence no style inheritance. Any formatting option not specified in the section falls back to the default value of the Textbox

    Fields

    field type description
    text string Plain textual content of the Section without formatting.
    font Font? The font properties of the Section. If not specified, then the visualizer/renderer chooses the font.
    formula boolean? Indicates if this Section contains a chemical formula or not. Purely for marker purposes, to mark the intentions of the editor.
    color string? The color of the Section's text, specified as a HTML color code.
    backgroundColor string? The background-color of the Section's text, specified as a HTML color code.

    Font

    Font descriptor object.

    Fields

    field type description
    family string? The actual font family, such as 'Arial' or 'Times New Roman', or a logical family such as 'Serif'.
    size number? The size of the Font in points.
    style FontStyle[]? The Font's style.

    Stroke

    An object to specify properties for lines, borders, etc.

    Fields

    field type description
    style StrokeStyle? The style of this Stroke, modifies the line style of this Stroke.
    color string? The color of this Stroke, specified as a HTML color code.
    thickness number? The thickness of this Stroke in points. For best results, use positive integer values.

    Arrow

    A graphical Arrow, which is a directed line from one Location to another.

    Fields

    field type description
    id string Reference id of this object. Should be unique for the entire document.
    shape string Has to be ARROW
    arrowType (ArrowType | DeprecatedArrowType)? Type of this Arrow: SINGLE(----->), DOUBLE(=====>), ASYMMETRIC_DOUBLE(--==--)
    head ArrowEndpoint Properties of the Head of this Arrow. The Head is at the Location this Arrow is directed to.
    tail ArrowEndpoint Properties of the Tail of this Arrow. The Tail is at the Location this Arrow is directed from.
    line Stroke? The line of this Arrow. In most cases it is the arrow itself, but for example in case of BLOCK arrow, it is the outline.
    arc SvgArc? The SVG style descriptor of the arc of this arrow. Should be specified only for CURVED arrows.
    properties ExtraProperties? Key-value pairs of additional custom properties.

    GraphicalArc

    A graphical undirected Arc.

    Fields

    field type description
    id string Reference id of this object. Should be unique for the entire document.
    shape string Has to be ARC
    points Location[] The endpoints of this Arc
    line Stroke? The graphical properties of this Arc's line.
    arc SvgArc The SVG style descriptor of the Arc.
    properties ExtraProperties? Key-value pairs of additional custom properties.

    SvgArc

    This property describes an SVG-style arc. The SVG path's d attribute that describes this arc is: M startX,startY A rx,ry xAxisRotation largeArcFlag sweepFlag endX,endY where start- and end- mark the arc's start- and end-points' locations (in case of an arrow: the tail's and the head's locations respectively / in case of a graphical-arc: its points' locations in the given order). For further details please visit https://www.w3.org/TR/SVG/paths.html#PathDataEllipticalArcCommands.

    Fields

    field type description
    rx number The radius of the ellipse on the x-axis
    ry number The radius of the ellipse on the y-axis
    xAxisRotation number The rotation of the ellipse on the x-axis in degrees
    largeArcFlag number Specifies if the arc sweep can be greater than 180 degrees or not. For further details please visit https://www.w3.org/TR/SVG/paths.html#PathDataEllipticalArcCommands
    sweepFlag number Specifies if the arc is drawn in a positive-angle direction or not. For further details please visit https://www.w3.org/TR/SVG/paths.html#PathDataEllipticalArcCommands

    Bracket

    A graphical Bracket, which is a pair of brackets enclosing an area.

    Fields

    field type description
    id string Reference id of this object. Should be unique for the entire document.
    shape string Has to be BRACKET
    line Stroke? The line of this Bracket
    type BracketType? The type of this Bracket. If not specified, it is considered SQUARE([]). Also can be ROUND(()), BRACES({}), or CHEVRONS(<>)
    properties ExtraProperties? Key-value pairs of additional custom properties.
    points Location[] The corner points of the bracketed area in the order top-left, top-right, bottom-right and bottom-left.

    Ellipse

    A graphical Ellipse.

    Fields

    field type description
    id string Reference id of this object. Should be unique for the entire document.
    shape string Has to be ELLIPSE
    background string? The background color of this Ellipse, specified as a HTML color code. Not specified means transparent.
    border Stroke? The border of this Ellipse. An object of border properties. Right now only the color and thickness can be specified.
    properties ExtraProperties? Key-value pairs of additional custom properties.
    points Location[] The corners of the bounding rectangle in the order top-left, top-right, bottom-right and bottom-left. The corners has to be defined in the atomic space to keep the relative position to the chemical content. The defined rectangle scaled up into the graphical space gives the area the shape should be rendered into.

    Image

    An Image that can be remote or embedded into this document as a base64 encoded image.

    Fields

    field type description
    id string Reference id of this object. Should be unique for the entire document.
    shape string Has to be IMAGE
    url string? The URL of this Image
    placeholder string? Base64 encoded image to render if the remote image is not available, or while it is loading
    image string? Base64 encoded image
    properties ExtraProperties? Key-value pairs of additional custom properties.
    points Location[] The corners of the bounding rectangle in the order top-left, top-right, bottom-right and bottom-left. The corners has to be defined in the atomic space to keep the relative position to the chemical content. The defined rectangle scaled up into the graphical space gives the area the image should be rendered into.
    crop Location[]? The corners of the bounding rectangle of the crop area in the order top-left, top-right, bottom-right and bottom-left. The corners has to be defined in the atomic space to keep the relative position to the chemical content. The defined rectangle scaled up into the graphical space gives the area the image should be rendered into.

    Path

    A graphical path/polyline which connects 2 or more points

    Fields

    field type description
    id string Reference id of this object. Should be unique for the entire document.
    shape string Has to be PATH
    points Location[] Array of points of the path/polyline
    smoothened boolean? Boolean value describing whether the path/polyline is smoothened or not
    line Stroke? The line style (stroke) of the graphical object
    properties ExtraProperties? Key-value pairs of additional custom properties.

    Rectangle

    A graphical Rectangle.

    Fields

    field type description
    id string Reference id of this object. Should be unique for the entire document.
    shape string Has to be RECTANGLE
    background string? The background color of this Rectangle, specified as a HTML color code. Not specified means transparent.
    border Stroke? The border of this Rectangle. An object of border properties. Right now only the color can be specified.
    properties ExtraProperties? Key-value pairs of additional custom properties.
    points Location[] The corners of the bounding rectangle in the order top-left, top-right, bottom-right and bottom-left. The corners has to be defined in the atomic space to keep the relative position to the chemical content. The defined rectangle scaled up into the graphical space gives the area the shape should be rendered into.

    TextBox

    A Textbox, which is a formatted textual content that should be rendered into a rectangular area.

    Fields

    field type description
    id string Reference id of this object. Should be unique for the entire document.
    shape string Has to be TEXTBOX
    font Font? The default font for the Textbox. If a section of the Textbox does not specify some, or any of the font properties, this should be used for missing values. If this value is not set either, it is up to the renderer what font is used.
    color string? The default color for the Textbox, specified as a HTML color code. If a section of the Textbox does not specify a color, this should be used.
    paragraphs Paragraph[] The content of the Textbox. An array of Paragraphs, which are newline separated portions of the whole textual content.
    autoResize boolean? Marks whether this Textbox should change its size on change of the content. If not set, it is considered false.
    background string? The background color of the Textbox, specified as a HTML color code. Not specified means transparent.
    align TextBoxAlign? The horizontal alignment of the content. If not specified, it is considered LEFT
    verticalAlign TextBoxVerticalAlign? The vertical alignment of the content. If not specified, it is considered TOP.
    border Stroke? The border of this Textbox. An object of border properties. Right now only the color can be specified.
    properties ExtraProperties? Key-value pairs of additional custom properties.
    points Location[] The corners of the bounding rectangle in the order top-left, top-right, bottom-right and bottom-left. The corners has to be defined in the atomic space to keep the relative position to the chemical content. The defined rectangle scaled up into the graphical space gives the area the textbox should be rendered into.

    PlusSign

    A graphical PlusSign

    Fields

    field type description
    id string Reference id of this object. Should be unique for the entire document.
    shape string Has to be PLUSSIGN
    line Stroke? The line of the a PlusSign
    properties ExtraProperties? Key-value pairs of additional custom properties.
    points Location[] The corners of the bounding rectangle in the order top-left, top-right, bottom-right and bottom-left.

    DisplayProperties

    Describes the rendering hints for the content of this document.

    Fields

    field type description
    saveProperties boolean? Marks whether these properties should be saved or not after editing the document.
    scale number? The scale for rendering the elements in this document. The coordinates in this format are in Angstroms, so this property is basically a multiplier that transforms coordinates from Angstroms to pixels.
    background string? The color of the background in HTML color code.
    atomDisplayProperties AtomDisplayProperties? Rendering hints for Atoms.
    bondDisplayProperties BondDisplayProperties? Rendering hints for Bonds.
    moleculeDisplayProperties MoleculeDisplayProperties? Rendering hints for Molecules.
    reactionDisplayProperties ReactionDisplayProperties? Rendering hints for Reactions.
    groupDisplayProperties GroupDisplayProperties? Rendering hints for Groups.
    z-index string[]? Stores ordering of objects on the z-axis.

    AtomDisplayProperties

    Describes the rendering hints for Atoms. If an Atom has rendering hints in the customized section, then it should be used, otherwise the rendering hints in this section, and if there are no rendering hints in this section, it is the renderer's choice how to render the Atom.

    Fields

    field type description
    labelFont Font? The default font for atom labels.
    color string? The default color for atom labels in HTML color code.
    mapColor string? The default color for atom map labels in HTML color code.
    chargeColor string? The default color for charge labels in HTML color code.
    stereoColor string? The default color for stereo labels in HTML color code.
    atomNumberingType AtomDisplayPropertiesAtomNumberingType? The numbering algorithm for atoms.
    atomPropertiesVisible boolean? Sets whether atom properties (extra properties added in a key-value pair) are visible or not.
    atomMappingVisible boolean? Sets whether atom mapping is visible or not.
    lonePairsVisible boolean? Sets whether the lone pairs should be rendered or not.
    lonePairsAsLine boolean? Sets whether the lone pairs should be rendered as lines (true) or as dots (false). If this property is not specified, the default is the latter.
    calculateLonePairs boolean? Sets whether the lone pairs should be calculated for each atom (true) or use the precalculated values only (false).
    carbonVisibility AtomDisplayPropertiesCarbonVisibility? sets the visibility property for carbon atoms.
    charge AtomDisplayPropertiesCharge? sets the display property for charges on atoms.
    peptide AtomDisplayPropertiesPeptide? sets the display property for peptides.
    customized AtomDisplayProperty[]? List of specific display properties for atoms that have unique rendering specifications, like font or color, etc.

    AtomDisplayProperty

    Descriptor of display properties for customized atoms

    Fields

    field type description
    id string The internal reference id of the customized atom. The same id as in the atoms array of a molecule.
    labelFont Font? The font for the atom label.
    color string? The color for the atom label of a given atom in HTML color code.
    mapColor string? The color for atom map label of a given atom in HTML color code.
    chargeColor string? The color for charge label of a given atom in HTML color code.
    stereoColor string? The color for stereo label of a given atom in HTML color code.
    formattedLabel Section[]? The atom label with formatting. An array of formatted sections, which are continuous portions of text separated only for formatting, the content should be joined without any delimiter.
    atomMappingLocation Location? Display location information for atom mapping label, relative to atom.
    stereoLabelLocation Location? Display location information for stereo label, relative to atom.
    chargeLocation Location? Display location information for charge label, relative to atom.

    BondDisplayProperties

    Describes the rendering hints for Bonds. If a Bond has rendering hints in the customized section, then it should be used, otherwise the rendering hints in this section, and if there are no rendering hints in this section, it is the renderer's choice how to render the Bond.

    Fields

    field type description
    bondLength number? The default rendered bond length in points.
    aminoAcidBondColoringEnabled boolean? If true, then the amino acid bridge (usually S-S bridges) bonds are colored.
    bondLengthVisible boolean? If true, then the bond length values (in Angstrom) are displayed next to the bonds.
    coordinateBondStyle string? Sets the style of coordinate bonds.
    coordinateBondStyleAtMulticenter string? Sets the style of coordinate bonds if the bond points from or to a multicenter (also known as position variation bond).
    boldBondWidth number? Sets the width of bold bonds in points.
    bondSpacing number? Sets the gap between double (aromatic and some query bonds as well) and triple bonds in points.
    bondHashSpacing number? Sets the spacing between the hashed lines for single down wedged bonds and hashed bonds in points.
    wireThickness number? Bond thickness in wireframe mode in points.
    stickThickness number? The stick diameter for ball and stick mode in points.
    downWedge BondDisplayPropertiesDownWedge? Wedge bond display convention. Down wedge points downward in MDL's convention, upward (at the chiral center) in Daylight's.
    anyBond string? The bond-style to draw any-bonds with.
    customized BondDisplayProperty[]? List of bond specific display properties for bonds that have unique rendering specifications, such as color.

    BondDisplayProperty

    Descriptor of display properties for customized bonds

    Fields

    field type description
    id string The internal reference id of the customized bond. The same id as in the bonds array of a molecule.
    bondStyle string? The style for the bond.
    color string? The color for the bond in HTML color code.
    doubleBondAlignment BondDisplayPropertyDoubleBondAlignment? Double bond alignment between two atoms, defined from the viewpoint of the start atom towards the end atom.
    stereoLabelLocation Location? Display location information for stereo label, relative to the midpoint of bond.

    MoleculeDisplayProperties

    Describes the rendering hints for Molecules.

    Fields

    field type description
    ezVisible boolean? Whether to show E/Z labels.
    mpVisible boolean? Whether to show M/P labels.
    valenceErrorVisible boolean? Whether to show valence errors.
    absoluteLabelVisible boolean? Whether to show absolute stereo configuration labels.
    colorScheme MoleculeDisplayPropertiesColorScheme? Color scheme. (MONO=monochrome, CPK=Corey-Pauling-Kultun, SHAPELY=shapely (residue types), GROUP=residue sequence numbers).

    ReactionDisplayProperties

    Describes the rendering hints for Reactions.

    Fields

    field type description
    automaticReactionDetection boolean? Marks whether the content of this document should be automatically converted to a reaction. This conversion will only take place if the content was not a reaction and there is exactly one graphical arrow in the document.
    sketchArrowHeadLength number? Length of the head of the (graphical) reaction arrow in points.
    sketchArrowHeadWidth number? Width of the head of the (graphical) reaction arrow in points.
    sketchArrowTailLength number? Length of the tail of the (graphical) reaction arrow in points.
    sketchArrowTailWidth number? Width of the tail of the (graphical) reaction arrow in points.
    customized ReactionDisplayProperty[]? List of reaction specific display properties for reactions that have unique rendering specifications, such as a custom arrow.

    ReactionDisplayProperty

    Descriptor of display properties for customized reactions

    Fields

    field type description
    id string The internal reference id of the customized reaction. The same id as in the reactions array of the document.
    arrow Arrow? The custom arrow for the reaction. If not present, the reaction arrow should be generated by the renderer based on the reaction's direction property.

    GroupDisplayProperties

    Describes the rendering hints for Groups.

    Fields

    field type description
    customized GroupDisplayProperty[]? List of group specific display properties for groups that have custom rendering specifications.

    GroupDisplayProperty

    Descriptor of display properties for customized groups

    Fields

    field type description
    id string The internal reference id of the customized group.
    contracted boolean? Marks whether the group is represented in a contracted form or not.
    formattedLabel Section[]? Group label as formatted text. An array of formatted sections, which are continuous portions of text separated only for formatting, the content should be joined without any delimiter.

    Stereo

    The stereochemistry-properties attached to this atom

    Fields

    field type description
    enhanced EnhancedStereo? The stereo representation matching MDL's Enhanced Stereo Representation

    EnhancedStereo

    The stereo representation matching MDL's Enhanced Stereo Representation

    Fields

    field type description
    type EnhancedStereoType The way to connect groups according to this representation. Note, that "AND" and "OR" does not make sense without a group, while "ABSOLUTE" does not make sense with a group.
    group number? Serves as the basis to connect type "AND" or "OR" enhanced stereo-atoms. (A complete enhanced stereochemical representation is made of all the atoms having the same type and group enhanced stereo descriptors)

    AtomQuery

    The query features attached to this atom

    Fields

    field type description
    aromaticity AtomQueryAromaticity? Marks an atom in a query structure to match atoms according to aromaticity.
    connections number? Atom query property to restrict the number of ligands (including Hydrogens).
    implicitHydrogenCount number? Atom query property to restrict the number of implicit Hydrogens. This property is different from the implicitHydrogenCount property of the atom, which is a calculated property.
    ringCount number? Atom query property to restrict the number of cyclic substructures it is member of. Ring count calculation in the target is based on the Smallest Set of Smallest Rings (SSSR)
    smallestRingSize number? Atom query property to restrict the size of the smallest cyclic substructure it is member of.
    totalHydrogenCount number? Atom query property to restrict the number of Hydrogen substituents including explicit Hydrogens, implicit Hydrogens, and Hydrogen isotopes.
    unsaturated boolean? Marks an atom in a query structure as unsaturated to match atoms in the target with DOUBLE or TRIPLE bonds. Setting this property to false is the same as omitting it, matching saturated and unsaturated atoms as well.

    BondQuery

    The query features attached to this bond

    Fields

    field type description
    topology string? Queries will match only if this bond is part of a chain or ring (as per the value of this property)
    reactingCenter string? Query property for a reacting center

    ArrowEndpoint

    Enpoint of an arrow (tail/head) with location and optionally style

    Fields

    field type description
    location Location The Location of the Head of this Arrow. The most end point at the tip of the Arrow.
    style ArrowEndingStyle? The style of the arrow head/tail

    ArrowEndingStyle

    Style of the Head/Tail of the Arrow

    Fields

    field type description
    width number? The width of this Arrow's Head/Tail in points measured as a distance from the long axis of the Arrow as a line to the further point of the Head/Tail from that line.
    length number? The length of this Arrow's Head/Tail in points measured as a distance from the Head's Location to the further point of the Head/Tail from the Head/Tail's Location projected to the long axis.
    alignment ArrowEndingStyleAlignment? The alignment of the Arrow's Head/Tail: left, right, both (looking from the middle of the arrow to the direction of the Head/Tail)
    type ArrowEndingStyleType The type of the Arrow's Head / Tail

    ExtraProperties

    Key-value pairs of additional custom properties.

    Fields

    field type description

    ArrowType

    Arrow types. The type does not cover styling or direction (see also stroke and arrowEndingStyle)

    Values

    Single = "SINGLE", Double = "DOUBLE", Asymmetric_Double = "ASYMMETRIC_DOUBLE"

    DeprecatedArrowType

    DEPRECATED arrow types. Use 'arrowType' instead (#/definitions/arrow/definitions/arrowType)

    Values

    Single = "SINGLE", Double = "DOUBLE", Block = "BLOCK", Crossed = "CROSSED", Curved = "CURVED", Dashed = "DASHED", Equilibrium = "EQUILIBRIUM", Hashed = "HASHED", Resonance = "RESONANCE", Unbalanced_Equilibrium = "UNBALANCED_EQUILIBRIUM", Retrosynthesis = "RETROSYNTHESIS", Rearrangement = "REARRANGEMENT"

    BondStyle

    The style for the bond

    Values

    Hashed = "HASHED", Dashed = "DASHED", Bold = "BOLD", Wavy = "WAVY", Down = "DOWN", Up = "UP", Up_Or_Down = "UP_OR_DOWN", Default = "DEFAULT", Arrow = "ARROW", Auto = "AUTO", Solid = "SOLID"

    BondTopology

    Queries will match only if this bond is part of a chain or ring (as per the value of this property)

    Values

    In_Ring = "IN_RING", In_Chain = "IN_CHAIN"

    ReactingCenterTypes

    Possible types for reacting center query properties

    Values

    Center = "CENTER", Make_Or_Break = "MAKE_OR_BREAK", Change = "CHANGE", Make_And_Change = "MAKE_AND_CHANGE", Not_Center = "NOT_CENTER"

    MoleculeNature

    Logical property of the molecule, marking its type from cheminformatical point of view. PLAIN is for regular molecules, NO_STRUCTURE for placeholder molecule for search purposes.

    Values

    Plain = "PLAIN", No_Structure = "NO_STRUCTURE"

    MoleculeChiralityInterpretation

    Describes how this molecule should be interpreted regarding chirality. Default is UNKNOWN. If ABSOLUTE value is set, this molecule describes one specific enantiomer. If UNKNOWN value is set, the chirality is unknown, it can represent any of the enantiomers or their mixture.

    Values

    Absolute = "ABSOLUTE", Unknown = "UNKNOWN"

    AbbreviationType

    Type of this Group. Use AMINO_ACID for aminoacids, and ABBREVIATION for all other.

    Values

    Abbreviation = "ABBREVIATION", Amino_Acid = "AMINO_ACID"

    ReactionDirection

    The direction of the reaction. If omitted, the reaction direction is FORWARD

    Values

    Forward = "FORWARD", Backward = "BACKWARD", Equilibrium = "EQUILIBRIUM"

    AtomRadical

    Free radical value of the Atom.

    Values

    None = "NONE", Monovalent = "MONOVALENT", Divalent = "DIVALENT", Divalent_Singlet = "DIVALENT_SINGLET", Divalent_Triplet = "DIVALENT_TRIPLET", Trivalent = "TRIVALENT", Trivalent_Doublet = "TRIVALENT_DOUBLET", Trivalent_Quartet = "TRIVALENT_QUARTET"

    BondType

    Type of this Bond. Can be a chemical covalent bond (SINGLE, DOUBLE, TRIPLE, AROMATIC, COORDINATE) or stereochemically enhanced covalent bond (UP, DOWN, UP_OR_DOWN), or a query bond (ANY, CIS_OR_TRANS, SINGLE_OR_AROMATIC, SINGLE_OR_DOUBLE, DOUBLE_OR_AROMATIC, UP_OR_DOWN).

    Values

    Any = "ANY", Aromatic = "AROMATIC", Cis_Or_Trans = "CIS_OR_TRANS", Coordinate = "COORDINATE", Double = "DOUBLE", Double_Or_Aromatic = "DOUBLE_OR_AROMATIC", Down = "DOWN", Single = "SINGLE", Single_Or_Aromatic = "SINGLE_OR_AROMATIC", Single_Or_Double = "SINGLE_OR_DOUBLE", Triple = "TRIPLE", Up = "UP", Up_Or_Down = "UP_OR_DOWN"

    FontStyle

    Values

    Plain = "PLAIN", Bold = "BOLD", Italic = "ITALIC", Underline = "UNDERLINE", Subscript = "SUBSCRIPT", Superscript = "SUPERSCRIPT"

    StrokeStyle

    The style of this Stroke, modifies the line style of this Stroke.

    Values

    Solid = "SOLID", Hashed = "HASHED", Crossed = "CROSSED", Looped = "LOOPED", Dashed = "DASHED"

    BracketType

    The type of this Bracket. If not specified, it is considered SQUARE([]). Also can be ROUND(()), BRACES({}), or CHEVRONS(<>)

    Values

    Square = "SQUARE", Round = "ROUND", Braces = "BRACES", Chevrons = "CHEVRONS"

    TextBoxAlign

    The horizontal alignment of the content. If not specified, it is considered LEFT

    Values

    Center = "CENTER", Left = "LEFT", Right = "RIGHT"

    TextBoxVerticalAlign

    The vertical alignment of the content. If not specified, it is considered TOP.

    Values

    Middle = "MIDDLE", Top = "TOP", Bottom = "BOTTOM"

    AtomDisplayPropertiesAtomNumberingType

    The numbering algorithm for atoms.

    Values

    None = "NONE", Default = "DEFAULT", Iupac = "IUPAC"

    AtomDisplayPropertiesCarbonVisibility

    sets the visibility property for carbon atoms.

    Values

    Always = "ALWAYS", Never = "NEVER", On_Demand = "ON_DEMAND"

    AtomDisplayPropertiesCharge

    sets the display property for charges on atoms.

    Values

    Plain = "PLAIN", Circled = "CIRCLED"

    AtomDisplayPropertiesPeptide

    sets the display property for peptides.

    Values

    One_Letter = "ONE_LETTER", Three_Letter = "THREE_LETTER"

    BondDisplayPropertiesDownWedge

    Wedge bond display convention. Down wedge points downward in MDL's convention, upward (at the chiral center) in Daylight's.

    Values

    Mdl = "MDL", Daylight = "DAYLIGHT"

    BondDisplayPropertyDoubleBondAlignment

    Double bond alignment between two atoms, defined from the viewpoint of the start atom towards the end atom.

    Values

    Left = "LEFT", Right = "RIGHT", Center = "CENTER"

    MoleculeDisplayPropertiesColorScheme

    Color scheme. (MONO=monochrome, CPK=Corey-Pauling-Kultun, SHAPELY=shapely (residue types), GROUP=residue sequence numbers).

    Values

    Mono = "MONO", Cpk = "CPK", Shapely = "SHAPELY", Group = "GROUP"

    EnhancedStereoType

    The way to connect groups according to this representation. Note, that "AND" and "OR" does not make sense without a group, while "ABSOLUTE" does not make sense with a group.

    Values

    And = "AND", Or = "OR", Absolute = "ABSOLUTE"

    AtomQueryAromaticity

    Marks an atom in a query structure to match atoms according to aromaticity.

    Values

    Aromatic = "AROMATIC", Aliphatic = "ALIPHATIC"

    ArrowEndingStyleAlignment

    The alignment of the Arrow's Head/Tail: left, right, both (looking from the middle of the arrow to the direction of the Head/Tail)

    Values

    Left = "LEFT", Right = "RIGHT", Both = "BOTH"

    ArrowEndingStyleType

    The type of the Arrow's Head / Tail

    Values

    Open = "OPEN", Block = "BLOCK", None = "NONE"