Assay Schema
This reference document defines the structural properties of the ISAAssayJSONSchema object and explains how its experimental data graphs map onto a flat, tab-separated assay matrix file (a_*.txt).
Object Properties
Section titled “Object Properties”The ISAAssayJSONSchema object models a distinct experimental test or measurement block within a study and contains the following parameters:
| Property | Type | Description |
|---|---|---|
@type |
"Assay" |
Mandatory type metadata token. |
@id |
string |
Optional JSON-LD identifier. |
@context |
string |
Optional JSON-LD context string. |
filename |
string |
The target file name assigned when writing out this assay matrix (typically a_*.txt). |
measurementType |
ISAOntologyReferenceSchema |
Ontology term representing what is being measured. |
technologyType |
ISAOntologyReferenceSchema |
Ontology term representing the technology platform used. |
technologyPlatform |
string |
A string detailing the explicit manufacturer or instrument layout. |
dataFiles |
ISADataSchema[] |
Array of associated raw or derived data assets generated by this assay. |
materials |
{ "sources": SourceSchema[], "samples": SampleSchema[], "otherMaterials": MaterialSchema[]} |
Object containing the materials used in the assay. |
unitCategories |
OntologyAnnotationSchema[] |
List of all the units defined in the study. |
processSequence |
ISAProcessOrProtocolApplicationSchema...[] |
The execution tracking graph connecting assay inputs, protocols, and data nodes. |
comments |
ISACommentSchema[] |
It corresponds to ISA Comment objects. |
Matrix Generation & Column Architecture
Section titled “Matrix Generation & Column Architecture”When converting an ISA Study structure using convertTable(tableData: ISAAssayJSONSchema) into horizontal, tab-delimited files, columns are dynamically generated by evaluating linear sequences via a graph model.
1. Structural Element Columns
Section titled “1. Structural Element Columns”Assay sequences typically terminate in data files or specialized material extracts. Columns are ordered by processing sequence:
- Assay Material & Data Nodes: Generates column headers dynamically matching the underlying node type (e.g.,
Extract Name,Labeled Extract Name,Raw Data File). Cells output the string literalnameof the entity. - Workflow Steps: Intermediary execution steps generate a
Protocol REFcolumn matching theprotocolNameon the corresponding process edge.
2. Annotation & Qualifier Modifiers
Section titled “2. Annotation & Qualifier Modifiers”Just like the Study matrix, nodes and process boundaries append descriptive qualifiers to their immediate right if ontology metadata or comments exist:
Node Attributes (Characteristics & Comments)
Section titled “Node Attributes (Characteristics & Comments)”Characteristics [Category]: Generated if an assay node includes items in itscharacteristicscollection. The category label is extracted fromcharacteristicType.annotationValue.- Generates two trailing qualifier tracking columns:
Term Accession NumberandTerm Source REF.
- Generates two trailing qualifier tracking columns:
Comment [Name]: Appends a column for entries inside a node’scommentsarray matching the targeted comment configuration.
Protocol Attributes (Parameters)
Section titled “Protocol Attributes (Parameters)”Parameter Value [Name]: Generated when a workflow step applies discrete parameter values. The bracketed name reflectsparameterName.annotationValue.- Generates two trailing qualifier tracking columns:
Term Accession NumberandTerm Source REF.
- Generates two trailing qualifier tracking columns:
Output Structural Integrity Constraints
Section titled “Output Structural Integrity Constraints”- Cell Compiling: All string tokens within generated body cells are strictly wrapped inside double-quotes (
"") and broken down by uniform tab delimiters (\t). - Intermediary Null Safe Fallbacks: If shorter alternate pathways exist within the graph topology, columns belonging strictly to longer parallel routes evaluate cleanly to empty strings (
"") to preserve structural row symmetry. - Termination Rule: If the input
processSequencecontains zero entries, calls to the matrix compiler break immediately and return an empty string ('').