placecell.config

On this page

placecell.config#

Configuration models for pcell, loaded from YAML.

Classes

AnalysisConfig(*, id[, mio_model, ...])

Top-level application configuration.

BehaviorConfig(*[, type, speed_threshold, ...])

Behavior / place-field configuration.

DataPathsConfig(*, neural_path, ...[, ...])

Bundle of data file paths for neural and behavior data.

MazeConfig(*[, tube_order, zone_column, ...])

Configuration for maze/tube-based 1D analysis.

NeuralConfig(*[, fps, trace_name])

Neural data configuration.

OasisConfig(*, g[, baseline, penalty, s_min])

OASIS deconvolution parameters.

SpatialMap1DConfig(*[, bin_width_mm, ...])

Spatial map settings for 1D tube analysis.

SpatialMap2DConfig(*, bins, min_occupancy, ...)

Spatial map visualization configuration for 2D arena analysis.

class placecell.config.OasisConfig(*, g: tuple[float, float], baseline: str | float = 'p10', penalty: Annotated[float, Ge(ge=0)] = 0.0, s_min: Annotated[float, Ge(ge=0)] = 0.0)#

Bases: BaseModel

OASIS deconvolution parameters.

Parameters:
  • g (tuple[float, float])

  • baseline (str | float)

  • penalty (Annotated[float, Ge(ge=0)])

  • s_min (Annotated[float, Ge(ge=0)])

g: tuple[float, float]#
baseline: str | float#
penalty: float#
s_min: float#
model_config: ClassVar[ConfigDict] = {}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class placecell.config.NeuralConfig(*, fps: float = 20.0, oasis: OasisConfig, trace_name: str = 'C')#

Bases: BaseModel

Neural data configuration.

Parameters:
fps: float#
oasis: OasisConfig#
trace_name: str#
model_config: ClassVar[ConfigDict] = {}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class placecell.config.SpatialMap2DConfig(*, bins: Annotated[int, Ge(ge=5), Le(le=200)], min_occupancy: Annotated[float, Ge(ge=0)], occupancy_sigma: Annotated[float, Ge(ge=0)], activity_sigma: Annotated[float, Ge(ge=0)], n_shuffles: Annotated[int, Ge(ge=1), Le(le=10000)], random_seed: int | None = None, event_threshold_sigma: float = 0.0, p_value_threshold: Annotated[float, Ge(ge=0.0), Le(le=1.0)] = 0.05, min_shift_seconds: Annotated[float, Ge(ge=0)] = 20.0, si_weight_mode: str = 'binary', place_field_threshold: Annotated[float, Gt(gt=0.0), Lt(lt=1.0)] = 0.05, place_field_min_bins: Annotated[int, Ge(ge=1)] = 5, place_field_seed_percentile: float = 95.0, n_split_blocks: Annotated[int, Ge(ge=2), Le(le=100)] = 10, block_shifts: list[float] = [0.0], trace_time_window: Annotated[float, Gt(gt=0)] = 600.0)#

Bases: BaseModel

Spatial map visualization configuration for 2D arena analysis.

Parameters:
  • bins (Annotated[int, Ge(ge=5), Le(le=200)])

  • min_occupancy (Annotated[float, Ge(ge=0)])

  • occupancy_sigma (Annotated[float, Ge(ge=0)])

  • activity_sigma (Annotated[float, Ge(ge=0)])

  • n_shuffles (Annotated[int, Ge(ge=1), Le(le=10000)])

  • random_seed (int | None)

  • event_threshold_sigma (float)

  • p_value_threshold (Annotated[float, Ge(ge=0.0), Le(le=1.0)])

  • min_shift_seconds (Annotated[float, Ge(ge=0)])

  • si_weight_mode (str)

  • place_field_threshold (Annotated[float, Gt(gt=0.0), Lt(lt=1.0)])

  • place_field_min_bins (Annotated[int, Ge(ge=1)])

  • place_field_seed_percentile (float)

  • n_split_blocks (Annotated[int, Ge(ge=2), Le(le=100)])

  • block_shifts (list[float])

  • trace_time_window (Annotated[float, Gt(gt=0)])

