Free SKILL.md scraped from GitHub. Clone the repo or copy the file directly into your Claude Code skills directory.
npx versuz@latest install hiyenwong-ai-collection-collection-skills-calcium-foundation-modelgit clone https://github.com/hiyenwong/ai_collection.gitcp ai_collection/SKILL.MD ~/.claude/skills/hiyenwong-ai-collection-collection-skills-calcium-foundation-model/SKILL.md---
name: calcium-foundation-model
description: "Self-supervised foundation model for calcium imaging population dynamics (CalM). Enables transfer learning across neuroscience tasks including neural decoding and activity forecasting. Activation: calcium foundation model, neural population dynamics, self-supervised neuroscience, CalM, calcium imaging."
---
# CalM: Self-Supervised Foundation Model for Calcium Imaging
基于论文 "Self-Supervised Foundation Model for Calcium-imaging Population Dynamics" (arXiv:2604.04958v2, 2026-04-03)
## Description
CalM is a self-supervised neural foundation model trained on neuronal calcium traces. It addresses the challenge of task-specific limitations in calcium imaging analysis by learning general representations that transfer to multiple downstream neuroscience tasks.
## Core Concept
Foundation models for neural data:
1. **Large-Scale Pre-training**: Train on diverse calcium imaging datasets from multiple animals
2. **Self-Supervised Objectives**: Use forecasting and masked prediction tasks
3. **General Representations**: Learn features that capture neural population dynamics
4. **Transfer Learning**: Adapt pre-trained model to specific tasks with minimal data
## Activation Keywords
- calcium foundation model
- neural population dynamics
- self-supervised neuroscience
- CalM
- calcium imaging
- foundation model neuroscience
- neural transfer learning
- 钙成像基础模型
- 神经群体动力学
## Methodology
### Step 1: Data Collection
```python
# Aggregate calcium imaging data from multiple sources
datasets = [
load_dataset("allen_brain Observatory"),
load_dataset("stringer_et_al_2019"),
load_dataset("mouse_visual_cortex"),
# ... more datasets
]
# Preprocess traces
def preprocess_traces(raw_traces, fs=30):
# Deconvolve if needed
# Normalize
# Handle missing data
return processed_traces
```
### Step 2: Self-Supervised Pre-training
```python
class CalMModel(nn.Module):
def __init__(self, n_neurons, hidden_dim=512):
self.encoder = TransformerEncoder(n_neurons, hidden_dim)
self.forecasting_head = nn.Linear(hidden_dim, n_neurons)
self.mask_prediction_head = nn.Linear(hidden_dim, n_neurons)
def forward(self, traces, mask=None):
# traces: [batch, time, neurons]
embeddings = self.encoder(traces)
# Multi-task objectives
forecast = self.forecasting_head(embeddings)
mask_pred = self.mask_prediction_head(embeddings)
return forecast, mask_pred, embeddings
# Training loop
def pretrain(model, dataloader, epochs=100):
for epoch in range(epochs):
for batch in dataloader:
traces = batch
# Masking for prediction task
mask = create_random_mask(traces)
masked_traces = traces.clone()
masked_traces[mask] = 0
# Forward pass
forecast, mask_pred, _ = model(masked_traces, mask)
# Losses
forecast_loss = mse_loss(forecast[:, :-1], traces[:, 1:])
mask_loss = mse_loss(mask_pred[mask], traces[mask])
loss = forecast_loss + mask_loss
loss.backward()
optimizer.step()
```
### Step 3: Fine-tuning for Downstream Tasks
```python
def finetune_for_decoding(model, labeled_data, task_type):
# Freeze encoder or use LoRA
for param in model.encoder.parameters():
param.requires_grad = False # Or use LoRA
# Add task-specific head
if task_type == "decoding":
model.head = nn.Linear(hidden_dim, n_classes)
elif task_type == "forecasting":
model.head = nn.Linear(hidden_dim, n_neurons)
# Fine-tune
for epoch in range(finetune_epochs):
for batch in labeled_data:
embeddings = model.encoder(batch.traces)
output = model.head(embeddings)
loss = task_loss(output, batch.labels)
loss.backward()
optimizer.step()
```
## Tools Used
- **PyTorch**: Deep learning framework
- **CaImAn**: Calcium imaging analysis
- **Suite2p**: Calcium trace extraction
- **NumPy/SciPy**: Signal processing
- **Hugging Face**: Model sharing and deployment
## Workflow
### Pre-training Pipeline
1. **Data Aggregation**
- Collect calcium imaging datasets from multiple labs
- Standardize format and preprocessing
- Ensure diversity in brain regions and behaviors
2. **Model Architecture Design**
- Choose transformer or RNN architecture
- Design multi-task heads
- Set embedding dimensions
3. **Self-Supervised Training**
- Train with forecasting objective
- Add masked prediction for robustness
- Use large batch sizes and long sequences
4. **Evaluation**
- Test on held-out datasets
- Measure representation quality
- Assess cross-animal transfer
### Fine-tuning Pipeline
1. **Task Definition**
- Define downstream task (decoding, forecasting, etc.)
- Prepare labeled data
2. **Adapter Design**
- Choose fine-tuning strategy (full, LoRA, adapter)
- Design task-specific head
3. **Training**
- Fine-tune with small learning rate
- Early stopping based on validation
4. **Evaluation**
- Compare with task-specific baselines
- Measure sample efficiency
## Example Usage
### Example 1: Neural Decoding
```python
from calm import CalMModel
# Load pre-trained model
model = CalMModel.from_pretrained("calm-base")
# Prepare your data
calcium_traces = load_your_calcium_data() # [time, neurons]
labels = load_your_labels() # Behavioral labels
# Fine-tune for decoding
model.finetune(
task="decoding",
data=(calcium_traces, labels),
epochs=50,
lr=1e-4
)
# Decode new data
predictions = model.decode(new_calcium_traces)
```
### Example 2: Activity Forecasting
```python
# Use model for forecasting
model = CalMModel.from_pretrained("calm-base")
# Forecast future activity
context = calcium_traces[:100] # First 100 time steps
future_predictions = model.forecast(context, horizon=50)
# future_predictions contains predicted activity for next 50 steps
```
### Example 3: Cross-Animal Transfer
```python
# Train on mouse data, test on different species
model = CalMModel.from_pretrained("calm-mouse")
# Fine-tune on small amount of primate data
primate_data = load_primate_calcium_data()
model.finetune(primate_data, epochs=20)
# Model now works on primate data
```
## Applications
1. **Neural Decoding**: Decode behavior/stimuli from population activity
2. **Activity Forecasting**: Predict future neural activity
3. **Anomaly Detection**: Identify unusual neural patterns
4. **Cross-Species Analysis**: Transfer knowledge across animal models
5. **Drug Response Modeling**: Predict neural effects of interventions
## Advantages
1. **Task-Agnostic**: Pre-trained model works for multiple tasks
2. **Sample Efficient**: Requires less labeled data for fine-tuning
3. **Scalable**: Performance improves with more pre-training data
4. **Transferable**: Learns general neural dynamics principles
5. **Multi-Animal**: Captures commonalities across species
## Limitations
- Requires large-scale pre-training data
- Computational cost of pre-training
- May not capture species-specific features without fine-tuning
- Domain gap between pre-training and target tasks
## Related Skills
- **meta-learning-brain-decoding**: Cross-subject learning
- **neural-population-decoding**: Population-level analysis
- **eeg2vision-multimodal-reconstruction**: Multimodal neural decoding
## References
- Paper: "Self-Supervised Foundation Model for Calcium-imaging Population Dynamics" (arXiv:2604.04958v2)
- Authors: Xinhong Xu, Yimeng Zhang, Qichen Qian, et al.
- Published: 2026-04-03