Architecture
Platform Architecture Overview
ToxIndex is a set of interconnected tools, each handling a specific part of the chemical safety assessment workflow. This doc explains how the pieces connect and how data moves through the system.
Component layers
The platform is organized into five layers:
- Data layer: Yard (knowledge graph) and Crawler (regulatory document search) provide the evidence base
- Prediction layer: ToxJobs runs 100+ validated toxicology tools against chemical structures
- Orchestration layer: Flow coordinates tools into reproducible assessment pipelines
- Interface layer: Sage gives natural language access to everything on the platform
- Integration layer: IUCLID and QSAR Toolbox connections plug into existing regulatory workflows
How data flows through an assessment
Here’s what happens during a typical assessment run:
- Crawler ingests regulatory documents from 1,000+ global sources and feeds structured data into Yard
- Yard stores chemical-endpoint relationships, study results, regulatory classifications, and source metadata
- When an assessment kicks off (through Sage or directly through Flow), ToxIndex queries Yard for existing data on the target substance
- Flow identifies data gaps by comparing what’s available against the requirements of the selected regulatory framework
- Flow dispatches ToxJobs to generate predictions for endpoints where experimental data is missing
- ToxJobs queries Yard for structural analogs and training data, runs the appropriate models, and returns predictions with confidence levels
- Flow assembles all the evidence (experimental data, predictions, read-across, regulatory context) into a structured assessment
- Results go back into Yard for future reference and can be exported to IUCLID or other formats
Yard and Crawler working together
Crawler is the ingest pipeline. It discovers, downloads, classifies, and parses regulatory documents from agencies worldwide.
Yard is the knowledge store. It takes parsed data from Crawler and integrates it into a structured graph of chemical-endpoint relationships. Crawler runs continuously, and Yard integrates the extracted data on a rolling basis.
One important thing Yard handles is entity resolution. The same substance often appears under different identifiers in different sources. Yard normalizes these into a single entity so you’re always working with a unified view.
How Flow runs assessments
Flow pipelines are sequences of steps, each calling a specific platform tool with specific parameters.
Steps run in parallel when they can (e.g., querying Yard for existing data while Crawler searches for regulatory documents). Steps that depend on previous results run sequentially (e.g., predictions run after gap analysis figures out which endpoints need them).
Every step records its inputs, outputs, execution time, and any warnings or errors. The pipeline definition, input parameters, and data versions are all captured, so any assessment can be reproduced exactly.
How Sage translates questions into tool calls
Sage parses natural language and maps it to the right platform tools.
A simple data query like “What is the oral LD50 of acetaminophen?” becomes a knowledge graph lookup for acute oral toxicity data on CAS 103-90-2.
A prediction request like “Predict the genotoxicity of this structure” triggers a batch model run across genotoxicity endpoints.
An assessment request like “Run a REACH assessment for this substance” kicks off a Flow pipeline for that regulatory context.
Sage maintains conversation context, so follow-up questions can reference previous results without you having to restate the substance or endpoint.
Versioning
The platform tracks data and model versions so you can trace what went into a result:
- Yard snapshots capture the data state at the time of a pipeline run
- Model versions are recorded per run so predictions can be traced to specific weights
- Crawler documents preserve the history of regulatory document amendments
The goal is full reproducibility: rerun a historical assessment against the same data and models, get the same result.