Core Concepts
Understanding the core concepts of BrainDance will help you design and execute more complex experiments.
Maxwell Environment
The MaxwellEnv
class is the central component that interfaces with the micro electrode array hardware. It handles:
- Initialization of the hardware
- Data acquisition
- Stimulation control
- Data saving
Example usage:
from braindance.core.maxwell_env import MaxwellEnv
from braindance.core.params import maxwell_params
params = maxwell_params
params['save_dir'] = './experiment_data'
params['name'] = 'my_experiment'
env = MaxwellEnv(**params)
Phases
Phases are the building blocks of experiments in BrainDance. Each phase represents a specific experimental action or protocol. Common phase types include:
RecordPhase
: Simple recording of neural activityNeuralSweepPhase
: Systematic stimulation of specified electrodesFrequencyStimPhase
: Stimulation at a specified frequency
Example of creating a phase:
from braindance.core.phases import RecordPhase
record_phase = RecordPhase(env, duration=60*5) # 5-minute recording phase
Phase Manager
The PhaseManager
class orchestrates the execution of multiple phases in an experiment. It allows you to:
- Add phases to the experiment
- Specify the order of phase execution
- Run the entire experiment
Example usage:
from braindance.core.phases import PhaseManager
phase_manager = PhaseManager(env, verbose=True)
phase_manager.add_phase_group([record_phase, stim_phase, record_phase])
phase_manager.run()
By combining these core concepts, you can create complex, multi-stage experiments with precise control over stimulation and recording parameters.