| """CortexLab Quick Start Example. |
| |
| Demonstrates loading a pretrained model, running inference, |
| and using the brain-alignment benchmark and cognitive load scorer. |
| """ |
|
|
| import numpy as np |
|
|
|
|
| def run_benchmark_demo(): |
| """Demonstrate the brain-alignment benchmark with synthetic data.""" |
| from cortexlab.analysis import BrainAlignmentBenchmark |
|
|
| n_stimuli = 50 |
| model_features = np.random.randn(n_stimuli, 768) |
| brain_predictions = np.random.randn(n_stimuli, 20484) |
|
|
| roi_indices = { |
| "V1": np.arange(0, 100), |
| "MT": np.arange(500, 600), |
| "A1": np.arange(1000, 1100), |
| "Broca": np.arange(2000, 2100), |
| } |
|
|
| bench = BrainAlignmentBenchmark(brain_predictions, roi_indices=roi_indices) |
|
|
| for method in ["rsa", "cka", "procrustes"]: |
| result = bench.score_model(model_features, method=method) |
| print(f"[{method.upper()}] Aggregate: {result.aggregate_score:.4f}") |
| for roi, score in sorted(result.roi_scores.items()): |
| print(f" {roi}: {score:.4f}") |
| print() |
|
|
|
|
| def run_cognitive_load_demo(): |
| """Demonstrate the cognitive load scorer with synthetic predictions.""" |
| from cortexlab.analysis import CognitiveLoadScorer |
|
|
| roi_indices = { |
| "46": np.arange(0, 10), |
| "FEF": np.arange(10, 20), |
| "V1": np.arange(100, 120), |
| "V2": np.arange(120, 140), |
| "MT": np.arange(140, 160), |
| "A1": np.arange(200, 220), |
| "LBelt": np.arange(220, 230), |
| "44": np.arange(300, 310), |
| "45": np.arange(310, 320), |
| } |
|
|
| scorer = CognitiveLoadScorer(roi_indices, baseline_activation=0.5) |
|
|
| |
| predictions = np.random.randn(30, 500) * 0.5 |
| |
| predictions[:, 100:160] *= 3.0 |
|
|
| result = scorer.score_predictions(predictions, tr_seconds=1.0) |
| print(f"Overall cognitive load: {result.overall_load:.2f}") |
| print(f"Visual complexity: {result.visual_complexity:.2f}") |
| print(f"Auditory demand: {result.auditory_demand:.2f}") |
| print(f"Language processing: {result.language_processing:.2f}") |
| print(f"Executive load: {result.executive_load:.2f}") |
| print(f"Timeline points: {len(result.timeline)}") |
|
|
|
|
| if __name__ == "__main__": |
| print("=== Brain-Alignment Benchmark ===") |
| run_benchmark_demo() |
|
|
| print("=== Cognitive Load Scorer ===") |
| run_cognitive_load_demo() |
|
|