File formats¶
Browser and desktop Export downloads use the open document’s filename,
replacing its final extension: reaction.qvf exports as reaction.svg.
Untitled documents export as sketch with the chosen format’s extension.
Choose an output¶
What you need |
Use |
What to expect |
|---|---|---|
Resume editing, including jobs and prepared geometries |
QVF or VSK |
A native document; QVF requires the optional integration, VSK is readable JSON. |
Exchange the canvas drawing |
KET |
Drawing data, without the separate job specifications and conformer cache. |
Exchange molecules |
MOL or SDF |
MOL combines structures; SDF separates species into records. Neither is a native sketch backup. |
Exchange one reaction |
RXN |
Reactants, products and reagents; a multi-step document cannot be exported as one RXN. |
Pass chemical identities to another tool |
SMILES or InChI |
Text identifiers, without the original layout or computed geometries. |
Supply 3D coordinates |
The |
One species’ first conformer; generate or import a geometry first. |
Place a figure in a document |
SVG, or PNG where required |
An image of the supported rendered content, not an editable sketch document. |
Keep a native master alongside exchange files and figures. Reopen an export in its intended consumer and check identities, charges and stereochemistry; format support does not imply that every consumer interprets every feature identically.
Supported formats¶
Format |
Import |
Export |
Notes |
|---|---|---|---|
QVF ( |
yes |
yes |
The vibe family’s file format and vibe-sketcher’s default: the whole document, a preview, and for any QVF reader each species’ 3D structure with its identity, the reaction scheme and the calculations (see the document format). A QVF from another program (a vibe-qc result, a structure vibe-viewer saved) opens as species with their 3D structures, charges, multiplicities, compound numbers and names, and its reaction scheme as reactions. A finished QVF job container opens with its drawing, the result geometry as a new conformer and the energy. Needs qvf-writer 0.6 or newer ( |
|
yes |
yes |
The same document as plain JSON, for scripts and version control; see the document format. |
KET |
yes |
yes |
Ketcher’s JSON; the canvas inside a |
MOL (V2000/V3000) |
yes |
yes |
All species in one file, with their drawn coordinates. V3000 is used beyond 999 atoms or bonds. Contracted abbreviations are superatom ( |
SDF |
yes |
yes |
One record per species, with id, number, name, charge and multiplicity as fields, then one per bracketed group with its id and number, its brackets as in MOL. A document with R-group cores is refused: SDF records cannot hold their definitions, so export MOL. |
RXN |
yes |
yes |
One reaction; reagents are kept apart from reactants. |
CDXML |
yes |
yes |
ChemDraw’s XML format: open drawings from other programs and write an editable copy for them; see CDXML for ChemDraw. |
CDX |
yes |
no |
ChemDraw’s binary format, read through the same reader as CDXML. |
SMILES |
yes |
yes |
One per line; a reaction as |
InChI |
yes |
yes |
One per line. |
XYZ |
yes |
per species |
Each frame a structure, its coordinates kept as the species’ 3D structure; |
ORCA output ( |
yes |
no |
An ORCA 6 output opens as its molecule; see calculation outputs. Results of a run vibe-sketcher wrote are imported into that run instead (results). |
ORCA Hessian ( |
yes |
no |
The geometry in its |
Peptide, DNA, RNA sequence |
yes |
FASTA |
One-letter codes, one sequence per line or as FASTA records, in either case; spaces and position numbers are ignored. Peptides use the 20 standard L amino acids with free termini; DNA (ACGT) and RNA (ACGU) have free 5’- and 3’-OH. Each becomes its full structure, an ordinary species; see peptides and nucleic acids. |
HELM |
yes |
yes |
One HELM string per line: peptides, including D-amino acids, acetyl and amide caps, N-methyl and phospho residues and links such as disulfides, and RNA or DNA, as far as RDKit’s HELM monomer library and vibe-sketcher’s modifications go. |
Name |
yes |
no |
Through vibe-qc’s naming engine, then, for names it does not know, OPSIN (the optional |
SVG |
no |
yes |
The drawing as laid out, with structures in ACS 1996, RSC or Wiley JCC style, reaction and electron-flow arrows, plus signs and text. |
PNG |
no |
yes |
Whole drawing through the optional publication backend, with DPI control. Base installs retain legacy single-structure ACS PNG. |
no |
yes |
Vector drawing with embedded text fonts; requires the publication extra. |
|
EMF |
no |
yes |
The figure as a Windows Enhanced Metafile for Word, PowerPoint and Excel, text outlined; see figures for office programs. |
EPS |
no |
yes |
The figure as Encapsulated PostScript, text outlined. |
chemfig ( |
no |
yes |
LaTeX source for the |
Publication SVG. Export preserves each drawn molecule occurrence and its coordinates, including repeated species in a mechanism. Reaction arrows keep their direction and kind; curved electron-flow arrows keep their signed height and full or single-electron head. Plus signs, free text and drawn compound numbers retain their positions, and so do rectangles, ellipses and lines, in the preset’s line width (see shapes and TLC plates). The figure is cropped to the drawing with a 6 pt margin; text bounds allow for font substitution. Text uses the publication font at the preset size and retains line breaks, rather than canvas rich-text styling. One KET bond-length unit is the preset bond length (14.4 pt for ACS 1996). Export refuses unsupported chemistry, unknown arrow kinds and unsupported canvas objects instead of dropping them. A document without a drawing uses the existing reaction-row layout from its species and reaction metadata. Browser, SDK, CLI, REST and MCP SVG exports share this renderer. The publication backend converts that same SVG to scheme PNG or vector PDF.
Journal presets. style.preset in a saved document selects acs-1996
(the default), rsc or wiley. Browser exports use that saved choice.
vibe-sketcher render scheme.qvf -o scheme.svg --style rsc overrides it for
one export. The SDK accepts render(document, "svg", style="rsc") or
export(document, "svg", style="rsc"); REST export endpoints accept
?style=rsc, and the MCP export tool accepts style. Overrides do not
change the document. Unknown presets list the available choices.
Setting (pt unless stated) |
ACS 1996 |
RSC |
Wiley JCC |
|---|---|---|---|
Bond length |
14.4 |
12.2 |
17 |
Line width |
0.6 |
0.5 |
0.75 |
Text size |
10 |
7 |
12 |
Double-bond spacing |
18% |
20% |
18% |
Stereo wedge width |
RDKit ACS |
1.6 |
2.6 |
Hash spacing |
RDKit ACS |
1.8 |
2.6 |
Atom-label margin |
RDKit ACS |
2 (our default) |
2 |
The RSC values come from the Green Chemistry author guidelines.
The Wiley values come from the Journal of Computational Chemistry graphics FAQ.
Wiley journals differ: wiley is the JCC baseline, not a claim of compliance
with every Wiley journal or with EurJOC. Both sources specify Arial (RSC
also accepts Helvetica). Annotations and atom labels use the reviewed Roboto Regular sans-serif font;
SVG embeds the annotation font, PNG uses it explicitly, and PDF embeds its used glyphs. This font
substitution is intentional and must be checked against the target journal’s
requirements. No proprietary font is redistributed.
Presets scale the entire existing scene uniformly; they do not straighten bonds, alter angles, relayout annotations or change stereochemistry. The 6 pt outer crop margin is separate from the atom-label margin. Solid wedges use the specified full width; hash strokes use the specified physical spacing, centred within the visible bond. Metadata-only reaction rows use the same preset. The optional publication backend applies these presets to PNG and PDF too.
Keep original QVF results. Import takes the structures and supported sketch content; it does not retain wavefunctions, frequencies, trajectories or other calculation payloads. Use Save As to a different QVF or VSK file for the edited sketch. Saving or exporting over the original result is refused, including when Save As selects that same file. QVF files from other programs, unknown payloads, extra metadata and unreadable archives are protected too. Only native sketch archives whose data can be reproduced from their stored document can be replaced. Preview images are regenerated when saving.
Structures from other programs. A QVF structure or an XYZ frame is atoms and coordinates; vibe-sketcher perceives the bonds. A SMILES the file states gives the bond orders and charges, and the coordinates are kept. Without one, the bond orders are perceived with the stated charge. A neutral radical or a metal hydride, whose bond orders nothing fixes, is drawn with single bonds and a warning to check it. A structure that holds several molecules, such as a dimer, gives each its own 3D structure. A periodic structure is refused: vibe-sketcher draws molecules.
Calculation outputs. An ORCA 6 output is atoms and coordinates too. Its stated total charge and multiplicity fix the bond orders, which are inferred from the coordinates. A structure whose bond orders do not fit its coordinates and charge is left out with a warning rather than drawn with guessed bonds, and the document’s history records that the graph was inferred. Each geometry an optimisation printed is kept as a conformer of its species, the last first; a run that did not converge or did not terminate normally opens with a warning. An output that names no ORCA 6 version, or states no charge or multiplicity, is refused.
Small coordinates in scientific notation, including near-zero residuals from geometry optimisation, retain their full precision when imported from QVF or XYZ.
Opening a QVF or a .vsk takes the whole document: species, compound
numbers, names, 3D structures and jobs, with species and reactions read again
from the drawing so they match it. Importing one into a document adds its
drawing beside what is there.
Large KET drawings and imported structures use V3000 internally when a canvas molecule has more than 999 atoms or bonds. Charges, radicals, isotopes and drawn stereochemistry are retained. Unsupported chemistry still produces a warning with the reason.
Exports refuse what a format cannot hold and say why: an RXN file of a document without a reaction, an RXN file of a document with several, or a PDF without the publication backend. Imports refuse input they cannot read.
Newly generated 2D layouts separate disconnected components, including isolated ions, with room for atom, hydrogen and charge labels. Each component moves as a unit, preserving its internal geometry and stereochemistry. Existing authored 2D coordinates and whole-drawing imports retain their placement.
SMILES and reaction SMILES imports preserve specified E/Z stereochemistry
when laying out the drawing. Unspecified alkenes use a crossed double bond
so their displayed coordinates do not imply an assigned isomer. For example,
C/C=C\C remains Z-butene, while CC=CC keeps its unspecified geometry.
MOL, SDF and RXN exports mark assigned absolute tetrahedral centers with the molfile chiral flag. Readers that honor this flag therefore retain the chosen enantiomer instead of interpreting its wedges as relative stereochemistry. Unassigned centers remain unassigned. Each SDF record and each reactant, reagent and product in an RXN file carries its own flag.
Imports honor that distinction too. A molfile with assigned tetrahedral
centers and chiral flag 0 declares relative stereochemistry; enhanced
OR and AND groups describe an unknown member or a mixture. These inputs
are refused because a calculation species must identify one stereoisomer.
Use an explicit absolute stereoisomer, declared by chiral flag 1 or an
absolute V3000 group. SMILES extensions are checked before normalization,
so a relative group cannot disappear into an ignored title.
The legacy CXSMILES r relative-configuration flag is refused too, including
whitespace-padded forms such as |r | accepted by the underlying reader.
Native KET, .vsk and sketch QVF drawings retain relative stereo labels
with an unsupported-structure warning. They can be saved for inspection;
structure, identifier and publication exports refuse the drawing until the
relative structures are resolved, rather than silently leaving them out.
Unspecified centers without a relative-group declaration remain supported
and are reported when a 3D calculation needs to choose a configuration.
PNG and PDF publication figures¶
With the publication extra, export the same complete drawing in all three formats:
vibe-sketcher render scheme.qvf -o scheme.svg --style rsc
vibe-sketcher render scheme.qvf -o scheme.png --style rsc --dpi 600
vibe-sketcher render scheme.qvf -o scheme.pdf --style rsc
PNG defaults to 300 DPI, with a white background and embedded physical
resolution metadata. --dpi accepts integers from 36 to 2400; exports over
40 million pixels are refused before allocating the raster. PDF preserves
the SVG’s physical dimensions in points and uses vector shapes with embedded
annotation fonts. No system font or network resource is loaded. Unsupported
annotation glyphs are refused with their Unicode code points rather than
replaced by empty boxes. The same embedded font also makes SVG portable.
SDK render and document.formats.export accept dpi=600 for PNG. REST
export routes accept ?dpi=600; MCP export accepts dpi. Browser exports
use the same API at 300 DPI and offer PDF alongside SVG and PNG. When the
optional backend is absent, the browser can still rasterize SVG locally;
server PDF and scheme PNG return an installation hint. Base installs retain
legacy ACS PNG for one structure without annotations.
chemfig for LaTeX¶
vibe-sketcher convert scheme.qvf -o scheme.tex (SDK export(document, "chemfig"),
REST GET /api/documents/{id}/export/chemfig, MCP export with format
chemfig) writes a fragment for a document that loads the chemfig
package: \input{scheme.tex} draws every reaction as a scheme and every
other species as a structure. The walk reproduces the drawing: bond angles
and relative lengths come from the 2D coordinates, so fused and bridged
rings appear as drawn; carbon is implicit, heteroatoms carry their
hydrogens away from their bonds and charges as superscripts, stereo bonds
are Cram wedges and hashes, aromatic rings are written in a Kekulé form,
and a contracted abbreviation is its label.
Reagents sit above the arrow, conditions and the yield below it, and a
compound number becomes \chemname. Forward, equilibrium and resonance
arrows are chemfig’s; a retrosynthetic arrow uses TikZ’s double -Implies
tip, which chemfig loads. Electron-flow arrows and free text of a drawing
are not written in a scheme. The fixture set is compiled with lualatex by
the test suite where TeX is installed; a bond chemfig cannot draw (dative,
query) is refused with the reason.
A drawing with shapes or
polymer brackets is written
differently, because a box, a ring or a bracket only means something where
it is drawn, and a bracketed group is no species a scheme could hold:
the fragment is one tikzpicture of the whole drawing, the figure the SVG
export prints. Each molecule is a \chemfig walk whose first atom sits at
that atom’s drawing coordinates. Rectangles, ellipses, lines, arrows of every
kind the SVG figure draws (curved electron-flow arrows included), plus signs
and text are TikZ paths and nodes in the same coordinates, so a TLC plate
comes through as well. One median bond of the drawing is chemfig’s default
atom sep of 3 em. Compound numbers appear only as the text drawn on the
canvas, as in the SVG figure. A polyline is a TikZ path through its
points, and the brackets of repeat units, copolymers, multiple and generic
groups are TikZ paths with their label below the closing one. An
R-group atom is its label, such as R1, and each
definition is written with its “R1 =” caption and a wavy line across every
attachment bond, made of TikZ’s own sin and cos path operations. Objects
the drawing cannot express are refused rather than left out.
CDXML for ChemDraw¶
Open ChemDraw/ChemOffice drawings saved as CDXML using Open…,
vibe-sketcher convert scheme.cdxml -o scheme.qvf, SDK import_into,
REST document import, or MCP open_document. QVF is vibe-sketcher’s native
editable document format: save the imported drawing and subsequent work as
QVF. Binary CDX files (.cdx, ChemDraw’s native format) open the same
way, as bytes (base64 over REST): vibe-sketcher rewrites the file as CDXML,
object for object as the CDX format specification describes, and reads that.
The desktop app opens .cdx through its Open dialog but does not register
itself for the type.
RDKit reads the structures, expanding nicknames such as Ph and taking
stereochemistry from wedges and double-bond geometry. Drawn coordinates,
arrows, plus signs, text and compound numbers are retained. Reactions are
read from the drawing. Its own scheme is checked against that reading:
differences and omitted objects, such as frames, shapes and tables, produce
warnings. Inspect those warnings before relying on an imported drawing.
A file whose scheme lists reactions without drawing arrows is laid out in rows.
Writing CDXML. Export ▸ CDXML in the browser,
vibe-sketcher convert scheme.qvf -o scheme.cdxml, SDK
export(document, "cdxml"), REST GET /api/documents/{id}/export/cdxml and
the MCP export tool write the drawing for other programs. Copy as CDXML
puts the same text on the clipboard. Each molecule is a fragment at its drawn
coordinates, with element labels, charges, isotopes, radicals, bond orders,
wedges and wavy bonds; arrows keep their kind, including equilibrium,
retrosynthetic and curved electron-flow arrows; plus signs, text, compound
numbers, rectangles, ellipses and lines are kept. A scheme names each
reaction’s reactants, products, arrow and the reagents and text above and
below it. Bond length, line widths and the label font size are the style
preset’s. Highlights and stereo labels are not written. Objects CDXML cannot
hold are refused with the reason.
The writer is checked by round trips: every tutorial scheme written as CDXML and read back keeps each species (by InChIKey), each reaction and each arrow. Revvity’s ChemDraw file library, which RDKit bundles, reads every species of each written file. vibe-sketcher is not tested against ChemDraw itself. QVF remains the native format: CDXML is for exchange, so keep your own copy as QVF.
Automated CDXML import and QVF preservation checks remain required. Actual ChemDraw testing is omitted because ChemDraw is unavailable; compatibility with ChemDraw itself is unverified, and no ChemDraw acceptance files are required for 0.4.
Peptides and nucleic acids¶
A peptide, DNA or RNA becomes its full skeletal structure, an ordinary species with its SMILES, InChIKey, report, 3D structure and calculations. In the browser, choose Import → Peptide sequence…, DNA sequence…, RNA sequence… or HELM…. Elsewhere, name the format:
vibe-sketcher convert YGGFL --from peptide -o enkephalin.vsk
vibe-sketcher convert 'PEPTIDE1{C.Y.I.Q.N.C.P.L.G}$PEPTIDE1,PEPTIDE1,1:R3-6:R3$$$' --from helm -o ring.vsk
The SDK’s import_into(document, "ACGT", "dna"), the REST import endpoints
with "format": "rna" and the MCP new_document and add_structures tools
take the same formats. A sequence is read in one-letter codes; any other
letter is refused with its position. Modifications, D-amino acids and links
such as disulfides need HELM, which RDKit reads as far as its monomer library
goes. RDKit’s library has the acetyl and amide caps (ac, am) but not
N-methyl or phosphorylated residues, so vibe-sketcher adds a short, reviewed
table of them, by the symbols of the Pistoia Alliance’s HELM core library so
HELM from other programs reads here:
HELM |
Residue |
Printed |
|---|---|---|
|
N-methyl alanine, phenylalanine, histidine, leucine, tryptophan |
MeAla, MePhe, MeHis, MeLeu, MeTrp |
|
sarcosine (N-methylglycine) |
Sar |
|
phosphoserine, phosphothreonine, phosphotyrosine |
Ser(PO3H2), Thr(PO3H2), Tyr(PO3H2) |
Each is made on the standard residue and checked against a structure written
out by hand; oxytocin, PEPTIDE1{C.Y.I.Q.N.C.P.L.G.[am]}$PEPTIDE1,PEPTIDE1,1:R3-6:R3$$$,
reads as itself. The table grows on request. A monomer neither RDKit nor the
table knows, such as hydroxyproline for now, is refused. So is one RDKit’s
library lists but cannot build, such as [Nal] (the HELM core library’s
naphthylalanines are 1Nal and 2Nal): RDKit would leave it out of the
structure, and the import names it and its position instead. The structures are built by RDKit
(MolFromSequence, MolFromHELM) and laid out like any imported structure,
up to 2,500 atoms each and 5,000 in one import (see security).
A species imported this way keeps its sequence: the HELM and the InChIKey
of the structure it builds (see the document format). It is
saved in .vsk and QVF, and kept for as long as the drawing is that
structure; edit the drawing into another structure and the record is gone.
That record is what the sequence exports and figures use:
HELM (
.helm) writes every species as its HELM, one per line.FASTA (
.fasta) writes every species as a record headed by its compound number or id. FASTA holds one chain of standard residues only, and does not say whether ACGT is a peptide or DNA; anything else is refused, so export it as HELM.Figures print such a species as its sequence; see sequences in a figure.
Both exports refuse a document with a species that has no sequence, such as a reagent drawn by hand, rather than leave it out.
When a sequence species is sent to vibe-viewer, its x_vibesketch.origin
section also carries helm and helm_inchikey. These are optional hints for
a compatible 3D builder; the full atom graph and the checked return mapping
remain authoritative. A mismatching sequence must not replace the graph.
Enumerate R-groups¶
Generate all R-group combinations in the browser appends every constraint-valid
ordinary species while retaining the original drawing, cores and definitions.
The SDK is vibesketch.document.enumeration.enumerate_rgroups(document, core=None);
CLI: vibe-sketcher enumerate-rgroups drawing.qvf --core g1 --output enumerated.qvf.
Omit --core for every core. REST uses POST /api/documents/{id}/enumerate-rgroups
with revision and optional core; MCP exposes enumerate_rgroups.
Occurrence counts, RestH and if-then constraints follow the MDL CTfile specification. Attachment points and bond orders must match the core. Divalent sites and substituents bridging two separate sites enumerate both attachment orientations and every compatible grouping of sites. Resulting chemical identities are deduplicated, including against species already present, so repeating enumeration adds nothing. The core, definitions, existing conformers and jobs remain intact. Products are added in table order, the order the substituents are listed; when the core has a compound number, such as 3, its new products are numbered 3a, 3b, … in that order, the number written under each.
An unfilled RestH-off site allows arbitrary fragments and is therefore unbounded: set an occurrence requiring every site or enable RestH to permit hydrogen. Missing definitions, incompatible attachments and unspecified polymer lengths are refused. More than 32 attachment sites, 10,000 candidate assignments or 1,000 distinct products is refused before changing the drawing; the operation never silently truncates.