Skip to content

SEEK-ready template (ISA) v4.0

An ISA-shaped template for a profile whose datasets upload to FAIRDOM-SEEK as ISA-JSON compliant content. Every entity maps to a SEEK/ISA role, so a dataset built on it syncs to SEEK with nothing left behind.

Clone it in the Spec Builder, add your own fields, and keep the shape. For the rules behind it, see Authoring a SEEK-ready profile.

Structure

erDiagram
    Investigation ||--o{ Study : studies
    Study ||--o{ Source : sources
    Study ||--o{ Assay : assays
    Assay ||--o{ SOP : sops
    Source ||--o{ Sample : samples
    Sample ||--o{ AssayMaterial : assay_materials
Hold "Alt" / "Option" to enable pan & zoom
  • Investigation: the overarching project (the root).
  • Study: a study within it.
  • Source: a source material the study started from, the head of the ISA material chain.
  • Sample: a sample collected from a Source.
  • AssayMaterial: a material or data file measured from a Sample. It names the Assay that measured it by that Assay's title (assay), because one Assay measures materials from many Samples and containment cannot express that.
  • Assay: a measurement performed on the materials.
  • SOP: a standard operating procedure an Assay follows. The SEEK export registers it by the location of its document (url) and links it to the Assay.

There is no ObservationUnit level: the SEEK export synthesises one per sample.

SEEK's record fields

The Investigation, Study and Assay records carry SEEK's own attributes:

Entity Fields sent to SEEK ISA-JSON only (seek_isa_only)
Investigation title, description submission_date, public_release_date
Study title, description study_design_type, start_date, end_date, experimental_site, country
Assay title, description, assay_class, assay_type measurement_type, technology_type, technology_platform

SEEK has no identifier attribute on these records, so title is the identifier and is required. assay_class is EXP (experimental) or MODEL (modelling) and assay_type a JERM ontology URI; SEEK requires both. technology_type is ISA-only here because it holds free text, while SEEK's attribute of that name takes an ontology URI. The ISA-only fields reach SEEK inside the ISA-JSON export, not as record attributes.

Versions

Version Change
4.0 Breaking: no identifier field on Investigation, Study and Assay (the title identifies them); Assay gains description, assay_class and assay_type, and its title is required; an Assay lists its SOPs (sops, the SOP role); AssayMaterial.assay names the Assay by title; fields SEEK has no attribute for are marked seek_isa_only.
3.0 Breaking: the material chain Source, Sample, AssayMaterial is explicit.
2.0 A single Sample level under Assay.
1.0 Investigation, Study, Sample and Assay.

Using it

from metaseed.specs.loader import SpecLoader

spec = SpecLoader().load_profile(version="4.0", profile="seek-ready-template")
print(spec.root_entity)                 # Investigation

# Each entity declares the SEEK role it uploads as.
for name, entity in spec.entities.items():
    print(name, "->", entity.seek.role if entity.seek else None)