Use ReShiki structures and reactions in CAS SciFinder
ReShiki can prepare molecular SMILES and MOL data for a manual CAS SciFinder structure search. Ethanol text entry and a ReShiki-generated MOL import were verified in an authorized SciFinder session on October 2, 2026; both searches returned ethanol (CAS RN 64-17-5). An authorized CAS SciFinder account and your institution’s normal access route are required.
The October 2 molecule verification covers one complete, connected molecule. Cmd/Ctrl+Alt+C prepares chemical text for the selected drawing: molecular SMILES without an arrow, or bounded ChemDoodle reaction JSON for one clear reaction arrow. Reaction roles can be explicitly assigned or inferred for the copy alone. The browser remains responsible for sign-in, reviewing the query and running the search. ReShiki has no automatic SciFinder search integration.
Ordinary Copy and receiving fields
Section titled “Ordinary Copy and receiving fields”Cmd/Ctrl+C copies the drawing for ReShiki, ChemDraw, Office and image apps. It supplies no chemical plain text. To paste a structure into a text field such as SciFinder’s, select it and use Cmd/Ctrl+Alt+C. The same shortcuts apply on Windows, macOS and Linux.
With no selected reaction arrow, Cmd/Ctrl+Alt+C copies molecular SMILES. Every selected disconnected molecular component is retained. Inspect the receiver’s handling of salts, mixtures and multiple components before searching. Their acceptance is outside the October 2 single-molecule verification.
For an unassigned scheme, select all complete participant molecules and exactly one straight forward arrow. Cmd/Ctrl+Alt+C infers starting materials toward the arrow’s start and products toward its end, using the arrow’s own axis. Vertical, diagonal and right-to-left layouts follow the same rule. A molecule crossing or touching the arrow midpoint, an extra unexplained central component, an unsupported arrow or a missing reaction side prevents inference. Conditions do not become chemical agents automatically.
Inference changes only the chemical copy. It does not add reaction
roles to the .rsk drawing, move atoms, change the source document or create
an Undo entry. Original explicit roles take precedence over positions. Select
the complete defined reaction, including its arrow and associated captions, to
copy it as a reaction. With no arrow selected, exactly one complete explicit
participant can be copied as a molecule. Partial explicit participants and
selections spanning explicit participants are rejected for chemical text,
even when the selection snapshot no longer contains their reaction metadata.
If inference or conversion is invalid, ambiguous or too large, Cmd/Ctrl+Alt+C leaves the previous clipboard intact and reports the reason. Copy as requests a particular format and reports conversion failure instead of preparing another format. Review the copy status before using the receiving text field.
In CAS Draw, paste molecular SMILES into the text-to-structure field and choose Add to Editor. For a reaction, use ReShiki Cmd/Ctrl+Alt+C, then Cmd/Ctrl+V into ChemDoodle’s Open text field, followed by Load. Direct Cmd+V into either editor’s drawing canvas did not import the ReShiki selection in the October 5 checks. That build supplied chemical text through ordinary Copy. ChemDoodle Open/Load did load its reaction JSON. CAS Draw accepted the no-arrow two-ring SMILES through its text field and Add; Center Structure revealed both complete rings. See the bounded October 5 results below; the October 2 checks describe earlier verified search routes.
Copy SMILES
Section titled “Copy SMILES”- In ReShiki, select the whole molecule, including any defined abbreviations. Double-click a molecule with the selection tool to select its connected atoms. Check that other molecules are not selected. A partial selection can export a different chemical fragment.
- Press Cmd/Ctrl+Alt+C, or right-click the selection and choose Copy as → SMILES. Review any reported export warning or error; an unsuccessful copy can leave the previous clipboard content in place.
- Open CAS SciFinder through your usual institution access route. Open Draw and choose Substances in its structure editor.
- Paste the SMILES into CAS Draw’s text-to-structure field, then use Add to Editor or Enter. CAS’s guide uses keyboard paste for this field.
- Inspect the resulting atoms, charges, isotopes and stereochemistry. Choose OK, then Submit Search. Review CAS’s matching and stereochemistry settings and confirm the expected substance in the results. The tested As Drawn search also returned salts and multicomponent substances; it was not an exact-only result set. A successful export alone does not establish a search match.
For a specified stereoisomer, inspect the Stereochemistry filter. In the tested lactic-acid search, both Absolute Stereo Match and Absolute Stereo Mirror Image were selected initially. Keeping only Absolute Stereo Match returned the expected L-lactic-acid entry (CAS RN 79-33-4). Multicomponent matches still appeared; the filter does not mean the results contain only the isolated molecule.
CAS’s structure-search guide documents SMILES and InChI text entry. Its ChemDraw import guide shows the receiving field and keyboard-paste procedure. ReShiki supplies ordinary structure text; it does not use the ChemDraw add-in. CAS also describes exact and similarity search in its advanced structure-search guide.
Import MOL instead
Section titled “Import MOL instead”In ReShiki, choose Export → Structure & exchange → MOL structure → Export
MOL… for a drawing containing just the intended molecule. File export uses
the whole drawing. Alternatively, prepare the local fixtures below. In CAS Draw,
use its import control,
Choose File, select the .mol file and confirm it. Review the structure
before searching. CAS documents the file-picker route in
Import a Structure File in CAS Draw.
Cmd/Ctrl+Alt+O copies MOL text from the selection. It does not create a
file. CAS Draw’s tested MOL route is a file import; the embedded ChemDoodle
editor also offers MOL text loading under Open. Keep the .rsk original
for drawing layout and ReShiki editing information.
Paste a reaction with ChemDoodle JSON
Section titled “Paste a reaction with ChemDoodle JSON”Use this route for a single forward reaction with supported reactants and
products, using explicit roles or the copy-only inference above. Ordinary
molecular SMILES/MOL does not carry reaction roles. In the tested CAS Draw text field, CCO>>CC=O was rejected as an
unrecognized format; its upload dialog offered only .cxf and .mol.
- In ReShiki, include the whole reaction and all its participant molecules in the selection. Explicit roles override geometry; one clear unassigned straight forward arrow can supply copy-only roles from its start and end. For Copy as, clearing the selection uses the whole drawing.
- Press Cmd/Ctrl+Alt+C for the selected reaction, or right-click an object in the selection and choose Copy as → ChemDoodle JSON · reaction. To copy the whole drawing, right-click blank canvas outside the selection bounds. Check that the submenu says Copy as · whole drawing. Review any warning or error before switching applications.
- In SciFinder, open Draw, choose ChemDoodle from the editor selector, and select Reactions.
- Choose Open. Paste into the field labeled Or paste MOLFile or ChemDoodle JSON text and press Load, then choose Load.
- Inspect every participant, the forward arrow, and the displayed reactant/product roles. Choose OK, then Submit Search. Confirm the intended transformation in the reaction results.
Aromatic graphs now use validated canonical Kekulé single/double bonds with preserved attached hydrogen counts. Invalid assignments and chemical normalization are rejected. The JSON exporter still rejects agents, atom maps, stereochemistry, radicals, special bonds, collapsed abbreviations, disconnected components grouped into one participant and non-unit coefficients rather than silently dropping their meaning. Expand defined abbreviations first. Several separate connected participants can be included on either side. This remains a bounded search handoff, not a general reaction interchange format. Keep the native drawing; use RXN/reaction SMILES for other receivers that support those formats.
The ChemDoodle JSON specification defines molecular graphs, synthetic arrows and role references. CAS’s reaction-query guide explains participant roles and optional query features. These references do not establish that every ChemDoodle feature is accepted by SciFinder.
Limits to review
Section titled “Limits to review”| Drawing content | Copy/handoff behavior and receiving limits |
|---|---|
| A complete ordinary molecule | Start with SMILES or MOL and inspect CAS’s imported structure. |
| Tetrahedral or double-bond stereo | Locally test identity preservation, then verify the CAS depiction and search settings. Unspecified stereo remains unspecified. |
| Defined collapsed abbreviations | The underlying atoms are exported; abbreviated appearance need not survive. Verify the full graph. |
| Plain text labels, R-groups, query atoms, polymers, variable or multicenter attachments | Outside this workflow. A displayed label is not a defined molecule, and CAS query features do not establish ReShiki query-format compatibility. |
| Salts, mixtures or multiple disconnected molecules | All selected components are retained. The October 5 two-ring SMILES import passed through Add/Center; inspect other salts and mixtures. Selecting one component changes the substance. |
| Reactions and schemes | Use the bounded ChemDoodle JSON route with explicit or copy-only inferred roles. Molecular MOL/SMILES does not preserve reaction roles. |
| Coordinate/exotic bonds or MOL V3000 | ReShiki has format-specific handling, but CAS support for every emitted variant has not been verified. |
| Captions, graphics, colors and document layout | These are not an exact molecular identity and are not retained by ordinary molecular identifiers. |
Copy as uses selected objects, or the whole drawing when nothing is selected. The chemical-text and MOL keyboard shortcuts require a selection. For unassigned no-arrow molecules, partial selections can still export fragments. Select the complete molecule. Molecular Copy as formats are disabled for a copied reaction. Select one complete explicit participant without its arrow for molecular text. Omitting an arrow does not permit a selection spanning explicit participants to flatten their reaction roles.
Reproducible local preparation
Section titled “Reproducible local preparation”The example below creates four public test drawings and their .smiles, .mol
and .inchi exports: ethanol, a specified lactic-acid stereoisomer,
stereodefined difluoroethene, and a molecule with defined collapsed groups.
It also prepares an ethanol-to-acetaldehyde reaction, with native, RXN and
reaction-SMILES role/connectivity checks, plus the same ChemDoodle JSON text
produced by Copy as. It reimports the three molecular formats through
ReShiki and requires matching full InChIKeys,
formulas, heavy-atom counts and heavy-atom bond counts, with no warnings.
InChI import may materialize explicit hydrogens; those counts are recorded
without treating a hydrogen representation change as a chemical identity change.
Reaction RXN/SMILES are checked for roles and connectivity; the JSON is checked
for atoms, bonds, attached hydrogens, arrow and role references. ReShiki does
not import ChemDoodle JSON. Output hashes and
identities are written to manifest.json. These are local interchange checks,
not independent chemical-reference or CAS acceptance tests.
Run from the repository root, with a new output directory whose parent exists:
cargo run --example scifinder_handoff_qa -- /tmp/reshiki-scifinder-handoffThe separate clipboard fixture example
prepares an unassigned benzene-to-cyclohexane scheme, vertical and reversed
versions, a no-arrow two-ring mixture, and a single Cyclohexane. It writes native
sources, chemical text, SVG previews and manifest.json, checking that chemical
copy preparation leaves each source unchanged. It does not publish to the
clipboard or contact CAS, and its manifest marks receiver import as untested.
Use a separate output directory:
cargo run --locked --example scifinder_clipboard_qa -- /tmp/reshiki-scifinder-clipboardThese fixtures exercise the chemical-text preparation used by Cmd/Ctrl+Alt+C. Their generated text alone does not establish receiving-editor import or canvas paste; the separate live checks below record what was actually tested.
For the receiving-application check, start with ethanol.rsk in ReShiki and
compare its copied SMILES with ethanol.smiles. In an authorized CAS session,
exercise both keyboard entry and ethanol.mol import. Record the editor,
browser/platform, date, imported structure and substance-search outcome.
Repeat the stereo and abbreviation cases only after ethanol works. Record
errors and differences rather than broadening the compatibility claim.
On October 2, 2026, the workflows were exercised in Microsoft Edge on macOS
through an authorized institutional SciFinder session. The baseline checks
used public ethanol. CAS Draw accepted CCO and the generated ethanol.mol,
showed C2H6O (46.07), and returned ethanol (CAS RN 64-17-5) first under
As Drawn. The observed result count was 17,602 and included salts and
multicomponent entries; counts can change. No private drawing or credentials
were included in the fixtures or evidence.
The generated lactic-acid SMILES preserved a stereobond; the receiver’s
Absolute Stereo Match filter returned L-lactic acid (79-33-4). Generated
F/C=C/F selected Double Bond Geometry As Drawn and returned
trans-1,2-difluoroethylene (1630-78-0) first among 22 results.
The 16-atom fixture with two defined collapsed groups exported its full SMILES
graph. CAS showed C12H17NO3 (223.27) and returned the expected
N-(4-methoxyphenyl)carbamic acid tert-butyl ester (18437-68-8) first among
seven results.
The exact ChemDoodle JSON emitted by the shared Copy as preparation path
for ethanol-oxidation.rsk was pasted into the receiving editor. Ethanol
appeared as reactant, acetaldehyde as product, with the forward arrow.
Submitting the search returned 2,070 As Drawn reactions. Opening the
1,383-reaction alcohol-oxidation group showed the expected ethanol (64-17-5)
to acetaldehyde (75-07-0) scheme.
The native macOS app was also checked with this fixture. Both Copy as · whole drawing and Copy as · selected objects displayed all 11 format choices. The actual ChemDoodle JSON · reaction menu actions copied identical 609-byte payloads, matching the generated fixture. Keyboard paste from the system clipboard into ChemDoodle loaded the expected roles, and the selected reaction copy completed the same search through the expected ethanol-to- acetaldehyde result. Agents, atom maps and reaction stereo were not part of this fixture.
October 5 clipboard and receiving-editor checks
Section titled “October 5 clipboard and receiving-editor checks”The checks below describe the October 5 build, where ordinary Copy included chemical text. Current builds use Cmd/Ctrl+Alt+C for that text and Cmd/Ctrl+C for the drawing.
On October 5, 2026, an optimized arm64 QA build from
f6484656c34c5edc0bbccfbe535096f8fb157fd2 was checked with Microsoft Edge
on macOS in the authorized SciFinder session. The public unassigned
benzene-to-cyclohexane fixture contains 12 atoms, 12 bonds and one forward arrow.
The baseline comparison used 81e8193deae71af79fae7a0a5bdf823df5de786e.
| Clipboard source and receiving action | Observed result |
|---|---|
| Baseline ordinary Cmd+C, then Cmd+V in ChemDoodle’s Open text field | The field remained empty. |
| QA ordinary Cmd+C for the reaction, then Cmd+V in ChemDoodle’s Open text field and Load | The field received JSON identical to the fixture generator output. Load displayed benzene with three double bonds, Cyclohexane with six single bonds, the forward arrow and correct reactant/product labels. |
| QA reaction Copy, then direct Cmd+V in the ChemDoodle canvas | It inserted an older six-atom Cyclohexane from the editor’s internal copy state, rather than the 12-atom ReShiki reaction. |
| QA ordinary Cmd+C for the no-arrow two-ring fixture, then direct Cmd+V in the CAS Draw canvas | No change: OK, Copy and Paste remained disabled, with no formula displayed. |
| The same no-arrow Copy, then Cmd+V in CAS Draw’s text field, Add and Center Structure | The field received C1CCCCC1.c1ccccc1. Add accepted both components; Center Structure showed Benzene with three double bonds and Cyclohexane with six single bonds. The screenshot displayed C6H12 (84.16) . C6H6 (78.11). |
| Existing Copy as MOL shortcut Cmd+Alt+O, then Cmd+V in CAS Draw’s text field | The field received actual V2000 MOL text with 12 atoms and 12 bonds. This checked clipboard text delivery, not structure conversion. |
| The same MOL Copy, then direct Cmd+V in the CAS Draw canvas | No change. |
| The same MOL Copy, then direct Cmd+V in the ChemDoodle canvas | It inserted the older internal six-atom Cyclohexane, rather than the 12-atom clipboard structure. |
No search was submitted during these October 5 checks. The reaction check
establishes the Open text field followed by Load for this horizontal aromatic fixture;
vertical and reversed layouts have local test coverage but were not exercised
live. For the no-arrow fixture, real Cmd+V supplied C1CCCCC1.c1ccccc1 to
CAS Draw’s text field, and Add accepted it. The initial canvas view appeared
blank or off-center. Center Structure then showed both six-membered rings:
benzene with three double bonds and Cyclohexane with six single bonds. The
actual screenshot showed C6H12 (84.16) . C6H6 (78.11); an accessibility reading
that had truncated the formula to C was inaccurate. This verifies the
text-field/Add/Center route for that two-component fixture. The MOL check still
establishes text-field delivery only; MOL Add/conversion was not tested.
The exact JavaScript loaded by that SciFinder session was also inspected: CAS Draw 1.188, the CAS-customized ChemDoodle bundle, EmbeddableCasDraw and SciFinder’s application wrapper. CAS Draw’s canvas keyboard handler prevents the browser’s default Cmd/Ctrl+V and publishes an internal paste request. ChemDoodle’s handler calls its internal CopyPasteManager. Both paste managers read buffers populated by Copy inside their own editor, and neither SciFinder wrapper connects an external clipboard reader to the canvas. Separate clipboard references write text or read a Tagify text input; they do not import chemical content into these canvases. Receiver JavaScript was kept outside the repository.
For this inspected build, changing ReShiki’s clipboard text or MIME formats alone cannot satisfy direct canvas Cmd+V. This diagnosis applies to the inspected build and does not establish behavior for every browser or editor release.
The tested reaction workflow was ReShiki Cmd+C → Cmd+V into ChemDoodle’s Open text field → Load. It preserved both complete participants and their reactant/product roles in the tested benzene-to-cyclohexane fixture. PR #144 added this workflow. Use Cmd/Ctrl+Alt+C to prepare the same chemical text in current builds. Direct canvas paste and CAS reaction integration are outside this workflow.
Direct integration decision
Section titled “Direct integration decision”CAS documents a ChemDraw-specific search integration and publishes a partner-facing Structure Search API developer guide. The API requires a CAS-issued application client ID and interactive OAuth 2.0 PKCE sign-in by an authorized SciFinder user. ReShiki has no registered CAS application client ID. The documented route posts structure data to the authenticated API and opens the returned result path; it does not provide a generic URL that preloads arbitrary new structures. CAS Connections directs customers building custom API or MCP integrations to CAS Custom Services; access depends on subscriptions and integration arrangements.
For issue #95, the useful first step is this verified manual route plus accessible SMILES/MOL and bounded ChemDoodle reaction copy controls. A later direct-search action needs a supported contract, an authorized test account, institution access requirements, and explicit decisions about chemical data transmission and complete-molecule selection. It must report successful preparation separately from successful browser opening or search execution.