cortexlab / examples /quick_start.py
SID2000's picture
Upload folder using huggingface_hub
9635a89 verified
"""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) # e.g. CLIP features
brain_predictions = np.random.randn(n_stimuli, 20484) # fsaverage5 vertices
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)
# Simulate 30 seconds of predictions
predictions = np.random.randn(30, 500) * 0.5
# Add high visual activation
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()