regenerate models

This commit is contained in:
sneakers-the-rat 2024-08-05 18:41:53 -07:00
parent da6d0d8608
commit e5d1cc52de
Signed by untrusted user who does not match committer: jonny
GPG key ID: 6DCB96EF1E4D232D
234 changed files with 4772 additions and 2222 deletions

View file

@ -130,10 +130,15 @@ class TimeSeries(NWBDataInterface):
)
name: str = Field(...)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
data: TimeSeriesData = Field(
...,
@ -178,15 +183,17 @@ class TimeSeriesData(ConfiguredBaseModel):
json_schema_extra={"linkml_meta": {"equals_string": "data", "ifabsent": "string(data)"}},
)
conversion: Optional[float] = Field(
None,
1.0,
description="""Scalar to multiply each element in data to convert it to the specified 'unit'. If the data are stored in acquisition system units or other units that require a conversion to be interpretable, multiply the data by 'conversion' to convert the data to the specified 'unit'. e.g. if the data acquisition system stores values in this object as signed 16-bit integers (int16 range -32,768 to 32,767) that correspond to a 5V range (-2.5V to 2.5V), and the data acquisition system gain is 8000X, then the 'conversion' multiplier to get from raw data acquisition values to recorded volts is 2.5/32768/8000 = 9.5367e-9.""",
json_schema_extra={"linkml_meta": {"ifabsent": "float(1.0)"}},
)
resolution: Optional[float] = Field(
None,
-1.0,
description="""Smallest meaningful difference between values in data, stored in the specified by unit, e.g., the change in value of the least significant bit, or a larger number if signal noise is known to be present. If unknown, use -1.0.""",
json_schema_extra={"linkml_meta": {"ifabsent": "float(-1.0)"}},
)
unit: Optional[str] = Field(
None,
unit: str = Field(
...,
description="""Base unit of measurement for working with the data. Actual stored values are not necessarily stored in these units. To access the data in these units, multiply 'data' by 'conversion'.""",
)
value: Optional[
@ -212,9 +219,13 @@ class TimeSeriesStartingTime(ConfiguredBaseModel):
"linkml_meta": {"equals_string": "starting_time", "ifabsent": "string(starting_time)"}
},
)
rate: Optional[float] = Field(None, description="""Sampling rate, in Hz.""")
unit: Optional[str] = Field(
None, description="""Unit of measurement for time, which is fixed to 'seconds'."""
rate: float = Field(..., description="""Sampling rate, in Hz.""")
unit: Literal["seconds"] = Field(
"seconds",
description="""Unit of measurement for time, which is fixed to 'seconds'.""",
json_schema_extra={
"linkml_meta": {"equals_string": "seconds", "ifabsent": "string(seconds)"}
},
)
value: float = Field(...)
@ -260,9 +271,7 @@ class Images(NWBDataInterface):
)
name: str = Field("Images", json_schema_extra={"linkml_meta": {"ifabsent": "string(Images)"}})
description: Optional[str] = Field(
None, description="""Description of this collection of images."""
)
description: str = Field(..., description="""Description of this collection of images.""")
image: List[Image] = Field(..., description="""Images stored in this collection.""")

View file

@ -84,10 +84,15 @@ class SpatialSeries(TimeSeries):
reference_frame: Optional[str] = Field(
None, description="""Description defining what exactly 'straight-ahead' means."""
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -128,8 +133,9 @@ class SpatialSeriesData(ConfiguredBaseModel):
json_schema_extra={"linkml_meta": {"equals_string": "data", "ifabsent": "string(data)"}},
)
unit: Optional[str] = Field(
None,
"meters",
description="""Base unit of measurement for working with the data. The default value is 'meters'. Actual stored values are not necessarily stored in these units. To access the data in these units, multiply 'data' by 'conversion'.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(meters)"}},
)
value: Optional[
Union[

View file

@ -130,10 +130,15 @@ class ElectricalSeries(TimeSeries):
description="""Channel-specific conversion factor. Multiply the data in the 'data' dataset by these values along the channel axis (as indicated by axis attribute) AND by the global conversion factor in the 'conversion' attribute of 'data' to get the data values in Volts, i.e, data in Volts = data * data.conversion * channel_conversion. This approach allows for both global and per-channel data conversion factors needed to support the storage of electrical recordings as native values generated by data acquisition systems. If this dataset is not present, then there is no channel-specific conversion factor, i.e. it is 1 for all channels.""",
json_schema_extra={"linkml_meta": {"array": {"dimensions": [{"alias": "num_channels"}]}}},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -198,10 +203,15 @@ class SpikeEventSeries(ElectricalSeries):
description="""Channel-specific conversion factor. Multiply the data in the 'data' dataset by these values along the channel axis (as indicated by axis attribute) AND by the global conversion factor in the 'conversion' attribute of 'data' to get the data values in Volts, i.e, data in Volts = data * data.conversion * channel_conversion. This approach allows for both global and per-channel data conversion factors needed to support the storage of electrical recordings as native values generated by data acquisition systems. If this dataset is not present, then there is no channel-specific conversion factor, i.e. it is 1 for all channels.""",
json_schema_extra={"linkml_meta": {"array": {"dimensions": [{"alias": "num_channels"}]}}},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -369,9 +379,9 @@ class ElectrodeGroup(NWBContainer):
)
name: str = Field(...)
description: Optional[str] = Field(None, description="""Description of this electrode group.""")
location: Optional[str] = Field(
None,
description: str = Field(..., description="""Description of this electrode group.""")
location: str = Field(
...,
description="""Location of electrode group. Specify the area, layer, comments on estimation of area/layer, etc. Use standard atlas names for anatomical regions when possible.""",
)
position: Optional[ElectrodeGroupPosition] = Field(

View file

@ -150,13 +150,11 @@ class TimeIntervals(DynamicTable):
}
},
)
colnames: Optional[str] = Field(
None,
colnames: List[str] = Field(
...,
description="""The names of the columns in this table. This should be used to specify an order to the columns.""",
)
description: Optional[str] = Field(
None, description="""Description of what is in this dynamic table."""
)
description: str = Field(..., description="""Description of what is in this dynamic table.""")
id: NDArray[Shape["* num_rows"], int] = Field(
...,
description="""Array of unique identifiers for the rows of this dynamic table.""",
@ -194,9 +192,7 @@ class TimeIntervalsTimeseries(VectorData):
timeseries: Optional[TimeSeries] = Field(
None, description="""the TimeSeries that this index applies to."""
)
description: Optional[str] = Field(
None, description="""Description of what these vectors represent."""
)
description: str = Field(..., description="""Description of what these vectors represent.""")
# Model rebuild

View file

@ -98,9 +98,10 @@ class NWBFile(NWBContainer):
"root",
json_schema_extra={"linkml_meta": {"equals_string": "root", "ifabsent": "string(root)"}},
)
nwb_version: Optional[str] = Field(
None,
nwb_version: Literal["2.1.0"] = Field(
"2.1.0",
description="""File version string. Use semantic versioning, e.g. 1.2.1. This will be the name of the format with trailing major, minor and patch numbers.""",
json_schema_extra={"linkml_meta": {"equals_string": "2.1.0", "ifabsent": "string(2.1.0)"}},
)
file_create_date: NDArray[Shape["* num_modifications"], datetime] = Field(
...,
@ -305,7 +306,7 @@ class GeneralSourceScript(ConfiguredBaseModel):
"linkml_meta": {"equals_string": "source_script", "ifabsent": "string(source_script)"}
},
)
file_name: Optional[str] = Field(None, description="""Name of script file.""")
file_name: str = Field(..., description="""Name of script file.""")
value: str = Field(...)
@ -486,13 +487,11 @@ class ExtracellularEphysElectrodes(DynamicTable):
}
},
)
colnames: Optional[str] = Field(
None,
colnames: List[str] = Field(
...,
description="""The names of the columns in this table. This should be used to specify an order to the columns.""",
)
description: Optional[str] = Field(
None, description="""Description of what is in this dynamic table."""
)
description: str = Field(..., description="""Description of what is in this dynamic table.""")
id: NDArray[Shape["* num_rows"], int] = Field(
...,
description="""Array of unique identifiers for the rows of this dynamic table.""",

View file

@ -107,8 +107,8 @@ class PatchClampSeries(TimeSeries):
)
name: str = Field(...)
stimulus_description: Optional[str] = Field(
None, description="""Protocol/stimulus name for this patch-clamp dataset."""
stimulus_description: str = Field(
..., description="""Protocol/stimulus name for this patch-clamp dataset."""
)
sweep_number: Optional[int] = Field(
None, description="""Sweep number, allows to group different PatchClampSeries together."""
@ -127,10 +127,15 @@ class PatchClampSeries(TimeSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -170,8 +175,8 @@ class PatchClampSeriesData(ConfiguredBaseModel):
"data",
json_schema_extra={"linkml_meta": {"equals_string": "data", "ifabsent": "string(data)"}},
)
unit: Optional[str] = Field(
None,
unit: str = Field(
...,
description="""Base unit of measurement for working with the data. Actual stored values are not necessarily stored in these units. To access the data in these units, multiply 'data' by 'conversion'.""",
)
value: Optional[NDArray[Shape["* num_times"], float]] = Field(
@ -195,8 +200,8 @@ class CurrentClampSeries(PatchClampSeries):
capacitance_compensation: Optional[float] = Field(
None, description="""Capacitance compensation, in farads."""
)
stimulus_description: Optional[str] = Field(
None, description="""Protocol/stimulus name for this patch-clamp dataset."""
stimulus_description: str = Field(
..., description="""Protocol/stimulus name for this patch-clamp dataset."""
)
sweep_number: Optional[int] = Field(
None, description="""Sweep number, allows to group different PatchClampSeries together."""
@ -214,10 +219,15 @@ class CurrentClampSeries(PatchClampSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -257,9 +267,10 @@ class CurrentClampSeriesData(ConfiguredBaseModel):
"data",
json_schema_extra={"linkml_meta": {"equals_string": "data", "ifabsent": "string(data)"}},
)
unit: Optional[str] = Field(
None,
unit: Literal["volts"] = Field(
"volts",
description="""Base unit of measurement for working with the data. which is fixed to 'volts'. Actual stored values are not necessarily stored in these units. To access the data in these units, multiply 'data' by 'conversion'.""",
json_schema_extra={"linkml_meta": {"equals_string": "volts", "ifabsent": "string(volts)"}},
)
value: Any = Field(...)
@ -280,8 +291,8 @@ class IZeroClampSeries(CurrentClampSeries):
..., description="""Capacitance compensation, in farads, fixed to 0.0."""
)
data: CurrentClampSeriesData = Field(..., description="""Recorded voltage.""")
stimulus_description: Optional[str] = Field(
None, description="""Protocol/stimulus name for this patch-clamp dataset."""
stimulus_description: str = Field(
..., description="""Protocol/stimulus name for this patch-clamp dataset."""
)
sweep_number: Optional[int] = Field(
None, description="""Sweep number, allows to group different PatchClampSeries together."""
@ -299,10 +310,15 @@ class IZeroClampSeries(CurrentClampSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -342,8 +358,8 @@ class CurrentClampStimulusSeries(PatchClampSeries):
name: str = Field(...)
data: CurrentClampStimulusSeriesData = Field(..., description="""Stimulus current applied.""")
stimulus_description: Optional[str] = Field(
None, description="""Protocol/stimulus name for this patch-clamp dataset."""
stimulus_description: str = Field(
..., description="""Protocol/stimulus name for this patch-clamp dataset."""
)
sweep_number: Optional[int] = Field(
None, description="""Sweep number, allows to group different PatchClampSeries together."""
@ -361,10 +377,15 @@ class CurrentClampStimulusSeries(PatchClampSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -404,9 +425,12 @@ class CurrentClampStimulusSeriesData(ConfiguredBaseModel):
"data",
json_schema_extra={"linkml_meta": {"equals_string": "data", "ifabsent": "string(data)"}},
)
unit: Optional[str] = Field(
None,
unit: Literal["amperes"] = Field(
"amperes",
description="""Base unit of measurement for working with the data. which is fixed to 'amperes'. Actual stored values are not necessarily stored in these units. To access the data in these units, multiply 'data' by 'conversion'.""",
json_schema_extra={
"linkml_meta": {"equals_string": "amperes", "ifabsent": "string(amperes)"}
},
)
value: Any = Field(...)
@ -443,8 +467,8 @@ class VoltageClampSeries(PatchClampSeries):
whole_cell_series_resistance_comp: Optional[VoltageClampSeriesWholeCellSeriesResistanceComp] = (
Field(None, description="""Whole cell series resistance compensation, in ohms.""")
)
stimulus_description: Optional[str] = Field(
None, description="""Protocol/stimulus name for this patch-clamp dataset."""
stimulus_description: str = Field(
..., description="""Protocol/stimulus name for this patch-clamp dataset."""
)
sweep_number: Optional[int] = Field(
None, description="""Sweep number, allows to group different PatchClampSeries together."""
@ -462,10 +486,15 @@ class VoltageClampSeries(PatchClampSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -505,9 +534,12 @@ class VoltageClampSeriesData(ConfiguredBaseModel):
"data",
json_schema_extra={"linkml_meta": {"equals_string": "data", "ifabsent": "string(data)"}},
)
unit: Optional[str] = Field(
None,
unit: Literal["amperes"] = Field(
"amperes",
description="""Base unit of measurement for working with the data. which is fixed to 'amperes'. Actual stored values are not necessarily stored in these units. To access the data in these units, multiply 'data' by 'conversion'.""",
json_schema_extra={
"linkml_meta": {"equals_string": "amperes", "ifabsent": "string(amperes)"}
},
)
value: Any = Field(...)
@ -528,9 +560,12 @@ class VoltageClampSeriesCapacitanceFast(ConfiguredBaseModel):
}
},
)
unit: Optional[str] = Field(
None,
unit: Literal["farads"] = Field(
"farads",
description="""Unit of measurement for capacitance_fast, which is fixed to 'farads'.""",
json_schema_extra={
"linkml_meta": {"equals_string": "farads", "ifabsent": "string(farads)"}
},
)
value: float = Field(...)
@ -551,9 +586,12 @@ class VoltageClampSeriesCapacitanceSlow(ConfiguredBaseModel):
}
},
)
unit: Optional[str] = Field(
None,
unit: Literal["farads"] = Field(
"farads",
description="""Unit of measurement for capacitance_fast, which is fixed to 'farads'.""",
json_schema_extra={
"linkml_meta": {"equals_string": "farads", "ifabsent": "string(farads)"}
},
)
value: float = Field(...)
@ -574,9 +612,10 @@ class VoltageClampSeriesResistanceCompBandwidth(ConfiguredBaseModel):
}
},
)
unit: Optional[str] = Field(
None,
unit: Literal["hertz"] = Field(
"hertz",
description="""Unit of measurement for resistance_comp_bandwidth, which is fixed to 'hertz'.""",
json_schema_extra={"linkml_meta": {"equals_string": "hertz", "ifabsent": "string(hertz)"}},
)
value: float = Field(...)
@ -597,9 +636,12 @@ class VoltageClampSeriesResistanceCompCorrection(ConfiguredBaseModel):
}
},
)
unit: Optional[str] = Field(
None,
unit: Literal["percent"] = Field(
"percent",
description="""Unit of measurement for resistance_comp_correction, which is fixed to 'percent'.""",
json_schema_extra={
"linkml_meta": {"equals_string": "percent", "ifabsent": "string(percent)"}
},
)
value: float = Field(...)
@ -620,9 +662,12 @@ class VoltageClampSeriesResistanceCompPrediction(ConfiguredBaseModel):
}
},
)
unit: Optional[str] = Field(
None,
unit: Literal["percent"] = Field(
"percent",
description="""Unit of measurement for resistance_comp_prediction, which is fixed to 'percent'.""",
json_schema_extra={
"linkml_meta": {"equals_string": "percent", "ifabsent": "string(percent)"}
},
)
value: float = Field(...)
@ -643,9 +688,12 @@ class VoltageClampSeriesWholeCellCapacitanceComp(ConfiguredBaseModel):
}
},
)
unit: Optional[str] = Field(
None,
unit: Literal["farads"] = Field(
"farads",
description="""Unit of measurement for whole_cell_capacitance_comp, which is fixed to 'farads'.""",
json_schema_extra={
"linkml_meta": {"equals_string": "farads", "ifabsent": "string(farads)"}
},
)
value: float = Field(...)
@ -666,9 +714,10 @@ class VoltageClampSeriesWholeCellSeriesResistanceComp(ConfiguredBaseModel):
}
},
)
unit: Optional[str] = Field(
None,
unit: Literal["ohms"] = Field(
"ohms",
description="""Unit of measurement for whole_cell_series_resistance_comp, which is fixed to 'ohms'.""",
json_schema_extra={"linkml_meta": {"equals_string": "ohms", "ifabsent": "string(ohms)"}},
)
value: float = Field(...)
@ -684,8 +733,8 @@ class VoltageClampStimulusSeries(PatchClampSeries):
name: str = Field(...)
data: VoltageClampStimulusSeriesData = Field(..., description="""Stimulus voltage applied.""")
stimulus_description: Optional[str] = Field(
None, description="""Protocol/stimulus name for this patch-clamp dataset."""
stimulus_description: str = Field(
..., description="""Protocol/stimulus name for this patch-clamp dataset."""
)
sweep_number: Optional[int] = Field(
None, description="""Sweep number, allows to group different PatchClampSeries together."""
@ -703,10 +752,15 @@ class VoltageClampStimulusSeries(PatchClampSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -746,9 +800,10 @@ class VoltageClampStimulusSeriesData(ConfiguredBaseModel):
"data",
json_schema_extra={"linkml_meta": {"equals_string": "data", "ifabsent": "string(data)"}},
)
unit: Optional[str] = Field(
None,
unit: Literal["volts"] = Field(
"volts",
description="""Base unit of measurement for working with the data. which is fixed to 'volts'. Actual stored values are not necessarily stored in these units. To access the data in these units, multiply 'data' by 'conversion'.""",
json_schema_extra={"linkml_meta": {"equals_string": "volts", "ifabsent": "string(volts)"}},
)
value: Any = Field(...)
@ -824,13 +879,11 @@ class SweepTable(DynamicTable):
}
},
)
colnames: Optional[str] = Field(
None,
colnames: List[str] = Field(
...,
description="""The names of the columns in this table. This should be used to specify an order to the columns.""",
)
description: Optional[str] = Field(
None, description="""Description of what is in this dynamic table."""
)
description: str = Field(..., description="""Description of what is in this dynamic table.""")
id: NDArray[Shape["* num_rows"], int] = Field(
...,
description="""Array of unique identifiers for the rows of this dynamic table.""",

View file

@ -159,10 +159,15 @@ class ImageSeries(TimeSeries):
None,
description="""Format of image. If this is 'external', then the attribute 'external_file' contains the path information to the image files. If this is 'raw', then the raw (single-channel) binary data is stored in the 'data' dataset. If this attribute is not present, then the default format='raw' case is assumed.""",
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -204,8 +209,8 @@ class ImageSeriesExternalFile(ConfiguredBaseModel):
"linkml_meta": {"equals_string": "external_file", "ifabsent": "string(external_file)"}
},
)
starting_frame: Optional[int] = Field(
None,
starting_frame: List[int] = Field(
...,
description="""Each external image may contain one or more consecutive frames of the full ImageSeries. This attribute serves as an index to indicate which frames each file contains, to faciliate random access. The 'starting_frame' attribute, hence, contains a list of frame numbers within the full ImageSeries of the first frame of each file listed in the parent 'external_file' dataset. Zero-based indexing is used (hence, the first element will always be zero). For example, if the 'external_file' dataset has three paths to files and the first file has 5 frames, the second file has 10 frames, and the third file has 20 frames, then this attribute will have values [0, 5, 15]. If there is a single external file that holds all of the frames of the ImageSeries (and so there is a single element in the 'external_file' dataset), then this attribute should have value [0].""",
)
value: Optional[NDArray[Shape["* num_files"], str]] = Field(
@ -251,10 +256,15 @@ class ImageMaskSeries(ImageSeries):
None,
description="""Format of image. If this is 'external', then the attribute 'external_file' contains the path information to the image files. If this is 'raw', then the raw (single-channel) binary data is stored in the 'data' dataset. If this attribute is not present, then the default format='raw' case is assumed.""",
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -324,10 +334,15 @@ class OpticalSeries(ImageSeries):
None,
description="""Format of image. If this is 'external', then the attribute 'external_file' contains the path information to the image files. If this is 'raw', then the raw (single-channel) binary data is stored in the 'data' dataset. If this attribute is not present, then the default format='raw' case is assumed.""",
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -380,10 +395,15 @@ class IndexSeries(TimeSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,

View file

@ -120,10 +120,15 @@ class AbstractFeatureSeries(TimeSeries):
description="""Description of the features represented in TimeSeries::data.""",
json_schema_extra={"linkml_meta": {"array": {"dimensions": [{"alias": "num_features"}]}}},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -164,8 +169,9 @@ class AbstractFeatureSeriesData(ConfiguredBaseModel):
json_schema_extra={"linkml_meta": {"equals_string": "data", "ifabsent": "string(data)"}},
)
unit: Optional[str] = Field(
None,
"see 'feature_units'",
description="""Since there can be different units for different features, store the units in 'feature_units'. The default value for this attribute is \"see 'feature_units'\".""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(see 'feature_units')"}},
)
value: Optional[
Union[
@ -190,10 +196,15 @@ class AnnotationSeries(TimeSeries):
description="""Annotations made during an experiment.""",
json_schema_extra={"linkml_meta": {"array": {"dimensions": [{"alias": "num_times"}]}}},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -237,10 +248,15 @@ class IntervalSeries(TimeSeries):
description="""Use values >0 if interval started, <0 if interval ended.""",
json_schema_extra={"linkml_meta": {"array": {"dimensions": [{"alias": "num_times"}]}}},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -296,10 +312,15 @@ class DecompositionSeries(TimeSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -339,9 +360,10 @@ class DecompositionSeriesData(ConfiguredBaseModel):
"data",
json_schema_extra={"linkml_meta": {"equals_string": "data", "ifabsent": "string(data)"}},
)
unit: Optional[str] = Field(
None,
unit: str = Field(
"no unit",
description="""Base unit of measurement for working with the data. Actual stored values are not necessarily stored in these units. To access the data in these units, multiply 'data' by 'conversion'.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no unit)"}},
)
value: Optional[NDArray[Shape["* num_times, * num_channels, * num_bands"], float]] = Field(
None,
@ -403,13 +425,11 @@ class DecompositionSeriesBands(DynamicTable):
description="""The standard deviation of Gaussian filters, in Hz.""",
json_schema_extra={"linkml_meta": {"array": {"dimensions": [{"alias": "num_bands"}]}}},
)
colnames: Optional[str] = Field(
None,
colnames: List[str] = Field(
...,
description="""The names of the columns in this table. This should be used to specify an order to the columns.""",
)
description: Optional[str] = Field(
None, description="""Description of what is in this dynamic table."""
)
description: str = Field(..., description="""Description of what is in this dynamic table.""")
id: NDArray[Shape["* num_rows"], int] = Field(
...,
description="""Array of unique identifiers for the rows of this dynamic table.""",
@ -513,13 +533,11 @@ class Units(DynamicTable):
NDArray[Shape["* num_units, * num_samples, * num_electrodes"], float],
]
] = Field(None, description="""Spike waveform standard deviation for each spike unit.""")
colnames: Optional[str] = Field(
None,
colnames: List[str] = Field(
...,
description="""The names of the columns in this table. This should be used to specify an order to the columns.""",
)
description: Optional[str] = Field(
None, description="""Description of what is in this dynamic table."""
)
description: str = Field(..., description="""Description of what is in this dynamic table.""")
id: NDArray[Shape["* num_rows"], int] = Field(
...,
description="""Array of unique identifiers for the rows of this dynamic table.""",
@ -550,9 +568,7 @@ class UnitsSpikeTimes(VectorData):
None,
description="""The smallest possible difference between two spike times. Usually 1 divided by the acquisition sampling rate from which spike times were extracted, but could be larger if the acquisition time series was downsampled or smaller if the acquisition time series was smoothed/interpolated and it is possible for the spike time to be between samples.""",
)
description: Optional[str] = Field(
None, description="""Description of what these vectors represent."""
)
description: str = Field(..., description="""Description of what these vectors represent.""")
# Model rebuild

View file

@ -91,10 +91,15 @@ class OptogeneticSeries(TimeSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,

View file

@ -146,10 +146,15 @@ class TwoPhotonSeries(ImageSeries):
None,
description="""Format of image. If this is 'external', then the attribute 'external_file' contains the path information to the image files. If this is 'raw', then the raw (single-channel) binary data is stored in the 'data' dataset. If this attribute is not present, then the default format='raw' case is assumed.""",
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -203,10 +208,15 @@ class RoiResponseSeries(TimeSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -342,12 +352,14 @@ class ImagingPlaneManifold(ConfiguredBaseModel):
},
)
conversion: Optional[float] = Field(
None,
1.0,
description="""Scalar to multiply each element in data to convert it to the specified 'unit'. If the data are stored in acquisition system units or other units that require a conversion to be interpretable, multiply the data by 'conversion' to convert the data to the specified 'unit'. e.g. if the data acquisition system stores values in this object as pixels from x = -500 to 499, y = -500 to 499 that correspond to a 2 m x 2 m range, then the 'conversion' multiplier to get from raw data acquisition pixel units to meters is 2/1000.""",
json_schema_extra={"linkml_meta": {"ifabsent": "float(1.0)"}},
)
unit: Optional[str] = Field(
None,
"meters",
description="""Base unit of measurement for working with the data. The default value is 'meters'.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(meters)"}},
)
value: Optional[
Union[
@ -370,8 +382,10 @@ class ImagingPlaneOriginCoords(ConfiguredBaseModel):
"linkml_meta": {"equals_string": "origin_coords", "ifabsent": "string(origin_coords)"}
},
)
unit: Optional[str] = Field(
None, description="""Measurement units for origin_coords. The default value is 'meters'."""
unit: str = Field(
"meters",
description="""Measurement units for origin_coords. The default value is 'meters'.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(meters)"}},
)
value: Optional[NDArray[Shape["2 x_y, 3 x_y_z"], float]] = Field(
None,
@ -401,8 +415,10 @@ class ImagingPlaneGridSpacing(ConfiguredBaseModel):
"linkml_meta": {"equals_string": "grid_spacing", "ifabsent": "string(grid_spacing)"}
},
)
unit: Optional[str] = Field(
None, description="""Measurement units for grid_spacing. The default value is 'meters'."""
unit: str = Field(
"meters",
description="""Measurement units for grid_spacing. The default value is 'meters'.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(meters)"}},
)
value: Optional[NDArray[Shape["2 x_y, 3 x_y_z"], float]] = Field(
None,

View file

@ -96,11 +96,11 @@ class RetinotopyMap(NWBData):
)
name: str = Field(...)
dimension: Optional[int] = Field(
None,
dimension: List[int] = Field(
...,
description="""Number of rows and columns in the image. NOTE: row, column representation is equivalent to height, width.""",
)
field_of_view: Optional[float] = Field(None, description="""Size of viewing area, in meters.""")
field_of_view: List[float] = Field(..., description="""Size of viewing area, in meters.""")
value: Optional[NDArray[Shape["* num_rows, * num_cols"], float]] = Field(
None,
json_schema_extra={
@ -119,20 +119,18 @@ class AxisMap(RetinotopyMap):
)
name: str = Field(...)
unit: Optional[str] = Field(
None, description="""Unit that axis data is stored in (e.g., degrees)."""
)
unit: str = Field(..., description="""Unit that axis data is stored in (e.g., degrees).""")
value: Optional[NDArray[Shape["* num_rows, * num_cols"], float]] = Field(
None,
json_schema_extra={
"linkml_meta": {"array": {"dimensions": [{"alias": "num_rows"}, {"alias": "num_cols"}]}}
},
)
dimension: Optional[int] = Field(
None,
dimension: List[int] = Field(
...,
description="""Number of rows and columns in the image. NOTE: row, column representation is equivalent to height, width.""",
)
field_of_view: Optional[float] = Field(None, description="""Size of viewing area, in meters.""")
field_of_view: List[float] = Field(..., description="""Size of viewing area, in meters.""")
class RetinotopyImage(GrayscaleImage):
@ -145,18 +143,16 @@ class RetinotopyImage(GrayscaleImage):
)
name: str = Field(...)
bits_per_pixel: Optional[int] = Field(
None,
bits_per_pixel: int = Field(
...,
description="""Number of bits used to represent each value. This is necessary to determine maximum (white) pixel value.""",
)
dimension: Optional[int] = Field(
None,
dimension: List[int] = Field(
...,
description="""Number of rows and columns in the image. NOTE: row, column representation is equivalent to height, width.""",
)
field_of_view: Optional[float] = Field(None, description="""Size of viewing area, in meters.""")
format: Optional[str] = Field(
None, description="""Format of image. Right now only 'raw' is supported."""
)
field_of_view: List[float] = Field(..., description="""Size of viewing area, in meters.""")
format: str = Field(..., description="""Format of image. Right now only 'raw' is supported.""")
resolution: Optional[float] = Field(
None, description="""Pixel resolution of the image, in pixels per centimeter."""
)
@ -286,19 +282,17 @@ class ImagingRetinotopyFocalDepthImage(RetinotopyImage):
}
},
)
focal_depth: Optional[float] = Field(None, description="""Focal depth offset, in meters.""")
bits_per_pixel: Optional[int] = Field(
None,
focal_depth: float = Field(..., description="""Focal depth offset, in meters.""")
bits_per_pixel: int = Field(
...,
description="""Number of bits used to represent each value. This is necessary to determine maximum (white) pixel value.""",
)
dimension: Optional[int] = Field(
None,
dimension: List[int] = Field(
...,
description="""Number of rows and columns in the image. NOTE: row, column representation is equivalent to height, width.""",
)
field_of_view: Optional[float] = Field(None, description="""Size of viewing area, in meters.""")
format: Optional[str] = Field(
None, description="""Format of image. Right now only 'raw' is supported."""
)
field_of_view: List[float] = Field(..., description="""Size of viewing area, in meters.""")
format: str = Field(..., description="""Format of image. Right now only 'raw' is supported.""")
resolution: Optional[float] = Field(
None, description="""Pixel resolution of the image, in pixels per centimeter."""
)

View file

@ -130,10 +130,15 @@ class TimeSeries(NWBDataInterface):
)
name: str = Field(...)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
data: TimeSeriesData = Field(
...,
@ -178,15 +183,17 @@ class TimeSeriesData(ConfiguredBaseModel):
json_schema_extra={"linkml_meta": {"equals_string": "data", "ifabsent": "string(data)"}},
)
conversion: Optional[float] = Field(
None,
1.0,
description="""Scalar to multiply each element in data to convert it to the specified 'unit'. If the data are stored in acquisition system units or other units that require a conversion to be interpretable, multiply the data by 'conversion' to convert the data to the specified 'unit'. e.g. if the data acquisition system stores values in this object as signed 16-bit integers (int16 range -32,768 to 32,767) that correspond to a 5V range (-2.5V to 2.5V), and the data acquisition system gain is 8000X, then the 'conversion' multiplier to get from raw data acquisition values to recorded volts is 2.5/32768/8000 = 9.5367e-9.""",
json_schema_extra={"linkml_meta": {"ifabsent": "float(1.0)"}},
)
resolution: Optional[float] = Field(
None,
-1.0,
description="""Smallest meaningful difference between values in data, stored in the specified by unit, e.g., the change in value of the least significant bit, or a larger number if signal noise is known to be present. If unknown, use -1.0.""",
json_schema_extra={"linkml_meta": {"ifabsent": "float(-1.0)"}},
)
unit: Optional[str] = Field(
None,
unit: str = Field(
...,
description="""Base unit of measurement for working with the data. Actual stored values are not necessarily stored in these units. To access the data in these units, multiply 'data' by 'conversion'.""",
)
value: Optional[
@ -212,9 +219,13 @@ class TimeSeriesStartingTime(ConfiguredBaseModel):
"linkml_meta": {"equals_string": "starting_time", "ifabsent": "string(starting_time)"}
},
)
rate: Optional[float] = Field(None, description="""Sampling rate, in Hz.""")
unit: Optional[str] = Field(
None, description="""Unit of measurement for time, which is fixed to 'seconds'."""
rate: float = Field(..., description="""Sampling rate, in Hz.""")
unit: Literal["seconds"] = Field(
"seconds",
description="""Unit of measurement for time, which is fixed to 'seconds'.""",
json_schema_extra={
"linkml_meta": {"equals_string": "seconds", "ifabsent": "string(seconds)"}
},
)
value: float = Field(...)
@ -260,9 +271,7 @@ class Images(NWBDataInterface):
)
name: str = Field("Images", json_schema_extra={"linkml_meta": {"ifabsent": "string(Images)"}})
description: Optional[str] = Field(
None, description="""Description of this collection of images."""
)
description: str = Field(..., description="""Description of this collection of images.""")
image: List[Image] = Field(..., description="""Images stored in this collection.""")

View file

@ -84,10 +84,15 @@ class SpatialSeries(TimeSeries):
reference_frame: Optional[str] = Field(
None, description="""Description defining what exactly 'straight-ahead' means."""
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -128,8 +133,9 @@ class SpatialSeriesData(ConfiguredBaseModel):
json_schema_extra={"linkml_meta": {"equals_string": "data", "ifabsent": "string(data)"}},
)
unit: Optional[str] = Field(
None,
"meters",
description="""Base unit of measurement for working with the data. The default value is 'meters'. Actual stored values are not necessarily stored in these units. To access the data in these units, multiply 'data' by 'conversion'.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(meters)"}},
)
value: Optional[
Union[

View file

@ -130,10 +130,15 @@ class ElectricalSeries(TimeSeries):
description="""Channel-specific conversion factor. Multiply the data in the 'data' dataset by these values along the channel axis (as indicated by axis attribute) AND by the global conversion factor in the 'conversion' attribute of 'data' to get the data values in Volts, i.e, data in Volts = data * data.conversion * channel_conversion. This approach allows for both global and per-channel data conversion factors needed to support the storage of electrical recordings as native values generated by data acquisition systems. If this dataset is not present, then there is no channel-specific conversion factor, i.e. it is 1 for all channels.""",
json_schema_extra={"linkml_meta": {"array": {"dimensions": [{"alias": "num_channels"}]}}},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -198,10 +203,15 @@ class SpikeEventSeries(ElectricalSeries):
description="""Channel-specific conversion factor. Multiply the data in the 'data' dataset by these values along the channel axis (as indicated by axis attribute) AND by the global conversion factor in the 'conversion' attribute of 'data' to get the data values in Volts, i.e, data in Volts = data * data.conversion * channel_conversion. This approach allows for both global and per-channel data conversion factors needed to support the storage of electrical recordings as native values generated by data acquisition systems. If this dataset is not present, then there is no channel-specific conversion factor, i.e. it is 1 for all channels.""",
json_schema_extra={"linkml_meta": {"array": {"dimensions": [{"alias": "num_channels"}]}}},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -369,9 +379,9 @@ class ElectrodeGroup(NWBContainer):
)
name: str = Field(...)
description: Optional[str] = Field(None, description="""Description of this electrode group.""")
location: Optional[str] = Field(
None,
description: str = Field(..., description="""Description of this electrode group.""")
location: str = Field(
...,
description="""Location of electrode group. Specify the area, layer, comments on estimation of area/layer, etc. Use standard atlas names for anatomical regions when possible.""",
)
position: Optional[ElectrodeGroupPosition] = Field(

View file

@ -150,13 +150,11 @@ class TimeIntervals(DynamicTable):
}
},
)
colnames: Optional[str] = Field(
None,
colnames: List[str] = Field(
...,
description="""The names of the columns in this table. This should be used to specify an order to the columns.""",
)
description: Optional[str] = Field(
None, description="""Description of what is in this dynamic table."""
)
description: str = Field(..., description="""Description of what is in this dynamic table.""")
id: NDArray[Shape["* num_rows"], int] = Field(
...,
description="""Array of unique identifiers for the rows of this dynamic table.""",
@ -194,9 +192,7 @@ class TimeIntervalsTimeseries(VectorData):
timeseries: Optional[TimeSeries] = Field(
None, description="""the TimeSeries that this index applies to."""
)
description: Optional[str] = Field(
None, description="""Description of what these vectors represent."""
)
description: str = Field(..., description="""Description of what these vectors represent.""")
# Model rebuild

View file

@ -98,9 +98,10 @@ class NWBFile(NWBContainer):
"root",
json_schema_extra={"linkml_meta": {"equals_string": "root", "ifabsent": "string(root)"}},
)
nwb_version: Optional[str] = Field(
None,
nwb_version: Literal["2.2.1"] = Field(
"2.2.1",
description="""File version string. Use semantic versioning, e.g. 1.2.1. This will be the name of the format with trailing major, minor and patch numbers.""",
json_schema_extra={"linkml_meta": {"equals_string": "2.2.1", "ifabsent": "string(2.2.1)"}},
)
file_create_date: NDArray[Shape["* num_modifications"], datetime] = Field(
...,
@ -305,7 +306,7 @@ class GeneralSourceScript(ConfiguredBaseModel):
"linkml_meta": {"equals_string": "source_script", "ifabsent": "string(source_script)"}
},
)
file_name: Optional[str] = Field(None, description="""Name of script file.""")
file_name: str = Field(..., description="""Name of script file.""")
value: str = Field(...)
@ -486,13 +487,11 @@ class ExtracellularEphysElectrodes(DynamicTable):
}
},
)
colnames: Optional[str] = Field(
None,
colnames: List[str] = Field(
...,
description="""The names of the columns in this table. This should be used to specify an order to the columns.""",
)
description: Optional[str] = Field(
None, description="""Description of what is in this dynamic table."""
)
description: str = Field(..., description="""Description of what is in this dynamic table.""")
id: NDArray[Shape["* num_rows"], int] = Field(
...,
description="""Array of unique identifiers for the rows of this dynamic table.""",

View file

@ -107,8 +107,8 @@ class PatchClampSeries(TimeSeries):
)
name: str = Field(...)
stimulus_description: Optional[str] = Field(
None, description="""Protocol/stimulus name for this patch-clamp dataset."""
stimulus_description: str = Field(
..., description="""Protocol/stimulus name for this patch-clamp dataset."""
)
sweep_number: Optional[int] = Field(
None, description="""Sweep number, allows to group different PatchClampSeries together."""
@ -127,10 +127,15 @@ class PatchClampSeries(TimeSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -170,8 +175,8 @@ class PatchClampSeriesData(ConfiguredBaseModel):
"data",
json_schema_extra={"linkml_meta": {"equals_string": "data", "ifabsent": "string(data)"}},
)
unit: Optional[str] = Field(
None,
unit: str = Field(
...,
description="""Base unit of measurement for working with the data. Actual stored values are not necessarily stored in these units. To access the data in these units, multiply 'data' by 'conversion'.""",
)
value: Optional[NDArray[Shape["* num_times"], float]] = Field(
@ -195,8 +200,8 @@ class CurrentClampSeries(PatchClampSeries):
capacitance_compensation: Optional[float] = Field(
None, description="""Capacitance compensation, in farads."""
)
stimulus_description: Optional[str] = Field(
None, description="""Protocol/stimulus name for this patch-clamp dataset."""
stimulus_description: str = Field(
..., description="""Protocol/stimulus name for this patch-clamp dataset."""
)
sweep_number: Optional[int] = Field(
None, description="""Sweep number, allows to group different PatchClampSeries together."""
@ -214,10 +219,15 @@ class CurrentClampSeries(PatchClampSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -257,9 +267,10 @@ class CurrentClampSeriesData(ConfiguredBaseModel):
"data",
json_schema_extra={"linkml_meta": {"equals_string": "data", "ifabsent": "string(data)"}},
)
unit: Optional[str] = Field(
None,
unit: Literal["volts"] = Field(
"volts",
description="""Base unit of measurement for working with the data. which is fixed to 'volts'. Actual stored values are not necessarily stored in these units. To access the data in these units, multiply 'data' by 'conversion'.""",
json_schema_extra={"linkml_meta": {"equals_string": "volts", "ifabsent": "string(volts)"}},
)
value: Any = Field(...)
@ -280,8 +291,8 @@ class IZeroClampSeries(CurrentClampSeries):
..., description="""Capacitance compensation, in farads, fixed to 0.0."""
)
data: CurrentClampSeriesData = Field(..., description="""Recorded voltage.""")
stimulus_description: Optional[str] = Field(
None, description="""Protocol/stimulus name for this patch-clamp dataset."""
stimulus_description: str = Field(
..., description="""Protocol/stimulus name for this patch-clamp dataset."""
)
sweep_number: Optional[int] = Field(
None, description="""Sweep number, allows to group different PatchClampSeries together."""
@ -299,10 +310,15 @@ class IZeroClampSeries(CurrentClampSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -342,8 +358,8 @@ class CurrentClampStimulusSeries(PatchClampSeries):
name: str = Field(...)
data: CurrentClampStimulusSeriesData = Field(..., description="""Stimulus current applied.""")
stimulus_description: Optional[str] = Field(
None, description="""Protocol/stimulus name for this patch-clamp dataset."""
stimulus_description: str = Field(
..., description="""Protocol/stimulus name for this patch-clamp dataset."""
)
sweep_number: Optional[int] = Field(
None, description="""Sweep number, allows to group different PatchClampSeries together."""
@ -361,10 +377,15 @@ class CurrentClampStimulusSeries(PatchClampSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -404,9 +425,12 @@ class CurrentClampStimulusSeriesData(ConfiguredBaseModel):
"data",
json_schema_extra={"linkml_meta": {"equals_string": "data", "ifabsent": "string(data)"}},
)
unit: Optional[str] = Field(
None,
unit: Literal["amperes"] = Field(
"amperes",
description="""Base unit of measurement for working with the data. which is fixed to 'amperes'. Actual stored values are not necessarily stored in these units. To access the data in these units, multiply 'data' by 'conversion'.""",
json_schema_extra={
"linkml_meta": {"equals_string": "amperes", "ifabsent": "string(amperes)"}
},
)
value: Any = Field(...)
@ -443,8 +467,8 @@ class VoltageClampSeries(PatchClampSeries):
whole_cell_series_resistance_comp: Optional[VoltageClampSeriesWholeCellSeriesResistanceComp] = (
Field(None, description="""Whole cell series resistance compensation, in ohms.""")
)
stimulus_description: Optional[str] = Field(
None, description="""Protocol/stimulus name for this patch-clamp dataset."""
stimulus_description: str = Field(
..., description="""Protocol/stimulus name for this patch-clamp dataset."""
)
sweep_number: Optional[int] = Field(
None, description="""Sweep number, allows to group different PatchClampSeries together."""
@ -462,10 +486,15 @@ class VoltageClampSeries(PatchClampSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -505,9 +534,12 @@ class VoltageClampSeriesData(ConfiguredBaseModel):
"data",
json_schema_extra={"linkml_meta": {"equals_string": "data", "ifabsent": "string(data)"}},
)
unit: Optional[str] = Field(
None,
unit: Literal["amperes"] = Field(
"amperes",
description="""Base unit of measurement for working with the data. which is fixed to 'amperes'. Actual stored values are not necessarily stored in these units. To access the data in these units, multiply 'data' by 'conversion'.""",
json_schema_extra={
"linkml_meta": {"equals_string": "amperes", "ifabsent": "string(amperes)"}
},
)
value: Any = Field(...)
@ -528,9 +560,12 @@ class VoltageClampSeriesCapacitanceFast(ConfiguredBaseModel):
}
},
)
unit: Optional[str] = Field(
None,
unit: Literal["farads"] = Field(
"farads",
description="""Unit of measurement for capacitance_fast, which is fixed to 'farads'.""",
json_schema_extra={
"linkml_meta": {"equals_string": "farads", "ifabsent": "string(farads)"}
},
)
value: float = Field(...)
@ -551,9 +586,12 @@ class VoltageClampSeriesCapacitanceSlow(ConfiguredBaseModel):
}
},
)
unit: Optional[str] = Field(
None,
unit: Literal["farads"] = Field(
"farads",
description="""Unit of measurement for capacitance_fast, which is fixed to 'farads'.""",
json_schema_extra={
"linkml_meta": {"equals_string": "farads", "ifabsent": "string(farads)"}
},
)
value: float = Field(...)
@ -574,9 +612,10 @@ class VoltageClampSeriesResistanceCompBandwidth(ConfiguredBaseModel):
}
},
)
unit: Optional[str] = Field(
None,
unit: Literal["hertz"] = Field(
"hertz",
description="""Unit of measurement for resistance_comp_bandwidth, which is fixed to 'hertz'.""",
json_schema_extra={"linkml_meta": {"equals_string": "hertz", "ifabsent": "string(hertz)"}},
)
value: float = Field(...)
@ -597,9 +636,12 @@ class VoltageClampSeriesResistanceCompCorrection(ConfiguredBaseModel):
}
},
)
unit: Optional[str] = Field(
None,
unit: Literal["percent"] = Field(
"percent",
description="""Unit of measurement for resistance_comp_correction, which is fixed to 'percent'.""",
json_schema_extra={
"linkml_meta": {"equals_string": "percent", "ifabsent": "string(percent)"}
},
)
value: float = Field(...)
@ -620,9 +662,12 @@ class VoltageClampSeriesResistanceCompPrediction(ConfiguredBaseModel):
}
},
)
unit: Optional[str] = Field(
None,
unit: Literal["percent"] = Field(
"percent",
description="""Unit of measurement for resistance_comp_prediction, which is fixed to 'percent'.""",
json_schema_extra={
"linkml_meta": {"equals_string": "percent", "ifabsent": "string(percent)"}
},
)
value: float = Field(...)
@ -643,9 +688,12 @@ class VoltageClampSeriesWholeCellCapacitanceComp(ConfiguredBaseModel):
}
},
)
unit: Optional[str] = Field(
None,
unit: Literal["farads"] = Field(
"farads",
description="""Unit of measurement for whole_cell_capacitance_comp, which is fixed to 'farads'.""",
json_schema_extra={
"linkml_meta": {"equals_string": "farads", "ifabsent": "string(farads)"}
},
)
value: float = Field(...)
@ -666,9 +714,10 @@ class VoltageClampSeriesWholeCellSeriesResistanceComp(ConfiguredBaseModel):
}
},
)
unit: Optional[str] = Field(
None,
unit: Literal["ohms"] = Field(
"ohms",
description="""Unit of measurement for whole_cell_series_resistance_comp, which is fixed to 'ohms'.""",
json_schema_extra={"linkml_meta": {"equals_string": "ohms", "ifabsent": "string(ohms)"}},
)
value: float = Field(...)
@ -684,8 +733,8 @@ class VoltageClampStimulusSeries(PatchClampSeries):
name: str = Field(...)
data: VoltageClampStimulusSeriesData = Field(..., description="""Stimulus voltage applied.""")
stimulus_description: Optional[str] = Field(
None, description="""Protocol/stimulus name for this patch-clamp dataset."""
stimulus_description: str = Field(
..., description="""Protocol/stimulus name for this patch-clamp dataset."""
)
sweep_number: Optional[int] = Field(
None, description="""Sweep number, allows to group different PatchClampSeries together."""
@ -703,10 +752,15 @@ class VoltageClampStimulusSeries(PatchClampSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -746,9 +800,10 @@ class VoltageClampStimulusSeriesData(ConfiguredBaseModel):
"data",
json_schema_extra={"linkml_meta": {"equals_string": "data", "ifabsent": "string(data)"}},
)
unit: Optional[str] = Field(
None,
unit: Literal["volts"] = Field(
"volts",
description="""Base unit of measurement for working with the data. which is fixed to 'volts'. Actual stored values are not necessarily stored in these units. To access the data in these units, multiply 'data' by 'conversion'.""",
json_schema_extra={"linkml_meta": {"equals_string": "volts", "ifabsent": "string(volts)"}},
)
value: Any = Field(...)
@ -824,13 +879,11 @@ class SweepTable(DynamicTable):
}
},
)
colnames: Optional[str] = Field(
None,
colnames: List[str] = Field(
...,
description="""The names of the columns in this table. This should be used to specify an order to the columns.""",
)
description: Optional[str] = Field(
None, description="""Description of what is in this dynamic table."""
)
description: str = Field(..., description="""Description of what is in this dynamic table.""")
id: NDArray[Shape["* num_rows"], int] = Field(
...,
description="""Array of unique identifiers for the rows of this dynamic table.""",

View file

@ -159,10 +159,15 @@ class ImageSeries(TimeSeries):
None,
description="""Format of image. If this is 'external', then the attribute 'external_file' contains the path information to the image files. If this is 'raw', then the raw (single-channel) binary data is stored in the 'data' dataset. If this attribute is not present, then the default format='raw' case is assumed.""",
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -204,8 +209,8 @@ class ImageSeriesExternalFile(ConfiguredBaseModel):
"linkml_meta": {"equals_string": "external_file", "ifabsent": "string(external_file)"}
},
)
starting_frame: Optional[int] = Field(
None,
starting_frame: List[int] = Field(
...,
description="""Each external image may contain one or more consecutive frames of the full ImageSeries. This attribute serves as an index to indicate which frames each file contains, to faciliate random access. The 'starting_frame' attribute, hence, contains a list of frame numbers within the full ImageSeries of the first frame of each file listed in the parent 'external_file' dataset. Zero-based indexing is used (hence, the first element will always be zero). For example, if the 'external_file' dataset has three paths to files and the first file has 5 frames, the second file has 10 frames, and the third file has 20 frames, then this attribute will have values [0, 5, 15]. If there is a single external file that holds all of the frames of the ImageSeries (and so there is a single element in the 'external_file' dataset), then this attribute should have value [0].""",
)
value: Optional[NDArray[Shape["* num_files"], str]] = Field(
@ -251,10 +256,15 @@ class ImageMaskSeries(ImageSeries):
None,
description="""Format of image. If this is 'external', then the attribute 'external_file' contains the path information to the image files. If this is 'raw', then the raw (single-channel) binary data is stored in the 'data' dataset. If this attribute is not present, then the default format='raw' case is assumed.""",
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -324,10 +334,15 @@ class OpticalSeries(ImageSeries):
None,
description="""Format of image. If this is 'external', then the attribute 'external_file' contains the path information to the image files. If this is 'raw', then the raw (single-channel) binary data is stored in the 'data' dataset. If this attribute is not present, then the default format='raw' case is assumed.""",
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -380,10 +395,15 @@ class IndexSeries(TimeSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,

View file

@ -120,10 +120,15 @@ class AbstractFeatureSeries(TimeSeries):
description="""Description of the features represented in TimeSeries::data.""",
json_schema_extra={"linkml_meta": {"array": {"dimensions": [{"alias": "num_features"}]}}},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -164,8 +169,9 @@ class AbstractFeatureSeriesData(ConfiguredBaseModel):
json_schema_extra={"linkml_meta": {"equals_string": "data", "ifabsent": "string(data)"}},
)
unit: Optional[str] = Field(
None,
"see 'feature_units'",
description="""Since there can be different units for different features, store the units in 'feature_units'. The default value for this attribute is \"see 'feature_units'\".""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(see 'feature_units')"}},
)
value: Optional[
Union[
@ -190,10 +196,15 @@ class AnnotationSeries(TimeSeries):
description="""Annotations made during an experiment.""",
json_schema_extra={"linkml_meta": {"array": {"dimensions": [{"alias": "num_times"}]}}},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -237,10 +248,15 @@ class IntervalSeries(TimeSeries):
description="""Use values >0 if interval started, <0 if interval ended.""",
json_schema_extra={"linkml_meta": {"array": {"dimensions": [{"alias": "num_times"}]}}},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -296,10 +312,15 @@ class DecompositionSeries(TimeSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -339,9 +360,10 @@ class DecompositionSeriesData(ConfiguredBaseModel):
"data",
json_schema_extra={"linkml_meta": {"equals_string": "data", "ifabsent": "string(data)"}},
)
unit: Optional[str] = Field(
None,
unit: str = Field(
"no unit",
description="""Base unit of measurement for working with the data. Actual stored values are not necessarily stored in these units. To access the data in these units, multiply 'data' by 'conversion'.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no unit)"}},
)
value: Optional[NDArray[Shape["* num_times, * num_channels, * num_bands"], float]] = Field(
None,
@ -403,13 +425,11 @@ class DecompositionSeriesBands(DynamicTable):
description="""The standard deviation of Gaussian filters, in Hz.""",
json_schema_extra={"linkml_meta": {"array": {"dimensions": [{"alias": "num_bands"}]}}},
)
colnames: Optional[str] = Field(
None,
colnames: List[str] = Field(
...,
description="""The names of the columns in this table. This should be used to specify an order to the columns.""",
)
description: Optional[str] = Field(
None, description="""Description of what is in this dynamic table."""
)
description: str = Field(..., description="""Description of what is in this dynamic table.""")
id: NDArray[Shape["* num_rows"], int] = Field(
...,
description="""Array of unique identifiers for the rows of this dynamic table.""",
@ -513,13 +533,11 @@ class Units(DynamicTable):
NDArray[Shape["* num_units, * num_samples, * num_electrodes"], float],
]
] = Field(None, description="""Spike waveform standard deviation for each spike unit.""")
colnames: Optional[str] = Field(
None,
colnames: List[str] = Field(
...,
description="""The names of the columns in this table. This should be used to specify an order to the columns.""",
)
description: Optional[str] = Field(
None, description="""Description of what is in this dynamic table."""
)
description: str = Field(..., description="""Description of what is in this dynamic table.""")
id: NDArray[Shape["* num_rows"], int] = Field(
...,
description="""Array of unique identifiers for the rows of this dynamic table.""",
@ -550,9 +568,7 @@ class UnitsSpikeTimes(VectorData):
None,
description="""The smallest possible difference between two spike times. Usually 1 divided by the acquisition sampling rate from which spike times were extracted, but could be larger if the acquisition time series was downsampled or smaller if the acquisition time series was smoothed/interpolated and it is possible for the spike time to be between samples.""",
)
description: Optional[str] = Field(
None, description="""Description of what these vectors represent."""
)
description: str = Field(..., description="""Description of what these vectors represent.""")
# Model rebuild

View file

@ -91,10 +91,15 @@ class OptogeneticSeries(TimeSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,

View file

@ -146,10 +146,15 @@ class TwoPhotonSeries(ImageSeries):
None,
description="""Format of image. If this is 'external', then the attribute 'external_file' contains the path information to the image files. If this is 'raw', then the raw (single-channel) binary data is stored in the 'data' dataset. If this attribute is not present, then the default format='raw' case is assumed.""",
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -203,10 +208,15 @@ class RoiResponseSeries(TimeSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -342,12 +352,14 @@ class ImagingPlaneManifold(ConfiguredBaseModel):
},
)
conversion: Optional[float] = Field(
None,
1.0,
description="""Scalar to multiply each element in data to convert it to the specified 'unit'. If the data are stored in acquisition system units or other units that require a conversion to be interpretable, multiply the data by 'conversion' to convert the data to the specified 'unit'. e.g. if the data acquisition system stores values in this object as pixels from x = -500 to 499, y = -500 to 499 that correspond to a 2 m x 2 m range, then the 'conversion' multiplier to get from raw data acquisition pixel units to meters is 2/1000.""",
json_schema_extra={"linkml_meta": {"ifabsent": "float(1.0)"}},
)
unit: Optional[str] = Field(
None,
"meters",
description="""Base unit of measurement for working with the data. The default value is 'meters'.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(meters)"}},
)
value: Optional[
Union[
@ -370,8 +382,10 @@ class ImagingPlaneOriginCoords(ConfiguredBaseModel):
"linkml_meta": {"equals_string": "origin_coords", "ifabsent": "string(origin_coords)"}
},
)
unit: Optional[str] = Field(
None, description="""Measurement units for origin_coords. The default value is 'meters'."""
unit: str = Field(
"meters",
description="""Measurement units for origin_coords. The default value is 'meters'.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(meters)"}},
)
value: Optional[NDArray[Shape["2 x_y, 3 x_y_z"], float]] = Field(
None,
@ -401,8 +415,10 @@ class ImagingPlaneGridSpacing(ConfiguredBaseModel):
"linkml_meta": {"equals_string": "grid_spacing", "ifabsent": "string(grid_spacing)"}
},
)
unit: Optional[str] = Field(
None, description="""Measurement units for grid_spacing. The default value is 'meters'."""
unit: str = Field(
"meters",
description="""Measurement units for grid_spacing. The default value is 'meters'.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(meters)"}},
)
value: Optional[NDArray[Shape["2 x_y, 3 x_y_z"], float]] = Field(
None,

View file

@ -96,11 +96,11 @@ class RetinotopyMap(NWBData):
)
name: str = Field(...)
dimension: Optional[int] = Field(
None,
dimension: List[int] = Field(
...,
description="""Number of rows and columns in the image. NOTE: row, column representation is equivalent to height, width.""",
)
field_of_view: Optional[float] = Field(None, description="""Size of viewing area, in meters.""")
field_of_view: List[float] = Field(..., description="""Size of viewing area, in meters.""")
value: Optional[NDArray[Shape["* num_rows, * num_cols"], float]] = Field(
None,
json_schema_extra={
@ -119,20 +119,18 @@ class AxisMap(RetinotopyMap):
)
name: str = Field(...)
unit: Optional[str] = Field(
None, description="""Unit that axis data is stored in (e.g., degrees)."""
)
unit: str = Field(..., description="""Unit that axis data is stored in (e.g., degrees).""")
value: Optional[NDArray[Shape["* num_rows, * num_cols"], float]] = Field(
None,
json_schema_extra={
"linkml_meta": {"array": {"dimensions": [{"alias": "num_rows"}, {"alias": "num_cols"}]}}
},
)
dimension: Optional[int] = Field(
None,
dimension: List[int] = Field(
...,
description="""Number of rows and columns in the image. NOTE: row, column representation is equivalent to height, width.""",
)
field_of_view: Optional[float] = Field(None, description="""Size of viewing area, in meters.""")
field_of_view: List[float] = Field(..., description="""Size of viewing area, in meters.""")
class RetinotopyImage(GrayscaleImage):
@ -145,18 +143,16 @@ class RetinotopyImage(GrayscaleImage):
)
name: str = Field(...)
bits_per_pixel: Optional[int] = Field(
None,
bits_per_pixel: int = Field(
...,
description="""Number of bits used to represent each value. This is necessary to determine maximum (white) pixel value.""",
)
dimension: Optional[int] = Field(
None,
dimension: List[int] = Field(
...,
description="""Number of rows and columns in the image. NOTE: row, column representation is equivalent to height, width.""",
)
field_of_view: Optional[float] = Field(None, description="""Size of viewing area, in meters.""")
format: Optional[str] = Field(
None, description="""Format of image. Right now only 'raw' is supported."""
)
field_of_view: List[float] = Field(..., description="""Size of viewing area, in meters.""")
format: str = Field(..., description="""Format of image. Right now only 'raw' is supported.""")
resolution: Optional[float] = Field(
None, description="""Pixel resolution of the image, in pixels per centimeter."""
)
@ -286,19 +282,17 @@ class ImagingRetinotopyFocalDepthImage(RetinotopyImage):
}
},
)
focal_depth: Optional[float] = Field(None, description="""Focal depth offset, in meters.""")
bits_per_pixel: Optional[int] = Field(
None,
focal_depth: float = Field(..., description="""Focal depth offset, in meters.""")
bits_per_pixel: int = Field(
...,
description="""Number of bits used to represent each value. This is necessary to determine maximum (white) pixel value.""",
)
dimension: Optional[int] = Field(
None,
dimension: List[int] = Field(
...,
description="""Number of rows and columns in the image. NOTE: row, column representation is equivalent to height, width.""",
)
field_of_view: Optional[float] = Field(None, description="""Size of viewing area, in meters.""")
format: Optional[str] = Field(
None, description="""Format of image. Right now only 'raw' is supported."""
)
field_of_view: List[float] = Field(..., description="""Size of viewing area, in meters.""")
format: str = Field(..., description="""Format of image. Right now only 'raw' is supported.""")
resolution: Optional[float] = Field(
None, description="""Pixel resolution of the image, in pixels per centimeter."""
)

View file

@ -130,10 +130,15 @@ class TimeSeries(NWBDataInterface):
)
name: str = Field(...)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
data: TimeSeriesData = Field(
...,
@ -178,15 +183,17 @@ class TimeSeriesData(ConfiguredBaseModel):
json_schema_extra={"linkml_meta": {"equals_string": "data", "ifabsent": "string(data)"}},
)
conversion: Optional[float] = Field(
None,
1.0,
description="""Scalar to multiply each element in data to convert it to the specified 'unit'. If the data are stored in acquisition system units or other units that require a conversion to be interpretable, multiply the data by 'conversion' to convert the data to the specified 'unit'. e.g. if the data acquisition system stores values in this object as signed 16-bit integers (int16 range -32,768 to 32,767) that correspond to a 5V range (-2.5V to 2.5V), and the data acquisition system gain is 8000X, then the 'conversion' multiplier to get from raw data acquisition values to recorded volts is 2.5/32768/8000 = 9.5367e-9.""",
json_schema_extra={"linkml_meta": {"ifabsent": "float(1.0)"}},
)
resolution: Optional[float] = Field(
None,
-1.0,
description="""Smallest meaningful difference between values in data, stored in the specified by unit, e.g., the change in value of the least significant bit, or a larger number if signal noise is known to be present. If unknown, use -1.0.""",
json_schema_extra={"linkml_meta": {"ifabsent": "float(-1.0)"}},
)
unit: Optional[str] = Field(
None,
unit: str = Field(
...,
description="""Base unit of measurement for working with the data. Actual stored values are not necessarily stored in these units. To access the data in these units, multiply 'data' by 'conversion'.""",
)
value: Optional[
@ -212,9 +219,13 @@ class TimeSeriesStartingTime(ConfiguredBaseModel):
"linkml_meta": {"equals_string": "starting_time", "ifabsent": "string(starting_time)"}
},
)
rate: Optional[float] = Field(None, description="""Sampling rate, in Hz.""")
unit: Optional[str] = Field(
None, description="""Unit of measurement for time, which is fixed to 'seconds'."""
rate: float = Field(..., description="""Sampling rate, in Hz.""")
unit: Literal["seconds"] = Field(
"seconds",
description="""Unit of measurement for time, which is fixed to 'seconds'.""",
json_schema_extra={
"linkml_meta": {"equals_string": "seconds", "ifabsent": "string(seconds)"}
},
)
value: float = Field(...)
@ -260,9 +271,7 @@ class Images(NWBDataInterface):
)
name: str = Field("Images", json_schema_extra={"linkml_meta": {"ifabsent": "string(Images)"}})
description: Optional[str] = Field(
None, description="""Description of this collection of images."""
)
description: str = Field(..., description="""Description of this collection of images.""")
image: List[Image] = Field(..., description="""Images stored in this collection.""")

View file

@ -84,10 +84,15 @@ class SpatialSeries(TimeSeries):
reference_frame: Optional[str] = Field(
None, description="""Description defining what exactly 'straight-ahead' means."""
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -128,8 +133,9 @@ class SpatialSeriesData(ConfiguredBaseModel):
json_schema_extra={"linkml_meta": {"equals_string": "data", "ifabsent": "string(data)"}},
)
unit: Optional[str] = Field(
None,
"meters",
description="""Base unit of measurement for working with the data. The default value is 'meters'. Actual stored values are not necessarily stored in these units. To access the data in these units, multiply 'data' by 'conversion'.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(meters)"}},
)
value: Optional[
Union[

View file

@ -130,10 +130,15 @@ class ElectricalSeries(TimeSeries):
description="""Channel-specific conversion factor. Multiply the data in the 'data' dataset by these values along the channel axis (as indicated by axis attribute) AND by the global conversion factor in the 'conversion' attribute of 'data' to get the data values in Volts, i.e, data in Volts = data * data.conversion * channel_conversion. This approach allows for both global and per-channel data conversion factors needed to support the storage of electrical recordings as native values generated by data acquisition systems. If this dataset is not present, then there is no channel-specific conversion factor, i.e. it is 1 for all channels.""",
json_schema_extra={"linkml_meta": {"array": {"dimensions": [{"alias": "num_channels"}]}}},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -198,10 +203,15 @@ class SpikeEventSeries(ElectricalSeries):
description="""Channel-specific conversion factor. Multiply the data in the 'data' dataset by these values along the channel axis (as indicated by axis attribute) AND by the global conversion factor in the 'conversion' attribute of 'data' to get the data values in Volts, i.e, data in Volts = data * data.conversion * channel_conversion. This approach allows for both global and per-channel data conversion factors needed to support the storage of electrical recordings as native values generated by data acquisition systems. If this dataset is not present, then there is no channel-specific conversion factor, i.e. it is 1 for all channels.""",
json_schema_extra={"linkml_meta": {"array": {"dimensions": [{"alias": "num_channels"}]}}},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -369,9 +379,9 @@ class ElectrodeGroup(NWBContainer):
)
name: str = Field(...)
description: Optional[str] = Field(None, description="""Description of this electrode group.""")
location: Optional[str] = Field(
None,
description: str = Field(..., description="""Description of this electrode group.""")
location: str = Field(
...,
description="""Location of electrode group. Specify the area, layer, comments on estimation of area/layer, etc. Use standard atlas names for anatomical regions when possible.""",
)
position: Optional[ElectrodeGroupPosition] = Field(

View file

@ -150,13 +150,11 @@ class TimeIntervals(DynamicTable):
}
},
)
colnames: Optional[str] = Field(
None,
colnames: List[str] = Field(
...,
description="""The names of the columns in this table. This should be used to specify an order to the columns.""",
)
description: Optional[str] = Field(
None, description="""Description of what is in this dynamic table."""
)
description: str = Field(..., description="""Description of what is in this dynamic table.""")
id: NDArray[Shape["* num_rows"], int] = Field(
...,
description="""Array of unique identifiers for the rows of this dynamic table.""",
@ -194,9 +192,7 @@ class TimeIntervalsTimeseries(VectorData):
timeseries: Optional[TimeSeries] = Field(
None, description="""the TimeSeries that this index applies to."""
)
description: Optional[str] = Field(
None, description="""Description of what these vectors represent."""
)
description: str = Field(..., description="""Description of what these vectors represent.""")
value: Optional[
Union[
NDArray[Shape["* dim0"], Any],

View file

@ -98,9 +98,10 @@ class NWBFile(NWBContainer):
"root",
json_schema_extra={"linkml_meta": {"equals_string": "root", "ifabsent": "string(root)"}},
)
nwb_version: Optional[str] = Field(
None,
nwb_version: Literal["2.2.2"] = Field(
"2.2.2",
description="""File version string. Use semantic versioning, e.g. 1.2.1. This will be the name of the format with trailing major, minor and patch numbers.""",
json_schema_extra={"linkml_meta": {"equals_string": "2.2.2", "ifabsent": "string(2.2.2)"}},
)
file_create_date: NDArray[Shape["* num_modifications"], datetime] = Field(
...,
@ -305,7 +306,7 @@ class GeneralSourceScript(ConfiguredBaseModel):
"linkml_meta": {"equals_string": "source_script", "ifabsent": "string(source_script)"}
},
)
file_name: Optional[str] = Field(None, description="""Name of script file.""")
file_name: str = Field(..., description="""Name of script file.""")
value: str = Field(...)
@ -486,13 +487,11 @@ class ExtracellularEphysElectrodes(DynamicTable):
}
},
)
colnames: Optional[str] = Field(
None,
colnames: List[str] = Field(
...,
description="""The names of the columns in this table. This should be used to specify an order to the columns.""",
)
description: Optional[str] = Field(
None, description="""Description of what is in this dynamic table."""
)
description: str = Field(..., description="""Description of what is in this dynamic table.""")
id: NDArray[Shape["* num_rows"], int] = Field(
...,
description="""Array of unique identifiers for the rows of this dynamic table.""",

View file

@ -107,8 +107,8 @@ class PatchClampSeries(TimeSeries):
)
name: str = Field(...)
stimulus_description: Optional[str] = Field(
None, description="""Protocol/stimulus name for this patch-clamp dataset."""
stimulus_description: str = Field(
..., description="""Protocol/stimulus name for this patch-clamp dataset."""
)
sweep_number: Optional[int] = Field(
None, description="""Sweep number, allows to group different PatchClampSeries together."""
@ -127,10 +127,15 @@ class PatchClampSeries(TimeSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -170,8 +175,8 @@ class PatchClampSeriesData(ConfiguredBaseModel):
"data",
json_schema_extra={"linkml_meta": {"equals_string": "data", "ifabsent": "string(data)"}},
)
unit: Optional[str] = Field(
None,
unit: str = Field(
...,
description="""Base unit of measurement for working with the data. Actual stored values are not necessarily stored in these units. To access the data in these units, multiply 'data' by 'conversion'.""",
)
value: Optional[NDArray[Shape["* num_times"], float]] = Field(
@ -195,8 +200,8 @@ class CurrentClampSeries(PatchClampSeries):
capacitance_compensation: Optional[float] = Field(
None, description="""Capacitance compensation, in farads."""
)
stimulus_description: Optional[str] = Field(
None, description="""Protocol/stimulus name for this patch-clamp dataset."""
stimulus_description: str = Field(
..., description="""Protocol/stimulus name for this patch-clamp dataset."""
)
sweep_number: Optional[int] = Field(
None, description="""Sweep number, allows to group different PatchClampSeries together."""
@ -214,10 +219,15 @@ class CurrentClampSeries(PatchClampSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -257,9 +267,10 @@ class CurrentClampSeriesData(ConfiguredBaseModel):
"data",
json_schema_extra={"linkml_meta": {"equals_string": "data", "ifabsent": "string(data)"}},
)
unit: Optional[str] = Field(
None,
unit: Literal["volts"] = Field(
"volts",
description="""Base unit of measurement for working with the data. which is fixed to 'volts'. Actual stored values are not necessarily stored in these units. To access the data in these units, multiply 'data' by 'conversion'.""",
json_schema_extra={"linkml_meta": {"equals_string": "volts", "ifabsent": "string(volts)"}},
)
value: Any = Field(...)
@ -280,8 +291,8 @@ class IZeroClampSeries(CurrentClampSeries):
..., description="""Capacitance compensation, in farads, fixed to 0.0."""
)
data: CurrentClampSeriesData = Field(..., description="""Recorded voltage.""")
stimulus_description: Optional[str] = Field(
None, description="""Protocol/stimulus name for this patch-clamp dataset."""
stimulus_description: str = Field(
..., description="""Protocol/stimulus name for this patch-clamp dataset."""
)
sweep_number: Optional[int] = Field(
None, description="""Sweep number, allows to group different PatchClampSeries together."""
@ -299,10 +310,15 @@ class IZeroClampSeries(CurrentClampSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -342,8 +358,8 @@ class CurrentClampStimulusSeries(PatchClampSeries):
name: str = Field(...)
data: CurrentClampStimulusSeriesData = Field(..., description="""Stimulus current applied.""")
stimulus_description: Optional[str] = Field(
None, description="""Protocol/stimulus name for this patch-clamp dataset."""
stimulus_description: str = Field(
..., description="""Protocol/stimulus name for this patch-clamp dataset."""
)
sweep_number: Optional[int] = Field(
None, description="""Sweep number, allows to group different PatchClampSeries together."""
@ -361,10 +377,15 @@ class CurrentClampStimulusSeries(PatchClampSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -404,9 +425,12 @@ class CurrentClampStimulusSeriesData(ConfiguredBaseModel):
"data",
json_schema_extra={"linkml_meta": {"equals_string": "data", "ifabsent": "string(data)"}},
)
unit: Optional[str] = Field(
None,
unit: Literal["amperes"] = Field(
"amperes",
description="""Base unit of measurement for working with the data. which is fixed to 'amperes'. Actual stored values are not necessarily stored in these units. To access the data in these units, multiply 'data' by 'conversion'.""",
json_schema_extra={
"linkml_meta": {"equals_string": "amperes", "ifabsent": "string(amperes)"}
},
)
value: Any = Field(...)
@ -443,8 +467,8 @@ class VoltageClampSeries(PatchClampSeries):
whole_cell_series_resistance_comp: Optional[VoltageClampSeriesWholeCellSeriesResistanceComp] = (
Field(None, description="""Whole cell series resistance compensation, in ohms.""")
)
stimulus_description: Optional[str] = Field(
None, description="""Protocol/stimulus name for this patch-clamp dataset."""
stimulus_description: str = Field(
..., description="""Protocol/stimulus name for this patch-clamp dataset."""
)
sweep_number: Optional[int] = Field(
None, description="""Sweep number, allows to group different PatchClampSeries together."""
@ -462,10 +486,15 @@ class VoltageClampSeries(PatchClampSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -505,9 +534,12 @@ class VoltageClampSeriesData(ConfiguredBaseModel):
"data",
json_schema_extra={"linkml_meta": {"equals_string": "data", "ifabsent": "string(data)"}},
)
unit: Optional[str] = Field(
None,
unit: Literal["amperes"] = Field(
"amperes",
description="""Base unit of measurement for working with the data. which is fixed to 'amperes'. Actual stored values are not necessarily stored in these units. To access the data in these units, multiply 'data' by 'conversion'.""",
json_schema_extra={
"linkml_meta": {"equals_string": "amperes", "ifabsent": "string(amperes)"}
},
)
value: Any = Field(...)
@ -528,9 +560,12 @@ class VoltageClampSeriesCapacitanceFast(ConfiguredBaseModel):
}
},
)
unit: Optional[str] = Field(
None,
unit: Literal["farads"] = Field(
"farads",
description="""Unit of measurement for capacitance_fast, which is fixed to 'farads'.""",
json_schema_extra={
"linkml_meta": {"equals_string": "farads", "ifabsent": "string(farads)"}
},
)
value: float = Field(...)
@ -551,9 +586,12 @@ class VoltageClampSeriesCapacitanceSlow(ConfiguredBaseModel):
}
},
)
unit: Optional[str] = Field(
None,
unit: Literal["farads"] = Field(
"farads",
description="""Unit of measurement for capacitance_fast, which is fixed to 'farads'.""",
json_schema_extra={
"linkml_meta": {"equals_string": "farads", "ifabsent": "string(farads)"}
},
)
value: float = Field(...)
@ -574,9 +612,10 @@ class VoltageClampSeriesResistanceCompBandwidth(ConfiguredBaseModel):
}
},
)
unit: Optional[str] = Field(
None,
unit: Literal["hertz"] = Field(
"hertz",
description="""Unit of measurement for resistance_comp_bandwidth, which is fixed to 'hertz'.""",
json_schema_extra={"linkml_meta": {"equals_string": "hertz", "ifabsent": "string(hertz)"}},
)
value: float = Field(...)
@ -597,9 +636,12 @@ class VoltageClampSeriesResistanceCompCorrection(ConfiguredBaseModel):
}
},
)
unit: Optional[str] = Field(
None,
unit: Literal["percent"] = Field(
"percent",
description="""Unit of measurement for resistance_comp_correction, which is fixed to 'percent'.""",
json_schema_extra={
"linkml_meta": {"equals_string": "percent", "ifabsent": "string(percent)"}
},
)
value: float = Field(...)
@ -620,9 +662,12 @@ class VoltageClampSeriesResistanceCompPrediction(ConfiguredBaseModel):
}
},
)
unit: Optional[str] = Field(
None,
unit: Literal["percent"] = Field(
"percent",
description="""Unit of measurement for resistance_comp_prediction, which is fixed to 'percent'.""",
json_schema_extra={
"linkml_meta": {"equals_string": "percent", "ifabsent": "string(percent)"}
},
)
value: float = Field(...)
@ -643,9 +688,12 @@ class VoltageClampSeriesWholeCellCapacitanceComp(ConfiguredBaseModel):
}
},
)
unit: Optional[str] = Field(
None,
unit: Literal["farads"] = Field(
"farads",
description="""Unit of measurement for whole_cell_capacitance_comp, which is fixed to 'farads'.""",
json_schema_extra={
"linkml_meta": {"equals_string": "farads", "ifabsent": "string(farads)"}
},
)
value: float = Field(...)
@ -666,9 +714,10 @@ class VoltageClampSeriesWholeCellSeriesResistanceComp(ConfiguredBaseModel):
}
},
)
unit: Optional[str] = Field(
None,
unit: Literal["ohms"] = Field(
"ohms",
description="""Unit of measurement for whole_cell_series_resistance_comp, which is fixed to 'ohms'.""",
json_schema_extra={"linkml_meta": {"equals_string": "ohms", "ifabsent": "string(ohms)"}},
)
value: float = Field(...)
@ -684,8 +733,8 @@ class VoltageClampStimulusSeries(PatchClampSeries):
name: str = Field(...)
data: VoltageClampStimulusSeriesData = Field(..., description="""Stimulus voltage applied.""")
stimulus_description: Optional[str] = Field(
None, description="""Protocol/stimulus name for this patch-clamp dataset."""
stimulus_description: str = Field(
..., description="""Protocol/stimulus name for this patch-clamp dataset."""
)
sweep_number: Optional[int] = Field(
None, description="""Sweep number, allows to group different PatchClampSeries together."""
@ -703,10 +752,15 @@ class VoltageClampStimulusSeries(PatchClampSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -746,9 +800,10 @@ class VoltageClampStimulusSeriesData(ConfiguredBaseModel):
"data",
json_schema_extra={"linkml_meta": {"equals_string": "data", "ifabsent": "string(data)"}},
)
unit: Optional[str] = Field(
None,
unit: Literal["volts"] = Field(
"volts",
description="""Base unit of measurement for working with the data. which is fixed to 'volts'. Actual stored values are not necessarily stored in these units. To access the data in these units, multiply 'data' by 'conversion'.""",
json_schema_extra={"linkml_meta": {"equals_string": "volts", "ifabsent": "string(volts)"}},
)
value: Any = Field(...)
@ -824,13 +879,11 @@ class SweepTable(DynamicTable):
}
},
)
colnames: Optional[str] = Field(
None,
colnames: List[str] = Field(
...,
description="""The names of the columns in this table. This should be used to specify an order to the columns.""",
)
description: Optional[str] = Field(
None, description="""Description of what is in this dynamic table."""
)
description: str = Field(..., description="""Description of what is in this dynamic table.""")
id: NDArray[Shape["* num_rows"], int] = Field(
...,
description="""Array of unique identifiers for the rows of this dynamic table.""",

View file

@ -159,10 +159,15 @@ class ImageSeries(TimeSeries):
None,
description="""Format of image. If this is 'external', then the attribute 'external_file' contains the path information to the image files. If this is 'raw', then the raw (single-channel) binary data is stored in the 'data' dataset. If this attribute is not present, then the default format='raw' case is assumed.""",
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -204,8 +209,8 @@ class ImageSeriesExternalFile(ConfiguredBaseModel):
"linkml_meta": {"equals_string": "external_file", "ifabsent": "string(external_file)"}
},
)
starting_frame: Optional[int] = Field(
None,
starting_frame: List[int] = Field(
...,
description="""Each external image may contain one or more consecutive frames of the full ImageSeries. This attribute serves as an index to indicate which frames each file contains, to faciliate random access. The 'starting_frame' attribute, hence, contains a list of frame numbers within the full ImageSeries of the first frame of each file listed in the parent 'external_file' dataset. Zero-based indexing is used (hence, the first element will always be zero). For example, if the 'external_file' dataset has three paths to files and the first file has 5 frames, the second file has 10 frames, and the third file has 20 frames, then this attribute will have values [0, 5, 15]. If there is a single external file that holds all of the frames of the ImageSeries (and so there is a single element in the 'external_file' dataset), then this attribute should have value [0].""",
)
value: Optional[NDArray[Shape["* num_files"], str]] = Field(
@ -251,10 +256,15 @@ class ImageMaskSeries(ImageSeries):
None,
description="""Format of image. If this is 'external', then the attribute 'external_file' contains the path information to the image files. If this is 'raw', then the raw (single-channel) binary data is stored in the 'data' dataset. If this attribute is not present, then the default format='raw' case is assumed.""",
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -322,10 +332,15 @@ class OpticalSeries(ImageSeries):
None,
description="""Format of image. If this is 'external', then the attribute 'external_file' contains the path information to the image files. If this is 'raw', then the raw (single-channel) binary data is stored in the 'data' dataset. If this attribute is not present, then the default format='raw' case is assumed.""",
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -378,10 +393,15 @@ class IndexSeries(TimeSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,

View file

@ -120,10 +120,15 @@ class AbstractFeatureSeries(TimeSeries):
description="""Description of the features represented in TimeSeries::data.""",
json_schema_extra={"linkml_meta": {"array": {"dimensions": [{"alias": "num_features"}]}}},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -164,8 +169,9 @@ class AbstractFeatureSeriesData(ConfiguredBaseModel):
json_schema_extra={"linkml_meta": {"equals_string": "data", "ifabsent": "string(data)"}},
)
unit: Optional[str] = Field(
None,
"see 'feature_units'",
description="""Since there can be different units for different features, store the units in 'feature_units'. The default value for this attribute is \"see 'feature_units'\".""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(see 'feature_units')"}},
)
value: Optional[
Union[
@ -190,10 +196,15 @@ class AnnotationSeries(TimeSeries):
description="""Annotations made during an experiment.""",
json_schema_extra={"linkml_meta": {"array": {"dimensions": [{"alias": "num_times"}]}}},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -237,10 +248,15 @@ class IntervalSeries(TimeSeries):
description="""Use values >0 if interval started, <0 if interval ended.""",
json_schema_extra={"linkml_meta": {"array": {"dimensions": [{"alias": "num_times"}]}}},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -296,10 +312,15 @@ class DecompositionSeries(TimeSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -339,9 +360,10 @@ class DecompositionSeriesData(ConfiguredBaseModel):
"data",
json_schema_extra={"linkml_meta": {"equals_string": "data", "ifabsent": "string(data)"}},
)
unit: Optional[str] = Field(
None,
unit: str = Field(
"no unit",
description="""Base unit of measurement for working with the data. Actual stored values are not necessarily stored in these units. To access the data in these units, multiply 'data' by 'conversion'.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no unit)"}},
)
value: Optional[NDArray[Shape["* num_times, * num_channels, * num_bands"], float]] = Field(
None,
@ -403,13 +425,11 @@ class DecompositionSeriesBands(DynamicTable):
description="""The standard deviation of Gaussian filters, in Hz.""",
json_schema_extra={"linkml_meta": {"array": {"dimensions": [{"alias": "num_bands"}]}}},
)
colnames: Optional[str] = Field(
None,
colnames: List[str] = Field(
...,
description="""The names of the columns in this table. This should be used to specify an order to the columns.""",
)
description: Optional[str] = Field(
None, description="""Description of what is in this dynamic table."""
)
description: str = Field(..., description="""Description of what is in this dynamic table.""")
id: NDArray[Shape["* num_rows"], int] = Field(
...,
description="""Array of unique identifiers for the rows of this dynamic table.""",
@ -513,13 +533,11 @@ class Units(DynamicTable):
NDArray[Shape["* num_units, * num_samples, * num_electrodes"], float],
]
] = Field(None, description="""Spike waveform standard deviation for each spike unit.""")
colnames: Optional[str] = Field(
None,
colnames: List[str] = Field(
...,
description="""The names of the columns in this table. This should be used to specify an order to the columns.""",
)
description: Optional[str] = Field(
None, description="""Description of what is in this dynamic table."""
)
description: str = Field(..., description="""Description of what is in this dynamic table.""")
id: NDArray[Shape["* num_rows"], int] = Field(
...,
description="""Array of unique identifiers for the rows of this dynamic table.""",
@ -550,9 +568,7 @@ class UnitsSpikeTimes(VectorData):
None,
description="""The smallest possible difference between two spike times. Usually 1 divided by the acquisition sampling rate from which spike times were extracted, but could be larger if the acquisition time series was downsampled or smaller if the acquisition time series was smoothed/interpolated and it is possible for the spike time to be between samples.""",
)
description: Optional[str] = Field(
None, description="""Description of what these vectors represent."""
)
description: str = Field(..., description="""Description of what these vectors represent.""")
value: Optional[
Union[
NDArray[Shape["* dim0"], Any],

View file

@ -91,10 +91,15 @@ class OptogeneticSeries(TimeSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,

View file

@ -146,10 +146,15 @@ class TwoPhotonSeries(ImageSeries):
None,
description="""Format of image. If this is 'external', then the attribute 'external_file' contains the path information to the image files. If this is 'raw', then the raw (single-channel) binary data is stored in the 'data' dataset. If this attribute is not present, then the default format='raw' case is assumed.""",
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -203,10 +208,15 @@ class RoiResponseSeries(TimeSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -342,12 +352,14 @@ class ImagingPlaneManifold(ConfiguredBaseModel):
},
)
conversion: Optional[float] = Field(
None,
1.0,
description="""Scalar to multiply each element in data to convert it to the specified 'unit'. If the data are stored in acquisition system units or other units that require a conversion to be interpretable, multiply the data by 'conversion' to convert the data to the specified 'unit'. e.g. if the data acquisition system stores values in this object as pixels from x = -500 to 499, y = -500 to 499 that correspond to a 2 m x 2 m range, then the 'conversion' multiplier to get from raw data acquisition pixel units to meters is 2/1000.""",
json_schema_extra={"linkml_meta": {"ifabsent": "float(1.0)"}},
)
unit: Optional[str] = Field(
None,
"meters",
description="""Base unit of measurement for working with the data. The default value is 'meters'.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(meters)"}},
)
value: Optional[
Union[
@ -370,8 +382,10 @@ class ImagingPlaneOriginCoords(ConfiguredBaseModel):
"linkml_meta": {"equals_string": "origin_coords", "ifabsent": "string(origin_coords)"}
},
)
unit: Optional[str] = Field(
None, description="""Measurement units for origin_coords. The default value is 'meters'."""
unit: str = Field(
"meters",
description="""Measurement units for origin_coords. The default value is 'meters'.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(meters)"}},
)
value: Optional[NDArray[Shape["2 x_y, 3 x_y_z"], float]] = Field(
None,
@ -401,8 +415,10 @@ class ImagingPlaneGridSpacing(ConfiguredBaseModel):
"linkml_meta": {"equals_string": "grid_spacing", "ifabsent": "string(grid_spacing)"}
},
)
unit: Optional[str] = Field(
None, description="""Measurement units for grid_spacing. The default value is 'meters'."""
unit: str = Field(
"meters",
description="""Measurement units for grid_spacing. The default value is 'meters'.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(meters)"}},
)
value: Optional[NDArray[Shape["2 x_y, 3 x_y_z"], float]] = Field(
None,

View file

@ -127,14 +127,12 @@ class ImagingRetinotopyAxis1PhaseMap(ConfiguredBaseModel):
}
},
)
dimension: Optional[int] = Field(
None,
dimension: List[int] = Field(
...,
description="""Number of rows and columns in the image. NOTE: row, column representation is equivalent to height, width.""",
)
field_of_view: Optional[float] = Field(None, description="""Size of viewing area, in meters.""")
unit: Optional[str] = Field(
None, description="""Unit that axis data is stored in (e.g., degrees)."""
)
field_of_view: List[float] = Field(..., description="""Size of viewing area, in meters.""")
unit: str = Field(..., description="""Unit that axis data is stored in (e.g., degrees).""")
value: Optional[NDArray[Shape["* num_rows, * num_cols"], float]] = Field(
None,
json_schema_extra={
@ -159,14 +157,12 @@ class ImagingRetinotopyAxis1PowerMap(ConfiguredBaseModel):
}
},
)
dimension: Optional[int] = Field(
None,
dimension: List[int] = Field(
...,
description="""Number of rows and columns in the image. NOTE: row, column representation is equivalent to height, width.""",
)
field_of_view: Optional[float] = Field(None, description="""Size of viewing area, in meters.""")
unit: Optional[str] = Field(
None, description="""Unit that axis data is stored in (e.g., degrees)."""
)
field_of_view: List[float] = Field(..., description="""Size of viewing area, in meters.""")
unit: str = Field(..., description="""Unit that axis data is stored in (e.g., degrees).""")
value: Optional[NDArray[Shape["* num_rows, * num_cols"], float]] = Field(
None,
json_schema_extra={
@ -191,14 +187,12 @@ class ImagingRetinotopyAxis2PhaseMap(ConfiguredBaseModel):
}
},
)
dimension: Optional[int] = Field(
None,
dimension: List[int] = Field(
...,
description="""Number of rows and columns in the image. NOTE: row, column representation is equivalent to height, width.""",
)
field_of_view: Optional[float] = Field(None, description="""Size of viewing area, in meters.""")
unit: Optional[str] = Field(
None, description="""Unit that axis data is stored in (e.g., degrees)."""
)
field_of_view: List[float] = Field(..., description="""Size of viewing area, in meters.""")
unit: str = Field(..., description="""Unit that axis data is stored in (e.g., degrees).""")
value: Optional[NDArray[Shape["* num_rows, * num_cols"], float]] = Field(
None,
json_schema_extra={
@ -223,14 +217,12 @@ class ImagingRetinotopyAxis2PowerMap(ConfiguredBaseModel):
}
},
)
dimension: Optional[int] = Field(
None,
dimension: List[int] = Field(
...,
description="""Number of rows and columns in the image. NOTE: row, column representation is equivalent to height, width.""",
)
field_of_view: Optional[float] = Field(None, description="""Size of viewing area, in meters.""")
unit: Optional[str] = Field(
None, description="""Unit that axis data is stored in (e.g., degrees)."""
)
field_of_view: List[float] = Field(..., description="""Size of viewing area, in meters.""")
unit: str = Field(..., description="""Unit that axis data is stored in (e.g., degrees).""")
value: Optional[NDArray[Shape["* num_rows, * num_cols"], float]] = Field(
None,
json_schema_extra={
@ -255,19 +247,17 @@ class ImagingRetinotopyFocalDepthImage(ConfiguredBaseModel):
}
},
)
bits_per_pixel: Optional[int] = Field(
None,
bits_per_pixel: int = Field(
...,
description="""Number of bits used to represent each value. This is necessary to determine maximum (white) pixel value.""",
)
dimension: Optional[int] = Field(
None,
dimension: List[int] = Field(
...,
description="""Number of rows and columns in the image. NOTE: row, column representation is equivalent to height, width.""",
)
field_of_view: Optional[float] = Field(None, description="""Size of viewing area, in meters.""")
focal_depth: Optional[float] = Field(None, description="""Focal depth offset, in meters.""")
format: Optional[str] = Field(
None, description="""Format of image. Right now only 'raw' is supported."""
)
field_of_view: List[float] = Field(..., description="""Size of viewing area, in meters.""")
focal_depth: float = Field(..., description="""Focal depth offset, in meters.""")
format: str = Field(..., description="""Format of image. Right now only 'raw' is supported.""")
value: Optional[NDArray[Shape["* num_rows, * num_cols"], int]] = Field(
None,
json_schema_extra={
@ -289,11 +279,11 @@ class ImagingRetinotopySignMap(ConfiguredBaseModel):
"linkml_meta": {"equals_string": "sign_map", "ifabsent": "string(sign_map)"}
},
)
dimension: Optional[int] = Field(
None,
dimension: List[int] = Field(
...,
description="""Number of rows and columns in the image. NOTE: row, column representation is equivalent to height, width.""",
)
field_of_view: Optional[float] = Field(None, description="""Size of viewing area, in meters.""")
field_of_view: List[float] = Field(..., description="""Size of viewing area, in meters.""")
value: Optional[NDArray[Shape["* num_rows, * num_cols"], float]] = Field(
None,
json_schema_extra={
@ -318,18 +308,16 @@ class ImagingRetinotopyVasculatureImage(ConfiguredBaseModel):
}
},
)
bits_per_pixel: Optional[int] = Field(
None,
bits_per_pixel: int = Field(
...,
description="""Number of bits used to represent each value. This is necessary to determine maximum (white) pixel value""",
)
dimension: Optional[int] = Field(
None,
dimension: List[int] = Field(
...,
description="""Number of rows and columns in the image. NOTE: row, column representation is equivalent to height, width.""",
)
field_of_view: Optional[float] = Field(None, description="""Size of viewing area, in meters.""")
format: Optional[str] = Field(
None, description="""Format of image. Right now only 'raw' is supported."""
)
field_of_view: List[float] = Field(..., description="""Size of viewing area, in meters.""")
format: str = Field(..., description="""Format of image. Right now only 'raw' is supported.""")
value: Optional[NDArray[Shape["* num_rows, * num_cols"], int]] = Field(
None,
json_schema_extra={

View file

@ -130,10 +130,15 @@ class TimeSeries(NWBDataInterface):
)
name: str = Field(...)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
data: TimeSeriesData = Field(
...,
@ -178,15 +183,17 @@ class TimeSeriesData(ConfiguredBaseModel):
json_schema_extra={"linkml_meta": {"equals_string": "data", "ifabsent": "string(data)"}},
)
conversion: Optional[float] = Field(
None,
1.0,
description="""Scalar to multiply each element in data to convert it to the specified 'unit'. If the data are stored in acquisition system units or other units that require a conversion to be interpretable, multiply the data by 'conversion' to convert the data to the specified 'unit'. e.g. if the data acquisition system stores values in this object as signed 16-bit integers (int16 range -32,768 to 32,767) that correspond to a 5V range (-2.5V to 2.5V), and the data acquisition system gain is 8000X, then the 'conversion' multiplier to get from raw data acquisition values to recorded volts is 2.5/32768/8000 = 9.5367e-9.""",
json_schema_extra={"linkml_meta": {"ifabsent": "float(1.0)"}},
)
resolution: Optional[float] = Field(
None,
-1.0,
description="""Smallest meaningful difference between values in data, stored in the specified by unit, e.g., the change in value of the least significant bit, or a larger number if signal noise is known to be present. If unknown, use -1.0.""",
json_schema_extra={"linkml_meta": {"ifabsent": "float(-1.0)"}},
)
unit: Optional[str] = Field(
None,
unit: str = Field(
...,
description="""Base unit of measurement for working with the data. Actual stored values are not necessarily stored in these units. To access the data in these units, multiply 'data' by 'conversion'.""",
)
value: Optional[
@ -212,9 +219,13 @@ class TimeSeriesStartingTime(ConfiguredBaseModel):
"linkml_meta": {"equals_string": "starting_time", "ifabsent": "string(starting_time)"}
},
)
rate: Optional[float] = Field(None, description="""Sampling rate, in Hz.""")
unit: Optional[str] = Field(
None, description="""Unit of measurement for time, which is fixed to 'seconds'."""
rate: float = Field(..., description="""Sampling rate, in Hz.""")
unit: Literal["seconds"] = Field(
"seconds",
description="""Unit of measurement for time, which is fixed to 'seconds'.""",
json_schema_extra={
"linkml_meta": {"equals_string": "seconds", "ifabsent": "string(seconds)"}
},
)
value: float = Field(...)
@ -260,9 +271,7 @@ class Images(NWBDataInterface):
)
name: str = Field("Images", json_schema_extra={"linkml_meta": {"ifabsent": "string(Images)"}})
description: Optional[str] = Field(
None, description="""Description of this collection of images."""
)
description: str = Field(..., description="""Description of this collection of images.""")
image: List[Image] = Field(..., description="""Images stored in this collection.""")

View file

@ -84,10 +84,15 @@ class SpatialSeries(TimeSeries):
reference_frame: Optional[str] = Field(
None, description="""Description defining what exactly 'straight-ahead' means."""
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -128,8 +133,9 @@ class SpatialSeriesData(ConfiguredBaseModel):
json_schema_extra={"linkml_meta": {"equals_string": "data", "ifabsent": "string(data)"}},
)
unit: Optional[str] = Field(
None,
"meters",
description="""Base unit of measurement for working with the data. The default value is 'meters'. Actual stored values are not necessarily stored in these units. To access the data in these units, multiply 'data' by 'conversion'.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(meters)"}},
)
value: Optional[
Union[

View file

@ -130,10 +130,15 @@ class ElectricalSeries(TimeSeries):
description="""Channel-specific conversion factor. Multiply the data in the 'data' dataset by these values along the channel axis (as indicated by axis attribute) AND by the global conversion factor in the 'conversion' attribute of 'data' to get the data values in Volts, i.e, data in Volts = data * data.conversion * channel_conversion. This approach allows for both global and per-channel data conversion factors needed to support the storage of electrical recordings as native values generated by data acquisition systems. If this dataset is not present, then there is no channel-specific conversion factor, i.e. it is 1 for all channels.""",
json_schema_extra={"linkml_meta": {"array": {"dimensions": [{"alias": "num_channels"}]}}},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -198,10 +203,15 @@ class SpikeEventSeries(ElectricalSeries):
description="""Channel-specific conversion factor. Multiply the data in the 'data' dataset by these values along the channel axis (as indicated by axis attribute) AND by the global conversion factor in the 'conversion' attribute of 'data' to get the data values in Volts, i.e, data in Volts = data * data.conversion * channel_conversion. This approach allows for both global and per-channel data conversion factors needed to support the storage of electrical recordings as native values generated by data acquisition systems. If this dataset is not present, then there is no channel-specific conversion factor, i.e. it is 1 for all channels.""",
json_schema_extra={"linkml_meta": {"array": {"dimensions": [{"alias": "num_channels"}]}}},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -369,9 +379,9 @@ class ElectrodeGroup(NWBContainer):
)
name: str = Field(...)
description: Optional[str] = Field(None, description="""Description of this electrode group.""")
location: Optional[str] = Field(
None,
description: str = Field(..., description="""Description of this electrode group.""")
location: str = Field(
...,
description="""Location of electrode group. Specify the area, layer, comments on estimation of area/layer, etc. Use standard atlas names for anatomical regions when possible.""",
)
position: Optional[ElectrodeGroupPosition] = Field(

View file

@ -150,13 +150,11 @@ class TimeIntervals(DynamicTable):
}
},
)
colnames: Optional[str] = Field(
None,
colnames: List[str] = Field(
...,
description="""The names of the columns in this table. This should be used to specify an order to the columns.""",
)
description: Optional[str] = Field(
None, description="""Description of what is in this dynamic table."""
)
description: str = Field(..., description="""Description of what is in this dynamic table.""")
id: NDArray[Shape["* num_rows"], int] = Field(
...,
description="""Array of unique identifiers for the rows of this dynamic table.""",
@ -194,9 +192,7 @@ class TimeIntervalsTimeseries(VectorData):
timeseries: Optional[TimeSeries] = Field(
None, description="""the TimeSeries that this index applies to."""
)
description: Optional[str] = Field(
None, description="""Description of what these vectors represent."""
)
description: str = Field(..., description="""Description of what these vectors represent.""")
value: Optional[
Union[
NDArray[Shape["* dim0"], Any],

View file

@ -96,9 +96,7 @@ class ScratchData(NWBData):
)
name: str = Field(...)
notes: Optional[str] = Field(
None, description="""Any notes the user has about the dataset being stored"""
)
notes: str = Field(..., description="""Any notes the user has about the dataset being stored""")
class NWBFile(NWBContainer):
@ -114,9 +112,10 @@ class NWBFile(NWBContainer):
"root",
json_schema_extra={"linkml_meta": {"equals_string": "root", "ifabsent": "string(root)"}},
)
nwb_version: Optional[str] = Field(
None,
nwb_version: Literal["2.2.4"] = Field(
"2.2.4",
description="""File version string. Use semantic versioning, e.g. 1.2.1. This will be the name of the format with trailing major, minor and patch numbers.""",
json_schema_extra={"linkml_meta": {"equals_string": "2.2.4", "ifabsent": "string(2.2.4)"}},
)
file_create_date: NDArray[Shape["* num_modifications"], datetime] = Field(
...,
@ -321,7 +320,7 @@ class GeneralSourceScript(ConfiguredBaseModel):
"linkml_meta": {"equals_string": "source_script", "ifabsent": "string(source_script)"}
},
)
file_name: Optional[str] = Field(None, description="""Name of script file.""")
file_name: str = Field(..., description="""Name of script file.""")
value: str = Field(...)
@ -464,13 +463,11 @@ class ExtracellularEphysElectrodes(DynamicTable):
}
},
)
colnames: Optional[str] = Field(
None,
colnames: List[str] = Field(
...,
description="""The names of the columns in this table. This should be used to specify an order to the columns.""",
)
description: Optional[str] = Field(
None, description="""Description of what is in this dynamic table."""
)
description: str = Field(..., description="""Description of what is in this dynamic table.""")
id: NDArray[Shape["* num_rows"], int] = Field(
...,
description="""Array of unique identifiers for the rows of this dynamic table.""",

View file

@ -107,8 +107,8 @@ class PatchClampSeries(TimeSeries):
)
name: str = Field(...)
stimulus_description: Optional[str] = Field(
None, description="""Protocol/stimulus name for this patch-clamp dataset."""
stimulus_description: str = Field(
..., description="""Protocol/stimulus name for this patch-clamp dataset."""
)
sweep_number: Optional[int] = Field(
None, description="""Sweep number, allows to group different PatchClampSeries together."""
@ -127,10 +127,15 @@ class PatchClampSeries(TimeSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -170,8 +175,8 @@ class PatchClampSeriesData(ConfiguredBaseModel):
"data",
json_schema_extra={"linkml_meta": {"equals_string": "data", "ifabsent": "string(data)"}},
)
unit: Optional[str] = Field(
None,
unit: str = Field(
...,
description="""Base unit of measurement for working with the data. Actual stored values are not necessarily stored in these units. To access the data in these units, multiply 'data' by 'conversion'.""",
)
value: Optional[NDArray[Shape["* num_times"], float]] = Field(
@ -195,8 +200,8 @@ class CurrentClampSeries(PatchClampSeries):
capacitance_compensation: Optional[float] = Field(
None, description="""Capacitance compensation, in farads."""
)
stimulus_description: Optional[str] = Field(
None, description="""Protocol/stimulus name for this patch-clamp dataset."""
stimulus_description: str = Field(
..., description="""Protocol/stimulus name for this patch-clamp dataset."""
)
sweep_number: Optional[int] = Field(
None, description="""Sweep number, allows to group different PatchClampSeries together."""
@ -214,10 +219,15 @@ class CurrentClampSeries(PatchClampSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -257,9 +267,10 @@ class CurrentClampSeriesData(ConfiguredBaseModel):
"data",
json_schema_extra={"linkml_meta": {"equals_string": "data", "ifabsent": "string(data)"}},
)
unit: Optional[str] = Field(
None,
unit: Literal["volts"] = Field(
"volts",
description="""Base unit of measurement for working with the data. which is fixed to 'volts'. Actual stored values are not necessarily stored in these units. To access the data in these units, multiply 'data' by 'conversion'.""",
json_schema_extra={"linkml_meta": {"equals_string": "volts", "ifabsent": "string(volts)"}},
)
value: Any = Field(...)
@ -280,8 +291,8 @@ class IZeroClampSeries(CurrentClampSeries):
..., description="""Capacitance compensation, in farads, fixed to 0.0."""
)
data: CurrentClampSeriesData = Field(..., description="""Recorded voltage.""")
stimulus_description: Optional[str] = Field(
None, description="""Protocol/stimulus name for this patch-clamp dataset."""
stimulus_description: str = Field(
..., description="""Protocol/stimulus name for this patch-clamp dataset."""
)
sweep_number: Optional[int] = Field(
None, description="""Sweep number, allows to group different PatchClampSeries together."""
@ -299,10 +310,15 @@ class IZeroClampSeries(CurrentClampSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -342,8 +358,8 @@ class CurrentClampStimulusSeries(PatchClampSeries):
name: str = Field(...)
data: CurrentClampStimulusSeriesData = Field(..., description="""Stimulus current applied.""")
stimulus_description: Optional[str] = Field(
None, description="""Protocol/stimulus name for this patch-clamp dataset."""
stimulus_description: str = Field(
..., description="""Protocol/stimulus name for this patch-clamp dataset."""
)
sweep_number: Optional[int] = Field(
None, description="""Sweep number, allows to group different PatchClampSeries together."""
@ -361,10 +377,15 @@ class CurrentClampStimulusSeries(PatchClampSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -404,9 +425,12 @@ class CurrentClampStimulusSeriesData(ConfiguredBaseModel):
"data",
json_schema_extra={"linkml_meta": {"equals_string": "data", "ifabsent": "string(data)"}},
)
unit: Optional[str] = Field(
None,
unit: Literal["amperes"] = Field(
"amperes",
description="""Base unit of measurement for working with the data. which is fixed to 'amperes'. Actual stored values are not necessarily stored in these units. To access the data in these units, multiply 'data' by 'conversion'.""",
json_schema_extra={
"linkml_meta": {"equals_string": "amperes", "ifabsent": "string(amperes)"}
},
)
value: Any = Field(...)
@ -443,8 +467,8 @@ class VoltageClampSeries(PatchClampSeries):
whole_cell_series_resistance_comp: Optional[VoltageClampSeriesWholeCellSeriesResistanceComp] = (
Field(None, description="""Whole cell series resistance compensation, in ohms.""")
)
stimulus_description: Optional[str] = Field(
None, description="""Protocol/stimulus name for this patch-clamp dataset."""
stimulus_description: str = Field(
..., description="""Protocol/stimulus name for this patch-clamp dataset."""
)
sweep_number: Optional[int] = Field(
None, description="""Sweep number, allows to group different PatchClampSeries together."""
@ -462,10 +486,15 @@ class VoltageClampSeries(PatchClampSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -505,9 +534,12 @@ class VoltageClampSeriesData(ConfiguredBaseModel):
"data",
json_schema_extra={"linkml_meta": {"equals_string": "data", "ifabsent": "string(data)"}},
)
unit: Optional[str] = Field(
None,
unit: Literal["amperes"] = Field(
"amperes",
description="""Base unit of measurement for working with the data. which is fixed to 'amperes'. Actual stored values are not necessarily stored in these units. To access the data in these units, multiply 'data' by 'conversion'.""",
json_schema_extra={
"linkml_meta": {"equals_string": "amperes", "ifabsent": "string(amperes)"}
},
)
value: Any = Field(...)
@ -528,9 +560,12 @@ class VoltageClampSeriesCapacitanceFast(ConfiguredBaseModel):
}
},
)
unit: Optional[str] = Field(
None,
unit: Literal["farads"] = Field(
"farads",
description="""Unit of measurement for capacitance_fast, which is fixed to 'farads'.""",
json_schema_extra={
"linkml_meta": {"equals_string": "farads", "ifabsent": "string(farads)"}
},
)
value: float = Field(...)
@ -551,9 +586,12 @@ class VoltageClampSeriesCapacitanceSlow(ConfiguredBaseModel):
}
},
)
unit: Optional[str] = Field(
None,
unit: Literal["farads"] = Field(
"farads",
description="""Unit of measurement for capacitance_fast, which is fixed to 'farads'.""",
json_schema_extra={
"linkml_meta": {"equals_string": "farads", "ifabsent": "string(farads)"}
},
)
value: float = Field(...)
@ -574,9 +612,10 @@ class VoltageClampSeriesResistanceCompBandwidth(ConfiguredBaseModel):
}
},
)
unit: Optional[str] = Field(
None,
unit: Literal["hertz"] = Field(
"hertz",
description="""Unit of measurement for resistance_comp_bandwidth, which is fixed to 'hertz'.""",
json_schema_extra={"linkml_meta": {"equals_string": "hertz", "ifabsent": "string(hertz)"}},
)
value: float = Field(...)
@ -597,9 +636,12 @@ class VoltageClampSeriesResistanceCompCorrection(ConfiguredBaseModel):
}
},
)
unit: Optional[str] = Field(
None,
unit: Literal["percent"] = Field(
"percent",
description="""Unit of measurement for resistance_comp_correction, which is fixed to 'percent'.""",
json_schema_extra={
"linkml_meta": {"equals_string": "percent", "ifabsent": "string(percent)"}
},
)
value: float = Field(...)
@ -620,9 +662,12 @@ class VoltageClampSeriesResistanceCompPrediction(ConfiguredBaseModel):
}
},
)
unit: Optional[str] = Field(
None,
unit: Literal["percent"] = Field(
"percent",
description="""Unit of measurement for resistance_comp_prediction, which is fixed to 'percent'.""",
json_schema_extra={
"linkml_meta": {"equals_string": "percent", "ifabsent": "string(percent)"}
},
)
value: float = Field(...)
@ -643,9 +688,12 @@ class VoltageClampSeriesWholeCellCapacitanceComp(ConfiguredBaseModel):
}
},
)
unit: Optional[str] = Field(
None,
unit: Literal["farads"] = Field(
"farads",
description="""Unit of measurement for whole_cell_capacitance_comp, which is fixed to 'farads'.""",
json_schema_extra={
"linkml_meta": {"equals_string": "farads", "ifabsent": "string(farads)"}
},
)
value: float = Field(...)
@ -666,9 +714,10 @@ class VoltageClampSeriesWholeCellSeriesResistanceComp(ConfiguredBaseModel):
}
},
)
unit: Optional[str] = Field(
None,
unit: Literal["ohms"] = Field(
"ohms",
description="""Unit of measurement for whole_cell_series_resistance_comp, which is fixed to 'ohms'.""",
json_schema_extra={"linkml_meta": {"equals_string": "ohms", "ifabsent": "string(ohms)"}},
)
value: float = Field(...)
@ -684,8 +733,8 @@ class VoltageClampStimulusSeries(PatchClampSeries):
name: str = Field(...)
data: VoltageClampStimulusSeriesData = Field(..., description="""Stimulus voltage applied.""")
stimulus_description: Optional[str] = Field(
None, description="""Protocol/stimulus name for this patch-clamp dataset."""
stimulus_description: str = Field(
..., description="""Protocol/stimulus name for this patch-clamp dataset."""
)
sweep_number: Optional[int] = Field(
None, description="""Sweep number, allows to group different PatchClampSeries together."""
@ -703,10 +752,15 @@ class VoltageClampStimulusSeries(PatchClampSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -746,9 +800,10 @@ class VoltageClampStimulusSeriesData(ConfiguredBaseModel):
"data",
json_schema_extra={"linkml_meta": {"equals_string": "data", "ifabsent": "string(data)"}},
)
unit: Optional[str] = Field(
None,
unit: Literal["volts"] = Field(
"volts",
description="""Base unit of measurement for working with the data. which is fixed to 'volts'. Actual stored values are not necessarily stored in these units. To access the data in these units, multiply 'data' by 'conversion'.""",
json_schema_extra={"linkml_meta": {"equals_string": "volts", "ifabsent": "string(volts)"}},
)
value: Any = Field(...)
@ -824,13 +879,11 @@ class SweepTable(DynamicTable):
}
},
)
colnames: Optional[str] = Field(
None,
colnames: List[str] = Field(
...,
description="""The names of the columns in this table. This should be used to specify an order to the columns.""",
)
description: Optional[str] = Field(
None, description="""Description of what is in this dynamic table."""
)
description: str = Field(..., description="""Description of what is in this dynamic table.""")
id: NDArray[Shape["* num_rows"], int] = Field(
...,
description="""Array of unique identifiers for the rows of this dynamic table.""",

View file

@ -159,10 +159,15 @@ class ImageSeries(TimeSeries):
None,
description="""Format of image. If this is 'external', then the attribute 'external_file' contains the path information to the image files. If this is 'raw', then the raw (single-channel) binary data is stored in the 'data' dataset. If this attribute is not present, then the default format='raw' case is assumed.""",
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -204,8 +209,8 @@ class ImageSeriesExternalFile(ConfiguredBaseModel):
"linkml_meta": {"equals_string": "external_file", "ifabsent": "string(external_file)"}
},
)
starting_frame: Optional[int] = Field(
None,
starting_frame: List[int] = Field(
...,
description="""Each external image may contain one or more consecutive frames of the full ImageSeries. This attribute serves as an index to indicate which frames each file contains, to faciliate random access. The 'starting_frame' attribute, hence, contains a list of frame numbers within the full ImageSeries of the first frame of each file listed in the parent 'external_file' dataset. Zero-based indexing is used (hence, the first element will always be zero). For example, if the 'external_file' dataset has three paths to files and the first file has 5 frames, the second file has 10 frames, and the third file has 20 frames, then this attribute will have values [0, 5, 15]. If there is a single external file that holds all of the frames of the ImageSeries (and so there is a single element in the 'external_file' dataset), then this attribute should have value [0].""",
)
value: Optional[NDArray[Shape["* num_files"], str]] = Field(
@ -251,10 +256,15 @@ class ImageMaskSeries(ImageSeries):
None,
description="""Format of image. If this is 'external', then the attribute 'external_file' contains the path information to the image files. If this is 'raw', then the raw (single-channel) binary data is stored in the 'data' dataset. If this attribute is not present, then the default format='raw' case is assumed.""",
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -322,10 +332,15 @@ class OpticalSeries(ImageSeries):
None,
description="""Format of image. If this is 'external', then the attribute 'external_file' contains the path information to the image files. If this is 'raw', then the raw (single-channel) binary data is stored in the 'data' dataset. If this attribute is not present, then the default format='raw' case is assumed.""",
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -378,10 +393,15 @@ class IndexSeries(TimeSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,

View file

@ -120,10 +120,15 @@ class AbstractFeatureSeries(TimeSeries):
description="""Description of the features represented in TimeSeries::data.""",
json_schema_extra={"linkml_meta": {"array": {"dimensions": [{"alias": "num_features"}]}}},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -164,8 +169,9 @@ class AbstractFeatureSeriesData(ConfiguredBaseModel):
json_schema_extra={"linkml_meta": {"equals_string": "data", "ifabsent": "string(data)"}},
)
unit: Optional[str] = Field(
None,
"see 'feature_units'",
description="""Since there can be different units for different features, store the units in 'feature_units'. The default value for this attribute is \"see 'feature_units'\".""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(see 'feature_units')"}},
)
value: Optional[
Union[
@ -190,10 +196,15 @@ class AnnotationSeries(TimeSeries):
description="""Annotations made during an experiment.""",
json_schema_extra={"linkml_meta": {"array": {"dimensions": [{"alias": "num_times"}]}}},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -237,10 +248,15 @@ class IntervalSeries(TimeSeries):
description="""Use values >0 if interval started, <0 if interval ended.""",
json_schema_extra={"linkml_meta": {"array": {"dimensions": [{"alias": "num_times"}]}}},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -296,10 +312,15 @@ class DecompositionSeries(TimeSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -339,9 +360,10 @@ class DecompositionSeriesData(ConfiguredBaseModel):
"data",
json_schema_extra={"linkml_meta": {"equals_string": "data", "ifabsent": "string(data)"}},
)
unit: Optional[str] = Field(
None,
unit: str = Field(
"no unit",
description="""Base unit of measurement for working with the data. Actual stored values are not necessarily stored in these units. To access the data in these units, multiply 'data' by 'conversion'.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no unit)"}},
)
value: Optional[NDArray[Shape["* num_times, * num_channels, * num_bands"], float]] = Field(
None,
@ -403,13 +425,11 @@ class DecompositionSeriesBands(DynamicTable):
description="""The standard deviation of Gaussian filters, in Hz.""",
json_schema_extra={"linkml_meta": {"array": {"dimensions": [{"alias": "num_bands"}]}}},
)
colnames: Optional[str] = Field(
None,
colnames: List[str] = Field(
...,
description="""The names of the columns in this table. This should be used to specify an order to the columns.""",
)
description: Optional[str] = Field(
None, description="""Description of what is in this dynamic table."""
)
description: str = Field(..., description="""Description of what is in this dynamic table.""")
id: NDArray[Shape["* num_rows"], int] = Field(
...,
description="""Array of unique identifiers for the rows of this dynamic table.""",
@ -513,13 +533,11 @@ class Units(DynamicTable):
NDArray[Shape["* num_units, * num_samples, * num_electrodes"], float],
]
] = Field(None, description="""Spike waveform standard deviation for each spike unit.""")
colnames: Optional[str] = Field(
None,
colnames: List[str] = Field(
...,
description="""The names of the columns in this table. This should be used to specify an order to the columns.""",
)
description: Optional[str] = Field(
None, description="""Description of what is in this dynamic table."""
)
description: str = Field(..., description="""Description of what is in this dynamic table.""")
id: NDArray[Shape["* num_rows"], int] = Field(
...,
description="""Array of unique identifiers for the rows of this dynamic table.""",
@ -550,9 +568,7 @@ class UnitsSpikeTimes(VectorData):
None,
description="""The smallest possible difference between two spike times. Usually 1 divided by the acquisition sampling rate from which spike times were extracted, but could be larger if the acquisition time series was downsampled or smaller if the acquisition time series was smoothed/interpolated and it is possible for the spike time to be between samples.""",
)
description: Optional[str] = Field(
None, description="""Description of what these vectors represent."""
)
description: str = Field(..., description="""Description of what these vectors represent.""")
value: Optional[
Union[
NDArray[Shape["* dim0"], Any],

View file

@ -91,10 +91,15 @@ class OptogeneticSeries(TimeSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,

View file

@ -151,10 +151,15 @@ class TwoPhotonSeries(ImageSeries):
None,
description="""Format of image. If this is 'external', then the attribute 'external_file' contains the path information to the image files. If this is 'raw', then the raw (single-channel) binary data is stored in the 'data' dataset. If this attribute is not present, then the default format='raw' case is assumed.""",
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -208,10 +213,15 @@ class RoiResponseSeries(TimeSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -345,13 +355,11 @@ class PlaneSegmentation(DynamicTable):
}
},
)
colnames: Optional[str] = Field(
None,
colnames: List[str] = Field(
...,
description="""The names of the columns in this table. This should be used to specify an order to the columns.""",
)
description: Optional[str] = Field(
None, description="""Description of what is in this dynamic table."""
)
description: str = Field(..., description="""Description of what is in this dynamic table.""")
id: NDArray[Shape["* num_rows"], int] = Field(
...,
description="""Array of unique identifiers for the rows of this dynamic table.""",
@ -378,9 +386,7 @@ class PlaneSegmentationImageMask(VectorData):
"linkml_meta": {"equals_string": "image_mask", "ifabsent": "string(image_mask)"}
},
)
description: Optional[str] = Field(
None, description="""Description of what these vectors represent."""
)
description: str = Field(..., description="""Description of what these vectors represent.""")
value: Optional[
Union[
NDArray[Shape["* dim0"], Any],
@ -407,9 +413,7 @@ class PlaneSegmentationPixelMask(VectorData):
x: Optional[int] = Field(None, description="""Pixel x-coordinate.""")
y: Optional[int] = Field(None, description="""Pixel y-coordinate.""")
weight: Optional[float] = Field(None, description="""Weight of the pixel.""")
description: Optional[str] = Field(
None, description="""Description of what these vectors represent."""
)
description: str = Field(..., description="""Description of what these vectors represent.""")
value: Optional[
Union[
NDArray[Shape["* dim0"], Any],
@ -437,9 +441,7 @@ class PlaneSegmentationVoxelMask(VectorData):
y: Optional[int] = Field(None, description="""Voxel y-coordinate.""")
z: Optional[int] = Field(None, description="""Voxel z-coordinate.""")
weight: Optional[float] = Field(None, description="""Weight of the voxel.""")
description: Optional[str] = Field(
None, description="""Description of what these vectors represent."""
)
description: str = Field(..., description="""Description of what these vectors represent.""")
value: Optional[
Union[
NDArray[Shape["* dim0"], Any],
@ -515,12 +517,14 @@ class ImagingPlaneManifold(ConfiguredBaseModel):
},
)
conversion: Optional[float] = Field(
None,
1.0,
description="""Scalar to multiply each element in data to convert it to the specified 'unit'. If the data are stored in acquisition system units or other units that require a conversion to be interpretable, multiply the data by 'conversion' to convert the data to the specified 'unit'. e.g. if the data acquisition system stores values in this object as pixels from x = -500 to 499, y = -500 to 499 that correspond to a 2 m x 2 m range, then the 'conversion' multiplier to get from raw data acquisition pixel units to meters is 2/1000.""",
json_schema_extra={"linkml_meta": {"ifabsent": "float(1.0)"}},
)
unit: Optional[str] = Field(
None,
"meters",
description="""Base unit of measurement for working with the data. The default value is 'meters'.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(meters)"}},
)
value: Optional[
Union[
@ -543,8 +547,10 @@ class ImagingPlaneOriginCoords(ConfiguredBaseModel):
"linkml_meta": {"equals_string": "origin_coords", "ifabsent": "string(origin_coords)"}
},
)
unit: Optional[str] = Field(
None, description="""Measurement units for origin_coords. The default value is 'meters'."""
unit: str = Field(
"meters",
description="""Measurement units for origin_coords. The default value is 'meters'.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(meters)"}},
)
value: Optional[NDArray[Shape["2 x_y, 3 x_y_z"], float]] = Field(
None,
@ -574,8 +580,10 @@ class ImagingPlaneGridSpacing(ConfiguredBaseModel):
"linkml_meta": {"equals_string": "grid_spacing", "ifabsent": "string(grid_spacing)"}
},
)
unit: Optional[str] = Field(
None, description="""Measurement units for grid_spacing. The default value is 'meters'."""
unit: str = Field(
"meters",
description="""Measurement units for grid_spacing. The default value is 'meters'.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(meters)"}},
)
value: Optional[NDArray[Shape["2 x_y, 3 x_y_z"], float]] = Field(
None,

View file

@ -127,14 +127,12 @@ class ImagingRetinotopyAxis1PhaseMap(ConfiguredBaseModel):
}
},
)
dimension: Optional[int] = Field(
None,
dimension: List[int] = Field(
...,
description="""Number of rows and columns in the image. NOTE: row, column representation is equivalent to height, width.""",
)
field_of_view: Optional[float] = Field(None, description="""Size of viewing area, in meters.""")
unit: Optional[str] = Field(
None, description="""Unit that axis data is stored in (e.g., degrees)."""
)
field_of_view: List[float] = Field(..., description="""Size of viewing area, in meters.""")
unit: str = Field(..., description="""Unit that axis data is stored in (e.g., degrees).""")
value: Optional[NDArray[Shape["* num_rows, * num_cols"], float]] = Field(
None,
json_schema_extra={
@ -159,14 +157,12 @@ class ImagingRetinotopyAxis1PowerMap(ConfiguredBaseModel):
}
},
)
dimension: Optional[int] = Field(
None,
dimension: List[int] = Field(
...,
description="""Number of rows and columns in the image. NOTE: row, column representation is equivalent to height, width.""",
)
field_of_view: Optional[float] = Field(None, description="""Size of viewing area, in meters.""")
unit: Optional[str] = Field(
None, description="""Unit that axis data is stored in (e.g., degrees)."""
)
field_of_view: List[float] = Field(..., description="""Size of viewing area, in meters.""")
unit: str = Field(..., description="""Unit that axis data is stored in (e.g., degrees).""")
value: Optional[NDArray[Shape["* num_rows, * num_cols"], float]] = Field(
None,
json_schema_extra={
@ -191,14 +187,12 @@ class ImagingRetinotopyAxis2PhaseMap(ConfiguredBaseModel):
}
},
)
dimension: Optional[int] = Field(
None,
dimension: List[int] = Field(
...,
description="""Number of rows and columns in the image. NOTE: row, column representation is equivalent to height, width.""",
)
field_of_view: Optional[float] = Field(None, description="""Size of viewing area, in meters.""")
unit: Optional[str] = Field(
None, description="""Unit that axis data is stored in (e.g., degrees)."""
)
field_of_view: List[float] = Field(..., description="""Size of viewing area, in meters.""")
unit: str = Field(..., description="""Unit that axis data is stored in (e.g., degrees).""")
value: Optional[NDArray[Shape["* num_rows, * num_cols"], float]] = Field(
None,
json_schema_extra={
@ -223,14 +217,12 @@ class ImagingRetinotopyAxis2PowerMap(ConfiguredBaseModel):
}
},
)
dimension: Optional[int] = Field(
None,
dimension: List[int] = Field(
...,
description="""Number of rows and columns in the image. NOTE: row, column representation is equivalent to height, width.""",
)
field_of_view: Optional[float] = Field(None, description="""Size of viewing area, in meters.""")
unit: Optional[str] = Field(
None, description="""Unit that axis data is stored in (e.g., degrees)."""
)
field_of_view: List[float] = Field(..., description="""Size of viewing area, in meters.""")
unit: str = Field(..., description="""Unit that axis data is stored in (e.g., degrees).""")
value: Optional[NDArray[Shape["* num_rows, * num_cols"], float]] = Field(
None,
json_schema_extra={
@ -255,19 +247,17 @@ class ImagingRetinotopyFocalDepthImage(ConfiguredBaseModel):
}
},
)
bits_per_pixel: Optional[int] = Field(
None,
bits_per_pixel: int = Field(
...,
description="""Number of bits used to represent each value. This is necessary to determine maximum (white) pixel value.""",
)
dimension: Optional[int] = Field(
None,
dimension: List[int] = Field(
...,
description="""Number of rows and columns in the image. NOTE: row, column representation is equivalent to height, width.""",
)
field_of_view: Optional[float] = Field(None, description="""Size of viewing area, in meters.""")
focal_depth: Optional[float] = Field(None, description="""Focal depth offset, in meters.""")
format: Optional[str] = Field(
None, description="""Format of image. Right now only 'raw' is supported."""
)
field_of_view: List[float] = Field(..., description="""Size of viewing area, in meters.""")
focal_depth: float = Field(..., description="""Focal depth offset, in meters.""")
format: str = Field(..., description="""Format of image. Right now only 'raw' is supported.""")
value: Optional[NDArray[Shape["* num_rows, * num_cols"], int]] = Field(
None,
json_schema_extra={
@ -289,11 +279,11 @@ class ImagingRetinotopySignMap(ConfiguredBaseModel):
"linkml_meta": {"equals_string": "sign_map", "ifabsent": "string(sign_map)"}
},
)
dimension: Optional[int] = Field(
None,
dimension: List[int] = Field(
...,
description="""Number of rows and columns in the image. NOTE: row, column representation is equivalent to height, width.""",
)
field_of_view: Optional[float] = Field(None, description="""Size of viewing area, in meters.""")
field_of_view: List[float] = Field(..., description="""Size of viewing area, in meters.""")
value: Optional[NDArray[Shape["* num_rows, * num_cols"], float]] = Field(
None,
json_schema_extra={
@ -318,18 +308,16 @@ class ImagingRetinotopyVasculatureImage(ConfiguredBaseModel):
}
},
)
bits_per_pixel: Optional[int] = Field(
None,
bits_per_pixel: int = Field(
...,
description="""Number of bits used to represent each value. This is necessary to determine maximum (white) pixel value""",
)
dimension: Optional[int] = Field(
None,
dimension: List[int] = Field(
...,
description="""Number of rows and columns in the image. NOTE: row, column representation is equivalent to height, width.""",
)
field_of_view: Optional[float] = Field(None, description="""Size of viewing area, in meters.""")
format: Optional[str] = Field(
None, description="""Format of image. Right now only 'raw' is supported."""
)
field_of_view: List[float] = Field(..., description="""Size of viewing area, in meters.""")
format: str = Field(..., description="""Format of image. Right now only 'raw' is supported.""")
value: Optional[NDArray[Shape["* num_rows, * num_cols"], int]] = Field(
None,
json_schema_extra={

View file

@ -130,10 +130,15 @@ class TimeSeries(NWBDataInterface):
)
name: str = Field(...)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
data: TimeSeriesData = Field(
...,
@ -178,15 +183,17 @@ class TimeSeriesData(ConfiguredBaseModel):
json_schema_extra={"linkml_meta": {"equals_string": "data", "ifabsent": "string(data)"}},
)
conversion: Optional[float] = Field(
None,
1.0,
description="""Scalar to multiply each element in data to convert it to the specified 'unit'. If the data are stored in acquisition system units or other units that require a conversion to be interpretable, multiply the data by 'conversion' to convert the data to the specified 'unit'. e.g. if the data acquisition system stores values in this object as signed 16-bit integers (int16 range -32,768 to 32,767) that correspond to a 5V range (-2.5V to 2.5V), and the data acquisition system gain is 8000X, then the 'conversion' multiplier to get from raw data acquisition values to recorded volts is 2.5/32768/8000 = 9.5367e-9.""",
json_schema_extra={"linkml_meta": {"ifabsent": "float(1.0)"}},
)
resolution: Optional[float] = Field(
None,
-1.0,
description="""Smallest meaningful difference between values in data, stored in the specified by unit, e.g., the change in value of the least significant bit, or a larger number if signal noise is known to be present. If unknown, use -1.0.""",
json_schema_extra={"linkml_meta": {"ifabsent": "float(-1.0)"}},
)
unit: Optional[str] = Field(
None,
unit: str = Field(
...,
description="""Base unit of measurement for working with the data. Actual stored values are not necessarily stored in these units. To access the data in these units, multiply 'data' by 'conversion'.""",
)
value: Optional[
@ -212,9 +219,13 @@ class TimeSeriesStartingTime(ConfiguredBaseModel):
"linkml_meta": {"equals_string": "starting_time", "ifabsent": "string(starting_time)"}
},
)
rate: Optional[float] = Field(None, description="""Sampling rate, in Hz.""")
unit: Optional[str] = Field(
None, description="""Unit of measurement for time, which is fixed to 'seconds'."""
rate: float = Field(..., description="""Sampling rate, in Hz.""")
unit: Literal["seconds"] = Field(
"seconds",
description="""Unit of measurement for time, which is fixed to 'seconds'.""",
json_schema_extra={
"linkml_meta": {"equals_string": "seconds", "ifabsent": "string(seconds)"}
},
)
value: float = Field(...)
@ -260,9 +271,7 @@ class Images(NWBDataInterface):
)
name: str = Field("Images", json_schema_extra={"linkml_meta": {"ifabsent": "string(Images)"}})
description: Optional[str] = Field(
None, description="""Description of this collection of images."""
)
description: str = Field(..., description="""Description of this collection of images.""")
image: List[Image] = Field(..., description="""Images stored in this collection.""")

View file

@ -84,10 +84,15 @@ class SpatialSeries(TimeSeries):
reference_frame: Optional[str] = Field(
None, description="""Description defining what exactly 'straight-ahead' means."""
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -128,8 +133,9 @@ class SpatialSeriesData(ConfiguredBaseModel):
json_schema_extra={"linkml_meta": {"equals_string": "data", "ifabsent": "string(data)"}},
)
unit: Optional[str] = Field(
None,
"meters",
description="""Base unit of measurement for working with the data. The default value is 'meters'. Actual stored values are not necessarily stored in these units. To access the data in these units, multiply 'data' by 'conversion'.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(meters)"}},
)
value: Optional[
Union[

View file

@ -130,10 +130,15 @@ class ElectricalSeries(TimeSeries):
description="""Channel-specific conversion factor. Multiply the data in the 'data' dataset by these values along the channel axis (as indicated by axis attribute) AND by the global conversion factor in the 'conversion' attribute of 'data' to get the data values in Volts, i.e, data in Volts = data * data.conversion * channel_conversion. This approach allows for both global and per-channel data conversion factors needed to support the storage of electrical recordings as native values generated by data acquisition systems. If this dataset is not present, then there is no channel-specific conversion factor, i.e. it is 1 for all channels.""",
json_schema_extra={"linkml_meta": {"array": {"dimensions": [{"alias": "num_channels"}]}}},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -198,10 +203,15 @@ class SpikeEventSeries(ElectricalSeries):
description="""Channel-specific conversion factor. Multiply the data in the 'data' dataset by these values along the channel axis (as indicated by axis attribute) AND by the global conversion factor in the 'conversion' attribute of 'data' to get the data values in Volts, i.e, data in Volts = data * data.conversion * channel_conversion. This approach allows for both global and per-channel data conversion factors needed to support the storage of electrical recordings as native values generated by data acquisition systems. If this dataset is not present, then there is no channel-specific conversion factor, i.e. it is 1 for all channels.""",
json_schema_extra={"linkml_meta": {"array": {"dimensions": [{"alias": "num_channels"}]}}},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -369,9 +379,9 @@ class ElectrodeGroup(NWBContainer):
)
name: str = Field(...)
description: Optional[str] = Field(None, description="""Description of this electrode group.""")
location: Optional[str] = Field(
None,
description: str = Field(..., description="""Description of this electrode group.""")
location: str = Field(
...,
description="""Location of electrode group. Specify the area, layer, comments on estimation of area/layer, etc. Use standard atlas names for anatomical regions when possible.""",
)
position: Optional[ElectrodeGroupPosition] = Field(

View file

@ -150,13 +150,11 @@ class TimeIntervals(DynamicTable):
}
},
)
colnames: Optional[str] = Field(
None,
colnames: List[str] = Field(
...,
description="""The names of the columns in this table. This should be used to specify an order to the columns.""",
)
description: Optional[str] = Field(
None, description="""Description of what is in this dynamic table."""
)
description: str = Field(..., description="""Description of what is in this dynamic table.""")
id: NDArray[Shape["* num_rows"], int] = Field(
...,
description="""Array of unique identifiers for the rows of this dynamic table.""",
@ -194,9 +192,7 @@ class TimeIntervalsTimeseries(VectorData):
timeseries: Optional[TimeSeries] = Field(
None, description="""the TimeSeries that this index applies to."""
)
description: Optional[str] = Field(
None, description="""Description of what these vectors represent."""
)
description: str = Field(..., description="""Description of what these vectors represent.""")
value: Optional[
Union[
NDArray[Shape["* dim0"], Any],

View file

@ -96,9 +96,7 @@ class ScratchData(NWBData):
)
name: str = Field(...)
notes: Optional[str] = Field(
None, description="""Any notes the user has about the dataset being stored"""
)
notes: str = Field(..., description="""Any notes the user has about the dataset being stored""")
class NWBFile(NWBContainer):
@ -114,9 +112,10 @@ class NWBFile(NWBContainer):
"root",
json_schema_extra={"linkml_meta": {"equals_string": "root", "ifabsent": "string(root)"}},
)
nwb_version: Optional[str] = Field(
None,
nwb_version: Literal["2.2.5"] = Field(
"2.2.5",
description="""File version string. Use semantic versioning, e.g. 1.2.1. This will be the name of the format with trailing major, minor and patch numbers.""",
json_schema_extra={"linkml_meta": {"equals_string": "2.2.5", "ifabsent": "string(2.2.5)"}},
)
file_create_date: NDArray[Shape["* num_modifications"], datetime] = Field(
...,
@ -321,7 +320,7 @@ class GeneralSourceScript(ConfiguredBaseModel):
"linkml_meta": {"equals_string": "source_script", "ifabsent": "string(source_script)"}
},
)
file_name: Optional[str] = Field(None, description="""Name of script file.""")
file_name: str = Field(..., description="""Name of script file.""")
value: str = Field(...)
@ -464,13 +463,11 @@ class ExtracellularEphysElectrodes(DynamicTable):
}
},
)
colnames: Optional[str] = Field(
None,
colnames: List[str] = Field(
...,
description="""The names of the columns in this table. This should be used to specify an order to the columns.""",
)
description: Optional[str] = Field(
None, description="""Description of what is in this dynamic table."""
)
description: str = Field(..., description="""Description of what is in this dynamic table.""")
id: NDArray[Shape["* num_rows"], int] = Field(
...,
description="""Array of unique identifiers for the rows of this dynamic table.""",

View file

@ -107,8 +107,8 @@ class PatchClampSeries(TimeSeries):
)
name: str = Field(...)
stimulus_description: Optional[str] = Field(
None, description="""Protocol/stimulus name for this patch-clamp dataset."""
stimulus_description: str = Field(
..., description="""Protocol/stimulus name for this patch-clamp dataset."""
)
sweep_number: Optional[int] = Field(
None, description="""Sweep number, allows to group different PatchClampSeries together."""
@ -127,10 +127,15 @@ class PatchClampSeries(TimeSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -170,8 +175,8 @@ class PatchClampSeriesData(ConfiguredBaseModel):
"data",
json_schema_extra={"linkml_meta": {"equals_string": "data", "ifabsent": "string(data)"}},
)
unit: Optional[str] = Field(
None,
unit: str = Field(
...,
description="""Base unit of measurement for working with the data. Actual stored values are not necessarily stored in these units. To access the data in these units, multiply 'data' by 'conversion'.""",
)
value: Optional[NDArray[Shape["* num_times"], float]] = Field(
@ -195,8 +200,8 @@ class CurrentClampSeries(PatchClampSeries):
capacitance_compensation: Optional[float] = Field(
None, description="""Capacitance compensation, in farads."""
)
stimulus_description: Optional[str] = Field(
None, description="""Protocol/stimulus name for this patch-clamp dataset."""
stimulus_description: str = Field(
..., description="""Protocol/stimulus name for this patch-clamp dataset."""
)
sweep_number: Optional[int] = Field(
None, description="""Sweep number, allows to group different PatchClampSeries together."""
@ -214,10 +219,15 @@ class CurrentClampSeries(PatchClampSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -257,9 +267,10 @@ class CurrentClampSeriesData(ConfiguredBaseModel):
"data",
json_schema_extra={"linkml_meta": {"equals_string": "data", "ifabsent": "string(data)"}},
)
unit: Optional[str] = Field(
None,
unit: Literal["volts"] = Field(
"volts",
description="""Base unit of measurement for working with the data. which is fixed to 'volts'. Actual stored values are not necessarily stored in these units. To access the data in these units, multiply 'data' by 'conversion'.""",
json_schema_extra={"linkml_meta": {"equals_string": "volts", "ifabsent": "string(volts)"}},
)
value: Any = Field(...)
@ -280,8 +291,8 @@ class IZeroClampSeries(CurrentClampSeries):
..., description="""Capacitance compensation, in farads, fixed to 0.0."""
)
data: CurrentClampSeriesData = Field(..., description="""Recorded voltage.""")
stimulus_description: Optional[str] = Field(
None, description="""Protocol/stimulus name for this patch-clamp dataset."""
stimulus_description: str = Field(
..., description="""Protocol/stimulus name for this patch-clamp dataset."""
)
sweep_number: Optional[int] = Field(
None, description="""Sweep number, allows to group different PatchClampSeries together."""
@ -299,10 +310,15 @@ class IZeroClampSeries(CurrentClampSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -342,8 +358,8 @@ class CurrentClampStimulusSeries(PatchClampSeries):
name: str = Field(...)
data: CurrentClampStimulusSeriesData = Field(..., description="""Stimulus current applied.""")
stimulus_description: Optional[str] = Field(
None, description="""Protocol/stimulus name for this patch-clamp dataset."""
stimulus_description: str = Field(
..., description="""Protocol/stimulus name for this patch-clamp dataset."""
)
sweep_number: Optional[int] = Field(
None, description="""Sweep number, allows to group different PatchClampSeries together."""
@ -361,10 +377,15 @@ class CurrentClampStimulusSeries(PatchClampSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -404,9 +425,12 @@ class CurrentClampStimulusSeriesData(ConfiguredBaseModel):
"data",
json_schema_extra={"linkml_meta": {"equals_string": "data", "ifabsent": "string(data)"}},
)
unit: Optional[str] = Field(
None,
unit: Literal["amperes"] = Field(
"amperes",
description="""Base unit of measurement for working with the data. which is fixed to 'amperes'. Actual stored values are not necessarily stored in these units. To access the data in these units, multiply 'data' by 'conversion'.""",
json_schema_extra={
"linkml_meta": {"equals_string": "amperes", "ifabsent": "string(amperes)"}
},
)
value: Any = Field(...)
@ -443,8 +467,8 @@ class VoltageClampSeries(PatchClampSeries):
whole_cell_series_resistance_comp: Optional[VoltageClampSeriesWholeCellSeriesResistanceComp] = (
Field(None, description="""Whole cell series resistance compensation, in ohms.""")
)
stimulus_description: Optional[str] = Field(
None, description="""Protocol/stimulus name for this patch-clamp dataset."""
stimulus_description: str = Field(
..., description="""Protocol/stimulus name for this patch-clamp dataset."""
)
sweep_number: Optional[int] = Field(
None, description="""Sweep number, allows to group different PatchClampSeries together."""
@ -462,10 +486,15 @@ class VoltageClampSeries(PatchClampSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -505,9 +534,12 @@ class VoltageClampSeriesData(ConfiguredBaseModel):
"data",
json_schema_extra={"linkml_meta": {"equals_string": "data", "ifabsent": "string(data)"}},
)
unit: Optional[str] = Field(
None,
unit: Literal["amperes"] = Field(
"amperes",
description="""Base unit of measurement for working with the data. which is fixed to 'amperes'. Actual stored values are not necessarily stored in these units. To access the data in these units, multiply 'data' by 'conversion'.""",
json_schema_extra={
"linkml_meta": {"equals_string": "amperes", "ifabsent": "string(amperes)"}
},
)
value: Any = Field(...)
@ -528,9 +560,12 @@ class VoltageClampSeriesCapacitanceFast(ConfiguredBaseModel):
}
},
)
unit: Optional[str] = Field(
None,
unit: Literal["farads"] = Field(
"farads",
description="""Unit of measurement for capacitance_fast, which is fixed to 'farads'.""",
json_schema_extra={
"linkml_meta": {"equals_string": "farads", "ifabsent": "string(farads)"}
},
)
value: float = Field(...)
@ -551,9 +586,12 @@ class VoltageClampSeriesCapacitanceSlow(ConfiguredBaseModel):
}
},
)
unit: Optional[str] = Field(
None,
unit: Literal["farads"] = Field(
"farads",
description="""Unit of measurement for capacitance_fast, which is fixed to 'farads'.""",
json_schema_extra={
"linkml_meta": {"equals_string": "farads", "ifabsent": "string(farads)"}
},
)
value: float = Field(...)
@ -574,9 +612,10 @@ class VoltageClampSeriesResistanceCompBandwidth(ConfiguredBaseModel):
}
},
)
unit: Optional[str] = Field(
None,
unit: Literal["hertz"] = Field(
"hertz",
description="""Unit of measurement for resistance_comp_bandwidth, which is fixed to 'hertz'.""",
json_schema_extra={"linkml_meta": {"equals_string": "hertz", "ifabsent": "string(hertz)"}},
)
value: float = Field(...)
@ -597,9 +636,12 @@ class VoltageClampSeriesResistanceCompCorrection(ConfiguredBaseModel):
}
},
)
unit: Optional[str] = Field(
None,
unit: Literal["percent"] = Field(
"percent",
description="""Unit of measurement for resistance_comp_correction, which is fixed to 'percent'.""",
json_schema_extra={
"linkml_meta": {"equals_string": "percent", "ifabsent": "string(percent)"}
},
)
value: float = Field(...)
@ -620,9 +662,12 @@ class VoltageClampSeriesResistanceCompPrediction(ConfiguredBaseModel):
}
},
)
unit: Optional[str] = Field(
None,
unit: Literal["percent"] = Field(
"percent",
description="""Unit of measurement for resistance_comp_prediction, which is fixed to 'percent'.""",
json_schema_extra={
"linkml_meta": {"equals_string": "percent", "ifabsent": "string(percent)"}
},
)
value: float = Field(...)
@ -643,9 +688,12 @@ class VoltageClampSeriesWholeCellCapacitanceComp(ConfiguredBaseModel):
}
},
)
unit: Optional[str] = Field(
None,
unit: Literal["farads"] = Field(
"farads",
description="""Unit of measurement for whole_cell_capacitance_comp, which is fixed to 'farads'.""",
json_schema_extra={
"linkml_meta": {"equals_string": "farads", "ifabsent": "string(farads)"}
},
)
value: float = Field(...)
@ -666,9 +714,10 @@ class VoltageClampSeriesWholeCellSeriesResistanceComp(ConfiguredBaseModel):
}
},
)
unit: Optional[str] = Field(
None,
unit: Literal["ohms"] = Field(
"ohms",
description="""Unit of measurement for whole_cell_series_resistance_comp, which is fixed to 'ohms'.""",
json_schema_extra={"linkml_meta": {"equals_string": "ohms", "ifabsent": "string(ohms)"}},
)
value: float = Field(...)
@ -684,8 +733,8 @@ class VoltageClampStimulusSeries(PatchClampSeries):
name: str = Field(...)
data: VoltageClampStimulusSeriesData = Field(..., description="""Stimulus voltage applied.""")
stimulus_description: Optional[str] = Field(
None, description="""Protocol/stimulus name for this patch-clamp dataset."""
stimulus_description: str = Field(
..., description="""Protocol/stimulus name for this patch-clamp dataset."""
)
sweep_number: Optional[int] = Field(
None, description="""Sweep number, allows to group different PatchClampSeries together."""
@ -703,10 +752,15 @@ class VoltageClampStimulusSeries(PatchClampSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -746,9 +800,10 @@ class VoltageClampStimulusSeriesData(ConfiguredBaseModel):
"data",
json_schema_extra={"linkml_meta": {"equals_string": "data", "ifabsent": "string(data)"}},
)
unit: Optional[str] = Field(
None,
unit: Literal["volts"] = Field(
"volts",
description="""Base unit of measurement for working with the data. which is fixed to 'volts'. Actual stored values are not necessarily stored in these units. To access the data in these units, multiply 'data' by 'conversion'.""",
json_schema_extra={"linkml_meta": {"equals_string": "volts", "ifabsent": "string(volts)"}},
)
value: Any = Field(...)
@ -824,13 +879,11 @@ class SweepTable(DynamicTable):
}
},
)
colnames: Optional[str] = Field(
None,
colnames: List[str] = Field(
...,
description="""The names of the columns in this table. This should be used to specify an order to the columns.""",
)
description: Optional[str] = Field(
None, description="""Description of what is in this dynamic table."""
)
description: str = Field(..., description="""Description of what is in this dynamic table.""")
id: NDArray[Shape["* num_rows"], int] = Field(
...,
description="""Array of unique identifiers for the rows of this dynamic table.""",

View file

@ -159,10 +159,15 @@ class ImageSeries(TimeSeries):
None,
description="""Format of image. If this is 'external', then the attribute 'external_file' contains the path information to the image files. If this is 'raw', then the raw (single-channel) binary data is stored in the 'data' dataset. If this attribute is not present, then the default format='raw' case is assumed.""",
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -204,8 +209,8 @@ class ImageSeriesExternalFile(ConfiguredBaseModel):
"linkml_meta": {"equals_string": "external_file", "ifabsent": "string(external_file)"}
},
)
starting_frame: Optional[int] = Field(
None,
starting_frame: List[int] = Field(
...,
description="""Each external image may contain one or more consecutive frames of the full ImageSeries. This attribute serves as an index to indicate which frames each file contains, to faciliate random access. The 'starting_frame' attribute, hence, contains a list of frame numbers within the full ImageSeries of the first frame of each file listed in the parent 'external_file' dataset. Zero-based indexing is used (hence, the first element will always be zero). For example, if the 'external_file' dataset has three paths to files and the first file has 5 frames, the second file has 10 frames, and the third file has 20 frames, then this attribute will have values [0, 5, 15]. If there is a single external file that holds all of the frames of the ImageSeries (and so there is a single element in the 'external_file' dataset), then this attribute should have value [0].""",
)
value: Optional[NDArray[Shape["* num_files"], str]] = Field(
@ -251,10 +256,15 @@ class ImageMaskSeries(ImageSeries):
None,
description="""Format of image. If this is 'external', then the attribute 'external_file' contains the path information to the image files. If this is 'raw', then the raw (single-channel) binary data is stored in the 'data' dataset. If this attribute is not present, then the default format='raw' case is assumed.""",
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -322,10 +332,15 @@ class OpticalSeries(ImageSeries):
None,
description="""Format of image. If this is 'external', then the attribute 'external_file' contains the path information to the image files. If this is 'raw', then the raw (single-channel) binary data is stored in the 'data' dataset. If this attribute is not present, then the default format='raw' case is assumed.""",
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -378,10 +393,15 @@ class IndexSeries(TimeSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,

View file

@ -120,10 +120,15 @@ class AbstractFeatureSeries(TimeSeries):
description="""Description of the features represented in TimeSeries::data.""",
json_schema_extra={"linkml_meta": {"array": {"dimensions": [{"alias": "num_features"}]}}},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -164,8 +169,9 @@ class AbstractFeatureSeriesData(ConfiguredBaseModel):
json_schema_extra={"linkml_meta": {"equals_string": "data", "ifabsent": "string(data)"}},
)
unit: Optional[str] = Field(
None,
"see 'feature_units'",
description="""Since there can be different units for different features, store the units in 'feature_units'. The default value for this attribute is \"see 'feature_units'\".""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(see 'feature_units')"}},
)
value: Optional[
Union[
@ -190,10 +196,15 @@ class AnnotationSeries(TimeSeries):
description="""Annotations made during an experiment.""",
json_schema_extra={"linkml_meta": {"array": {"dimensions": [{"alias": "num_times"}]}}},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -237,10 +248,15 @@ class IntervalSeries(TimeSeries):
description="""Use values >0 if interval started, <0 if interval ended.""",
json_schema_extra={"linkml_meta": {"array": {"dimensions": [{"alias": "num_times"}]}}},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -296,10 +312,15 @@ class DecompositionSeries(TimeSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -339,9 +360,10 @@ class DecompositionSeriesData(ConfiguredBaseModel):
"data",
json_schema_extra={"linkml_meta": {"equals_string": "data", "ifabsent": "string(data)"}},
)
unit: Optional[str] = Field(
None,
unit: str = Field(
"no unit",
description="""Base unit of measurement for working with the data. Actual stored values are not necessarily stored in these units. To access the data in these units, multiply 'data' by 'conversion'.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no unit)"}},
)
value: Optional[NDArray[Shape["* num_times, * num_channels, * num_bands"], float]] = Field(
None,
@ -403,13 +425,11 @@ class DecompositionSeriesBands(DynamicTable):
description="""The standard deviation of Gaussian filters, in Hz.""",
json_schema_extra={"linkml_meta": {"array": {"dimensions": [{"alias": "num_bands"}]}}},
)
colnames: Optional[str] = Field(
None,
colnames: List[str] = Field(
...,
description="""The names of the columns in this table. This should be used to specify an order to the columns.""",
)
description: Optional[str] = Field(
None, description="""Description of what is in this dynamic table."""
)
description: str = Field(..., description="""Description of what is in this dynamic table.""")
id: NDArray[Shape["* num_rows"], int] = Field(
...,
description="""Array of unique identifiers for the rows of this dynamic table.""",
@ -513,13 +533,11 @@ class Units(DynamicTable):
NDArray[Shape["* num_units, * num_samples, * num_electrodes"], float],
]
] = Field(None, description="""Spike waveform standard deviation for each spike unit.""")
colnames: Optional[str] = Field(
None,
colnames: List[str] = Field(
...,
description="""The names of the columns in this table. This should be used to specify an order to the columns.""",
)
description: Optional[str] = Field(
None, description="""Description of what is in this dynamic table."""
)
description: str = Field(..., description="""Description of what is in this dynamic table.""")
id: NDArray[Shape["* num_rows"], int] = Field(
...,
description="""Array of unique identifiers for the rows of this dynamic table.""",
@ -550,9 +568,7 @@ class UnitsSpikeTimes(VectorData):
None,
description="""The smallest possible difference between two spike times. Usually 1 divided by the acquisition sampling rate from which spike times were extracted, but could be larger if the acquisition time series was downsampled or smaller if the acquisition time series was smoothed/interpolated and it is possible for the spike time to be between samples.""",
)
description: Optional[str] = Field(
None, description="""Description of what these vectors represent."""
)
description: str = Field(..., description="""Description of what these vectors represent.""")
value: Optional[
Union[
NDArray[Shape["* dim0"], Any],

View file

@ -91,10 +91,15 @@ class OptogeneticSeries(TimeSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,

View file

@ -153,10 +153,15 @@ class TwoPhotonSeries(ImageSeries):
None,
description="""Format of image. If this is 'external', then the attribute 'external_file' contains the path information to the image files. If this is 'raw', then the raw (single-channel) binary data is stored in the 'data' dataset. If this attribute is not present, then the default format='raw' case is assumed.""",
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -210,10 +215,15 @@ class RoiResponseSeries(TimeSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -347,13 +357,11 @@ class PlaneSegmentation(DynamicTable):
}
},
)
colnames: Optional[str] = Field(
None,
colnames: List[str] = Field(
...,
description="""The names of the columns in this table. This should be used to specify an order to the columns.""",
)
description: Optional[str] = Field(
None, description="""Description of what is in this dynamic table."""
)
description: str = Field(..., description="""Description of what is in this dynamic table.""")
id: NDArray[Shape["* num_rows"], int] = Field(
...,
description="""Array of unique identifiers for the rows of this dynamic table.""",
@ -380,9 +388,7 @@ class PlaneSegmentationImageMask(VectorData):
"linkml_meta": {"equals_string": "image_mask", "ifabsent": "string(image_mask)"}
},
)
description: Optional[str] = Field(
None, description="""Description of what these vectors represent."""
)
description: str = Field(..., description="""Description of what these vectors represent.""")
value: Optional[
Union[
NDArray[Shape["* dim0"], Any],
@ -409,9 +415,7 @@ class PlaneSegmentationPixelMask(VectorData):
x: Optional[int] = Field(None, description="""Pixel x-coordinate.""")
y: Optional[int] = Field(None, description="""Pixel y-coordinate.""")
weight: Optional[float] = Field(None, description="""Weight of the pixel.""")
description: Optional[str] = Field(
None, description="""Description of what these vectors represent."""
)
description: str = Field(..., description="""Description of what these vectors represent.""")
value: Optional[
Union[
NDArray[Shape["* dim0"], Any],
@ -439,9 +443,7 @@ class PlaneSegmentationVoxelMask(VectorData):
y: Optional[int] = Field(None, description="""Voxel y-coordinate.""")
z: Optional[int] = Field(None, description="""Voxel z-coordinate.""")
weight: Optional[float] = Field(None, description="""Weight of the voxel.""")
description: Optional[str] = Field(
None, description="""Description of what these vectors represent."""
)
description: str = Field(..., description="""Description of what these vectors represent.""")
value: Optional[
Union[
NDArray[Shape["* dim0"], Any],
@ -517,12 +519,14 @@ class ImagingPlaneManifold(ConfiguredBaseModel):
},
)
conversion: Optional[float] = Field(
None,
1.0,
description="""Scalar to multiply each element in data to convert it to the specified 'unit'. If the data are stored in acquisition system units or other units that require a conversion to be interpretable, multiply the data by 'conversion' to convert the data to the specified 'unit'. e.g. if the data acquisition system stores values in this object as pixels from x = -500 to 499, y = -500 to 499 that correspond to a 2 m x 2 m range, then the 'conversion' multiplier to get from raw data acquisition pixel units to meters is 2/1000.""",
json_schema_extra={"linkml_meta": {"ifabsent": "float(1.0)"}},
)
unit: Optional[str] = Field(
None,
"meters",
description="""Base unit of measurement for working with the data. The default value is 'meters'.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(meters)"}},
)
value: Optional[
Union[
@ -545,8 +549,10 @@ class ImagingPlaneOriginCoords(ConfiguredBaseModel):
"linkml_meta": {"equals_string": "origin_coords", "ifabsent": "string(origin_coords)"}
},
)
unit: Optional[str] = Field(
None, description="""Measurement units for origin_coords. The default value is 'meters'."""
unit: str = Field(
"meters",
description="""Measurement units for origin_coords. The default value is 'meters'.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(meters)"}},
)
value: Optional[Union[NDArray[Shape["2 x_y"], float], NDArray[Shape["3 x_y_z"], float]]] = (
Field(None)
@ -566,8 +572,10 @@ class ImagingPlaneGridSpacing(ConfiguredBaseModel):
"linkml_meta": {"equals_string": "grid_spacing", "ifabsent": "string(grid_spacing)"}
},
)
unit: Optional[str] = Field(
None, description="""Measurement units for grid_spacing. The default value is 'meters'."""
unit: str = Field(
"meters",
description="""Measurement units for grid_spacing. The default value is 'meters'.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(meters)"}},
)
value: Optional[Union[NDArray[Shape["2 x_y"], float], NDArray[Shape["3 x_y_z"], float]]] = (
Field(None)

View file

@ -127,14 +127,12 @@ class ImagingRetinotopyAxis1PhaseMap(ConfiguredBaseModel):
}
},
)
dimension: Optional[int] = Field(
None,
dimension: List[int] = Field(
...,
description="""Number of rows and columns in the image. NOTE: row, column representation is equivalent to height, width.""",
)
field_of_view: Optional[float] = Field(None, description="""Size of viewing area, in meters.""")
unit: Optional[str] = Field(
None, description="""Unit that axis data is stored in (e.g., degrees)."""
)
field_of_view: List[float] = Field(..., description="""Size of viewing area, in meters.""")
unit: str = Field(..., description="""Unit that axis data is stored in (e.g., degrees).""")
value: Optional[NDArray[Shape["* num_rows, * num_cols"], float]] = Field(
None,
json_schema_extra={
@ -159,14 +157,12 @@ class ImagingRetinotopyAxis1PowerMap(ConfiguredBaseModel):
}
},
)
dimension: Optional[int] = Field(
None,
dimension: List[int] = Field(
...,
description="""Number of rows and columns in the image. NOTE: row, column representation is equivalent to height, width.""",
)
field_of_view: Optional[float] = Field(None, description="""Size of viewing area, in meters.""")
unit: Optional[str] = Field(
None, description="""Unit that axis data is stored in (e.g., degrees)."""
)
field_of_view: List[float] = Field(..., description="""Size of viewing area, in meters.""")
unit: str = Field(..., description="""Unit that axis data is stored in (e.g., degrees).""")
value: Optional[NDArray[Shape["* num_rows, * num_cols"], float]] = Field(
None,
json_schema_extra={
@ -191,14 +187,12 @@ class ImagingRetinotopyAxis2PhaseMap(ConfiguredBaseModel):
}
},
)
dimension: Optional[int] = Field(
None,
dimension: List[int] = Field(
...,
description="""Number of rows and columns in the image. NOTE: row, column representation is equivalent to height, width.""",
)
field_of_view: Optional[float] = Field(None, description="""Size of viewing area, in meters.""")
unit: Optional[str] = Field(
None, description="""Unit that axis data is stored in (e.g., degrees)."""
)
field_of_view: List[float] = Field(..., description="""Size of viewing area, in meters.""")
unit: str = Field(..., description="""Unit that axis data is stored in (e.g., degrees).""")
value: Optional[NDArray[Shape["* num_rows, * num_cols"], float]] = Field(
None,
json_schema_extra={
@ -223,14 +217,12 @@ class ImagingRetinotopyAxis2PowerMap(ConfiguredBaseModel):
}
},
)
dimension: Optional[int] = Field(
None,
dimension: List[int] = Field(
...,
description="""Number of rows and columns in the image. NOTE: row, column representation is equivalent to height, width.""",
)
field_of_view: Optional[float] = Field(None, description="""Size of viewing area, in meters.""")
unit: Optional[str] = Field(
None, description="""Unit that axis data is stored in (e.g., degrees)."""
)
field_of_view: List[float] = Field(..., description="""Size of viewing area, in meters.""")
unit: str = Field(..., description="""Unit that axis data is stored in (e.g., degrees).""")
value: Optional[NDArray[Shape["* num_rows, * num_cols"], float]] = Field(
None,
json_schema_extra={
@ -255,19 +247,17 @@ class ImagingRetinotopyFocalDepthImage(ConfiguredBaseModel):
}
},
)
bits_per_pixel: Optional[int] = Field(
None,
bits_per_pixel: int = Field(
...,
description="""Number of bits used to represent each value. This is necessary to determine maximum (white) pixel value.""",
)
dimension: Optional[int] = Field(
None,
dimension: List[int] = Field(
...,
description="""Number of rows and columns in the image. NOTE: row, column representation is equivalent to height, width.""",
)
field_of_view: Optional[float] = Field(None, description="""Size of viewing area, in meters.""")
focal_depth: Optional[float] = Field(None, description="""Focal depth offset, in meters.""")
format: Optional[str] = Field(
None, description="""Format of image. Right now only 'raw' is supported."""
)
field_of_view: List[float] = Field(..., description="""Size of viewing area, in meters.""")
focal_depth: float = Field(..., description="""Focal depth offset, in meters.""")
format: str = Field(..., description="""Format of image. Right now only 'raw' is supported.""")
value: Optional[NDArray[Shape["* num_rows, * num_cols"], int]] = Field(
None,
json_schema_extra={
@ -289,11 +279,11 @@ class ImagingRetinotopySignMap(ConfiguredBaseModel):
"linkml_meta": {"equals_string": "sign_map", "ifabsent": "string(sign_map)"}
},
)
dimension: Optional[int] = Field(
None,
dimension: List[int] = Field(
...,
description="""Number of rows and columns in the image. NOTE: row, column representation is equivalent to height, width.""",
)
field_of_view: Optional[float] = Field(None, description="""Size of viewing area, in meters.""")
field_of_view: List[float] = Field(..., description="""Size of viewing area, in meters.""")
value: Optional[NDArray[Shape["* num_rows, * num_cols"], float]] = Field(
None,
json_schema_extra={
@ -318,18 +308,16 @@ class ImagingRetinotopyVasculatureImage(ConfiguredBaseModel):
}
},
)
bits_per_pixel: Optional[int] = Field(
None,
bits_per_pixel: int = Field(
...,
description="""Number of bits used to represent each value. This is necessary to determine maximum (white) pixel value""",
)
dimension: Optional[int] = Field(
None,
dimension: List[int] = Field(
...,
description="""Number of rows and columns in the image. NOTE: row, column representation is equivalent to height, width.""",
)
field_of_view: Optional[float] = Field(None, description="""Size of viewing area, in meters.""")
format: Optional[str] = Field(
None, description="""Format of image. Right now only 'raw' is supported."""
)
field_of_view: List[float] = Field(..., description="""Size of viewing area, in meters.""")
format: str = Field(..., description="""Format of image. Right now only 'raw' is supported.""")
value: Optional[NDArray[Shape["* num_rows, * num_cols"], int]] = Field(
None,
json_schema_extra={

View file

@ -135,10 +135,15 @@ class TimeSeries(NWBDataInterface):
)
name: str = Field(...)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
data: TimeSeriesData = Field(
...,
@ -183,15 +188,17 @@ class TimeSeriesData(ConfiguredBaseModel):
json_schema_extra={"linkml_meta": {"equals_string": "data", "ifabsent": "string(data)"}},
)
conversion: Optional[float] = Field(
None,
1.0,
description="""Scalar to multiply each element in data to convert it to the specified 'unit'. If the data are stored in acquisition system units or other units that require a conversion to be interpretable, multiply the data by 'conversion' to convert the data to the specified 'unit'. e.g. if the data acquisition system stores values in this object as signed 16-bit integers (int16 range -32,768 to 32,767) that correspond to a 5V range (-2.5V to 2.5V), and the data acquisition system gain is 8000X, then the 'conversion' multiplier to get from raw data acquisition values to recorded volts is 2.5/32768/8000 = 9.5367e-9.""",
json_schema_extra={"linkml_meta": {"ifabsent": "float(1.0)"}},
)
resolution: Optional[float] = Field(
None,
-1.0,
description="""Smallest meaningful difference between values in data, stored in the specified by unit, e.g., the change in value of the least significant bit, or a larger number if signal noise is known to be present. If unknown, use -1.0.""",
json_schema_extra={"linkml_meta": {"ifabsent": "float(-1.0)"}},
)
unit: Optional[str] = Field(
None,
unit: str = Field(
...,
description="""Base unit of measurement for working with the data. Actual stored values are not necessarily stored in these units. To access the data in these units, multiply 'data' by 'conversion'.""",
)
continuity: Optional[str] = Field(
@ -221,9 +228,13 @@ class TimeSeriesStartingTime(ConfiguredBaseModel):
"linkml_meta": {"equals_string": "starting_time", "ifabsent": "string(starting_time)"}
},
)
rate: Optional[float] = Field(None, description="""Sampling rate, in Hz.""")
unit: Optional[str] = Field(
None, description="""Unit of measurement for time, which is fixed to 'seconds'."""
rate: float = Field(..., description="""Sampling rate, in Hz.""")
unit: Literal["seconds"] = Field(
"seconds",
description="""Unit of measurement for time, which is fixed to 'seconds'.""",
json_schema_extra={
"linkml_meta": {"equals_string": "seconds", "ifabsent": "string(seconds)"}
},
)
value: float = Field(...)
@ -269,9 +280,7 @@ class Images(NWBDataInterface):
)
name: str = Field("Images", json_schema_extra={"linkml_meta": {"ifabsent": "string(Images)"}})
description: Optional[str] = Field(
None, description="""Description of this collection of images."""
)
description: str = Field(..., description="""Description of this collection of images.""")
image: List[Image] = Field(..., description="""Images stored in this collection.""")

View file

@ -84,10 +84,15 @@ class SpatialSeries(TimeSeries):
reference_frame: Optional[str] = Field(
None, description="""Description defining what exactly 'straight-ahead' means."""
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -128,8 +133,9 @@ class SpatialSeriesData(ConfiguredBaseModel):
json_schema_extra={"linkml_meta": {"equals_string": "data", "ifabsent": "string(data)"}},
)
unit: Optional[str] = Field(
None,
"meters",
description="""Base unit of measurement for working with the data. The default value is 'meters'. Actual stored values are not necessarily stored in these units. To access the data in these units, multiply 'data' by 'conversion'.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(meters)"}},
)
value: Optional[
Union[

View file

@ -134,10 +134,15 @@ class ElectricalSeries(TimeSeries):
description="""Channel-specific conversion factor. Multiply the data in the 'data' dataset by these values along the channel axis (as indicated by axis attribute) AND by the global conversion factor in the 'conversion' attribute of 'data' to get the data values in Volts, i.e, data in Volts = data * data.conversion * channel_conversion. This approach allows for both global and per-channel data conversion factors needed to support the storage of electrical recordings as native values generated by data acquisition systems. If this dataset is not present, then there is no channel-specific conversion factor, i.e. it is 1 for all channels.""",
json_schema_extra={"linkml_meta": {"array": {"dimensions": [{"alias": "num_channels"}]}}},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -206,10 +211,15 @@ class SpikeEventSeries(ElectricalSeries):
description="""Channel-specific conversion factor. Multiply the data in the 'data' dataset by these values along the channel axis (as indicated by axis attribute) AND by the global conversion factor in the 'conversion' attribute of 'data' to get the data values in Volts, i.e, data in Volts = data * data.conversion * channel_conversion. This approach allows for both global and per-channel data conversion factors needed to support the storage of electrical recordings as native values generated by data acquisition systems. If this dataset is not present, then there is no channel-specific conversion factor, i.e. it is 1 for all channels.""",
json_schema_extra={"linkml_meta": {"array": {"dimensions": [{"alias": "num_channels"}]}}},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -377,9 +387,9 @@ class ElectrodeGroup(NWBContainer):
)
name: str = Field(...)
description: Optional[str] = Field(None, description="""Description of this electrode group.""")
location: Optional[str] = Field(
None,
description: str = Field(..., description="""Description of this electrode group.""")
location: str = Field(
...,
description="""Location of electrode group. Specify the area, layer, comments on estimation of area/layer, etc. Use standard atlas names for anatomical regions when possible.""",
)
position: Optional[ElectrodeGroupPosition] = Field(

View file

@ -150,13 +150,11 @@ class TimeIntervals(DynamicTable):
}
},
)
colnames: Optional[str] = Field(
None,
colnames: List[str] = Field(
...,
description="""The names of the columns in this table. This should be used to specify an order to the columns.""",
)
description: Optional[str] = Field(
None, description="""Description of what is in this dynamic table."""
)
description: str = Field(..., description="""Description of what is in this dynamic table.""")
id: NDArray[Shape["* num_rows"], int] = Field(
...,
description="""Array of unique identifiers for the rows of this dynamic table.""",
@ -191,9 +189,7 @@ class TimeIntervalsTimeseries(VectorData):
timeseries: Optional[TimeSeries] = Field(
None, description="""the TimeSeries that this index applies to."""
)
description: Optional[str] = Field(
None, description="""Description of what these vectors represent."""
)
description: str = Field(..., description="""Description of what these vectors represent.""")
value: Optional[
Union[
NDArray[Shape["* dim0"], Any],

View file

@ -96,9 +96,7 @@ class ScratchData(NWBData):
)
name: str = Field(...)
notes: Optional[str] = Field(
None, description="""Any notes the user has about the dataset being stored"""
)
notes: str = Field(..., description="""Any notes the user has about the dataset being stored""")
class NWBFile(NWBContainer):
@ -114,9 +112,10 @@ class NWBFile(NWBContainer):
"root",
json_schema_extra={"linkml_meta": {"equals_string": "root", "ifabsent": "string(root)"}},
)
nwb_version: Optional[str] = Field(
None,
nwb_version: Literal["2.3.0"] = Field(
"2.3.0",
description="""File version string. Use semantic versioning, e.g. 1.2.1. This will be the name of the format with trailing major, minor and patch numbers.""",
json_schema_extra={"linkml_meta": {"equals_string": "2.3.0", "ifabsent": "string(2.3.0)"}},
)
file_create_date: NDArray[Shape["* num_modifications"], datetime] = Field(
...,
@ -321,7 +320,7 @@ class GeneralSourceScript(ConfiguredBaseModel):
"linkml_meta": {"equals_string": "source_script", "ifabsent": "string(source_script)"}
},
)
file_name: Optional[str] = Field(None, description="""Name of script file.""")
file_name: str = Field(..., description="""Name of script file.""")
value: str = Field(...)
@ -464,13 +463,11 @@ class ExtracellularEphysElectrodes(DynamicTable):
}
},
)
colnames: Optional[str] = Field(
None,
colnames: List[str] = Field(
...,
description="""The names of the columns in this table. This should be used to specify an order to the columns.""",
)
description: Optional[str] = Field(
None, description="""Description of what is in this dynamic table."""
)
description: str = Field(..., description="""Description of what is in this dynamic table.""")
id: NDArray[Shape["* num_rows"], int] = Field(
...,
description="""Array of unique identifiers for the rows of this dynamic table.""",

View file

@ -107,8 +107,8 @@ class PatchClampSeries(TimeSeries):
)
name: str = Field(...)
stimulus_description: Optional[str] = Field(
None, description="""Protocol/stimulus name for this patch-clamp dataset."""
stimulus_description: str = Field(
..., description="""Protocol/stimulus name for this patch-clamp dataset."""
)
sweep_number: Optional[int] = Field(
None, description="""Sweep number, allows to group different PatchClampSeries together."""
@ -127,10 +127,15 @@ class PatchClampSeries(TimeSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -170,8 +175,8 @@ class PatchClampSeriesData(ConfiguredBaseModel):
"data",
json_schema_extra={"linkml_meta": {"equals_string": "data", "ifabsent": "string(data)"}},
)
unit: Optional[str] = Field(
None,
unit: str = Field(
...,
description="""Base unit of measurement for working with the data. Actual stored values are not necessarily stored in these units. To access the data in these units, multiply 'data' by 'conversion'.""",
)
value: Optional[NDArray[Shape["* num_times"], float]] = Field(
@ -195,8 +200,8 @@ class CurrentClampSeries(PatchClampSeries):
capacitance_compensation: Optional[float] = Field(
None, description="""Capacitance compensation, in farads."""
)
stimulus_description: Optional[str] = Field(
None, description="""Protocol/stimulus name for this patch-clamp dataset."""
stimulus_description: str = Field(
..., description="""Protocol/stimulus name for this patch-clamp dataset."""
)
sweep_number: Optional[int] = Field(
None, description="""Sweep number, allows to group different PatchClampSeries together."""
@ -214,10 +219,15 @@ class CurrentClampSeries(PatchClampSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -257,9 +267,10 @@ class CurrentClampSeriesData(ConfiguredBaseModel):
"data",
json_schema_extra={"linkml_meta": {"equals_string": "data", "ifabsent": "string(data)"}},
)
unit: Optional[str] = Field(
None,
unit: Literal["volts"] = Field(
"volts",
description="""Base unit of measurement for working with the data. which is fixed to 'volts'. Actual stored values are not necessarily stored in these units. To access the data in these units, multiply 'data' by 'conversion'.""",
json_schema_extra={"linkml_meta": {"equals_string": "volts", "ifabsent": "string(volts)"}},
)
value: Any = Field(...)
@ -274,9 +285,10 @@ class IZeroClampSeries(CurrentClampSeries):
)
name: str = Field(...)
stimulus_description: Optional[str] = Field(
None,
stimulus_description: Literal["N/A"] = Field(
"N/A",
description="""An IZeroClampSeries has no stimulus, so this attribute is automatically set to \"N/A\"""",
json_schema_extra={"linkml_meta": {"equals_string": "N/A", "ifabsent": "string(N/A)"}},
)
bias_current: float = Field(..., description="""Bias current, in amps, fixed to 0.0.""")
bridge_balance: float = Field(..., description="""Bridge balance, in ohms, fixed to 0.0.""")
@ -300,10 +312,15 @@ class IZeroClampSeries(CurrentClampSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -343,8 +360,8 @@ class CurrentClampStimulusSeries(PatchClampSeries):
name: str = Field(...)
data: CurrentClampStimulusSeriesData = Field(..., description="""Stimulus current applied.""")
stimulus_description: Optional[str] = Field(
None, description="""Protocol/stimulus name for this patch-clamp dataset."""
stimulus_description: str = Field(
..., description="""Protocol/stimulus name for this patch-clamp dataset."""
)
sweep_number: Optional[int] = Field(
None, description="""Sweep number, allows to group different PatchClampSeries together."""
@ -362,10 +379,15 @@ class CurrentClampStimulusSeries(PatchClampSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -405,9 +427,12 @@ class CurrentClampStimulusSeriesData(ConfiguredBaseModel):
"data",
json_schema_extra={"linkml_meta": {"equals_string": "data", "ifabsent": "string(data)"}},
)
unit: Optional[str] = Field(
None,
unit: Literal["amperes"] = Field(
"amperes",
description="""Base unit of measurement for working with the data. which is fixed to 'amperes'. Actual stored values are not necessarily stored in these units. To access the data in these units, multiply 'data' by 'conversion'.""",
json_schema_extra={
"linkml_meta": {"equals_string": "amperes", "ifabsent": "string(amperes)"}
},
)
value: Any = Field(...)
@ -444,8 +469,8 @@ class VoltageClampSeries(PatchClampSeries):
whole_cell_series_resistance_comp: Optional[VoltageClampSeriesWholeCellSeriesResistanceComp] = (
Field(None, description="""Whole cell series resistance compensation, in ohms.""")
)
stimulus_description: Optional[str] = Field(
None, description="""Protocol/stimulus name for this patch-clamp dataset."""
stimulus_description: str = Field(
..., description="""Protocol/stimulus name for this patch-clamp dataset."""
)
sweep_number: Optional[int] = Field(
None, description="""Sweep number, allows to group different PatchClampSeries together."""
@ -463,10 +488,15 @@ class VoltageClampSeries(PatchClampSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -506,9 +536,12 @@ class VoltageClampSeriesData(ConfiguredBaseModel):
"data",
json_schema_extra={"linkml_meta": {"equals_string": "data", "ifabsent": "string(data)"}},
)
unit: Optional[str] = Field(
None,
unit: Literal["amperes"] = Field(
"amperes",
description="""Base unit of measurement for working with the data. which is fixed to 'amperes'. Actual stored values are not necessarily stored in these units. To access the data in these units, multiply 'data' by 'conversion'.""",
json_schema_extra={
"linkml_meta": {"equals_string": "amperes", "ifabsent": "string(amperes)"}
},
)
value: Any = Field(...)
@ -529,9 +562,12 @@ class VoltageClampSeriesCapacitanceFast(ConfiguredBaseModel):
}
},
)
unit: Optional[str] = Field(
None,
unit: Literal["farads"] = Field(
"farads",
description="""Unit of measurement for capacitance_fast, which is fixed to 'farads'.""",
json_schema_extra={
"linkml_meta": {"equals_string": "farads", "ifabsent": "string(farads)"}
},
)
value: float = Field(...)
@ -552,9 +588,12 @@ class VoltageClampSeriesCapacitanceSlow(ConfiguredBaseModel):
}
},
)
unit: Optional[str] = Field(
None,
unit: Literal["farads"] = Field(
"farads",
description="""Unit of measurement for capacitance_fast, which is fixed to 'farads'.""",
json_schema_extra={
"linkml_meta": {"equals_string": "farads", "ifabsent": "string(farads)"}
},
)
value: float = Field(...)
@ -575,9 +614,10 @@ class VoltageClampSeriesResistanceCompBandwidth(ConfiguredBaseModel):
}
},
)
unit: Optional[str] = Field(
None,
unit: Literal["hertz"] = Field(
"hertz",
description="""Unit of measurement for resistance_comp_bandwidth, which is fixed to 'hertz'.""",
json_schema_extra={"linkml_meta": {"equals_string": "hertz", "ifabsent": "string(hertz)"}},
)
value: float = Field(...)
@ -598,9 +638,12 @@ class VoltageClampSeriesResistanceCompCorrection(ConfiguredBaseModel):
}
},
)
unit: Optional[str] = Field(
None,
unit: Literal["percent"] = Field(
"percent",
description="""Unit of measurement for resistance_comp_correction, which is fixed to 'percent'.""",
json_schema_extra={
"linkml_meta": {"equals_string": "percent", "ifabsent": "string(percent)"}
},
)
value: float = Field(...)
@ -621,9 +664,12 @@ class VoltageClampSeriesResistanceCompPrediction(ConfiguredBaseModel):
}
},
)
unit: Optional[str] = Field(
None,
unit: Literal["percent"] = Field(
"percent",
description="""Unit of measurement for resistance_comp_prediction, which is fixed to 'percent'.""",
json_schema_extra={
"linkml_meta": {"equals_string": "percent", "ifabsent": "string(percent)"}
},
)
value: float = Field(...)
@ -644,9 +690,12 @@ class VoltageClampSeriesWholeCellCapacitanceComp(ConfiguredBaseModel):
}
},
)
unit: Optional[str] = Field(
None,
unit: Literal["farads"] = Field(
"farads",
description="""Unit of measurement for whole_cell_capacitance_comp, which is fixed to 'farads'.""",
json_schema_extra={
"linkml_meta": {"equals_string": "farads", "ifabsent": "string(farads)"}
},
)
value: float = Field(...)
@ -667,9 +716,10 @@ class VoltageClampSeriesWholeCellSeriesResistanceComp(ConfiguredBaseModel):
}
},
)
unit: Optional[str] = Field(
None,
unit: Literal["ohms"] = Field(
"ohms",
description="""Unit of measurement for whole_cell_series_resistance_comp, which is fixed to 'ohms'.""",
json_schema_extra={"linkml_meta": {"equals_string": "ohms", "ifabsent": "string(ohms)"}},
)
value: float = Field(...)
@ -685,8 +735,8 @@ class VoltageClampStimulusSeries(PatchClampSeries):
name: str = Field(...)
data: VoltageClampStimulusSeriesData = Field(..., description="""Stimulus voltage applied.""")
stimulus_description: Optional[str] = Field(
None, description="""Protocol/stimulus name for this patch-clamp dataset."""
stimulus_description: str = Field(
..., description="""Protocol/stimulus name for this patch-clamp dataset."""
)
sweep_number: Optional[int] = Field(
None, description="""Sweep number, allows to group different PatchClampSeries together."""
@ -704,10 +754,15 @@ class VoltageClampStimulusSeries(PatchClampSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -747,9 +802,10 @@ class VoltageClampStimulusSeriesData(ConfiguredBaseModel):
"data",
json_schema_extra={"linkml_meta": {"equals_string": "data", "ifabsent": "string(data)"}},
)
unit: Optional[str] = Field(
None,
unit: Literal["volts"] = Field(
"volts",
description="""Base unit of measurement for working with the data. which is fixed to 'volts'. Actual stored values are not necessarily stored in these units. To access the data in these units, multiply 'data' by 'conversion'.""",
json_schema_extra={"linkml_meta": {"equals_string": "volts", "ifabsent": "string(volts)"}},
)
value: Any = Field(...)
@ -825,13 +881,11 @@ class SweepTable(DynamicTable):
}
},
)
colnames: Optional[str] = Field(
None,
colnames: List[str] = Field(
...,
description="""The names of the columns in this table. This should be used to specify an order to the columns.""",
)
description: Optional[str] = Field(
None, description="""Description of what is in this dynamic table."""
)
description: str = Field(..., description="""Description of what is in this dynamic table.""")
id: NDArray[Shape["* num_rows"], int] = Field(
...,
description="""Array of unique identifiers for the rows of this dynamic table.""",

View file

@ -169,10 +169,15 @@ class ImageSeries(TimeSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -214,8 +219,8 @@ class ImageSeriesExternalFile(ConfiguredBaseModel):
"linkml_meta": {"equals_string": "external_file", "ifabsent": "string(external_file)"}
},
)
starting_frame: Optional[int] = Field(
None,
starting_frame: List[int] = Field(
...,
description="""Each external image may contain one or more consecutive frames of the full ImageSeries. This attribute serves as an index to indicate which frames each file contains, to faciliate random access. The 'starting_frame' attribute, hence, contains a list of frame numbers within the full ImageSeries of the first frame of each file listed in the parent 'external_file' dataset. Zero-based indexing is used (hence, the first element will always be zero). For example, if the 'external_file' dataset has three paths to files and the first file has 5 frames, the second file has 10 frames, and the third file has 20 frames, then this attribute will have values [0, 5, 15]. If there is a single external file that holds all of the frames of the ImageSeries (and so there is a single element in the 'external_file' dataset), then this attribute should have value [0].""",
)
value: Optional[NDArray[Shape["* num_files"], str]] = Field(
@ -270,10 +275,15 @@ class ImageMaskSeries(ImageSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -350,10 +360,15 @@ class OpticalSeries(ImageSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -406,10 +421,15 @@ class IndexSeries(TimeSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,

View file

@ -120,10 +120,15 @@ class AbstractFeatureSeries(TimeSeries):
description="""Description of the features represented in TimeSeries::data.""",
json_schema_extra={"linkml_meta": {"array": {"dimensions": [{"alias": "num_features"}]}}},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -164,8 +169,9 @@ class AbstractFeatureSeriesData(ConfiguredBaseModel):
json_schema_extra={"linkml_meta": {"equals_string": "data", "ifabsent": "string(data)"}},
)
unit: Optional[str] = Field(
None,
"see 'feature_units'",
description="""Since there can be different units for different features, store the units in 'feature_units'. The default value for this attribute is \"see 'feature_units'\".""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(see 'feature_units')"}},
)
value: Optional[
Union[
@ -190,10 +196,15 @@ class AnnotationSeries(TimeSeries):
description="""Annotations made during an experiment.""",
json_schema_extra={"linkml_meta": {"array": {"dimensions": [{"alias": "num_times"}]}}},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -237,10 +248,15 @@ class IntervalSeries(TimeSeries):
description="""Use values >0 if interval started, <0 if interval ended.""",
json_schema_extra={"linkml_meta": {"array": {"dimensions": [{"alias": "num_times"}]}}},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -308,10 +324,15 @@ class DecompositionSeries(TimeSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -351,9 +372,10 @@ class DecompositionSeriesData(ConfiguredBaseModel):
"data",
json_schema_extra={"linkml_meta": {"equals_string": "data", "ifabsent": "string(data)"}},
)
unit: Optional[str] = Field(
None,
unit: str = Field(
"no unit",
description="""Base unit of measurement for working with the data. Actual stored values are not necessarily stored in these units. To access the data in these units, multiply 'data' by 'conversion'.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no unit)"}},
)
value: Optional[NDArray[Shape["* num_times, * num_channels, * num_bands"], float]] = Field(
None,
@ -415,13 +437,11 @@ class DecompositionSeriesBands(DynamicTable):
description="""The standard deviation of Gaussian filters, in Hz.""",
json_schema_extra={"linkml_meta": {"array": {"dimensions": [{"alias": "num_bands"}]}}},
)
colnames: Optional[str] = Field(
None,
colnames: List[str] = Field(
...,
description="""The names of the columns in this table. This should be used to specify an order to the columns.""",
)
description: Optional[str] = Field(
None, description="""Description of what is in this dynamic table."""
)
description: str = Field(..., description="""Description of what is in this dynamic table.""")
id: NDArray[Shape["* num_rows"], int] = Field(
...,
description="""Array of unique identifiers for the rows of this dynamic table.""",
@ -555,13 +575,11 @@ class Units(DynamicTable):
}
},
)
colnames: Optional[str] = Field(
None,
colnames: List[str] = Field(
...,
description="""The names of the columns in this table. This should be used to specify an order to the columns.""",
)
description: Optional[str] = Field(
None, description="""Description of what is in this dynamic table."""
)
description: str = Field(..., description="""Description of what is in this dynamic table.""")
id: NDArray[Shape["* num_rows"], int] = Field(
...,
description="""Array of unique identifiers for the rows of this dynamic table.""",
@ -589,9 +607,7 @@ class UnitsSpikeTimes(VectorData):
None,
description="""The smallest possible difference between two spike times. Usually 1 divided by the acquisition sampling rate from which spike times were extracted, but could be larger if the acquisition time series was downsampled or smaller if the acquisition time series was smoothed/interpolated and it is possible for the spike time to be between samples.""",
)
description: Optional[str] = Field(
None, description="""Description of what these vectors represent."""
)
description: str = Field(..., description="""Description of what these vectors represent.""")
value: Optional[
Union[
NDArray[Shape["* dim0"], Any],

View file

@ -91,10 +91,15 @@ class OptogeneticSeries(TimeSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,

View file

@ -162,10 +162,15 @@ class TwoPhotonSeries(ImageSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -219,10 +224,15 @@ class RoiResponseSeries(TimeSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -356,13 +366,11 @@ class PlaneSegmentation(DynamicTable):
}
},
)
colnames: Optional[str] = Field(
None,
colnames: List[str] = Field(
...,
description="""The names of the columns in this table. This should be used to specify an order to the columns.""",
)
description: Optional[str] = Field(
None, description="""Description of what is in this dynamic table."""
)
description: str = Field(..., description="""Description of what is in this dynamic table.""")
id: NDArray[Shape["* num_rows"], int] = Field(
...,
description="""Array of unique identifiers for the rows of this dynamic table.""",
@ -386,9 +394,7 @@ class PlaneSegmentationImageMask(VectorData):
"linkml_meta": {"equals_string": "image_mask", "ifabsent": "string(image_mask)"}
},
)
description: Optional[str] = Field(
None, description="""Description of what these vectors represent."""
)
description: str = Field(..., description="""Description of what these vectors represent.""")
value: Optional[
Union[
NDArray[Shape["* dim0"], Any],
@ -415,9 +421,7 @@ class PlaneSegmentationPixelMask(VectorData):
x: Optional[int] = Field(None, description="""Pixel x-coordinate.""")
y: Optional[int] = Field(None, description="""Pixel y-coordinate.""")
weight: Optional[float] = Field(None, description="""Weight of the pixel.""")
description: Optional[str] = Field(
None, description="""Description of what these vectors represent."""
)
description: str = Field(..., description="""Description of what these vectors represent.""")
value: Optional[
Union[
NDArray[Shape["* dim0"], Any],
@ -445,9 +449,7 @@ class PlaneSegmentationVoxelMask(VectorData):
y: Optional[int] = Field(None, description="""Voxel y-coordinate.""")
z: Optional[int] = Field(None, description="""Voxel z-coordinate.""")
weight: Optional[float] = Field(None, description="""Weight of the voxel.""")
description: Optional[str] = Field(
None, description="""Description of what these vectors represent."""
)
description: str = Field(..., description="""Description of what these vectors represent.""")
value: Optional[
Union[
NDArray[Shape["* dim0"], Any],
@ -523,12 +525,14 @@ class ImagingPlaneManifold(ConfiguredBaseModel):
},
)
conversion: Optional[float] = Field(
None,
1.0,
description="""Scalar to multiply each element in data to convert it to the specified 'unit'. If the data are stored in acquisition system units or other units that require a conversion to be interpretable, multiply the data by 'conversion' to convert the data to the specified 'unit'. e.g. if the data acquisition system stores values in this object as pixels from x = -500 to 499, y = -500 to 499 that correspond to a 2 m x 2 m range, then the 'conversion' multiplier to get from raw data acquisition pixel units to meters is 2/1000.""",
json_schema_extra={"linkml_meta": {"ifabsent": "float(1.0)"}},
)
unit: Optional[str] = Field(
None,
"meters",
description="""Base unit of measurement for working with the data. The default value is 'meters'.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(meters)"}},
)
value: Optional[
Union[
@ -551,8 +555,10 @@ class ImagingPlaneOriginCoords(ConfiguredBaseModel):
"linkml_meta": {"equals_string": "origin_coords", "ifabsent": "string(origin_coords)"}
},
)
unit: Optional[str] = Field(
None, description="""Measurement units for origin_coords. The default value is 'meters'."""
unit: str = Field(
"meters",
description="""Measurement units for origin_coords. The default value is 'meters'.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(meters)"}},
)
value: Optional[Union[NDArray[Shape["2 x_y"], float], NDArray[Shape["3 x_y_z"], float]]] = (
Field(None)
@ -572,8 +578,10 @@ class ImagingPlaneGridSpacing(ConfiguredBaseModel):
"linkml_meta": {"equals_string": "grid_spacing", "ifabsent": "string(grid_spacing)"}
},
)
unit: Optional[str] = Field(
None, description="""Measurement units for grid_spacing. The default value is 'meters'."""
unit: str = Field(
"meters",
description="""Measurement units for grid_spacing. The default value is 'meters'.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(meters)"}},
)
value: Optional[Union[NDArray[Shape["2 x_y"], float], NDArray[Shape["3 x_y_z"], float]]] = (
Field(None)

View file

@ -127,14 +127,12 @@ class ImagingRetinotopyAxis1PhaseMap(ConfiguredBaseModel):
}
},
)
dimension: Optional[int] = Field(
None,
dimension: List[int] = Field(
...,
description="""Number of rows and columns in the image. NOTE: row, column representation is equivalent to height, width.""",
)
field_of_view: Optional[float] = Field(None, description="""Size of viewing area, in meters.""")
unit: Optional[str] = Field(
None, description="""Unit that axis data is stored in (e.g., degrees)."""
)
field_of_view: List[float] = Field(..., description="""Size of viewing area, in meters.""")
unit: str = Field(..., description="""Unit that axis data is stored in (e.g., degrees).""")
value: Optional[NDArray[Shape["* num_rows, * num_cols"], float]] = Field(
None,
json_schema_extra={
@ -159,14 +157,12 @@ class ImagingRetinotopyAxis1PowerMap(ConfiguredBaseModel):
}
},
)
dimension: Optional[int] = Field(
None,
dimension: List[int] = Field(
...,
description="""Number of rows and columns in the image. NOTE: row, column representation is equivalent to height, width.""",
)
field_of_view: Optional[float] = Field(None, description="""Size of viewing area, in meters.""")
unit: Optional[str] = Field(
None, description="""Unit that axis data is stored in (e.g., degrees)."""
)
field_of_view: List[float] = Field(..., description="""Size of viewing area, in meters.""")
unit: str = Field(..., description="""Unit that axis data is stored in (e.g., degrees).""")
value: Optional[NDArray[Shape["* num_rows, * num_cols"], float]] = Field(
None,
json_schema_extra={
@ -191,14 +187,12 @@ class ImagingRetinotopyAxis2PhaseMap(ConfiguredBaseModel):
}
},
)
dimension: Optional[int] = Field(
None,
dimension: List[int] = Field(
...,
description="""Number of rows and columns in the image. NOTE: row, column representation is equivalent to height, width.""",
)
field_of_view: Optional[float] = Field(None, description="""Size of viewing area, in meters.""")
unit: Optional[str] = Field(
None, description="""Unit that axis data is stored in (e.g., degrees)."""
)
field_of_view: List[float] = Field(..., description="""Size of viewing area, in meters.""")
unit: str = Field(..., description="""Unit that axis data is stored in (e.g., degrees).""")
value: Optional[NDArray[Shape["* num_rows, * num_cols"], float]] = Field(
None,
json_schema_extra={
@ -223,14 +217,12 @@ class ImagingRetinotopyAxis2PowerMap(ConfiguredBaseModel):
}
},
)
dimension: Optional[int] = Field(
None,
dimension: List[int] = Field(
...,
description="""Number of rows and columns in the image. NOTE: row, column representation is equivalent to height, width.""",
)
field_of_view: Optional[float] = Field(None, description="""Size of viewing area, in meters.""")
unit: Optional[str] = Field(
None, description="""Unit that axis data is stored in (e.g., degrees)."""
)
field_of_view: List[float] = Field(..., description="""Size of viewing area, in meters.""")
unit: str = Field(..., description="""Unit that axis data is stored in (e.g., degrees).""")
value: Optional[NDArray[Shape["* num_rows, * num_cols"], float]] = Field(
None,
json_schema_extra={
@ -255,19 +247,17 @@ class ImagingRetinotopyFocalDepthImage(ConfiguredBaseModel):
}
},
)
bits_per_pixel: Optional[int] = Field(
None,
bits_per_pixel: int = Field(
...,
description="""Number of bits used to represent each value. This is necessary to determine maximum (white) pixel value.""",
)
dimension: Optional[int] = Field(
None,
dimension: List[int] = Field(
...,
description="""Number of rows and columns in the image. NOTE: row, column representation is equivalent to height, width.""",
)
field_of_view: Optional[float] = Field(None, description="""Size of viewing area, in meters.""")
focal_depth: Optional[float] = Field(None, description="""Focal depth offset, in meters.""")
format: Optional[str] = Field(
None, description="""Format of image. Right now only 'raw' is supported."""
)
field_of_view: List[float] = Field(..., description="""Size of viewing area, in meters.""")
focal_depth: float = Field(..., description="""Focal depth offset, in meters.""")
format: str = Field(..., description="""Format of image. Right now only 'raw' is supported.""")
value: Optional[NDArray[Shape["* num_rows, * num_cols"], int]] = Field(
None,
json_schema_extra={
@ -289,11 +279,11 @@ class ImagingRetinotopySignMap(ConfiguredBaseModel):
"linkml_meta": {"equals_string": "sign_map", "ifabsent": "string(sign_map)"}
},
)
dimension: Optional[int] = Field(
None,
dimension: List[int] = Field(
...,
description="""Number of rows and columns in the image. NOTE: row, column representation is equivalent to height, width.""",
)
field_of_view: Optional[float] = Field(None, description="""Size of viewing area, in meters.""")
field_of_view: List[float] = Field(..., description="""Size of viewing area, in meters.""")
value: Optional[NDArray[Shape["* num_rows, * num_cols"], float]] = Field(
None,
json_schema_extra={
@ -318,18 +308,16 @@ class ImagingRetinotopyVasculatureImage(ConfiguredBaseModel):
}
},
)
bits_per_pixel: Optional[int] = Field(
None,
bits_per_pixel: int = Field(
...,
description="""Number of bits used to represent each value. This is necessary to determine maximum (white) pixel value""",
)
dimension: Optional[int] = Field(
None,
dimension: List[int] = Field(
...,
description="""Number of rows and columns in the image. NOTE: row, column representation is equivalent to height, width.""",
)
field_of_view: Optional[float] = Field(None, description="""Size of viewing area, in meters.""")
format: Optional[str] = Field(
None, description="""Format of image. Right now only 'raw' is supported."""
)
field_of_view: List[float] = Field(..., description="""Size of viewing area, in meters.""")
format: str = Field(..., description="""Format of image. Right now only 'raw' is supported.""")
value: Optional[NDArray[Shape["* num_rows, * num_cols"], int]] = Field(
None,
json_schema_extra={

View file

@ -99,9 +99,7 @@ class TimeSeriesReferenceVectorData(VectorData):
description="""Number of data samples available in this time series, during this epoch""",
)
timeseries: TimeSeries = Field(..., description="""The TimeSeries that this index applies to""")
description: Optional[str] = Field(
None, description="""Description of what these vectors represent."""
)
description: str = Field(..., description="""Description of what these vectors represent.""")
value: Optional[
Union[
NDArray[Shape["* dim0"], Any],
@ -169,10 +167,15 @@ class TimeSeries(NWBDataInterface):
)
name: str = Field(...)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
data: TimeSeriesData = Field(
...,
@ -217,15 +220,17 @@ class TimeSeriesData(ConfiguredBaseModel):
json_schema_extra={"linkml_meta": {"equals_string": "data", "ifabsent": "string(data)"}},
)
conversion: Optional[float] = Field(
None,
1.0,
description="""Scalar to multiply each element in data to convert it to the specified 'unit'. If the data are stored in acquisition system units or other units that require a conversion to be interpretable, multiply the data by 'conversion' to convert the data to the specified 'unit'. e.g. if the data acquisition system stores values in this object as signed 16-bit integers (int16 range -32,768 to 32,767) that correspond to a 5V range (-2.5V to 2.5V), and the data acquisition system gain is 8000X, then the 'conversion' multiplier to get from raw data acquisition values to recorded volts is 2.5/32768/8000 = 9.5367e-9.""",
json_schema_extra={"linkml_meta": {"ifabsent": "float(1.0)"}},
)
resolution: Optional[float] = Field(
None,
-1.0,
description="""Smallest meaningful difference between values in data, stored in the specified by unit, e.g., the change in value of the least significant bit, or a larger number if signal noise is known to be present. If unknown, use -1.0.""",
json_schema_extra={"linkml_meta": {"ifabsent": "float(-1.0)"}},
)
unit: Optional[str] = Field(
None,
unit: str = Field(
...,
description="""Base unit of measurement for working with the data. Actual stored values are not necessarily stored in these units. To access the data in these units, multiply 'data' by 'conversion'.""",
)
continuity: Optional[str] = Field(
@ -255,9 +260,13 @@ class TimeSeriesStartingTime(ConfiguredBaseModel):
"linkml_meta": {"equals_string": "starting_time", "ifabsent": "string(starting_time)"}
},
)
rate: Optional[float] = Field(None, description="""Sampling rate, in Hz.""")
unit: Optional[str] = Field(
None, description="""Unit of measurement for time, which is fixed to 'seconds'."""
rate: float = Field(..., description="""Sampling rate, in Hz.""")
unit: Literal["seconds"] = Field(
"seconds",
description="""Unit of measurement for time, which is fixed to 'seconds'.""",
json_schema_extra={
"linkml_meta": {"equals_string": "seconds", "ifabsent": "string(seconds)"}
},
)
value: float = Field(...)
@ -303,9 +312,7 @@ class Images(NWBDataInterface):
)
name: str = Field("Images", json_schema_extra={"linkml_meta": {"ifabsent": "string(Images)"}})
description: Optional[str] = Field(
None, description="""Description of this collection of images."""
)
description: str = Field(..., description="""Description of this collection of images.""")
image: List[Image] = Field(..., description="""Images stored in this collection.""")

View file

@ -84,10 +84,15 @@ class SpatialSeries(TimeSeries):
reference_frame: Optional[str] = Field(
None, description="""Description defining what exactly 'straight-ahead' means."""
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -128,8 +133,9 @@ class SpatialSeriesData(ConfiguredBaseModel):
json_schema_extra={"linkml_meta": {"equals_string": "data", "ifabsent": "string(data)"}},
)
unit: Optional[str] = Field(
None,
"meters",
description="""Base unit of measurement for working with the data. The default value is 'meters'. Actual stored values are not necessarily stored in these units. To access the data in these units, multiply 'data' by 'conversion'.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(meters)"}},
)
value: Optional[
Union[

View file

@ -134,10 +134,15 @@ class ElectricalSeries(TimeSeries):
description="""Channel-specific conversion factor. Multiply the data in the 'data' dataset by these values along the channel axis (as indicated by axis attribute) AND by the global conversion factor in the 'conversion' attribute of 'data' to get the data values in Volts, i.e, data in Volts = data * data.conversion * channel_conversion. This approach allows for both global and per-channel data conversion factors needed to support the storage of electrical recordings as native values generated by data acquisition systems. If this dataset is not present, then there is no channel-specific conversion factor, i.e. it is 1 for all channels.""",
json_schema_extra={"linkml_meta": {"array": {"dimensions": [{"alias": "num_channels"}]}}},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -206,10 +211,15 @@ class SpikeEventSeries(ElectricalSeries):
description="""Channel-specific conversion factor. Multiply the data in the 'data' dataset by these values along the channel axis (as indicated by axis attribute) AND by the global conversion factor in the 'conversion' attribute of 'data' to get the data values in Volts, i.e, data in Volts = data * data.conversion * channel_conversion. This approach allows for both global and per-channel data conversion factors needed to support the storage of electrical recordings as native values generated by data acquisition systems. If this dataset is not present, then there is no channel-specific conversion factor, i.e. it is 1 for all channels.""",
json_schema_extra={"linkml_meta": {"array": {"dimensions": [{"alias": "num_channels"}]}}},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -377,9 +387,9 @@ class ElectrodeGroup(NWBContainer):
)
name: str = Field(...)
description: Optional[str] = Field(None, description="""Description of this electrode group.""")
location: Optional[str] = Field(
None,
description: str = Field(..., description="""Description of this electrode group.""")
location: str = Field(
...,
description="""Location of electrode group. Specify the area, layer, comments on estimation of area/layer, etc. Use standard atlas names for anatomical regions when possible.""",
)
position: Optional[ElectrodeGroupPosition] = Field(

View file

@ -150,13 +150,11 @@ class TimeIntervals(DynamicTable):
}
},
)
colnames: Optional[str] = Field(
None,
colnames: List[str] = Field(
...,
description="""The names of the columns in this table. This should be used to specify an order to the columns.""",
)
description: Optional[str] = Field(
None, description="""Description of what is in this dynamic table."""
)
description: str = Field(..., description="""Description of what is in this dynamic table.""")
id: NDArray[Shape["* num_rows"], int] = Field(
...,
description="""Array of unique identifiers for the rows of this dynamic table.""",
@ -191,9 +189,7 @@ class TimeIntervalsTimeseries(VectorData):
timeseries: Optional[TimeSeries] = Field(
None, description="""the TimeSeries that this index applies to."""
)
description: Optional[str] = Field(
None, description="""Description of what these vectors represent."""
)
description: str = Field(..., description="""Description of what these vectors represent.""")
value: Optional[
Union[
NDArray[Shape["* dim0"], Any],

View file

@ -104,9 +104,7 @@ class ScratchData(NWBData):
)
name: str = Field(...)
notes: Optional[str] = Field(
None, description="""Any notes the user has about the dataset being stored"""
)
notes: str = Field(..., description="""Any notes the user has about the dataset being stored""")
class NWBFile(NWBContainer):
@ -122,9 +120,10 @@ class NWBFile(NWBContainer):
"root",
json_schema_extra={"linkml_meta": {"equals_string": "root", "ifabsent": "string(root)"}},
)
nwb_version: Optional[str] = Field(
None,
nwb_version: Literal["2.4.0"] = Field(
"2.4.0",
description="""File version string. Use semantic versioning, e.g. 1.2.1. This will be the name of the format with trailing major, minor and patch numbers.""",
json_schema_extra={"linkml_meta": {"equals_string": "2.4.0", "ifabsent": "string(2.4.0)"}},
)
file_create_date: NDArray[Shape["* num_modifications"], datetime] = Field(
...,
@ -329,7 +328,7 @@ class GeneralSourceScript(ConfiguredBaseModel):
"linkml_meta": {"equals_string": "source_script", "ifabsent": "string(source_script)"}
},
)
file_name: Optional[str] = Field(None, description="""Name of script file.""")
file_name: str = Field(..., description="""Name of script file.""")
value: str = Field(...)
@ -472,13 +471,11 @@ class ExtracellularEphysElectrodes(DynamicTable):
}
},
)
colnames: Optional[str] = Field(
None,
colnames: List[str] = Field(
...,
description="""The names of the columns in this table. This should be used to specify an order to the columns.""",
)
description: Optional[str] = Field(
None, description="""Description of what is in this dynamic table."""
)
description: str = Field(..., description="""Description of what is in this dynamic table.""")
id: NDArray[Shape["* num_rows"], int] = Field(
...,
description="""Array of unique identifiers for the rows of this dynamic table.""",

View file

@ -114,8 +114,8 @@ class PatchClampSeries(TimeSeries):
)
name: str = Field(...)
stimulus_description: Optional[str] = Field(
None, description="""Protocol/stimulus name for this patch-clamp dataset."""
stimulus_description: str = Field(
..., description="""Protocol/stimulus name for this patch-clamp dataset."""
)
sweep_number: Optional[int] = Field(
None, description="""Sweep number, allows to group different PatchClampSeries together."""
@ -134,10 +134,15 @@ class PatchClampSeries(TimeSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -177,8 +182,8 @@ class PatchClampSeriesData(ConfiguredBaseModel):
"data",
json_schema_extra={"linkml_meta": {"equals_string": "data", "ifabsent": "string(data)"}},
)
unit: Optional[str] = Field(
None,
unit: str = Field(
...,
description="""Base unit of measurement for working with the data. Actual stored values are not necessarily stored in these units. To access the data in these units, multiply 'data' by 'conversion'.""",
)
value: Optional[NDArray[Shape["* num_times"], float]] = Field(
@ -202,8 +207,8 @@ class CurrentClampSeries(PatchClampSeries):
capacitance_compensation: Optional[float] = Field(
None, description="""Capacitance compensation, in farads."""
)
stimulus_description: Optional[str] = Field(
None, description="""Protocol/stimulus name for this patch-clamp dataset."""
stimulus_description: str = Field(
..., description="""Protocol/stimulus name for this patch-clamp dataset."""
)
sweep_number: Optional[int] = Field(
None, description="""Sweep number, allows to group different PatchClampSeries together."""
@ -221,10 +226,15 @@ class CurrentClampSeries(PatchClampSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -264,9 +274,10 @@ class CurrentClampSeriesData(ConfiguredBaseModel):
"data",
json_schema_extra={"linkml_meta": {"equals_string": "data", "ifabsent": "string(data)"}},
)
unit: Optional[str] = Field(
None,
unit: Literal["volts"] = Field(
"volts",
description="""Base unit of measurement for working with the data. which is fixed to 'volts'. Actual stored values are not necessarily stored in these units. To access the data in these units, multiply 'data' by 'conversion'.""",
json_schema_extra={"linkml_meta": {"equals_string": "volts", "ifabsent": "string(volts)"}},
)
value: Any = Field(...)
@ -281,9 +292,10 @@ class IZeroClampSeries(CurrentClampSeries):
)
name: str = Field(...)
stimulus_description: Optional[str] = Field(
None,
stimulus_description: Literal["N/A"] = Field(
"N/A",
description="""An IZeroClampSeries has no stimulus, so this attribute is automatically set to \"N/A\"""",
json_schema_extra={"linkml_meta": {"equals_string": "N/A", "ifabsent": "string(N/A)"}},
)
bias_current: float = Field(..., description="""Bias current, in amps, fixed to 0.0.""")
bridge_balance: float = Field(..., description="""Bridge balance, in ohms, fixed to 0.0.""")
@ -307,10 +319,15 @@ class IZeroClampSeries(CurrentClampSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -350,8 +367,8 @@ class CurrentClampStimulusSeries(PatchClampSeries):
name: str = Field(...)
data: CurrentClampStimulusSeriesData = Field(..., description="""Stimulus current applied.""")
stimulus_description: Optional[str] = Field(
None, description="""Protocol/stimulus name for this patch-clamp dataset."""
stimulus_description: str = Field(
..., description="""Protocol/stimulus name for this patch-clamp dataset."""
)
sweep_number: Optional[int] = Field(
None, description="""Sweep number, allows to group different PatchClampSeries together."""
@ -369,10 +386,15 @@ class CurrentClampStimulusSeries(PatchClampSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -412,9 +434,12 @@ class CurrentClampStimulusSeriesData(ConfiguredBaseModel):
"data",
json_schema_extra={"linkml_meta": {"equals_string": "data", "ifabsent": "string(data)"}},
)
unit: Optional[str] = Field(
None,
unit: Literal["amperes"] = Field(
"amperes",
description="""Base unit of measurement for working with the data. which is fixed to 'amperes'. Actual stored values are not necessarily stored in these units. To access the data in these units, multiply 'data' by 'conversion'.""",
json_schema_extra={
"linkml_meta": {"equals_string": "amperes", "ifabsent": "string(amperes)"}
},
)
value: Any = Field(...)
@ -451,8 +476,8 @@ class VoltageClampSeries(PatchClampSeries):
whole_cell_series_resistance_comp: Optional[VoltageClampSeriesWholeCellSeriesResistanceComp] = (
Field(None, description="""Whole cell series resistance compensation, in ohms.""")
)
stimulus_description: Optional[str] = Field(
None, description="""Protocol/stimulus name for this patch-clamp dataset."""
stimulus_description: str = Field(
..., description="""Protocol/stimulus name for this patch-clamp dataset."""
)
sweep_number: Optional[int] = Field(
None, description="""Sweep number, allows to group different PatchClampSeries together."""
@ -470,10 +495,15 @@ class VoltageClampSeries(PatchClampSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -513,9 +543,12 @@ class VoltageClampSeriesData(ConfiguredBaseModel):
"data",
json_schema_extra={"linkml_meta": {"equals_string": "data", "ifabsent": "string(data)"}},
)
unit: Optional[str] = Field(
None,
unit: Literal["amperes"] = Field(
"amperes",
description="""Base unit of measurement for working with the data. which is fixed to 'amperes'. Actual stored values are not necessarily stored in these units. To access the data in these units, multiply 'data' by 'conversion'.""",
json_schema_extra={
"linkml_meta": {"equals_string": "amperes", "ifabsent": "string(amperes)"}
},
)
value: Any = Field(...)
@ -536,9 +569,12 @@ class VoltageClampSeriesCapacitanceFast(ConfiguredBaseModel):
}
},
)
unit: Optional[str] = Field(
None,
unit: Literal["farads"] = Field(
"farads",
description="""Unit of measurement for capacitance_fast, which is fixed to 'farads'.""",
json_schema_extra={
"linkml_meta": {"equals_string": "farads", "ifabsent": "string(farads)"}
},
)
value: float = Field(...)
@ -559,9 +595,12 @@ class VoltageClampSeriesCapacitanceSlow(ConfiguredBaseModel):
}
},
)
unit: Optional[str] = Field(
None,
unit: Literal["farads"] = Field(
"farads",
description="""Unit of measurement for capacitance_fast, which is fixed to 'farads'.""",
json_schema_extra={
"linkml_meta": {"equals_string": "farads", "ifabsent": "string(farads)"}
},
)
value: float = Field(...)
@ -582,9 +621,10 @@ class VoltageClampSeriesResistanceCompBandwidth(ConfiguredBaseModel):
}
},
)
unit: Optional[str] = Field(
None,
unit: Literal["hertz"] = Field(
"hertz",
description="""Unit of measurement for resistance_comp_bandwidth, which is fixed to 'hertz'.""",
json_schema_extra={"linkml_meta": {"equals_string": "hertz", "ifabsent": "string(hertz)"}},
)
value: float = Field(...)
@ -605,9 +645,12 @@ class VoltageClampSeriesResistanceCompCorrection(ConfiguredBaseModel):
}
},
)
unit: Optional[str] = Field(
None,
unit: Literal["percent"] = Field(
"percent",
description="""Unit of measurement for resistance_comp_correction, which is fixed to 'percent'.""",
json_schema_extra={
"linkml_meta": {"equals_string": "percent", "ifabsent": "string(percent)"}
},
)
value: float = Field(...)
@ -628,9 +671,12 @@ class VoltageClampSeriesResistanceCompPrediction(ConfiguredBaseModel):
}
},
)
unit: Optional[str] = Field(
None,
unit: Literal["percent"] = Field(
"percent",
description="""Unit of measurement for resistance_comp_prediction, which is fixed to 'percent'.""",
json_schema_extra={
"linkml_meta": {"equals_string": "percent", "ifabsent": "string(percent)"}
},
)
value: float = Field(...)
@ -651,9 +697,12 @@ class VoltageClampSeriesWholeCellCapacitanceComp(ConfiguredBaseModel):
}
},
)
unit: Optional[str] = Field(
None,
unit: Literal["farads"] = Field(
"farads",
description="""Unit of measurement for whole_cell_capacitance_comp, which is fixed to 'farads'.""",
json_schema_extra={
"linkml_meta": {"equals_string": "farads", "ifabsent": "string(farads)"}
},
)
value: float = Field(...)
@ -674,9 +723,10 @@ class VoltageClampSeriesWholeCellSeriesResistanceComp(ConfiguredBaseModel):
}
},
)
unit: Optional[str] = Field(
None,
unit: Literal["ohms"] = Field(
"ohms",
description="""Unit of measurement for whole_cell_series_resistance_comp, which is fixed to 'ohms'.""",
json_schema_extra={"linkml_meta": {"equals_string": "ohms", "ifabsent": "string(ohms)"}},
)
value: float = Field(...)
@ -692,8 +742,8 @@ class VoltageClampStimulusSeries(PatchClampSeries):
name: str = Field(...)
data: VoltageClampStimulusSeriesData = Field(..., description="""Stimulus voltage applied.""")
stimulus_description: Optional[str] = Field(
None, description="""Protocol/stimulus name for this patch-clamp dataset."""
stimulus_description: str = Field(
..., description="""Protocol/stimulus name for this patch-clamp dataset."""
)
sweep_number: Optional[int] = Field(
None, description="""Sweep number, allows to group different PatchClampSeries together."""
@ -711,10 +761,15 @@ class VoltageClampStimulusSeries(PatchClampSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -754,9 +809,10 @@ class VoltageClampStimulusSeriesData(ConfiguredBaseModel):
"data",
json_schema_extra={"linkml_meta": {"equals_string": "data", "ifabsent": "string(data)"}},
)
unit: Optional[str] = Field(
None,
unit: Literal["volts"] = Field(
"volts",
description="""Base unit of measurement for working with the data. which is fixed to 'volts'. Actual stored values are not necessarily stored in these units. To access the data in these units, multiply 'data' by 'conversion'.""",
json_schema_extra={"linkml_meta": {"equals_string": "volts", "ifabsent": "string(volts)"}},
)
value: Any = Field(...)
@ -832,13 +888,11 @@ class SweepTable(DynamicTable):
}
},
)
colnames: Optional[str] = Field(
None,
colnames: List[str] = Field(
...,
description="""The names of the columns in this table. This should be used to specify an order to the columns.""",
)
description: Optional[str] = Field(
None, description="""Description of what is in this dynamic table."""
)
description: str = Field(..., description="""Description of what is in this dynamic table.""")
id: NDArray[Shape["* num_rows"], int] = Field(
...,
description="""Array of unique identifiers for the rows of this dynamic table.""",
@ -859,14 +913,21 @@ class IntracellularElectrodesTable(DynamicTable):
)
name: str = Field(...)
description: Optional[str] = Field(
None, description="""Description of what is in this dynamic table."""
description: Literal["Table for storing intracellular electrode related metadata."] = Field(
"Table for storing intracellular electrode related metadata.",
description="""Description of what is in this dynamic table.""",
json_schema_extra={
"linkml_meta": {
"equals_string": "Table for storing intracellular electrode related metadata.",
"ifabsent": "string(Table for storing intracellular electrode related metadata.)",
}
},
)
electrode: List[IntracellularElectrode] = Field(
..., description="""Column for storing the reference to the intracellular electrode."""
)
colnames: Optional[str] = Field(
None,
colnames: List[str] = Field(
...,
description="""The names of the columns in this table. This should be used to specify an order to the columns.""",
)
id: NDArray[Shape["* num_rows"], int] = Field(
@ -889,8 +950,15 @@ class IntracellularStimuliTable(DynamicTable):
)
name: str = Field(...)
description: Optional[str] = Field(
None, description="""Description of what is in this dynamic table."""
description: Literal["Table for storing intracellular stimulus related metadata."] = Field(
"Table for storing intracellular stimulus related metadata.",
description="""Description of what is in this dynamic table.""",
json_schema_extra={
"linkml_meta": {
"equals_string": "Table for storing intracellular stimulus related metadata.",
"ifabsent": "string(Table for storing intracellular stimulus related metadata.)",
}
},
)
stimulus: Named[TimeSeriesReferenceVectorData] = Field(
...,
@ -904,8 +972,8 @@ class IntracellularStimuliTable(DynamicTable):
}
},
)
colnames: Optional[str] = Field(
None,
colnames: List[str] = Field(
...,
description="""The names of the columns in this table. This should be used to specify an order to the columns.""",
)
id: NDArray[Shape["* num_rows"], int] = Field(
@ -928,8 +996,15 @@ class IntracellularResponsesTable(DynamicTable):
)
name: str = Field(...)
description: Optional[str] = Field(
None, description="""Description of what is in this dynamic table."""
description: Literal["Table for storing intracellular response related metadata."] = Field(
"Table for storing intracellular response related metadata.",
description="""Description of what is in this dynamic table.""",
json_schema_extra={
"linkml_meta": {
"equals_string": "Table for storing intracellular response related metadata.",
"ifabsent": "string(Table for storing intracellular response related metadata.)",
}
},
)
response: Named[TimeSeriesReferenceVectorData] = Field(
...,
@ -943,8 +1018,8 @@ class IntracellularResponsesTable(DynamicTable):
}
},
)
colnames: Optional[str] = Field(
None,
colnames: List[str] = Field(
...,
description="""The names of the columns in this table. This should be used to specify an order to the columns.""",
)
id: NDArray[Shape["* num_rows"], int] = Field(
@ -975,9 +1050,27 @@ class IntracellularRecordingsTable(AlignedDynamicTable):
}
},
)
description: Optional[str] = Field(
None,
description: Literal[
"A table to group together a stimulus and response from a single electrode and a single"
" simultaneous recording and for storing metadata about the intracellular recording."
] = Field(
"A table to group together a stimulus and response from a single electrode and a single"
" simultaneous recording and for storing metadata about the intracellular recording.",
description="""Description of the contents of this table. Inherited from AlignedDynamicTable and overwritten here to fix the value of the attribute.""",
json_schema_extra={
"linkml_meta": {
"equals_string": (
"A table to group together a stimulus and response from a "
"single electrode and a single simultaneous recording and "
"for storing metadata about the intracellular recording."
),
"ifabsent": (
"string(A table to group together a stimulus and response from a "
"single electrode and a single simultaneous recording and for "
"storing metadata about the intracellular recording.)"
),
}
},
)
electrodes: IntracellularElectrodesTable = Field(
..., description="""Table for storing intracellular electrode related metadata."""
@ -991,8 +1084,8 @@ class IntracellularRecordingsTable(AlignedDynamicTable):
value: Optional[List[DynamicTable]] = Field(
None, json_schema_extra={"linkml_meta": {"any_of": [{"range": "DynamicTable"}]}}
)
colnames: Optional[str] = Field(
None,
colnames: List[str] = Field(
...,
description="""The names of the columns in this table. This should be used to specify an order to the columns.""",
)
id: NDArray[Shape["* num_rows"], int] = Field(
@ -1039,13 +1132,11 @@ class SimultaneousRecordingsTable(DynamicTable):
}
},
)
colnames: Optional[str] = Field(
None,
colnames: List[str] = Field(
...,
description="""The names of the columns in this table. This should be used to specify an order to the columns.""",
)
description: Optional[str] = Field(
None, description="""Description of what is in this dynamic table."""
)
description: str = Field(..., description="""Description of what is in this dynamic table.""")
id: NDArray[Shape["* num_rows"], int] = Field(
...,
description="""Array of unique identifiers for the rows of this dynamic table.""",
@ -1069,12 +1160,12 @@ class SimultaneousRecordingsTableRecordings(DynamicTableRegion):
"linkml_meta": {"equals_string": "recordings", "ifabsent": "string(recordings)"}
},
)
table: Optional[IntracellularRecordingsTable] = Field(
None,
table: IntracellularRecordingsTable = Field(
...,
description="""Reference to the IntracellularRecordingsTable table that this table region applies to. This specializes the attribute inherited from DynamicTableRegion to fix the type of table that can be referenced here.""",
)
description: Optional[str] = Field(
None, description="""Description of what this table region points to."""
description: str = Field(
..., description="""Description of what this table region points to."""
)
value: Optional[
Union[
@ -1129,13 +1220,11 @@ class SequentialRecordingsTable(DynamicTable):
}
},
)
colnames: Optional[str] = Field(
None,
colnames: List[str] = Field(
...,
description="""The names of the columns in this table. This should be used to specify an order to the columns.""",
)
description: Optional[str] = Field(
None, description="""Description of what is in this dynamic table."""
)
description: str = Field(..., description="""Description of what is in this dynamic table.""")
id: NDArray[Shape["* num_rows"], int] = Field(
...,
description="""Array of unique identifiers for the rows of this dynamic table.""",
@ -1162,12 +1251,12 @@ class SequentialRecordingsTableSimultaneousRecordings(DynamicTableRegion):
}
},
)
table: Optional[SimultaneousRecordingsTable] = Field(
None,
table: SimultaneousRecordingsTable = Field(
...,
description="""Reference to the SimultaneousRecordingsTable table that this table region applies to. This specializes the attribute inherited from DynamicTableRegion to fix the type of table that can be referenced here.""",
)
description: Optional[str] = Field(
None, description="""Description of what this table region points to."""
description: str = Field(
..., description="""Description of what this table region points to."""
)
value: Optional[
Union[
@ -1210,13 +1299,11 @@ class RepetitionsTable(DynamicTable):
}
},
)
colnames: Optional[str] = Field(
None,
colnames: List[str] = Field(
...,
description="""The names of the columns in this table. This should be used to specify an order to the columns.""",
)
description: Optional[str] = Field(
None, description="""Description of what is in this dynamic table."""
)
description: str = Field(..., description="""Description of what is in this dynamic table.""")
id: NDArray[Shape["* num_rows"], int] = Field(
...,
description="""Array of unique identifiers for the rows of this dynamic table.""",
@ -1243,12 +1330,12 @@ class RepetitionsTableSequentialRecordings(DynamicTableRegion):
}
},
)
table: Optional[SequentialRecordingsTable] = Field(
None,
table: SequentialRecordingsTable = Field(
...,
description="""Reference to the SequentialRecordingsTable table that this table region applies to. This specializes the attribute inherited from DynamicTableRegion to fix the type of table that can be referenced here.""",
)
description: Optional[str] = Field(
None, description="""Description of what this table region points to."""
description: str = Field(
..., description="""Description of what this table region points to."""
)
value: Optional[
Union[
@ -1293,13 +1380,11 @@ class ExperimentalConditionsTable(DynamicTable):
}
},
)
colnames: Optional[str] = Field(
None,
colnames: List[str] = Field(
...,
description="""The names of the columns in this table. This should be used to specify an order to the columns.""",
)
description: Optional[str] = Field(
None, description="""Description of what is in this dynamic table."""
)
description: str = Field(..., description="""Description of what is in this dynamic table.""")
id: NDArray[Shape["* num_rows"], int] = Field(
...,
description="""Array of unique identifiers for the rows of this dynamic table.""",
@ -1323,12 +1408,12 @@ class ExperimentalConditionsTableRepetitions(DynamicTableRegion):
"linkml_meta": {"equals_string": "repetitions", "ifabsent": "string(repetitions)"}
},
)
table: Optional[RepetitionsTable] = Field(
None,
table: RepetitionsTable = Field(
...,
description="""Reference to the RepetitionsTable table that this table region applies to. This specializes the attribute inherited from DynamicTableRegion to fix the type of table that can be referenced here.""",
)
description: Optional[str] = Field(
None, description="""Description of what this table region points to."""
description: str = Field(
..., description="""Description of what this table region points to."""
)
value: Optional[
Union[

View file

@ -169,10 +169,15 @@ class ImageSeries(TimeSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -214,8 +219,8 @@ class ImageSeriesExternalFile(ConfiguredBaseModel):
"linkml_meta": {"equals_string": "external_file", "ifabsent": "string(external_file)"}
},
)
starting_frame: Optional[int] = Field(
None,
starting_frame: List[int] = Field(
...,
description="""Each external image may contain one or more consecutive frames of the full ImageSeries. This attribute serves as an index to indicate which frames each file contains, to faciliate random access. The 'starting_frame' attribute, hence, contains a list of frame numbers within the full ImageSeries of the first frame of each file listed in the parent 'external_file' dataset. Zero-based indexing is used (hence, the first element will always be zero). For example, if the 'external_file' dataset has three paths to files and the first file has 5 frames, the second file has 10 frames, and the third file has 20 frames, then this attribute will have values [0, 5, 15]. If there is a single external file that holds all of the frames of the ImageSeries (and so there is a single element in the 'external_file' dataset), then this attribute should have value [0].""",
)
value: Optional[NDArray[Shape["* num_files"], str]] = Field(
@ -270,10 +275,15 @@ class ImageMaskSeries(ImageSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -350,10 +360,15 @@ class OpticalSeries(ImageSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -406,10 +421,15 @@ class IndexSeries(TimeSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,

View file

@ -120,10 +120,15 @@ class AbstractFeatureSeries(TimeSeries):
description="""Description of the features represented in TimeSeries::data.""",
json_schema_extra={"linkml_meta": {"array": {"dimensions": [{"alias": "num_features"}]}}},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -164,8 +169,9 @@ class AbstractFeatureSeriesData(ConfiguredBaseModel):
json_schema_extra={"linkml_meta": {"equals_string": "data", "ifabsent": "string(data)"}},
)
unit: Optional[str] = Field(
None,
"see 'feature_units'",
description="""Since there can be different units for different features, store the units in 'feature_units'. The default value for this attribute is \"see 'feature_units'\".""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(see 'feature_units')"}},
)
value: Optional[
Union[
@ -190,10 +196,15 @@ class AnnotationSeries(TimeSeries):
description="""Annotations made during an experiment.""",
json_schema_extra={"linkml_meta": {"array": {"dimensions": [{"alias": "num_times"}]}}},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -237,10 +248,15 @@ class IntervalSeries(TimeSeries):
description="""Use values >0 if interval started, <0 if interval ended.""",
json_schema_extra={"linkml_meta": {"array": {"dimensions": [{"alias": "num_times"}]}}},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -308,10 +324,15 @@ class DecompositionSeries(TimeSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -351,9 +372,10 @@ class DecompositionSeriesData(ConfiguredBaseModel):
"data",
json_schema_extra={"linkml_meta": {"equals_string": "data", "ifabsent": "string(data)"}},
)
unit: Optional[str] = Field(
None,
unit: str = Field(
"no unit",
description="""Base unit of measurement for working with the data. Actual stored values are not necessarily stored in these units. To access the data in these units, multiply 'data' by 'conversion'.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no unit)"}},
)
value: Optional[NDArray[Shape["* num_times, * num_channels, * num_bands"], float]] = Field(
None,
@ -415,13 +437,11 @@ class DecompositionSeriesBands(DynamicTable):
description="""The standard deviation of Gaussian filters, in Hz.""",
json_schema_extra={"linkml_meta": {"array": {"dimensions": [{"alias": "num_bands"}]}}},
)
colnames: Optional[str] = Field(
None,
colnames: List[str] = Field(
...,
description="""The names of the columns in this table. This should be used to specify an order to the columns.""",
)
description: Optional[str] = Field(
None, description="""Description of what is in this dynamic table."""
)
description: str = Field(..., description="""Description of what is in this dynamic table.""")
id: NDArray[Shape["* num_rows"], int] = Field(
...,
description="""Array of unique identifiers for the rows of this dynamic table.""",
@ -555,13 +575,11 @@ class Units(DynamicTable):
}
},
)
colnames: Optional[str] = Field(
None,
colnames: List[str] = Field(
...,
description="""The names of the columns in this table. This should be used to specify an order to the columns.""",
)
description: Optional[str] = Field(
None, description="""Description of what is in this dynamic table."""
)
description: str = Field(..., description="""Description of what is in this dynamic table.""")
id: NDArray[Shape["* num_rows"], int] = Field(
...,
description="""Array of unique identifiers for the rows of this dynamic table.""",
@ -589,9 +607,7 @@ class UnitsSpikeTimes(VectorData):
None,
description="""The smallest possible difference between two spike times. Usually 1 divided by the acquisition sampling rate from which spike times were extracted, but could be larger if the acquisition time series was downsampled or smaller if the acquisition time series was smoothed/interpolated and it is possible for the spike time to be between samples.""",
)
description: Optional[str] = Field(
None, description="""Description of what these vectors represent."""
)
description: str = Field(..., description="""Description of what these vectors represent.""")
value: Optional[
Union[
NDArray[Shape["* dim0"], Any],

View file

@ -91,10 +91,15 @@ class OptogeneticSeries(TimeSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,

View file

@ -162,10 +162,15 @@ class TwoPhotonSeries(ImageSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -219,10 +224,15 @@ class RoiResponseSeries(TimeSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -356,13 +366,11 @@ class PlaneSegmentation(DynamicTable):
}
},
)
colnames: Optional[str] = Field(
None,
colnames: List[str] = Field(
...,
description="""The names of the columns in this table. This should be used to specify an order to the columns.""",
)
description: Optional[str] = Field(
None, description="""Description of what is in this dynamic table."""
)
description: str = Field(..., description="""Description of what is in this dynamic table.""")
id: NDArray[Shape["* num_rows"], int] = Field(
...,
description="""Array of unique identifiers for the rows of this dynamic table.""",
@ -386,9 +394,7 @@ class PlaneSegmentationImageMask(VectorData):
"linkml_meta": {"equals_string": "image_mask", "ifabsent": "string(image_mask)"}
},
)
description: Optional[str] = Field(
None, description="""Description of what these vectors represent."""
)
description: str = Field(..., description="""Description of what these vectors represent.""")
value: Optional[
Union[
NDArray[Shape["* dim0"], Any],
@ -415,9 +421,7 @@ class PlaneSegmentationPixelMask(VectorData):
x: Optional[int] = Field(None, description="""Pixel x-coordinate.""")
y: Optional[int] = Field(None, description="""Pixel y-coordinate.""")
weight: Optional[float] = Field(None, description="""Weight of the pixel.""")
description: Optional[str] = Field(
None, description="""Description of what these vectors represent."""
)
description: str = Field(..., description="""Description of what these vectors represent.""")
value: Optional[
Union[
NDArray[Shape["* dim0"], Any],
@ -445,9 +449,7 @@ class PlaneSegmentationVoxelMask(VectorData):
y: Optional[int] = Field(None, description="""Voxel y-coordinate.""")
z: Optional[int] = Field(None, description="""Voxel z-coordinate.""")
weight: Optional[float] = Field(None, description="""Weight of the voxel.""")
description: Optional[str] = Field(
None, description="""Description of what these vectors represent."""
)
description: str = Field(..., description="""Description of what these vectors represent.""")
value: Optional[
Union[
NDArray[Shape["* dim0"], Any],
@ -523,12 +525,14 @@ class ImagingPlaneManifold(ConfiguredBaseModel):
},
)
conversion: Optional[float] = Field(
None,
1.0,
description="""Scalar to multiply each element in data to convert it to the specified 'unit'. If the data are stored in acquisition system units or other units that require a conversion to be interpretable, multiply the data by 'conversion' to convert the data to the specified 'unit'. e.g. if the data acquisition system stores values in this object as pixels from x = -500 to 499, y = -500 to 499 that correspond to a 2 m x 2 m range, then the 'conversion' multiplier to get from raw data acquisition pixel units to meters is 2/1000.""",
json_schema_extra={"linkml_meta": {"ifabsent": "float(1.0)"}},
)
unit: Optional[str] = Field(
None,
"meters",
description="""Base unit of measurement for working with the data. The default value is 'meters'.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(meters)"}},
)
value: Optional[
Union[
@ -551,8 +555,10 @@ class ImagingPlaneOriginCoords(ConfiguredBaseModel):
"linkml_meta": {"equals_string": "origin_coords", "ifabsent": "string(origin_coords)"}
},
)
unit: Optional[str] = Field(
None, description="""Measurement units for origin_coords. The default value is 'meters'."""
unit: str = Field(
"meters",
description="""Measurement units for origin_coords. The default value is 'meters'.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(meters)"}},
)
value: Optional[Union[NDArray[Shape["2 x_y"], float], NDArray[Shape["3 x_y_z"], float]]] = (
Field(None)
@ -572,8 +578,10 @@ class ImagingPlaneGridSpacing(ConfiguredBaseModel):
"linkml_meta": {"equals_string": "grid_spacing", "ifabsent": "string(grid_spacing)"}
},
)
unit: Optional[str] = Field(
None, description="""Measurement units for grid_spacing. The default value is 'meters'."""
unit: str = Field(
"meters",
description="""Measurement units for grid_spacing. The default value is 'meters'.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(meters)"}},
)
value: Optional[Union[NDArray[Shape["2 x_y"], float], NDArray[Shape["3 x_y_z"], float]]] = (
Field(None)

View file

@ -127,14 +127,12 @@ class ImagingRetinotopyAxis1PhaseMap(ConfiguredBaseModel):
}
},
)
dimension: Optional[int] = Field(
None,
dimension: List[int] = Field(
...,
description="""Number of rows and columns in the image. NOTE: row, column representation is equivalent to height, width.""",
)
field_of_view: Optional[float] = Field(None, description="""Size of viewing area, in meters.""")
unit: Optional[str] = Field(
None, description="""Unit that axis data is stored in (e.g., degrees)."""
)
field_of_view: List[float] = Field(..., description="""Size of viewing area, in meters.""")
unit: str = Field(..., description="""Unit that axis data is stored in (e.g., degrees).""")
value: Optional[NDArray[Shape["* num_rows, * num_cols"], float]] = Field(
None,
json_schema_extra={
@ -159,14 +157,12 @@ class ImagingRetinotopyAxis1PowerMap(ConfiguredBaseModel):
}
},
)
dimension: Optional[int] = Field(
None,
dimension: List[int] = Field(
...,
description="""Number of rows and columns in the image. NOTE: row, column representation is equivalent to height, width.""",
)
field_of_view: Optional[float] = Field(None, description="""Size of viewing area, in meters.""")
unit: Optional[str] = Field(
None, description="""Unit that axis data is stored in (e.g., degrees)."""
)
field_of_view: List[float] = Field(..., description="""Size of viewing area, in meters.""")
unit: str = Field(..., description="""Unit that axis data is stored in (e.g., degrees).""")
value: Optional[NDArray[Shape["* num_rows, * num_cols"], float]] = Field(
None,
json_schema_extra={
@ -191,14 +187,12 @@ class ImagingRetinotopyAxis2PhaseMap(ConfiguredBaseModel):
}
},
)
dimension: Optional[int] = Field(
None,
dimension: List[int] = Field(
...,
description="""Number of rows and columns in the image. NOTE: row, column representation is equivalent to height, width.""",
)
field_of_view: Optional[float] = Field(None, description="""Size of viewing area, in meters.""")
unit: Optional[str] = Field(
None, description="""Unit that axis data is stored in (e.g., degrees)."""
)
field_of_view: List[float] = Field(..., description="""Size of viewing area, in meters.""")
unit: str = Field(..., description="""Unit that axis data is stored in (e.g., degrees).""")
value: Optional[NDArray[Shape["* num_rows, * num_cols"], float]] = Field(
None,
json_schema_extra={
@ -223,14 +217,12 @@ class ImagingRetinotopyAxis2PowerMap(ConfiguredBaseModel):
}
},
)
dimension: Optional[int] = Field(
None,
dimension: List[int] = Field(
...,
description="""Number of rows and columns in the image. NOTE: row, column representation is equivalent to height, width.""",
)
field_of_view: Optional[float] = Field(None, description="""Size of viewing area, in meters.""")
unit: Optional[str] = Field(
None, description="""Unit that axis data is stored in (e.g., degrees)."""
)
field_of_view: List[float] = Field(..., description="""Size of viewing area, in meters.""")
unit: str = Field(..., description="""Unit that axis data is stored in (e.g., degrees).""")
value: Optional[NDArray[Shape["* num_rows, * num_cols"], float]] = Field(
None,
json_schema_extra={
@ -255,19 +247,17 @@ class ImagingRetinotopyFocalDepthImage(ConfiguredBaseModel):
}
},
)
bits_per_pixel: Optional[int] = Field(
None,
bits_per_pixel: int = Field(
...,
description="""Number of bits used to represent each value. This is necessary to determine maximum (white) pixel value.""",
)
dimension: Optional[int] = Field(
None,
dimension: List[int] = Field(
...,
description="""Number of rows and columns in the image. NOTE: row, column representation is equivalent to height, width.""",
)
field_of_view: Optional[float] = Field(None, description="""Size of viewing area, in meters.""")
focal_depth: Optional[float] = Field(None, description="""Focal depth offset, in meters.""")
format: Optional[str] = Field(
None, description="""Format of image. Right now only 'raw' is supported."""
)
field_of_view: List[float] = Field(..., description="""Size of viewing area, in meters.""")
focal_depth: float = Field(..., description="""Focal depth offset, in meters.""")
format: str = Field(..., description="""Format of image. Right now only 'raw' is supported.""")
value: Optional[NDArray[Shape["* num_rows, * num_cols"], int]] = Field(
None,
json_schema_extra={
@ -289,11 +279,11 @@ class ImagingRetinotopySignMap(ConfiguredBaseModel):
"linkml_meta": {"equals_string": "sign_map", "ifabsent": "string(sign_map)"}
},
)
dimension: Optional[int] = Field(
None,
dimension: List[int] = Field(
...,
description="""Number of rows and columns in the image. NOTE: row, column representation is equivalent to height, width.""",
)
field_of_view: Optional[float] = Field(None, description="""Size of viewing area, in meters.""")
field_of_view: List[float] = Field(..., description="""Size of viewing area, in meters.""")
value: Optional[NDArray[Shape["* num_rows, * num_cols"], float]] = Field(
None,
json_schema_extra={
@ -318,18 +308,16 @@ class ImagingRetinotopyVasculatureImage(ConfiguredBaseModel):
}
},
)
bits_per_pixel: Optional[int] = Field(
None,
bits_per_pixel: int = Field(
...,
description="""Number of bits used to represent each value. This is necessary to determine maximum (white) pixel value""",
)
dimension: Optional[int] = Field(
None,
dimension: List[int] = Field(
...,
description="""Number of rows and columns in the image. NOTE: row, column representation is equivalent to height, width.""",
)
field_of_view: Optional[float] = Field(None, description="""Size of viewing area, in meters.""")
format: Optional[str] = Field(
None, description="""Format of image. Right now only 'raw' is supported."""
)
field_of_view: List[float] = Field(..., description="""Size of viewing area, in meters.""")
format: str = Field(..., description="""Format of image. Right now only 'raw' is supported.""")
value: Optional[NDArray[Shape["* num_rows, * num_cols"], int]] = Field(
None,
json_schema_extra={

View file

@ -123,9 +123,7 @@ class TimeSeriesReferenceVectorData(VectorData):
description="""Number of data samples available in this time series, during this epoch""",
)
timeseries: TimeSeries = Field(..., description="""The TimeSeries that this index applies to""")
description: Optional[str] = Field(
None, description="""Description of what these vectors represent."""
)
description: str = Field(..., description="""Description of what these vectors represent.""")
value: Optional[
Union[
NDArray[Shape["* dim0"], Any],
@ -214,10 +212,15 @@ class TimeSeries(NWBDataInterface):
)
name: str = Field(...)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
data: TimeSeriesData = Field(
...,
@ -262,19 +265,21 @@ class TimeSeriesData(ConfiguredBaseModel):
json_schema_extra={"linkml_meta": {"equals_string": "data", "ifabsent": "string(data)"}},
)
conversion: Optional[float] = Field(
None,
1.0,
description="""Scalar to multiply each element in data to convert it to the specified 'unit'. If the data are stored in acquisition system units or other units that require a conversion to be interpretable, multiply the data by 'conversion' to convert the data to the specified 'unit'. e.g. if the data acquisition system stores values in this object as signed 16-bit integers (int16 range -32,768 to 32,767) that correspond to a 5V range (-2.5V to 2.5V), and the data acquisition system gain is 8000X, then the 'conversion' multiplier to get from raw data acquisition values to recorded volts is 2.5/32768/8000 = 9.5367e-9.""",
json_schema_extra={"linkml_meta": {"ifabsent": "float(1.0)"}},
)
offset: Optional[float] = Field(
None,
description="""Scalar to add to the data after scaling by 'conversion' to finalize its coercion to the specified 'unit'. Two common examples of this include (a) data stored in an unsigned type that requires a shift after scaling to re-center the data, and (b) specialized recording devices that naturally cause a scalar offset with respect to the true units.""",
)
resolution: Optional[float] = Field(
None,
-1.0,
description="""Smallest meaningful difference between values in data, stored in the specified by unit, e.g., the change in value of the least significant bit, or a larger number if signal noise is known to be present. If unknown, use -1.0.""",
json_schema_extra={"linkml_meta": {"ifabsent": "float(-1.0)"}},
)
unit: Optional[str] = Field(
None,
unit: str = Field(
...,
description="""Base unit of measurement for working with the data. Actual stored values are not necessarily stored in these units. To access the data in these units, multiply 'data' by 'conversion' and add 'offset'.""",
)
continuity: Optional[str] = Field(
@ -304,9 +309,13 @@ class TimeSeriesStartingTime(ConfiguredBaseModel):
"linkml_meta": {"equals_string": "starting_time", "ifabsent": "string(starting_time)"}
},
)
rate: Optional[float] = Field(None, description="""Sampling rate, in Hz.""")
unit: Optional[str] = Field(
None, description="""Unit of measurement for time, which is fixed to 'seconds'."""
rate: float = Field(..., description="""Sampling rate, in Hz.""")
unit: Literal["seconds"] = Field(
"seconds",
description="""Unit of measurement for time, which is fixed to 'seconds'.""",
json_schema_extra={
"linkml_meta": {"equals_string": "seconds", "ifabsent": "string(seconds)"}
},
)
value: float = Field(...)
@ -352,9 +361,7 @@ class Images(NWBDataInterface):
)
name: str = Field("Images", json_schema_extra={"linkml_meta": {"ifabsent": "string(Images)"}})
description: Optional[str] = Field(
None, description="""Description of this collection of images."""
)
description: str = Field(..., description="""Description of this collection of images.""")
image: List[Image] = Field(..., description="""Images stored in this collection.""")
order_of_images: Named[Optional[ImageReferences]] = Field(
None,

View file

@ -84,10 +84,15 @@ class SpatialSeries(TimeSeries):
reference_frame: Optional[str] = Field(
None, description="""Description defining what exactly 'straight-ahead' means."""
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -128,8 +133,9 @@ class SpatialSeriesData(ConfiguredBaseModel):
json_schema_extra={"linkml_meta": {"equals_string": "data", "ifabsent": "string(data)"}},
)
unit: Optional[str] = Field(
None,
"meters",
description="""Base unit of measurement for working with the data. The default value is 'meters'. Actual stored values are not necessarily stored in these units. To access the data in these units, multiply 'data' by 'conversion' and add 'offset'.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(meters)"}},
)
value: Optional[
Union[

View file

@ -134,10 +134,15 @@ class ElectricalSeries(TimeSeries):
description="""Channel-specific conversion factor. Multiply the data in the 'data' dataset by these values along the channel axis (as indicated by axis attribute) AND by the global conversion factor in the 'conversion' attribute of 'data' to get the data values in Volts, i.e, data in Volts = data * data.conversion * channel_conversion. This approach allows for both global and per-channel data conversion factors needed to support the storage of electrical recordings as native values generated by data acquisition systems. If this dataset is not present, then there is no channel-specific conversion factor, i.e. it is 1 for all channels.""",
json_schema_extra={"linkml_meta": {"array": {"dimensions": [{"alias": "num_channels"}]}}},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -206,10 +211,15 @@ class SpikeEventSeries(ElectricalSeries):
description="""Channel-specific conversion factor. Multiply the data in the 'data' dataset by these values along the channel axis (as indicated by axis attribute) AND by the global conversion factor in the 'conversion' attribute of 'data' to get the data values in Volts, i.e, data in Volts = data * data.conversion * channel_conversion. This approach allows for both global and per-channel data conversion factors needed to support the storage of electrical recordings as native values generated by data acquisition systems. If this dataset is not present, then there is no channel-specific conversion factor, i.e. it is 1 for all channels.""",
json_schema_extra={"linkml_meta": {"array": {"dimensions": [{"alias": "num_channels"}]}}},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -377,9 +387,9 @@ class ElectrodeGroup(NWBContainer):
)
name: str = Field(...)
description: Optional[str] = Field(None, description="""Description of this electrode group.""")
location: Optional[str] = Field(
None,
description: str = Field(..., description="""Description of this electrode group.""")
location: str = Field(
...,
description="""Location of electrode group. Specify the area, layer, comments on estimation of area/layer, etc. Use standard atlas names for anatomical regions when possible.""",
)
position: Optional[ElectrodeGroupPosition] = Field(

View file

@ -159,13 +159,11 @@ class TimeIntervals(DynamicTable):
}
},
)
colnames: Optional[str] = Field(
None,
colnames: List[str] = Field(
...,
description="""The names of the columns in this table. This should be used to specify an order to the columns.""",
)
description: Optional[str] = Field(
None, description="""Description of what is in this dynamic table."""
)
description: str = Field(..., description="""Description of what is in this dynamic table.""")
id: NDArray[Shape["* num_rows"], int] = Field(
...,
description="""Array of unique identifiers for the rows of this dynamic table.""",

View file

@ -105,9 +105,7 @@ class ScratchData(NWBData):
)
name: str = Field(...)
notes: Optional[str] = Field(
None, description="""Any notes the user has about the dataset being stored"""
)
notes: str = Field(..., description="""Any notes the user has about the dataset being stored""")
class NWBFile(NWBContainer):
@ -123,9 +121,10 @@ class NWBFile(NWBContainer):
"root",
json_schema_extra={"linkml_meta": {"equals_string": "root", "ifabsent": "string(root)"}},
)
nwb_version: Optional[str] = Field(
None,
nwb_version: Literal["2.5.0"] = Field(
"2.5.0",
description="""File version string. Use semantic versioning, e.g. 1.2.1. This will be the name of the format with trailing major, minor and patch numbers.""",
json_schema_extra={"linkml_meta": {"equals_string": "2.5.0", "ifabsent": "string(2.5.0)"}},
)
file_create_date: NDArray[Shape["* num_modifications"], datetime] = Field(
...,
@ -332,7 +331,7 @@ class GeneralSourceScript(ConfiguredBaseModel):
"linkml_meta": {"equals_string": "source_script", "ifabsent": "string(source_script)"}
},
)
file_name: Optional[str] = Field(None, description="""Name of script file.""")
file_name: str = Field(..., description="""Name of script file.""")
value: str = Field(...)
@ -475,13 +474,11 @@ class ExtracellularEphysElectrodes(DynamicTable):
}
},
)
colnames: Optional[str] = Field(
None,
colnames: List[str] = Field(
...,
description="""The names of the columns in this table. This should be used to specify an order to the columns.""",
)
description: Optional[str] = Field(
None, description="""Description of what is in this dynamic table."""
)
description: str = Field(..., description="""Description of what is in this dynamic table.""")
id: NDArray[Shape["* num_rows"], int] = Field(
...,
description="""Array of unique identifiers for the rows of this dynamic table.""",

View file

@ -114,8 +114,8 @@ class PatchClampSeries(TimeSeries):
)
name: str = Field(...)
stimulus_description: Optional[str] = Field(
None, description="""Protocol/stimulus name for this patch-clamp dataset."""
stimulus_description: str = Field(
..., description="""Protocol/stimulus name for this patch-clamp dataset."""
)
sweep_number: Optional[int] = Field(
None, description="""Sweep number, allows to group different PatchClampSeries together."""
@ -134,10 +134,15 @@ class PatchClampSeries(TimeSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -177,8 +182,8 @@ class PatchClampSeriesData(ConfiguredBaseModel):
"data",
json_schema_extra={"linkml_meta": {"equals_string": "data", "ifabsent": "string(data)"}},
)
unit: Optional[str] = Field(
None,
unit: str = Field(
...,
description="""Base unit of measurement for working with the data. Actual stored values are not necessarily stored in these units. To access the data in these units, multiply 'data' by 'conversion' and add 'offset'.""",
)
value: Optional[NDArray[Shape["* num_times"], float]] = Field(
@ -202,8 +207,8 @@ class CurrentClampSeries(PatchClampSeries):
capacitance_compensation: Optional[float] = Field(
None, description="""Capacitance compensation, in farads."""
)
stimulus_description: Optional[str] = Field(
None, description="""Protocol/stimulus name for this patch-clamp dataset."""
stimulus_description: str = Field(
..., description="""Protocol/stimulus name for this patch-clamp dataset."""
)
sweep_number: Optional[int] = Field(
None, description="""Sweep number, allows to group different PatchClampSeries together."""
@ -221,10 +226,15 @@ class CurrentClampSeries(PatchClampSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -264,9 +274,10 @@ class CurrentClampSeriesData(ConfiguredBaseModel):
"data",
json_schema_extra={"linkml_meta": {"equals_string": "data", "ifabsent": "string(data)"}},
)
unit: Optional[str] = Field(
None,
unit: Literal["volts"] = Field(
"volts",
description="""Base unit of measurement for working with the data. which is fixed to 'volts'. Actual stored values are not necessarily stored in these units. To access the data in these units, multiply 'data' by 'conversion' and add 'offset'.""",
json_schema_extra={"linkml_meta": {"equals_string": "volts", "ifabsent": "string(volts)"}},
)
value: Any = Field(...)
@ -281,9 +292,10 @@ class IZeroClampSeries(CurrentClampSeries):
)
name: str = Field(...)
stimulus_description: Optional[str] = Field(
None,
stimulus_description: Literal["N/A"] = Field(
"N/A",
description="""An IZeroClampSeries has no stimulus, so this attribute is automatically set to \"N/A\"""",
json_schema_extra={"linkml_meta": {"equals_string": "N/A", "ifabsent": "string(N/A)"}},
)
bias_current: float = Field(..., description="""Bias current, in amps, fixed to 0.0.""")
bridge_balance: float = Field(..., description="""Bridge balance, in ohms, fixed to 0.0.""")
@ -307,10 +319,15 @@ class IZeroClampSeries(CurrentClampSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -350,8 +367,8 @@ class CurrentClampStimulusSeries(PatchClampSeries):
name: str = Field(...)
data: CurrentClampStimulusSeriesData = Field(..., description="""Stimulus current applied.""")
stimulus_description: Optional[str] = Field(
None, description="""Protocol/stimulus name for this patch-clamp dataset."""
stimulus_description: str = Field(
..., description="""Protocol/stimulus name for this patch-clamp dataset."""
)
sweep_number: Optional[int] = Field(
None, description="""Sweep number, allows to group different PatchClampSeries together."""
@ -369,10 +386,15 @@ class CurrentClampStimulusSeries(PatchClampSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -412,9 +434,12 @@ class CurrentClampStimulusSeriesData(ConfiguredBaseModel):
"data",
json_schema_extra={"linkml_meta": {"equals_string": "data", "ifabsent": "string(data)"}},
)
unit: Optional[str] = Field(
None,
unit: Literal["amperes"] = Field(
"amperes",
description="""Base unit of measurement for working with the data. which is fixed to 'amperes'. Actual stored values are not necessarily stored in these units. To access the data in these units, multiply 'data' by 'conversion' and add 'offset'.""",
json_schema_extra={
"linkml_meta": {"equals_string": "amperes", "ifabsent": "string(amperes)"}
},
)
value: Any = Field(...)
@ -451,8 +476,8 @@ class VoltageClampSeries(PatchClampSeries):
whole_cell_series_resistance_comp: Optional[VoltageClampSeriesWholeCellSeriesResistanceComp] = (
Field(None, description="""Whole cell series resistance compensation, in ohms.""")
)
stimulus_description: Optional[str] = Field(
None, description="""Protocol/stimulus name for this patch-clamp dataset."""
stimulus_description: str = Field(
..., description="""Protocol/stimulus name for this patch-clamp dataset."""
)
sweep_number: Optional[int] = Field(
None, description="""Sweep number, allows to group different PatchClampSeries together."""
@ -470,10 +495,15 @@ class VoltageClampSeries(PatchClampSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -513,9 +543,12 @@ class VoltageClampSeriesData(ConfiguredBaseModel):
"data",
json_schema_extra={"linkml_meta": {"equals_string": "data", "ifabsent": "string(data)"}},
)
unit: Optional[str] = Field(
None,
unit: Literal["amperes"] = Field(
"amperes",
description="""Base unit of measurement for working with the data. which is fixed to 'amperes'. Actual stored values are not necessarily stored in these units. To access the data in these units, multiply 'data' by 'conversion' and add 'offset'.""",
json_schema_extra={
"linkml_meta": {"equals_string": "amperes", "ifabsent": "string(amperes)"}
},
)
value: Any = Field(...)
@ -536,9 +569,12 @@ class VoltageClampSeriesCapacitanceFast(ConfiguredBaseModel):
}
},
)
unit: Optional[str] = Field(
None,
unit: Literal["farads"] = Field(
"farads",
description="""Unit of measurement for capacitance_fast, which is fixed to 'farads'.""",
json_schema_extra={
"linkml_meta": {"equals_string": "farads", "ifabsent": "string(farads)"}
},
)
value: float = Field(...)
@ -559,9 +595,12 @@ class VoltageClampSeriesCapacitanceSlow(ConfiguredBaseModel):
}
},
)
unit: Optional[str] = Field(
None,
unit: Literal["farads"] = Field(
"farads",
description="""Unit of measurement for capacitance_fast, which is fixed to 'farads'.""",
json_schema_extra={
"linkml_meta": {"equals_string": "farads", "ifabsent": "string(farads)"}
},
)
value: float = Field(...)
@ -582,9 +621,10 @@ class VoltageClampSeriesResistanceCompBandwidth(ConfiguredBaseModel):
}
},
)
unit: Optional[str] = Field(
None,
unit: Literal["hertz"] = Field(
"hertz",
description="""Unit of measurement for resistance_comp_bandwidth, which is fixed to 'hertz'.""",
json_schema_extra={"linkml_meta": {"equals_string": "hertz", "ifabsent": "string(hertz)"}},
)
value: float = Field(...)
@ -605,9 +645,12 @@ class VoltageClampSeriesResistanceCompCorrection(ConfiguredBaseModel):
}
},
)
unit: Optional[str] = Field(
None,
unit: Literal["percent"] = Field(
"percent",
description="""Unit of measurement for resistance_comp_correction, which is fixed to 'percent'.""",
json_schema_extra={
"linkml_meta": {"equals_string": "percent", "ifabsent": "string(percent)"}
},
)
value: float = Field(...)
@ -628,9 +671,12 @@ class VoltageClampSeriesResistanceCompPrediction(ConfiguredBaseModel):
}
},
)
unit: Optional[str] = Field(
None,
unit: Literal["percent"] = Field(
"percent",
description="""Unit of measurement for resistance_comp_prediction, which is fixed to 'percent'.""",
json_schema_extra={
"linkml_meta": {"equals_string": "percent", "ifabsent": "string(percent)"}
},
)
value: float = Field(...)
@ -651,9 +697,12 @@ class VoltageClampSeriesWholeCellCapacitanceComp(ConfiguredBaseModel):
}
},
)
unit: Optional[str] = Field(
None,
unit: Literal["farads"] = Field(
"farads",
description="""Unit of measurement for whole_cell_capacitance_comp, which is fixed to 'farads'.""",
json_schema_extra={
"linkml_meta": {"equals_string": "farads", "ifabsent": "string(farads)"}
},
)
value: float = Field(...)
@ -674,9 +723,10 @@ class VoltageClampSeriesWholeCellSeriesResistanceComp(ConfiguredBaseModel):
}
},
)
unit: Optional[str] = Field(
None,
unit: Literal["ohms"] = Field(
"ohms",
description="""Unit of measurement for whole_cell_series_resistance_comp, which is fixed to 'ohms'.""",
json_schema_extra={"linkml_meta": {"equals_string": "ohms", "ifabsent": "string(ohms)"}},
)
value: float = Field(...)
@ -692,8 +742,8 @@ class VoltageClampStimulusSeries(PatchClampSeries):
name: str = Field(...)
data: VoltageClampStimulusSeriesData = Field(..., description="""Stimulus voltage applied.""")
stimulus_description: Optional[str] = Field(
None, description="""Protocol/stimulus name for this patch-clamp dataset."""
stimulus_description: str = Field(
..., description="""Protocol/stimulus name for this patch-clamp dataset."""
)
sweep_number: Optional[int] = Field(
None, description="""Sweep number, allows to group different PatchClampSeries together."""
@ -711,10 +761,15 @@ class VoltageClampStimulusSeries(PatchClampSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -754,9 +809,10 @@ class VoltageClampStimulusSeriesData(ConfiguredBaseModel):
"data",
json_schema_extra={"linkml_meta": {"equals_string": "data", "ifabsent": "string(data)"}},
)
unit: Optional[str] = Field(
None,
unit: Literal["volts"] = Field(
"volts",
description="""Base unit of measurement for working with the data. which is fixed to 'volts'. Actual stored values are not necessarily stored in these units. To access the data in these units, multiply 'data' by 'conversion' and add 'offset'.""",
json_schema_extra={"linkml_meta": {"equals_string": "volts", "ifabsent": "string(volts)"}},
)
value: Any = Field(...)
@ -833,13 +889,11 @@ class SweepTable(DynamicTable):
}
},
)
colnames: Optional[str] = Field(
None,
colnames: List[str] = Field(
...,
description="""The names of the columns in this table. This should be used to specify an order to the columns.""",
)
description: Optional[str] = Field(
None, description="""Description of what is in this dynamic table."""
)
description: str = Field(..., description="""Description of what is in this dynamic table.""")
id: NDArray[Shape["* num_rows"], int] = Field(
...,
description="""Array of unique identifiers for the rows of this dynamic table.""",
@ -860,14 +914,21 @@ class IntracellularElectrodesTable(DynamicTable):
)
name: str = Field(...)
description: Optional[str] = Field(
None, description="""Description of what is in this dynamic table."""
description: Literal["Table for storing intracellular electrode related metadata."] = Field(
"Table for storing intracellular electrode related metadata.",
description="""Description of what is in this dynamic table.""",
json_schema_extra={
"linkml_meta": {
"equals_string": "Table for storing intracellular electrode related metadata.",
"ifabsent": "string(Table for storing intracellular electrode related metadata.)",
}
},
)
electrode: List[IntracellularElectrode] = Field(
..., description="""Column for storing the reference to the intracellular electrode."""
)
colnames: Optional[str] = Field(
None,
colnames: List[str] = Field(
...,
description="""The names of the columns in this table. This should be used to specify an order to the columns.""",
)
id: NDArray[Shape["* num_rows"], int] = Field(
@ -890,8 +951,15 @@ class IntracellularStimuliTable(DynamicTable):
)
name: str = Field(...)
description: Optional[str] = Field(
None, description="""Description of what is in this dynamic table."""
description: Literal["Table for storing intracellular stimulus related metadata."] = Field(
"Table for storing intracellular stimulus related metadata.",
description="""Description of what is in this dynamic table.""",
json_schema_extra={
"linkml_meta": {
"equals_string": "Table for storing intracellular stimulus related metadata.",
"ifabsent": "string(Table for storing intracellular stimulus related metadata.)",
}
},
)
stimulus: Named[TimeSeriesReferenceVectorData] = Field(
...,
@ -905,8 +973,8 @@ class IntracellularStimuliTable(DynamicTable):
}
},
)
colnames: Optional[str] = Field(
None,
colnames: List[str] = Field(
...,
description="""The names of the columns in this table. This should be used to specify an order to the columns.""",
)
id: NDArray[Shape["* num_rows"], int] = Field(
@ -929,8 +997,15 @@ class IntracellularResponsesTable(DynamicTable):
)
name: str = Field(...)
description: Optional[str] = Field(
None, description="""Description of what is in this dynamic table."""
description: Literal["Table for storing intracellular response related metadata."] = Field(
"Table for storing intracellular response related metadata.",
description="""Description of what is in this dynamic table.""",
json_schema_extra={
"linkml_meta": {
"equals_string": "Table for storing intracellular response related metadata.",
"ifabsent": "string(Table for storing intracellular response related metadata.)",
}
},
)
response: Named[TimeSeriesReferenceVectorData] = Field(
...,
@ -944,8 +1019,8 @@ class IntracellularResponsesTable(DynamicTable):
}
},
)
colnames: Optional[str] = Field(
None,
colnames: List[str] = Field(
...,
description="""The names of the columns in this table. This should be used to specify an order to the columns.""",
)
id: NDArray[Shape["* num_rows"], int] = Field(
@ -976,9 +1051,27 @@ class IntracellularRecordingsTable(AlignedDynamicTable):
}
},
)
description: Optional[str] = Field(
None,
description: Literal[
"A table to group together a stimulus and response from a single electrode and a single"
" simultaneous recording and for storing metadata about the intracellular recording."
] = Field(
"A table to group together a stimulus and response from a single electrode and a single"
" simultaneous recording and for storing metadata about the intracellular recording.",
description="""Description of the contents of this table. Inherited from AlignedDynamicTable and overwritten here to fix the value of the attribute.""",
json_schema_extra={
"linkml_meta": {
"equals_string": (
"A table to group together a stimulus and response from a "
"single electrode and a single simultaneous recording and "
"for storing metadata about the intracellular recording."
),
"ifabsent": (
"string(A table to group together a stimulus and response from a "
"single electrode and a single simultaneous recording and for "
"storing metadata about the intracellular recording.)"
),
}
},
)
electrodes: IntracellularElectrodesTable = Field(
..., description="""Table for storing intracellular electrode related metadata."""
@ -992,8 +1085,8 @@ class IntracellularRecordingsTable(AlignedDynamicTable):
value: Optional[List[DynamicTable]] = Field(
None, json_schema_extra={"linkml_meta": {"any_of": [{"range": "DynamicTable"}]}}
)
colnames: Optional[str] = Field(
None,
colnames: List[str] = Field(
...,
description="""The names of the columns in this table. This should be used to specify an order to the columns.""",
)
id: NDArray[Shape["* num_rows"], int] = Field(
@ -1040,13 +1133,11 @@ class SimultaneousRecordingsTable(DynamicTable):
}
},
)
colnames: Optional[str] = Field(
None,
colnames: List[str] = Field(
...,
description="""The names of the columns in this table. This should be used to specify an order to the columns.""",
)
description: Optional[str] = Field(
None, description="""Description of what is in this dynamic table."""
)
description: str = Field(..., description="""Description of what is in this dynamic table.""")
id: NDArray[Shape["* num_rows"], int] = Field(
...,
description="""Array of unique identifiers for the rows of this dynamic table.""",
@ -1070,12 +1161,12 @@ class SimultaneousRecordingsTableRecordings(DynamicTableRegion):
"linkml_meta": {"equals_string": "recordings", "ifabsent": "string(recordings)"}
},
)
table: Optional[IntracellularRecordingsTable] = Field(
None,
table: IntracellularRecordingsTable = Field(
...,
description="""Reference to the IntracellularRecordingsTable table that this table region applies to. This specializes the attribute inherited from DynamicTableRegion to fix the type of table that can be referenced here.""",
)
description: Optional[str] = Field(
None, description="""Description of what this table region points to."""
description: str = Field(
..., description="""Description of what this table region points to."""
)
value: Optional[
Union[
@ -1130,13 +1221,11 @@ class SequentialRecordingsTable(DynamicTable):
}
},
)
colnames: Optional[str] = Field(
None,
colnames: List[str] = Field(
...,
description="""The names of the columns in this table. This should be used to specify an order to the columns.""",
)
description: Optional[str] = Field(
None, description="""Description of what is in this dynamic table."""
)
description: str = Field(..., description="""Description of what is in this dynamic table.""")
id: NDArray[Shape["* num_rows"], int] = Field(
...,
description="""Array of unique identifiers for the rows of this dynamic table.""",
@ -1163,12 +1252,12 @@ class SequentialRecordingsTableSimultaneousRecordings(DynamicTableRegion):
}
},
)
table: Optional[SimultaneousRecordingsTable] = Field(
None,
table: SimultaneousRecordingsTable = Field(
...,
description="""Reference to the SimultaneousRecordingsTable table that this table region applies to. This specializes the attribute inherited from DynamicTableRegion to fix the type of table that can be referenced here.""",
)
description: Optional[str] = Field(
None, description="""Description of what this table region points to."""
description: str = Field(
..., description="""Description of what this table region points to."""
)
value: Optional[
Union[
@ -1211,13 +1300,11 @@ class RepetitionsTable(DynamicTable):
}
},
)
colnames: Optional[str] = Field(
None,
colnames: List[str] = Field(
...,
description="""The names of the columns in this table. This should be used to specify an order to the columns.""",
)
description: Optional[str] = Field(
None, description="""Description of what is in this dynamic table."""
)
description: str = Field(..., description="""Description of what is in this dynamic table.""")
id: NDArray[Shape["* num_rows"], int] = Field(
...,
description="""Array of unique identifiers for the rows of this dynamic table.""",
@ -1244,12 +1331,12 @@ class RepetitionsTableSequentialRecordings(DynamicTableRegion):
}
},
)
table: Optional[SequentialRecordingsTable] = Field(
None,
table: SequentialRecordingsTable = Field(
...,
description="""Reference to the SequentialRecordingsTable table that this table region applies to. This specializes the attribute inherited from DynamicTableRegion to fix the type of table that can be referenced here.""",
)
description: Optional[str] = Field(
None, description="""Description of what this table region points to."""
description: str = Field(
..., description="""Description of what this table region points to."""
)
value: Optional[
Union[
@ -1294,13 +1381,11 @@ class ExperimentalConditionsTable(DynamicTable):
}
},
)
colnames: Optional[str] = Field(
None,
colnames: List[str] = Field(
...,
description="""The names of the columns in this table. This should be used to specify an order to the columns.""",
)
description: Optional[str] = Field(
None, description="""Description of what is in this dynamic table."""
)
description: str = Field(..., description="""Description of what is in this dynamic table.""")
id: NDArray[Shape["* num_rows"], int] = Field(
...,
description="""Array of unique identifiers for the rows of this dynamic table.""",
@ -1324,12 +1409,12 @@ class ExperimentalConditionsTableRepetitions(DynamicTableRegion):
"linkml_meta": {"equals_string": "repetitions", "ifabsent": "string(repetitions)"}
},
)
table: Optional[RepetitionsTable] = Field(
None,
table: RepetitionsTable = Field(
...,
description="""Reference to the RepetitionsTable table that this table region applies to. This specializes the attribute inherited from DynamicTableRegion to fix the type of table that can be referenced here.""",
)
description: Optional[str] = Field(
None, description="""Description of what this table region points to."""
description: str = Field(
..., description="""Description of what this table region points to."""
)
value: Optional[
Union[

View file

@ -175,10 +175,15 @@ class ImageSeries(TimeSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -220,8 +225,8 @@ class ImageSeriesExternalFile(ConfiguredBaseModel):
"linkml_meta": {"equals_string": "external_file", "ifabsent": "string(external_file)"}
},
)
starting_frame: Optional[int] = Field(
None,
starting_frame: List[int] = Field(
...,
description="""Each external image may contain one or more consecutive frames of the full ImageSeries. This attribute serves as an index to indicate which frames each file contains, to faciliate random access. The 'starting_frame' attribute, hence, contains a list of frame numbers within the full ImageSeries of the first frame of each file listed in the parent 'external_file' dataset. Zero-based indexing is used (hence, the first element will always be zero). For example, if the 'external_file' dataset has three paths to files and the first file has 5 frames, the second file has 10 frames, and the third file has 20 frames, then this attribute will have values [0, 5, 15]. If there is a single external file that holds all of the frames of the ImageSeries (and so there is a single element in the 'external_file' dataset), then this attribute should have value [0].""",
)
value: Optional[NDArray[Shape["* num_files"], str]] = Field(
@ -276,10 +281,15 @@ class ImageMaskSeries(ImageSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -356,10 +366,15 @@ class OpticalSeries(ImageSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -421,10 +436,15 @@ class IndexSeries(TimeSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,

View file

@ -120,10 +120,15 @@ class AbstractFeatureSeries(TimeSeries):
description="""Description of the features represented in TimeSeries::data.""",
json_schema_extra={"linkml_meta": {"array": {"dimensions": [{"alias": "num_features"}]}}},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -164,8 +169,9 @@ class AbstractFeatureSeriesData(ConfiguredBaseModel):
json_schema_extra={"linkml_meta": {"equals_string": "data", "ifabsent": "string(data)"}},
)
unit: Optional[str] = Field(
None,
"see 'feature_units'",
description="""Since there can be different units for different features, store the units in 'feature_units'. The default value for this attribute is \"see 'feature_units'\".""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(see 'feature_units')"}},
)
value: Optional[
Union[
@ -190,10 +196,15 @@ class AnnotationSeries(TimeSeries):
description="""Annotations made during an experiment.""",
json_schema_extra={"linkml_meta": {"array": {"dimensions": [{"alias": "num_times"}]}}},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -237,10 +248,15 @@ class IntervalSeries(TimeSeries):
description="""Use values >0 if interval started, <0 if interval ended.""",
json_schema_extra={"linkml_meta": {"array": {"dimensions": [{"alias": "num_times"}]}}},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -308,10 +324,15 @@ class DecompositionSeries(TimeSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -351,9 +372,10 @@ class DecompositionSeriesData(ConfiguredBaseModel):
"data",
json_schema_extra={"linkml_meta": {"equals_string": "data", "ifabsent": "string(data)"}},
)
unit: Optional[str] = Field(
None,
unit: str = Field(
"no unit",
description="""Base unit of measurement for working with the data. Actual stored values are not necessarily stored in these units. To access the data in these units, multiply 'data' by 'conversion'.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no unit)"}},
)
value: Optional[NDArray[Shape["* num_times, * num_channels, * num_bands"], float]] = Field(
None,
@ -415,13 +437,11 @@ class DecompositionSeriesBands(DynamicTable):
description="""The standard deviation of Gaussian filters, in Hz.""",
json_schema_extra={"linkml_meta": {"array": {"dimensions": [{"alias": "num_bands"}]}}},
)
colnames: Optional[str] = Field(
None,
colnames: List[str] = Field(
...,
description="""The names of the columns in this table. This should be used to specify an order to the columns.""",
)
description: Optional[str] = Field(
None, description="""Description of what is in this dynamic table."""
)
description: str = Field(..., description="""Description of what is in this dynamic table.""")
id: NDArray[Shape["* num_rows"], int] = Field(
...,
description="""Array of unique identifiers for the rows of this dynamic table.""",
@ -555,13 +575,11 @@ class Units(DynamicTable):
}
},
)
colnames: Optional[str] = Field(
None,
colnames: List[str] = Field(
...,
description="""The names of the columns in this table. This should be used to specify an order to the columns.""",
)
description: Optional[str] = Field(
None, description="""Description of what is in this dynamic table."""
)
description: str = Field(..., description="""Description of what is in this dynamic table.""")
id: NDArray[Shape["* num_rows"], int] = Field(
...,
description="""Array of unique identifiers for the rows of this dynamic table.""",
@ -589,9 +607,7 @@ class UnitsSpikeTimes(VectorData):
None,
description="""The smallest possible difference between two spike times. Usually 1 divided by the acquisition sampling rate from which spike times were extracted, but could be larger if the acquisition time series was downsampled or smaller if the acquisition time series was smoothed/interpolated and it is possible for the spike time to be between samples.""",
)
description: Optional[str] = Field(
None, description="""Description of what these vectors represent."""
)
description: str = Field(..., description="""Description of what these vectors represent.""")
value: Optional[
Union[
NDArray[Shape["* dim0"], Any],

View file

@ -91,10 +91,15 @@ class OptogeneticSeries(TimeSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,

View file

@ -162,10 +162,15 @@ class TwoPhotonSeries(ImageSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -219,10 +224,15 @@ class RoiResponseSeries(TimeSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -356,13 +366,11 @@ class PlaneSegmentation(DynamicTable):
}
},
)
colnames: Optional[str] = Field(
None,
colnames: List[str] = Field(
...,
description="""The names of the columns in this table. This should be used to specify an order to the columns.""",
)
description: Optional[str] = Field(
None, description="""Description of what is in this dynamic table."""
)
description: str = Field(..., description="""Description of what is in this dynamic table.""")
id: NDArray[Shape["* num_rows"], int] = Field(
...,
description="""Array of unique identifiers for the rows of this dynamic table.""",
@ -386,9 +394,7 @@ class PlaneSegmentationImageMask(VectorData):
"linkml_meta": {"equals_string": "image_mask", "ifabsent": "string(image_mask)"}
},
)
description: Optional[str] = Field(
None, description="""Description of what these vectors represent."""
)
description: str = Field(..., description="""Description of what these vectors represent.""")
value: Optional[
Union[
NDArray[Shape["* dim0"], Any],
@ -415,9 +421,7 @@ class PlaneSegmentationPixelMask(VectorData):
x: Optional[int] = Field(None, description="""Pixel x-coordinate.""")
y: Optional[int] = Field(None, description="""Pixel y-coordinate.""")
weight: Optional[float] = Field(None, description="""Weight of the pixel.""")
description: Optional[str] = Field(
None, description="""Description of what these vectors represent."""
)
description: str = Field(..., description="""Description of what these vectors represent.""")
value: Optional[
Union[
NDArray[Shape["* dim0"], Any],
@ -445,9 +449,7 @@ class PlaneSegmentationVoxelMask(VectorData):
y: Optional[int] = Field(None, description="""Voxel y-coordinate.""")
z: Optional[int] = Field(None, description="""Voxel z-coordinate.""")
weight: Optional[float] = Field(None, description="""Weight of the voxel.""")
description: Optional[str] = Field(
None, description="""Description of what these vectors represent."""
)
description: str = Field(..., description="""Description of what these vectors represent.""")
value: Optional[
Union[
NDArray[Shape["* dim0"], Any],
@ -523,12 +525,14 @@ class ImagingPlaneManifold(ConfiguredBaseModel):
},
)
conversion: Optional[float] = Field(
None,
1.0,
description="""Scalar to multiply each element in data to convert it to the specified 'unit'. If the data are stored in acquisition system units or other units that require a conversion to be interpretable, multiply the data by 'conversion' to convert the data to the specified 'unit'. e.g. if the data acquisition system stores values in this object as pixels from x = -500 to 499, y = -500 to 499 that correspond to a 2 m x 2 m range, then the 'conversion' multiplier to get from raw data acquisition pixel units to meters is 2/1000.""",
json_schema_extra={"linkml_meta": {"ifabsent": "float(1.0)"}},
)
unit: Optional[str] = Field(
None,
"meters",
description="""Base unit of measurement for working with the data. The default value is 'meters'.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(meters)"}},
)
value: Optional[
Union[
@ -551,8 +555,10 @@ class ImagingPlaneOriginCoords(ConfiguredBaseModel):
"linkml_meta": {"equals_string": "origin_coords", "ifabsent": "string(origin_coords)"}
},
)
unit: Optional[str] = Field(
None, description="""Measurement units for origin_coords. The default value is 'meters'."""
unit: str = Field(
"meters",
description="""Measurement units for origin_coords. The default value is 'meters'.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(meters)"}},
)
value: Optional[Union[NDArray[Shape["2 x_y"], float], NDArray[Shape["3 x_y_z"], float]]] = (
Field(None)
@ -572,8 +578,10 @@ class ImagingPlaneGridSpacing(ConfiguredBaseModel):
"linkml_meta": {"equals_string": "grid_spacing", "ifabsent": "string(grid_spacing)"}
},
)
unit: Optional[str] = Field(
None, description="""Measurement units for grid_spacing. The default value is 'meters'."""
unit: str = Field(
"meters",
description="""Measurement units for grid_spacing. The default value is 'meters'.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(meters)"}},
)
value: Optional[Union[NDArray[Shape["2 x_y"], float], NDArray[Shape["3 x_y_z"], float]]] = (
Field(None)

View file

@ -127,14 +127,12 @@ class ImagingRetinotopyAxis1PhaseMap(ConfiguredBaseModel):
}
},
)
dimension: Optional[int] = Field(
None,
dimension: List[int] = Field(
...,
description="""Number of rows and columns in the image. NOTE: row, column representation is equivalent to height, width.""",
)
field_of_view: Optional[float] = Field(None, description="""Size of viewing area, in meters.""")
unit: Optional[str] = Field(
None, description="""Unit that axis data is stored in (e.g., degrees)."""
)
field_of_view: List[float] = Field(..., description="""Size of viewing area, in meters.""")
unit: str = Field(..., description="""Unit that axis data is stored in (e.g., degrees).""")
value: Optional[NDArray[Shape["* num_rows, * num_cols"], float]] = Field(
None,
json_schema_extra={
@ -159,14 +157,12 @@ class ImagingRetinotopyAxis1PowerMap(ConfiguredBaseModel):
}
},
)
dimension: Optional[int] = Field(
None,
dimension: List[int] = Field(
...,
description="""Number of rows and columns in the image. NOTE: row, column representation is equivalent to height, width.""",
)
field_of_view: Optional[float] = Field(None, description="""Size of viewing area, in meters.""")
unit: Optional[str] = Field(
None, description="""Unit that axis data is stored in (e.g., degrees)."""
)
field_of_view: List[float] = Field(..., description="""Size of viewing area, in meters.""")
unit: str = Field(..., description="""Unit that axis data is stored in (e.g., degrees).""")
value: Optional[NDArray[Shape["* num_rows, * num_cols"], float]] = Field(
None,
json_schema_extra={
@ -191,14 +187,12 @@ class ImagingRetinotopyAxis2PhaseMap(ConfiguredBaseModel):
}
},
)
dimension: Optional[int] = Field(
None,
dimension: List[int] = Field(
...,
description="""Number of rows and columns in the image. NOTE: row, column representation is equivalent to height, width.""",
)
field_of_view: Optional[float] = Field(None, description="""Size of viewing area, in meters.""")
unit: Optional[str] = Field(
None, description="""Unit that axis data is stored in (e.g., degrees)."""
)
field_of_view: List[float] = Field(..., description="""Size of viewing area, in meters.""")
unit: str = Field(..., description="""Unit that axis data is stored in (e.g., degrees).""")
value: Optional[NDArray[Shape["* num_rows, * num_cols"], float]] = Field(
None,
json_schema_extra={
@ -223,14 +217,12 @@ class ImagingRetinotopyAxis2PowerMap(ConfiguredBaseModel):
}
},
)
dimension: Optional[int] = Field(
None,
dimension: List[int] = Field(
...,
description="""Number of rows and columns in the image. NOTE: row, column representation is equivalent to height, width.""",
)
field_of_view: Optional[float] = Field(None, description="""Size of viewing area, in meters.""")
unit: Optional[str] = Field(
None, description="""Unit that axis data is stored in (e.g., degrees)."""
)
field_of_view: List[float] = Field(..., description="""Size of viewing area, in meters.""")
unit: str = Field(..., description="""Unit that axis data is stored in (e.g., degrees).""")
value: Optional[NDArray[Shape["* num_rows, * num_cols"], float]] = Field(
None,
json_schema_extra={
@ -255,19 +247,17 @@ class ImagingRetinotopyFocalDepthImage(ConfiguredBaseModel):
}
},
)
bits_per_pixel: Optional[int] = Field(
None,
bits_per_pixel: int = Field(
...,
description="""Number of bits used to represent each value. This is necessary to determine maximum (white) pixel value.""",
)
dimension: Optional[int] = Field(
None,
dimension: List[int] = Field(
...,
description="""Number of rows and columns in the image. NOTE: row, column representation is equivalent to height, width.""",
)
field_of_view: Optional[float] = Field(None, description="""Size of viewing area, in meters.""")
focal_depth: Optional[float] = Field(None, description="""Focal depth offset, in meters.""")
format: Optional[str] = Field(
None, description="""Format of image. Right now only 'raw' is supported."""
)
field_of_view: List[float] = Field(..., description="""Size of viewing area, in meters.""")
focal_depth: float = Field(..., description="""Focal depth offset, in meters.""")
format: str = Field(..., description="""Format of image. Right now only 'raw' is supported.""")
value: Optional[NDArray[Shape["* num_rows, * num_cols"], int]] = Field(
None,
json_schema_extra={
@ -289,11 +279,11 @@ class ImagingRetinotopySignMap(ConfiguredBaseModel):
"linkml_meta": {"equals_string": "sign_map", "ifabsent": "string(sign_map)"}
},
)
dimension: Optional[int] = Field(
None,
dimension: List[int] = Field(
...,
description="""Number of rows and columns in the image. NOTE: row, column representation is equivalent to height, width.""",
)
field_of_view: Optional[float] = Field(None, description="""Size of viewing area, in meters.""")
field_of_view: List[float] = Field(..., description="""Size of viewing area, in meters.""")
value: Optional[NDArray[Shape["* num_rows, * num_cols"], float]] = Field(
None,
json_schema_extra={
@ -318,18 +308,16 @@ class ImagingRetinotopyVasculatureImage(ConfiguredBaseModel):
}
},
)
bits_per_pixel: Optional[int] = Field(
None,
bits_per_pixel: int = Field(
...,
description="""Number of bits used to represent each value. This is necessary to determine maximum (white) pixel value""",
)
dimension: Optional[int] = Field(
None,
dimension: List[int] = Field(
...,
description="""Number of rows and columns in the image. NOTE: row, column representation is equivalent to height, width.""",
)
field_of_view: Optional[float] = Field(None, description="""Size of viewing area, in meters.""")
format: Optional[str] = Field(
None, description="""Format of image. Right now only 'raw' is supported."""
)
field_of_view: List[float] = Field(..., description="""Size of viewing area, in meters.""")
format: str = Field(..., description="""Format of image. Right now only 'raw' is supported.""")
value: Optional[NDArray[Shape["* num_rows, * num_cols"], int]] = Field(
None,
json_schema_extra={

View file

@ -123,9 +123,7 @@ class TimeSeriesReferenceVectorData(VectorData):
description="""Number of data samples available in this time series, during this epoch""",
)
timeseries: TimeSeries = Field(..., description="""The TimeSeries that this index applies to""")
description: Optional[str] = Field(
None, description="""Description of what these vectors represent."""
)
description: str = Field(..., description="""Description of what these vectors represent.""")
value: Optional[
Union[
NDArray[Shape["* dim0"], Any],
@ -214,10 +212,15 @@ class TimeSeries(NWBDataInterface):
)
name: str = Field(...)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
data: TimeSeriesData = Field(
...,
@ -262,19 +265,21 @@ class TimeSeriesData(ConfiguredBaseModel):
json_schema_extra={"linkml_meta": {"equals_string": "data", "ifabsent": "string(data)"}},
)
conversion: Optional[float] = Field(
None,
1.0,
description="""Scalar to multiply each element in data to convert it to the specified 'unit'. If the data are stored in acquisition system units or other units that require a conversion to be interpretable, multiply the data by 'conversion' to convert the data to the specified 'unit'. e.g. if the data acquisition system stores values in this object as signed 16-bit integers (int16 range -32,768 to 32,767) that correspond to a 5V range (-2.5V to 2.5V), and the data acquisition system gain is 8000X, then the 'conversion' multiplier to get from raw data acquisition values to recorded volts is 2.5/32768/8000 = 9.5367e-9.""",
json_schema_extra={"linkml_meta": {"ifabsent": "float(1.0)"}},
)
offset: Optional[float] = Field(
None,
description="""Scalar to add to the data after scaling by 'conversion' to finalize its coercion to the specified 'unit'. Two common examples of this include (a) data stored in an unsigned type that requires a shift after scaling to re-center the data, and (b) specialized recording devices that naturally cause a scalar offset with respect to the true units.""",
)
resolution: Optional[float] = Field(
None,
-1.0,
description="""Smallest meaningful difference between values in data, stored in the specified by unit, e.g., the change in value of the least significant bit, or a larger number if signal noise is known to be present. If unknown, use -1.0.""",
json_schema_extra={"linkml_meta": {"ifabsent": "float(-1.0)"}},
)
unit: Optional[str] = Field(
None,
unit: str = Field(
...,
description="""Base unit of measurement for working with the data. Actual stored values are not necessarily stored in these units. To access the data in these units, multiply 'data' by 'conversion' and add 'offset'.""",
)
continuity: Optional[str] = Field(
@ -304,9 +309,13 @@ class TimeSeriesStartingTime(ConfiguredBaseModel):
"linkml_meta": {"equals_string": "starting_time", "ifabsent": "string(starting_time)"}
},
)
rate: Optional[float] = Field(None, description="""Sampling rate, in Hz.""")
unit: Optional[str] = Field(
None, description="""Unit of measurement for time, which is fixed to 'seconds'."""
rate: float = Field(..., description="""Sampling rate, in Hz.""")
unit: Literal["seconds"] = Field(
"seconds",
description="""Unit of measurement for time, which is fixed to 'seconds'.""",
json_schema_extra={
"linkml_meta": {"equals_string": "seconds", "ifabsent": "string(seconds)"}
},
)
value: float = Field(...)
@ -352,9 +361,7 @@ class Images(NWBDataInterface):
)
name: str = Field("Images", json_schema_extra={"linkml_meta": {"ifabsent": "string(Images)"}})
description: Optional[str] = Field(
None, description="""Description of this collection of images."""
)
description: str = Field(..., description="""Description of this collection of images.""")
image: List[Image] = Field(..., description="""Images stored in this collection.""")
order_of_images: Named[Optional[ImageReferences]] = Field(
None,

View file

@ -84,10 +84,15 @@ class SpatialSeries(TimeSeries):
reference_frame: Optional[str] = Field(
None, description="""Description defining what exactly 'straight-ahead' means."""
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -128,8 +133,9 @@ class SpatialSeriesData(ConfiguredBaseModel):
json_schema_extra={"linkml_meta": {"equals_string": "data", "ifabsent": "string(data)"}},
)
unit: Optional[str] = Field(
None,
"meters",
description="""Base unit of measurement for working with the data. The default value is 'meters'. Actual stored values are not necessarily stored in these units. To access the data in these units, multiply 'data' by 'conversion' and add 'offset'.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(meters)"}},
)
value: Optional[
Union[

View file

@ -134,10 +134,15 @@ class ElectricalSeries(TimeSeries):
description="""Channel-specific conversion factor. Multiply the data in the 'data' dataset by these values along the channel axis (as indicated by axis attribute) AND by the global conversion factor in the 'conversion' attribute of 'data' to get the data values in Volts, i.e, data in Volts = data * data.conversion * channel_conversion. This approach allows for both global and per-channel data conversion factors needed to support the storage of electrical recordings as native values generated by data acquisition systems. If this dataset is not present, then there is no channel-specific conversion factor, i.e. it is 1 for all channels.""",
json_schema_extra={"linkml_meta": {"array": {"dimensions": [{"alias": "num_channels"}]}}},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -206,10 +211,15 @@ class SpikeEventSeries(ElectricalSeries):
description="""Channel-specific conversion factor. Multiply the data in the 'data' dataset by these values along the channel axis (as indicated by axis attribute) AND by the global conversion factor in the 'conversion' attribute of 'data' to get the data values in Volts, i.e, data in Volts = data * data.conversion * channel_conversion. This approach allows for both global and per-channel data conversion factors needed to support the storage of electrical recordings as native values generated by data acquisition systems. If this dataset is not present, then there is no channel-specific conversion factor, i.e. it is 1 for all channels.""",
json_schema_extra={"linkml_meta": {"array": {"dimensions": [{"alias": "num_channels"}]}}},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -377,9 +387,9 @@ class ElectrodeGroup(NWBContainer):
)
name: str = Field(...)
description: Optional[str] = Field(None, description="""Description of this electrode group.""")
location: Optional[str] = Field(
None,
description: str = Field(..., description="""Description of this electrode group.""")
location: str = Field(
...,
description="""Location of electrode group. Specify the area, layer, comments on estimation of area/layer, etc. Use standard atlas names for anatomical regions when possible.""",
)
position: Optional[ElectrodeGroupPosition] = Field(

View file

@ -159,13 +159,11 @@ class TimeIntervals(DynamicTable):
}
},
)
colnames: Optional[str] = Field(
None,
colnames: List[str] = Field(
...,
description="""The names of the columns in this table. This should be used to specify an order to the columns.""",
)
description: Optional[str] = Field(
None, description="""Description of what is in this dynamic table."""
)
description: str = Field(..., description="""Description of what is in this dynamic table.""")
id: NDArray[Shape["* num_rows"], int] = Field(
...,
description="""Array of unique identifiers for the rows of this dynamic table.""",

View file

@ -105,9 +105,7 @@ class ScratchData(NWBData):
)
name: str = Field(...)
notes: Optional[str] = Field(
None, description="""Any notes the user has about the dataset being stored"""
)
notes: str = Field(..., description="""Any notes the user has about the dataset being stored""")
class NWBFile(NWBContainer):
@ -123,9 +121,10 @@ class NWBFile(NWBContainer):
"root",
json_schema_extra={"linkml_meta": {"equals_string": "root", "ifabsent": "string(root)"}},
)
nwb_version: Optional[str] = Field(
None,
nwb_version: Literal["2.6.0"] = Field(
"2.6.0",
description="""File version string. Use semantic versioning, e.g. 1.2.1. This will be the name of the format with trailing major, minor and patch numbers.""",
json_schema_extra={"linkml_meta": {"equals_string": "2.6.0", "ifabsent": "string(2.6.0)"}},
)
file_create_date: NDArray[Shape["* num_modifications"], datetime] = Field(
...,
@ -332,7 +331,7 @@ class GeneralSourceScript(ConfiguredBaseModel):
"linkml_meta": {"equals_string": "source_script", "ifabsent": "string(source_script)"}
},
)
file_name: Optional[str] = Field(None, description="""Name of script file.""")
file_name: str = Field(..., description="""Name of script file.""")
value: str = Field(...)
@ -475,13 +474,11 @@ class ExtracellularEphysElectrodes(DynamicTable):
}
},
)
colnames: Optional[str] = Field(
None,
colnames: List[str] = Field(
...,
description="""The names of the columns in this table. This should be used to specify an order to the columns.""",
)
description: Optional[str] = Field(
None, description="""Description of what is in this dynamic table."""
)
description: str = Field(..., description="""Description of what is in this dynamic table.""")
id: NDArray[Shape["* num_rows"], int] = Field(
...,
description="""Array of unique identifiers for the rows of this dynamic table.""",
@ -630,8 +627,9 @@ class SubjectAge(ConfiguredBaseModel):
json_schema_extra={"linkml_meta": {"equals_string": "age", "ifabsent": "string(age)"}},
)
reference: Optional[str] = Field(
None,
"birth",
description="""Age is with reference to this event. Can be 'birth' or 'gestational'. If reference is omitted, 'birth' is implied.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(birth)"}},
)
value: str = Field(...)

View file

@ -114,8 +114,8 @@ class PatchClampSeries(TimeSeries):
)
name: str = Field(...)
stimulus_description: Optional[str] = Field(
None, description="""Protocol/stimulus name for this patch-clamp dataset."""
stimulus_description: str = Field(
..., description="""Protocol/stimulus name for this patch-clamp dataset."""
)
sweep_number: Optional[int] = Field(
None, description="""Sweep number, allows to group different PatchClampSeries together."""
@ -134,10 +134,15 @@ class PatchClampSeries(TimeSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -177,8 +182,8 @@ class PatchClampSeriesData(ConfiguredBaseModel):
"data",
json_schema_extra={"linkml_meta": {"equals_string": "data", "ifabsent": "string(data)"}},
)
unit: Optional[str] = Field(
None,
unit: str = Field(
...,
description="""Base unit of measurement for working with the data. Actual stored values are not necessarily stored in these units. To access the data in these units, multiply 'data' by 'conversion' and add 'offset'.""",
)
value: Optional[NDArray[Shape["* num_times"], float]] = Field(
@ -202,8 +207,8 @@ class CurrentClampSeries(PatchClampSeries):
capacitance_compensation: Optional[float] = Field(
None, description="""Capacitance compensation, in farads."""
)
stimulus_description: Optional[str] = Field(
None, description="""Protocol/stimulus name for this patch-clamp dataset."""
stimulus_description: str = Field(
..., description="""Protocol/stimulus name for this patch-clamp dataset."""
)
sweep_number: Optional[int] = Field(
None, description="""Sweep number, allows to group different PatchClampSeries together."""
@ -221,10 +226,15 @@ class CurrentClampSeries(PatchClampSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -264,9 +274,10 @@ class CurrentClampSeriesData(ConfiguredBaseModel):
"data",
json_schema_extra={"linkml_meta": {"equals_string": "data", "ifabsent": "string(data)"}},
)
unit: Optional[str] = Field(
None,
unit: Literal["volts"] = Field(
"volts",
description="""Base unit of measurement for working with the data. which is fixed to 'volts'. Actual stored values are not necessarily stored in these units. To access the data in these units, multiply 'data' by 'conversion' and add 'offset'.""",
json_schema_extra={"linkml_meta": {"equals_string": "volts", "ifabsent": "string(volts)"}},
)
value: Any = Field(...)
@ -281,9 +292,10 @@ class IZeroClampSeries(CurrentClampSeries):
)
name: str = Field(...)
stimulus_description: Optional[str] = Field(
None,
stimulus_description: Literal["N/A"] = Field(
"N/A",
description="""An IZeroClampSeries has no stimulus, so this attribute is automatically set to \"N/A\"""",
json_schema_extra={"linkml_meta": {"equals_string": "N/A", "ifabsent": "string(N/A)"}},
)
bias_current: float = Field(..., description="""Bias current, in amps, fixed to 0.0.""")
bridge_balance: float = Field(..., description="""Bridge balance, in ohms, fixed to 0.0.""")
@ -307,10 +319,15 @@ class IZeroClampSeries(CurrentClampSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -350,8 +367,8 @@ class CurrentClampStimulusSeries(PatchClampSeries):
name: str = Field(...)
data: CurrentClampStimulusSeriesData = Field(..., description="""Stimulus current applied.""")
stimulus_description: Optional[str] = Field(
None, description="""Protocol/stimulus name for this patch-clamp dataset."""
stimulus_description: str = Field(
..., description="""Protocol/stimulus name for this patch-clamp dataset."""
)
sweep_number: Optional[int] = Field(
None, description="""Sweep number, allows to group different PatchClampSeries together."""
@ -369,10 +386,15 @@ class CurrentClampStimulusSeries(PatchClampSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -412,9 +434,12 @@ class CurrentClampStimulusSeriesData(ConfiguredBaseModel):
"data",
json_schema_extra={"linkml_meta": {"equals_string": "data", "ifabsent": "string(data)"}},
)
unit: Optional[str] = Field(
None,
unit: Literal["amperes"] = Field(
"amperes",
description="""Base unit of measurement for working with the data. which is fixed to 'amperes'. Actual stored values are not necessarily stored in these units. To access the data in these units, multiply 'data' by 'conversion' and add 'offset'.""",
json_schema_extra={
"linkml_meta": {"equals_string": "amperes", "ifabsent": "string(amperes)"}
},
)
value: Any = Field(...)
@ -451,8 +476,8 @@ class VoltageClampSeries(PatchClampSeries):
whole_cell_series_resistance_comp: Optional[VoltageClampSeriesWholeCellSeriesResistanceComp] = (
Field(None, description="""Whole cell series resistance compensation, in ohms.""")
)
stimulus_description: Optional[str] = Field(
None, description="""Protocol/stimulus name for this patch-clamp dataset."""
stimulus_description: str = Field(
..., description="""Protocol/stimulus name for this patch-clamp dataset."""
)
sweep_number: Optional[int] = Field(
None, description="""Sweep number, allows to group different PatchClampSeries together."""
@ -470,10 +495,15 @@ class VoltageClampSeries(PatchClampSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -513,9 +543,12 @@ class VoltageClampSeriesData(ConfiguredBaseModel):
"data",
json_schema_extra={"linkml_meta": {"equals_string": "data", "ifabsent": "string(data)"}},
)
unit: Optional[str] = Field(
None,
unit: Literal["amperes"] = Field(
"amperes",
description="""Base unit of measurement for working with the data. which is fixed to 'amperes'. Actual stored values are not necessarily stored in these units. To access the data in these units, multiply 'data' by 'conversion' and add 'offset'.""",
json_schema_extra={
"linkml_meta": {"equals_string": "amperes", "ifabsent": "string(amperes)"}
},
)
value: Any = Field(...)
@ -536,9 +569,12 @@ class VoltageClampSeriesCapacitanceFast(ConfiguredBaseModel):
}
},
)
unit: Optional[str] = Field(
None,
unit: Literal["farads"] = Field(
"farads",
description="""Unit of measurement for capacitance_fast, which is fixed to 'farads'.""",
json_schema_extra={
"linkml_meta": {"equals_string": "farads", "ifabsent": "string(farads)"}
},
)
value: float = Field(...)
@ -559,9 +595,12 @@ class VoltageClampSeriesCapacitanceSlow(ConfiguredBaseModel):
}
},
)
unit: Optional[str] = Field(
None,
unit: Literal["farads"] = Field(
"farads",
description="""Unit of measurement for capacitance_fast, which is fixed to 'farads'.""",
json_schema_extra={
"linkml_meta": {"equals_string": "farads", "ifabsent": "string(farads)"}
},
)
value: float = Field(...)
@ -582,9 +621,10 @@ class VoltageClampSeriesResistanceCompBandwidth(ConfiguredBaseModel):
}
},
)
unit: Optional[str] = Field(
None,
unit: Literal["hertz"] = Field(
"hertz",
description="""Unit of measurement for resistance_comp_bandwidth, which is fixed to 'hertz'.""",
json_schema_extra={"linkml_meta": {"equals_string": "hertz", "ifabsent": "string(hertz)"}},
)
value: float = Field(...)
@ -605,9 +645,12 @@ class VoltageClampSeriesResistanceCompCorrection(ConfiguredBaseModel):
}
},
)
unit: Optional[str] = Field(
None,
unit: Literal["percent"] = Field(
"percent",
description="""Unit of measurement for resistance_comp_correction, which is fixed to 'percent'.""",
json_schema_extra={
"linkml_meta": {"equals_string": "percent", "ifabsent": "string(percent)"}
},
)
value: float = Field(...)
@ -628,9 +671,12 @@ class VoltageClampSeriesResistanceCompPrediction(ConfiguredBaseModel):
}
},
)
unit: Optional[str] = Field(
None,
unit: Literal["percent"] = Field(
"percent",
description="""Unit of measurement for resistance_comp_prediction, which is fixed to 'percent'.""",
json_schema_extra={
"linkml_meta": {"equals_string": "percent", "ifabsent": "string(percent)"}
},
)
value: float = Field(...)
@ -651,9 +697,12 @@ class VoltageClampSeriesWholeCellCapacitanceComp(ConfiguredBaseModel):
}
},
)
unit: Optional[str] = Field(
None,
unit: Literal["farads"] = Field(
"farads",
description="""Unit of measurement for whole_cell_capacitance_comp, which is fixed to 'farads'.""",
json_schema_extra={
"linkml_meta": {"equals_string": "farads", "ifabsent": "string(farads)"}
},
)
value: float = Field(...)
@ -674,9 +723,10 @@ class VoltageClampSeriesWholeCellSeriesResistanceComp(ConfiguredBaseModel):
}
},
)
unit: Optional[str] = Field(
None,
unit: Literal["ohms"] = Field(
"ohms",
description="""Unit of measurement for whole_cell_series_resistance_comp, which is fixed to 'ohms'.""",
json_schema_extra={"linkml_meta": {"equals_string": "ohms", "ifabsent": "string(ohms)"}},
)
value: float = Field(...)
@ -692,8 +742,8 @@ class VoltageClampStimulusSeries(PatchClampSeries):
name: str = Field(...)
data: VoltageClampStimulusSeriesData = Field(..., description="""Stimulus voltage applied.""")
stimulus_description: Optional[str] = Field(
None, description="""Protocol/stimulus name for this patch-clamp dataset."""
stimulus_description: str = Field(
..., description="""Protocol/stimulus name for this patch-clamp dataset."""
)
sweep_number: Optional[int] = Field(
None, description="""Sweep number, allows to group different PatchClampSeries together."""
@ -711,10 +761,15 @@ class VoltageClampStimulusSeries(PatchClampSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -754,9 +809,10 @@ class VoltageClampStimulusSeriesData(ConfiguredBaseModel):
"data",
json_schema_extra={"linkml_meta": {"equals_string": "data", "ifabsent": "string(data)"}},
)
unit: Optional[str] = Field(
None,
unit: Literal["volts"] = Field(
"volts",
description="""Base unit of measurement for working with the data. which is fixed to 'volts'. Actual stored values are not necessarily stored in these units. To access the data in these units, multiply 'data' by 'conversion' and add 'offset'.""",
json_schema_extra={"linkml_meta": {"equals_string": "volts", "ifabsent": "string(volts)"}},
)
value: Any = Field(...)
@ -833,13 +889,11 @@ class SweepTable(DynamicTable):
}
},
)
colnames: Optional[str] = Field(
None,
colnames: List[str] = Field(
...,
description="""The names of the columns in this table. This should be used to specify an order to the columns.""",
)
description: Optional[str] = Field(
None, description="""Description of what is in this dynamic table."""
)
description: str = Field(..., description="""Description of what is in this dynamic table.""")
id: NDArray[Shape["* num_rows"], int] = Field(
...,
description="""Array of unique identifiers for the rows of this dynamic table.""",
@ -860,14 +914,21 @@ class IntracellularElectrodesTable(DynamicTable):
)
name: str = Field(...)
description: Optional[str] = Field(
None, description="""Description of what is in this dynamic table."""
description: Literal["Table for storing intracellular electrode related metadata."] = Field(
"Table for storing intracellular electrode related metadata.",
description="""Description of what is in this dynamic table.""",
json_schema_extra={
"linkml_meta": {
"equals_string": "Table for storing intracellular electrode related metadata.",
"ifabsent": "string(Table for storing intracellular electrode related metadata.)",
}
},
)
electrode: List[IntracellularElectrode] = Field(
..., description="""Column for storing the reference to the intracellular electrode."""
)
colnames: Optional[str] = Field(
None,
colnames: List[str] = Field(
...,
description="""The names of the columns in this table. This should be used to specify an order to the columns.""",
)
id: NDArray[Shape["* num_rows"], int] = Field(
@ -890,8 +951,15 @@ class IntracellularStimuliTable(DynamicTable):
)
name: str = Field(...)
description: Optional[str] = Field(
None, description="""Description of what is in this dynamic table."""
description: Literal["Table for storing intracellular stimulus related metadata."] = Field(
"Table for storing intracellular stimulus related metadata.",
description="""Description of what is in this dynamic table.""",
json_schema_extra={
"linkml_meta": {
"equals_string": "Table for storing intracellular stimulus related metadata.",
"ifabsent": "string(Table for storing intracellular stimulus related metadata.)",
}
},
)
stimulus: Named[TimeSeriesReferenceVectorData] = Field(
...,
@ -905,8 +973,8 @@ class IntracellularStimuliTable(DynamicTable):
}
},
)
colnames: Optional[str] = Field(
None,
colnames: List[str] = Field(
...,
description="""The names of the columns in this table. This should be used to specify an order to the columns.""",
)
id: NDArray[Shape["* num_rows"], int] = Field(
@ -929,8 +997,15 @@ class IntracellularResponsesTable(DynamicTable):
)
name: str = Field(...)
description: Optional[str] = Field(
None, description="""Description of what is in this dynamic table."""
description: Literal["Table for storing intracellular response related metadata."] = Field(
"Table for storing intracellular response related metadata.",
description="""Description of what is in this dynamic table.""",
json_schema_extra={
"linkml_meta": {
"equals_string": "Table for storing intracellular response related metadata.",
"ifabsent": "string(Table for storing intracellular response related metadata.)",
}
},
)
response: Named[TimeSeriesReferenceVectorData] = Field(
...,
@ -944,8 +1019,8 @@ class IntracellularResponsesTable(DynamicTable):
}
},
)
colnames: Optional[str] = Field(
None,
colnames: List[str] = Field(
...,
description="""The names of the columns in this table. This should be used to specify an order to the columns.""",
)
id: NDArray[Shape["* num_rows"], int] = Field(
@ -976,9 +1051,27 @@ class IntracellularRecordingsTable(AlignedDynamicTable):
}
},
)
description: Optional[str] = Field(
None,
description: Literal[
"A table to group together a stimulus and response from a single electrode and a single"
" simultaneous recording and for storing metadata about the intracellular recording."
] = Field(
"A table to group together a stimulus and response from a single electrode and a single"
" simultaneous recording and for storing metadata about the intracellular recording.",
description="""Description of the contents of this table. Inherited from AlignedDynamicTable and overwritten here to fix the value of the attribute.""",
json_schema_extra={
"linkml_meta": {
"equals_string": (
"A table to group together a stimulus and response from a "
"single electrode and a single simultaneous recording and "
"for storing metadata about the intracellular recording."
),
"ifabsent": (
"string(A table to group together a stimulus and response from a "
"single electrode and a single simultaneous recording and for "
"storing metadata about the intracellular recording.)"
),
}
},
)
electrodes: IntracellularElectrodesTable = Field(
..., description="""Table for storing intracellular electrode related metadata."""
@ -992,8 +1085,8 @@ class IntracellularRecordingsTable(AlignedDynamicTable):
value: Optional[List[DynamicTable]] = Field(
None, json_schema_extra={"linkml_meta": {"any_of": [{"range": "DynamicTable"}]}}
)
colnames: Optional[str] = Field(
None,
colnames: List[str] = Field(
...,
description="""The names of the columns in this table. This should be used to specify an order to the columns.""",
)
id: NDArray[Shape["* num_rows"], int] = Field(
@ -1040,13 +1133,11 @@ class SimultaneousRecordingsTable(DynamicTable):
}
},
)
colnames: Optional[str] = Field(
None,
colnames: List[str] = Field(
...,
description="""The names of the columns in this table. This should be used to specify an order to the columns.""",
)
description: Optional[str] = Field(
None, description="""Description of what is in this dynamic table."""
)
description: str = Field(..., description="""Description of what is in this dynamic table.""")
id: NDArray[Shape["* num_rows"], int] = Field(
...,
description="""Array of unique identifiers for the rows of this dynamic table.""",
@ -1070,12 +1161,12 @@ class SimultaneousRecordingsTableRecordings(DynamicTableRegion):
"linkml_meta": {"equals_string": "recordings", "ifabsent": "string(recordings)"}
},
)
table: Optional[IntracellularRecordingsTable] = Field(
None,
table: IntracellularRecordingsTable = Field(
...,
description="""Reference to the IntracellularRecordingsTable table that this table region applies to. This specializes the attribute inherited from DynamicTableRegion to fix the type of table that can be referenced here.""",
)
description: Optional[str] = Field(
None, description="""Description of what this table region points to."""
description: str = Field(
..., description="""Description of what this table region points to."""
)
value: Optional[
Union[
@ -1130,13 +1221,11 @@ class SequentialRecordingsTable(DynamicTable):
}
},
)
colnames: Optional[str] = Field(
None,
colnames: List[str] = Field(
...,
description="""The names of the columns in this table. This should be used to specify an order to the columns.""",
)
description: Optional[str] = Field(
None, description="""Description of what is in this dynamic table."""
)
description: str = Field(..., description="""Description of what is in this dynamic table.""")
id: NDArray[Shape["* num_rows"], int] = Field(
...,
description="""Array of unique identifiers for the rows of this dynamic table.""",
@ -1163,12 +1252,12 @@ class SequentialRecordingsTableSimultaneousRecordings(DynamicTableRegion):
}
},
)
table: Optional[SimultaneousRecordingsTable] = Field(
None,
table: SimultaneousRecordingsTable = Field(
...,
description="""Reference to the SimultaneousRecordingsTable table that this table region applies to. This specializes the attribute inherited from DynamicTableRegion to fix the type of table that can be referenced here.""",
)
description: Optional[str] = Field(
None, description="""Description of what this table region points to."""
description: str = Field(
..., description="""Description of what this table region points to."""
)
value: Optional[
Union[
@ -1211,13 +1300,11 @@ class RepetitionsTable(DynamicTable):
}
},
)
colnames: Optional[str] = Field(
None,
colnames: List[str] = Field(
...,
description="""The names of the columns in this table. This should be used to specify an order to the columns.""",
)
description: Optional[str] = Field(
None, description="""Description of what is in this dynamic table."""
)
description: str = Field(..., description="""Description of what is in this dynamic table.""")
id: NDArray[Shape["* num_rows"], int] = Field(
...,
description="""Array of unique identifiers for the rows of this dynamic table.""",
@ -1244,12 +1331,12 @@ class RepetitionsTableSequentialRecordings(DynamicTableRegion):
}
},
)
table: Optional[SequentialRecordingsTable] = Field(
None,
table: SequentialRecordingsTable = Field(
...,
description="""Reference to the SequentialRecordingsTable table that this table region applies to. This specializes the attribute inherited from DynamicTableRegion to fix the type of table that can be referenced here.""",
)
description: Optional[str] = Field(
None, description="""Description of what this table region points to."""
description: str = Field(
..., description="""Description of what this table region points to."""
)
value: Optional[
Union[
@ -1294,13 +1381,11 @@ class ExperimentalConditionsTable(DynamicTable):
}
},
)
colnames: Optional[str] = Field(
None,
colnames: List[str] = Field(
...,
description="""The names of the columns in this table. This should be used to specify an order to the columns.""",
)
description: Optional[str] = Field(
None, description="""Description of what is in this dynamic table."""
)
description: str = Field(..., description="""Description of what is in this dynamic table.""")
id: NDArray[Shape["* num_rows"], int] = Field(
...,
description="""Array of unique identifiers for the rows of this dynamic table.""",
@ -1324,12 +1409,12 @@ class ExperimentalConditionsTableRepetitions(DynamicTableRegion):
"linkml_meta": {"equals_string": "repetitions", "ifabsent": "string(repetitions)"}
},
)
table: Optional[RepetitionsTable] = Field(
None,
table: RepetitionsTable = Field(
...,
description="""Reference to the RepetitionsTable table that this table region applies to. This specializes the attribute inherited from DynamicTableRegion to fix the type of table that can be referenced here.""",
)
description: Optional[str] = Field(
None, description="""Description of what this table region points to."""
description: str = Field(
..., description="""Description of what this table region points to."""
)
value: Optional[
Union[

View file

@ -175,10 +175,15 @@ class ImageSeries(TimeSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -220,8 +225,8 @@ class ImageSeriesExternalFile(ConfiguredBaseModel):
"linkml_meta": {"equals_string": "external_file", "ifabsent": "string(external_file)"}
},
)
starting_frame: Optional[int] = Field(
None,
starting_frame: List[int] = Field(
...,
description="""Each external image may contain one or more consecutive frames of the full ImageSeries. This attribute serves as an index to indicate which frames each file contains, to faciliate random access. The 'starting_frame' attribute, hence, contains a list of frame numbers within the full ImageSeries of the first frame of each file listed in the parent 'external_file' dataset. Zero-based indexing is used (hence, the first element will always be zero). For example, if the 'external_file' dataset has three paths to files and the first file has 5 frames, the second file has 10 frames, and the third file has 20 frames, then this attribute will have values [0, 5, 15]. If there is a single external file that holds all of the frames of the ImageSeries (and so there is a single element in the 'external_file' dataset), then this attribute should have value [0].""",
)
value: Optional[NDArray[Shape["* num_files"], str]] = Field(
@ -276,10 +281,15 @@ class ImageMaskSeries(ImageSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -356,10 +366,15 @@ class OpticalSeries(ImageSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -421,10 +436,15 @@ class IndexSeries(TimeSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,

View file

@ -120,10 +120,15 @@ class AbstractFeatureSeries(TimeSeries):
description="""Description of the features represented in TimeSeries::data.""",
json_schema_extra={"linkml_meta": {"array": {"dimensions": [{"alias": "num_features"}]}}},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -164,8 +169,9 @@ class AbstractFeatureSeriesData(ConfiguredBaseModel):
json_schema_extra={"linkml_meta": {"equals_string": "data", "ifabsent": "string(data)"}},
)
unit: Optional[str] = Field(
None,
"see 'feature_units'",
description="""Since there can be different units for different features, store the units in 'feature_units'. The default value for this attribute is \"see 'feature_units'\".""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(see 'feature_units')"}},
)
value: Optional[
Union[
@ -190,10 +196,15 @@ class AnnotationSeries(TimeSeries):
description="""Annotations made during an experiment.""",
json_schema_extra={"linkml_meta": {"array": {"dimensions": [{"alias": "num_times"}]}}},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -237,10 +248,15 @@ class IntervalSeries(TimeSeries):
description="""Use values >0 if interval started, <0 if interval ended.""",
json_schema_extra={"linkml_meta": {"array": {"dimensions": [{"alias": "num_times"}]}}},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -308,10 +324,15 @@ class DecompositionSeries(TimeSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -351,9 +372,10 @@ class DecompositionSeriesData(ConfiguredBaseModel):
"data",
json_schema_extra={"linkml_meta": {"equals_string": "data", "ifabsent": "string(data)"}},
)
unit: Optional[str] = Field(
None,
unit: str = Field(
"no unit",
description="""Base unit of measurement for working with the data. Actual stored values are not necessarily stored in these units. To access the data in these units, multiply 'data' by 'conversion'.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no unit)"}},
)
value: Optional[NDArray[Shape["* num_times, * num_channels, * num_bands"], float]] = Field(
None,
@ -415,13 +437,11 @@ class DecompositionSeriesBands(DynamicTable):
description="""The standard deviation of Gaussian filters, in Hz.""",
json_schema_extra={"linkml_meta": {"array": {"dimensions": [{"alias": "num_bands"}]}}},
)
colnames: Optional[str] = Field(
None,
colnames: List[str] = Field(
...,
description="""The names of the columns in this table. This should be used to specify an order to the columns.""",
)
description: Optional[str] = Field(
None, description="""Description of what is in this dynamic table."""
)
description: str = Field(..., description="""Description of what is in this dynamic table.""")
id: NDArray[Shape["* num_rows"], int] = Field(
...,
description="""Array of unique identifiers for the rows of this dynamic table.""",
@ -555,13 +575,11 @@ class Units(DynamicTable):
}
},
)
colnames: Optional[str] = Field(
None,
colnames: List[str] = Field(
...,
description="""The names of the columns in this table. This should be used to specify an order to the columns.""",
)
description: Optional[str] = Field(
None, description="""Description of what is in this dynamic table."""
)
description: str = Field(..., description="""Description of what is in this dynamic table.""")
id: NDArray[Shape["* num_rows"], int] = Field(
...,
description="""Array of unique identifiers for the rows of this dynamic table.""",
@ -589,9 +607,7 @@ class UnitsSpikeTimes(VectorData):
None,
description="""The smallest possible difference between two spike times. Usually 1 divided by the acquisition sampling rate from which spike times were extracted, but could be larger if the acquisition time series was downsampled or smaller if the acquisition time series was smoothed/interpolated and it is possible for the spike time to be between samples.""",
)
description: Optional[str] = Field(
None, description="""Description of what these vectors represent."""
)
description: str = Field(..., description="""Description of what these vectors represent.""")
value: Optional[
Union[
NDArray[Shape["* dim0"], Any],

View file

@ -91,10 +91,15 @@ class OptogeneticSeries(TimeSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,

View file

@ -167,10 +167,15 @@ class OnePhotonSeries(ImageSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -256,10 +261,15 @@ class TwoPhotonSeries(ImageSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -313,10 +323,15 @@ class RoiResponseSeries(TimeSeries):
}
},
)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
starting_time: Optional[TimeSeriesStartingTime] = Field(
None,
@ -450,13 +465,11 @@ class PlaneSegmentation(DynamicTable):
}
},
)
colnames: Optional[str] = Field(
None,
colnames: List[str] = Field(
...,
description="""The names of the columns in this table. This should be used to specify an order to the columns.""",
)
description: Optional[str] = Field(
None, description="""Description of what is in this dynamic table."""
)
description: str = Field(..., description="""Description of what is in this dynamic table.""")
id: NDArray[Shape["* num_rows"], int] = Field(
...,
description="""Array of unique identifiers for the rows of this dynamic table.""",
@ -480,9 +493,7 @@ class PlaneSegmentationImageMask(VectorData):
"linkml_meta": {"equals_string": "image_mask", "ifabsent": "string(image_mask)"}
},
)
description: Optional[str] = Field(
None, description="""Description of what these vectors represent."""
)
description: str = Field(..., description="""Description of what these vectors represent.""")
value: Optional[
Union[
NDArray[Shape["* dim0"], Any],
@ -509,9 +520,7 @@ class PlaneSegmentationPixelMask(VectorData):
x: Optional[int] = Field(None, description="""Pixel x-coordinate.""")
y: Optional[int] = Field(None, description="""Pixel y-coordinate.""")
weight: Optional[float] = Field(None, description="""Weight of the pixel.""")
description: Optional[str] = Field(
None, description="""Description of what these vectors represent."""
)
description: str = Field(..., description="""Description of what these vectors represent.""")
value: Optional[
Union[
NDArray[Shape["* dim0"], Any],
@ -539,9 +548,7 @@ class PlaneSegmentationVoxelMask(VectorData):
y: Optional[int] = Field(None, description="""Voxel y-coordinate.""")
z: Optional[int] = Field(None, description="""Voxel z-coordinate.""")
weight: Optional[float] = Field(None, description="""Weight of the voxel.""")
description: Optional[str] = Field(
None, description="""Description of what these vectors represent."""
)
description: str = Field(..., description="""Description of what these vectors represent.""")
value: Optional[
Union[
NDArray[Shape["* dim0"], Any],
@ -617,12 +624,14 @@ class ImagingPlaneManifold(ConfiguredBaseModel):
},
)
conversion: Optional[float] = Field(
None,
1.0,
description="""Scalar to multiply each element in data to convert it to the specified 'unit'. If the data are stored in acquisition system units or other units that require a conversion to be interpretable, multiply the data by 'conversion' to convert the data to the specified 'unit'. e.g. if the data acquisition system stores values in this object as pixels from x = -500 to 499, y = -500 to 499 that correspond to a 2 m x 2 m range, then the 'conversion' multiplier to get from raw data acquisition pixel units to meters is 2/1000.""",
json_schema_extra={"linkml_meta": {"ifabsent": "float(1.0)"}},
)
unit: Optional[str] = Field(
None,
"meters",
description="""Base unit of measurement for working with the data. The default value is 'meters'.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(meters)"}},
)
value: Optional[
Union[
@ -645,8 +654,10 @@ class ImagingPlaneOriginCoords(ConfiguredBaseModel):
"linkml_meta": {"equals_string": "origin_coords", "ifabsent": "string(origin_coords)"}
},
)
unit: Optional[str] = Field(
None, description="""Measurement units for origin_coords. The default value is 'meters'."""
unit: str = Field(
"meters",
description="""Measurement units for origin_coords. The default value is 'meters'.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(meters)"}},
)
value: Optional[Union[NDArray[Shape["2 x_y"], float], NDArray[Shape["3 x_y_z"], float]]] = (
Field(None)
@ -666,8 +677,10 @@ class ImagingPlaneGridSpacing(ConfiguredBaseModel):
"linkml_meta": {"equals_string": "grid_spacing", "ifabsent": "string(grid_spacing)"}
},
)
unit: Optional[str] = Field(
None, description="""Measurement units for grid_spacing. The default value is 'meters'."""
unit: str = Field(
"meters",
description="""Measurement units for grid_spacing. The default value is 'meters'.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(meters)"}},
)
value: Optional[Union[NDArray[Shape["2 x_y"], float], NDArray[Shape["3 x_y_z"], float]]] = (
Field(None)

View file

@ -127,14 +127,12 @@ class ImagingRetinotopyAxis1PhaseMap(ConfiguredBaseModel):
}
},
)
dimension: Optional[int] = Field(
None,
dimension: List[int] = Field(
...,
description="""Number of rows and columns in the image. NOTE: row, column representation is equivalent to height, width.""",
)
field_of_view: Optional[float] = Field(None, description="""Size of viewing area, in meters.""")
unit: Optional[str] = Field(
None, description="""Unit that axis data is stored in (e.g., degrees)."""
)
field_of_view: List[float] = Field(..., description="""Size of viewing area, in meters.""")
unit: str = Field(..., description="""Unit that axis data is stored in (e.g., degrees).""")
value: Optional[NDArray[Shape["* num_rows, * num_cols"], float]] = Field(
None,
json_schema_extra={
@ -159,14 +157,12 @@ class ImagingRetinotopyAxis1PowerMap(ConfiguredBaseModel):
}
},
)
dimension: Optional[int] = Field(
None,
dimension: List[int] = Field(
...,
description="""Number of rows and columns in the image. NOTE: row, column representation is equivalent to height, width.""",
)
field_of_view: Optional[float] = Field(None, description="""Size of viewing area, in meters.""")
unit: Optional[str] = Field(
None, description="""Unit that axis data is stored in (e.g., degrees)."""
)
field_of_view: List[float] = Field(..., description="""Size of viewing area, in meters.""")
unit: str = Field(..., description="""Unit that axis data is stored in (e.g., degrees).""")
value: Optional[NDArray[Shape["* num_rows, * num_cols"], float]] = Field(
None,
json_schema_extra={
@ -191,14 +187,12 @@ class ImagingRetinotopyAxis2PhaseMap(ConfiguredBaseModel):
}
},
)
dimension: Optional[int] = Field(
None,
dimension: List[int] = Field(
...,
description="""Number of rows and columns in the image. NOTE: row, column representation is equivalent to height, width.""",
)
field_of_view: Optional[float] = Field(None, description="""Size of viewing area, in meters.""")
unit: Optional[str] = Field(
None, description="""Unit that axis data is stored in (e.g., degrees)."""
)
field_of_view: List[float] = Field(..., description="""Size of viewing area, in meters.""")
unit: str = Field(..., description="""Unit that axis data is stored in (e.g., degrees).""")
value: Optional[NDArray[Shape["* num_rows, * num_cols"], float]] = Field(
None,
json_schema_extra={
@ -223,14 +217,12 @@ class ImagingRetinotopyAxis2PowerMap(ConfiguredBaseModel):
}
},
)
dimension: Optional[int] = Field(
None,
dimension: List[int] = Field(
...,
description="""Number of rows and columns in the image. NOTE: row, column representation is equivalent to height, width.""",
)
field_of_view: Optional[float] = Field(None, description="""Size of viewing area, in meters.""")
unit: Optional[str] = Field(
None, description="""Unit that axis data is stored in (e.g., degrees)."""
)
field_of_view: List[float] = Field(..., description="""Size of viewing area, in meters.""")
unit: str = Field(..., description="""Unit that axis data is stored in (e.g., degrees).""")
value: Optional[NDArray[Shape["* num_rows, * num_cols"], float]] = Field(
None,
json_schema_extra={
@ -255,19 +247,17 @@ class ImagingRetinotopyFocalDepthImage(ConfiguredBaseModel):
}
},
)
bits_per_pixel: Optional[int] = Field(
None,
bits_per_pixel: int = Field(
...,
description="""Number of bits used to represent each value. This is necessary to determine maximum (white) pixel value.""",
)
dimension: Optional[int] = Field(
None,
dimension: List[int] = Field(
...,
description="""Number of rows and columns in the image. NOTE: row, column representation is equivalent to height, width.""",
)
field_of_view: Optional[float] = Field(None, description="""Size of viewing area, in meters.""")
focal_depth: Optional[float] = Field(None, description="""Focal depth offset, in meters.""")
format: Optional[str] = Field(
None, description="""Format of image. Right now only 'raw' is supported."""
)
field_of_view: List[float] = Field(..., description="""Size of viewing area, in meters.""")
focal_depth: float = Field(..., description="""Focal depth offset, in meters.""")
format: str = Field(..., description="""Format of image. Right now only 'raw' is supported.""")
value: Optional[NDArray[Shape["* num_rows, * num_cols"], int]] = Field(
None,
json_schema_extra={
@ -289,11 +279,11 @@ class ImagingRetinotopySignMap(ConfiguredBaseModel):
"linkml_meta": {"equals_string": "sign_map", "ifabsent": "string(sign_map)"}
},
)
dimension: Optional[int] = Field(
None,
dimension: List[int] = Field(
...,
description="""Number of rows and columns in the image. NOTE: row, column representation is equivalent to height, width.""",
)
field_of_view: Optional[float] = Field(None, description="""Size of viewing area, in meters.""")
field_of_view: List[float] = Field(..., description="""Size of viewing area, in meters.""")
value: Optional[NDArray[Shape["* num_rows, * num_cols"], float]] = Field(
None,
json_schema_extra={
@ -318,18 +308,16 @@ class ImagingRetinotopyVasculatureImage(ConfiguredBaseModel):
}
},
)
bits_per_pixel: Optional[int] = Field(
None,
bits_per_pixel: int = Field(
...,
description="""Number of bits used to represent each value. This is necessary to determine maximum (white) pixel value""",
)
dimension: Optional[int] = Field(
None,
dimension: List[int] = Field(
...,
description="""Number of rows and columns in the image. NOTE: row, column representation is equivalent to height, width.""",
)
field_of_view: Optional[float] = Field(None, description="""Size of viewing area, in meters.""")
format: Optional[str] = Field(
None, description="""Format of image. Right now only 'raw' is supported."""
)
field_of_view: List[float] = Field(..., description="""Size of viewing area, in meters.""")
format: str = Field(..., description="""Format of image. Right now only 'raw' is supported.""")
value: Optional[NDArray[Shape["* num_rows, * num_cols"], int]] = Field(
None,
json_schema_extra={

View file

@ -123,9 +123,7 @@ class TimeSeriesReferenceVectorData(VectorData):
description="""Number of data samples available in this time series, during this epoch""",
)
timeseries: TimeSeries = Field(..., description="""The TimeSeries that this index applies to""")
description: Optional[str] = Field(
None, description="""Description of what these vectors represent."""
)
description: str = Field(..., description="""Description of what these vectors represent.""")
value: Optional[
Union[
NDArray[Shape["* dim0"], Any],
@ -214,10 +212,15 @@ class TimeSeries(NWBDataInterface):
)
name: str = Field(...)
description: Optional[str] = Field(None, description="""Description of the time series.""")
description: Optional[str] = Field(
"no description",
description="""Description of the time series.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no description)"}},
)
comments: Optional[str] = Field(
None,
"no comments",
description="""Human-readable comments about the TimeSeries. This second descriptive field can be used to store additional information, or descriptive information if the primary description field is populated with a computer-readable string.""",
json_schema_extra={"linkml_meta": {"ifabsent": "string(no comments)"}},
)
data: TimeSeriesData = Field(
...,
@ -262,19 +265,21 @@ class TimeSeriesData(ConfiguredBaseModel):
json_schema_extra={"linkml_meta": {"equals_string": "data", "ifabsent": "string(data)"}},
)
conversion: Optional[float] = Field(
None,
1.0,
description="""Scalar to multiply each element in data to convert it to the specified 'unit'. If the data are stored in acquisition system units or other units that require a conversion to be interpretable, multiply the data by 'conversion' to convert the data to the specified 'unit'. e.g. if the data acquisition system stores values in this object as signed 16-bit integers (int16 range -32,768 to 32,767) that correspond to a 5V range (-2.5V to 2.5V), and the data acquisition system gain is 8000X, then the 'conversion' multiplier to get from raw data acquisition values to recorded volts is 2.5/32768/8000 = 9.5367e-9.""",
json_schema_extra={"linkml_meta": {"ifabsent": "float(1.0)"}},
)
offset: Optional[float] = Field(
None,
description="""Scalar to add to the data after scaling by 'conversion' to finalize its coercion to the specified 'unit'. Two common examples of this include (a) data stored in an unsigned type that requires a shift after scaling to re-center the data, and (b) specialized recording devices that naturally cause a scalar offset with respect to the true units.""",
)
resolution: Optional[float] = Field(
None,
-1.0,
description="""Smallest meaningful difference between values in data, stored in the specified by unit, e.g., the change in value of the least significant bit, or a larger number if signal noise is known to be present. If unknown, use -1.0.""",
json_schema_extra={"linkml_meta": {"ifabsent": "float(-1.0)"}},
)
unit: Optional[str] = Field(
None,
unit: str = Field(
...,
description="""Base unit of measurement for working with the data. Actual stored values are not necessarily stored in these units. To access the data in these units, multiply 'data' by 'conversion' and add 'offset'.""",
)
continuity: Optional[str] = Field(
@ -304,9 +309,13 @@ class TimeSeriesStartingTime(ConfiguredBaseModel):
"linkml_meta": {"equals_string": "starting_time", "ifabsent": "string(starting_time)"}
},
)
rate: Optional[float] = Field(None, description="""Sampling rate, in Hz.""")
unit: Optional[str] = Field(
None, description="""Unit of measurement for time, which is fixed to 'seconds'."""
rate: float = Field(..., description="""Sampling rate, in Hz.""")
unit: Literal["seconds"] = Field(
"seconds",
description="""Unit of measurement for time, which is fixed to 'seconds'.""",
json_schema_extra={
"linkml_meta": {"equals_string": "seconds", "ifabsent": "string(seconds)"}
},
)
value: float = Field(...)
@ -352,9 +361,7 @@ class Images(NWBDataInterface):
)
name: str = Field("Images", json_schema_extra={"linkml_meta": {"ifabsent": "string(Images)"}})
description: Optional[str] = Field(
None, description="""Description of this collection of images."""
)
description: str = Field(..., description="""Description of this collection of images.""")
image: List[Image] = Field(..., description="""Images stored in this collection.""")
order_of_images: Named[Optional[ImageReferences]] = Field(
None,

Some files were not shown because too many files have changed in this diff Show more