Open Reaction Database Schema (JavaScript)

0.4.7 · active · verified Wed Apr 22

The `ord-schema` package provides JavaScript and TypeScript wrappers for interacting with the Open Reaction Database (ORD) schema. The ORD project standardizes the representation of chemical reaction data, facilitating data exchange, analysis, and machine learning applications within the chemistry domain. This library offers client-side tools, primarily built on Protocol Buffers (protobuf), to create, manipulate, and validate reaction data according to the ORD specification. Currently at version 0.4.7, the package has a consistent release cadence, often addressing internal tooling, dependency updates (like Protobuf), and minor bug fixes. Its core differentiator lies in enabling structured, interoperable chemical reaction data handling.

Common errors

Warnings

Install

Imports

Quickstart

Demonstrates creating a new Reaction object, populating basic fields, performing client-side validation, and handling Protobuf serialization/deserialization.

import { Reaction, validateReaction, ReactionMeasurement, Product } from 'ord-schema';

const reaction = new Reaction();
reaction.setReactionId('my-unique-reaction-id');

const measurement = new ReactionMeasurement();
measurement.setOutcome('SUCCESS');
reaction.addMeasurements(measurement);

const product = new Product();
product.setReactionProduct('my-product-smiles'); // Example SMILES string
reaction.addProducts(product);

// Add a textual description
reaction.setText('A simple example reaction with one product and a success outcome.');

// Validate the reaction object against the schema
try {
  validateReaction(reaction);
  console.log('Reaction is valid:', reaction.toObject());
} catch (error) {
  console.error('Reaction validation failed:', error);
}

// Example of serializing to binary (for sending over network/saving)
const binaryData = reaction.serializeBinary();
console.log(`Serialized reaction to ${binaryData.length} bytes.`);

// Example of deserializing from binary
const deserializedReaction = Reaction.deserializeBinary(binaryData);
console.log('Deserialized reaction ID:', deserializedReaction.getReactionId());

view raw JSON →