bins: int#
min_occupancy: float#
occupancy_sigma: float#
activity_sigma: float#
n_shuffles: int#
random_seed: int | None#
event_threshold_sigma: float#
p_value_threshold: float#
min_shift_seconds: float#
si_weight_mode: str#
place_field_threshold: float#
place_field_min_bins: int#
place_field_seed_percentile: float#
n_split_blocks: int#
block_shifts: list[float]#
trace_time_window: float#
model_config: ClassVar[ConfigDict] = {}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class placecell.config.MazeConfig(*, tube_order: list[str] = ['Tube_1', 'Tube_2', 'Tube_3', 'Tube_4'], zone_column: str = 'zone', tube_position_column: str = 'tube_position', split_by_direction: bool = True)#

Bases: BaseModel

Configuration for maze/tube-based 1D analysis.

Parameters:
  • tube_order (list[str])

  • zone_column (str)

  • tube_position_column (str)

  • split_by_direction (bool)

tube_order: list[str]#
zone_column: str#
tube_position_column: str#
split_by_direction: bool#
model_config: ClassVar[ConfigDict] = {}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class placecell.config.SpatialMap1DConfig(*, bin_width_mm: Annotated[float, Gt(gt=0)] = 10.0, min_occupancy: Annotated[float, Ge(ge=0)] = 0.025, occupancy_sigma: Annotated[float, Ge(ge=0)] = 2.0, activity_sigma: Annotated[float, Ge(ge=0)] = 2.0, n_shuffles: Annotated[int, Ge(ge=1), Le(le=10000)] = 1000, random_seed: int | None = None, p_value_threshold: Annotated[float, Ge(ge=0.0), Le(le=1.0)] = 0.05, min_shift_seconds: Annotated[float, Ge(ge=0)] = 20.0, si_weight_mode: str = 'amplitude', n_split_blocks: Annotated[int, Ge(ge=2), Le(le=100)] = 10, block_shifts: list[float] = [0.0], trace_time_window: Annotated[float, Gt(gt=0)] = 600.0)#

Bases: BaseModel

Spatial map settings for 1D tube analysis.

Parameters:
  • bin_width_mm (Annotated[float, Gt(gt=0)])

  • min_occupancy (Annotated[float, Ge(ge=0)])

  • occupancy_sigma (Annotated[float, Ge(ge=0)])

  • activity_sigma (Annotated[float, Ge(ge=0)])

  • n_shuffles (Annotated[int, Ge(ge=1), Le(le=10000)])

  • random_seed (int | None)

  • p_value_threshold (Annotated[float, Ge(ge=0.0), Le(le=1.0)])

  • min_shift_seconds (Annotated[float, Ge(ge=0)])

  • si_weight_mode (str)

  • n_split_blocks (Annotated[int, Ge(ge=2), Le(le=100)])

  • block_shifts (list[float])

  • trace_time_window (Annotated[float, Gt(gt=0)])

bin_width_mm: float#
min_occupancy: float#
occupancy_sigma: float#
activity_sigma: float#
n_shuffles: int#
random_seed: int | None#
p_value_threshold: float#
min_shift_seconds: float#
si_weight_mode: str#
n_split_blocks: int#
block_shifts: list[float]#
trace_time_window: float#
model_config: ClassVar[ConfigDict] = {}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class placecell.config.BehaviorConfig(*, type: Literal['arena', 'maze'] = 'arena', behavior_fps: Annotated[float, Gt(gt=0)], speed_threshold: float = 50.0, speed_window_frames: int = 5, bodypart: str, x_col: str = 'x', y_col: str = 'y', jump_threshold_mm: Annotated[float, Gt(gt=0)] = 100.0, spatial_map_2d: SpatialMap2DConfig | None = None, maze: MazeConfig | None = None, spatial_map_1d: SpatialMap1DConfig | None = None)#

