analysis_manifest
The analysis manifest: the one document an analysis container receives.
The platform invokes an analysis container with a single argument,
--manifest-file <path>, and nothing else. The manifest names
every input by its path inside the container and describes it, carries the
custom parameters typed as the configuration declared them, states the
resources reserved for the run, and names the output the container must write.
Small structured context (the channels, the subject and study metadata) is
inline; the recording and any upstream events document are files the manifest
points at, by the path the container sees them at. It contains no credential
and no signed URL, so it may be logged.
AnalysisManifest
pydantic-model
¶
Bases: BaseModel
The document an analysis container receives, and nothing else.
Config:
extra:forbidfrozen:True
Fields:
-
manifest_version(Literal[1]) -
analysis(ManifestAnalysis) -
inputs(ManifestInputs) -
slots(list[SlotDefinition]) -
parameters(dict[str, ParameterValue]) -
resources(ManifestResources) -
outputs(ManifestOutputs)
Validators:
-
_consistent
ChannelRef
pydantic-model
¶
Bases: BaseModel
One channel of the recording as the platform resolved it for this run.
Config:
extra:forbidfrozen:True
Fields:
-
index(NonNegativeInt) -
source_name(str) -
name(str) -
type(ChannelType) -
unit(PhysicalDimension | None) -
sample_rate(PositiveFloat | None) -
slot(str | None) -
laterality(ChannelLaterality | None)
Validators:
-
_drop_legacy_derivation
index
pydantic-field
¶
The channel's ordinal in the recording file. Load by this.
laterality = None
pydantic-field
¶
Left or right, when inferred or declared.
name
pydantic-field
¶
The display name the user gave the channel.
sample_rate = None
pydantic-field
¶
Native sampling rate in Hz, if known.
slot = None
pydantic-field
¶
The label of the slot this channel fills, when the configuration declares slots.
source_name
pydantic-field
¶
The label as it appears in the file header, immutable.
type
pydantic-field
¶
The signal type as classified on the platform.
unit = None
pydantic-field
¶
Physical unit, if known.
FileInput
pydantic-model
¶
Bases: BaseModel
A file the manifest points at inside the container.
Config:
extra:forbidfrozen:True
Fields:
-
path(str)
Validators:
-
_inside_the_container→path
ManifestAnalysis
pydantic-model
¶
Bases: BaseModel
Which analysis and configuration this run is, for provenance.
Config:
extra:forbidfrozen:True
Fields:
-
id(str | None) -
config_id(str) -
config_sha1(str | None)
ManifestInputs
pydantic-model
¶
Bases: BaseModel
Everything the container reads.
Config:
extra:forbidfrozen:True
Fields:
-
recording(ManifestRecording) -
events(FileInput | None) -
metadata(ManifestMetadata | None)
events = None
pydantic-field
¶
Upstream events document, when the configuration declares event inputs.
ManifestMetadata
pydantic-model
¶
Bases: BaseModel
Inline context an analysis may use; absent when the configuration declares no metadata input.
Config:
extra:forbidfrozen:True
Fields:
-
subject(ManifestSubject | None) -
study(ManifestStudy | None)
ManifestOutputs
pydantic-model
¶
ManifestRecording
pydantic-model
¶
Bases: BaseModel
The recording the analysis reads, with the channels selected for it.
Config:
extra:forbidfrozen:True
Fields:
-
path(str) -
format(Literal['edf']) -
start(datetime | None) -
duration_ms(NonNegativeInt | None) -
channels(list[ChannelRef])
Validators:
ManifestResources
pydantic-model
¶
Bases: BaseModel
What the run has been given. The cgroup enforces the memory; the container sizes its pools to the cores.
Config:
extra:forbidfrozen:True
Fields:
-
cpus(PositiveInt) -
memory_mib(PositiveInt) -
gpus(NonNegativeInt) -
gpu_devices(list[str]) -
gpu_memory_mib(list[PositiveInt])
ManifestStudy
pydantic-model
¶
Bases: BaseModel
Study-level markers, as milliseconds from the recording start.
Config:
extra:forbidfrozen:True
Fields:
-
lights_off_ms(int | None) -
lights_on_ms(int | None)
ManifestSubject
pydantic-model
¶
Bases: BaseModel
What the platform knows about the subject, for analyses that use it.
Config:
extra:forbidfrozen:True
Fields:
-
age(NonNegativeInt | None) -
sex(Sex | None) -
bmi(PositiveFloat | None)
SlotDefinition
pydantic-model
¶
Bases: BaseModel
An ordered, labelled input position of the analysis and the channel that fills it.
Config:
extra:forbidfrozen:True
Fields:
-
label(str) -
laterality(ChannelLaterality | None) -
channel_index(NonNegativeInt)
Validators:
-
_drop_legacy_derivation