Overview ======== ``litcoder`` is a modular Python library for building brain encoding models from naturalistic stimuli (text and speech). It emphasizes clean abstractions and composability: - Assemblies: load and structure datasets (narratives, LPP, Lebel styles) - Feature extractors: text and speech encoders with caching and multi-layer support - Downsampling: align features to fMRI TRs - FIR expansion: build time-lagged feature spaces - Models: linear ridge, nested CV, and scikit-learn wrappers - Training: a dependency-injected `AbstractTrainer` orchestrates the pipeline - Logging & plotting: WandB/TensorBoard, brain plots, and run management Design principles ----------------- - Dependency injection for testability and reuse - Clear data contracts between components - Deterministic, disk-based caching for expensive features - Separation of concerns (I/O, processing, modeling, orchestration)