Bases: BaseModel

Behavior / place-field configuration.

Parameters:
  • type (Literal['arena', 'maze'])

  • behavior_fps (Annotated[float, Gt(gt=0)])

  • speed_threshold (float)

  • speed_window_frames (int)

  • bodypart (str)

  • x_col (str)

  • y_col (str)

  • jump_threshold_mm (Annotated[float, Gt(gt=0)])

  • spatial_map_2d (SpatialMap2DConfig | None)

  • maze (MazeConfig | None)

  • spatial_map_1d (SpatialMap1DConfig | None)

type: Literal['arena', 'maze']#
behavior_fps: float#
speed_threshold: float#
speed_window_frames: int#
bodypart: str#
x_col: str#
y_col: str#
jump_threshold_mm: float#
spatial_map_2d: SpatialMap2DConfig | None#
maze: MazeConfig | None#
spatial_map_1d: SpatialMap1DConfig | None#
model_config: ClassVar[ConfigDict] = {}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class placecell.config.DataPathsConfig(*, neural_path: str, neural_timestamp: str, behavior_position: str, behavior_timestamp: str, behavior_video: str | None = None, arena_bounds: tuple[float, float, float, float] | None = None, arena_size_mm: tuple[float, float] | None = None, camera_height_mm: Annotated[float | None, Gt(gt=0.0)] = None, tracking_height_mm: Annotated[float | None, Ge(ge=0.0)] = None, behavior_graph: str | None = None, oasis: OasisConfig | None = None)#

Bases: BaseModel

Bundle of data file paths for neural and behavior data.

Parameters:
  • neural_path (str)

  • neural_timestamp (str)

  • behavior_position (str)

  • behavior_timestamp (str)

  • behavior_video (str | None)

  • arena_bounds (tuple[float, float, float, float] | None)

  • arena_size_mm (tuple[float, float] | None)

  • camera_height_mm (Annotated[float | None, Gt(gt=0.0)])

  • tracking_height_mm (Annotated[float | None, Ge(ge=0.0)])

  • behavior_graph (str | None)

  • oasis (OasisConfig | None)

classmethod from_yaml(path: str | Path) DataPathsConfig#

Load from a YAML file.

Parameters:

path (str | Path)

Return type:

DataPathsConfig

neural_path: str#
neural_timestamp: str#
behavior_position: str#
behavior_timestamp: str#
behavior_video: str | None#
arena_bounds: tuple[float, float, float, float] | None#
arena_size_mm: tuple[float, float] | None#
camera_height_mm: float | None#
tracking_height_mm: float | None#
behavior_graph: str | None#
oasis: OasisConfig | None#
model_config: ClassVar[ConfigDict] = {}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class placecell.config.AnalysisConfig(*, id: Annotated[str, _PydanticGeneralMetadata(pattern='[\\w\\-\\/#]+')], mio_model: Annotated[str, AfterValidator(func=_is_identifier)] = None, mio_version: str = '0.8.1', neural: NeuralConfig, behavior: BehaviorConfig | None = None)#

Bases: MiniscopeConfig, _PlacecellConfigMixin

Top-level application configuration.

Parameters:
  • id (Annotated[str, _PydanticGeneralMetadata(pattern='[\\w\\-\\/#]+')])

  • mio_model (Annotated[str, AfterValidator(func=~mio.types._is_identifier)])

  • mio_version (str)

  • neural (NeuralConfig)

  • behavior (BehaviorConfig | None)

model_config: ClassVar[ConfigDict] = {'extra': 'ignore'}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

neural: NeuralConfig#
behavior: BehaviorConfig | None#
with_data_overrides(data_cfg: DataPathsConfig) AnalysisConfig#

Create a new config with data-specific overrides applied.

Parameters:

data_cfg (DataPathsConfig) – Data configuration that may contain override values.

Returns:

New config with overrides applied. Original config is unchanged.

Return type:

AnalysisConfig