Per-frame F0 baseline rises artificially at the end of each analysis trial

未关闭
#17 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 5 天内回复

还没有人认领这个 Issue。

评估

难度
5/5
预计耗时
一周以上
新手友好度
28/100
Issue 类型
缺陷
描述清晰度
基本清楚
活跃度
活跃
领域
data

调研方向

Start in extractTrial and trace how splitFreq, fitB, and the sources/temporal/F0 baseline are produced. Plot B and the splitFreq low-pass for single pixels near trial ends, as suggested, to identify where the rise begins. Done means the baseline no longer rises artificially at trial ends and F0 behaves consistently across trial edges; the issue gives no test or validation entry point.

由索引模型根据 Issue 内容生成。

描述

bug

Summary

Source extraction's per-frame baseline (B in extractTrial, reported per source as sources/temporal/F0) rises over the last few seconds of every analysis trial. Over the same frames the raw fluorescence falls, so the rise comes from the baseline fit rather than the data. It also contributes to steps in F0 at trial edges.

Evidence

Dataset: 780125 Neuron1, 2025-03-14 (Z:\ophys\Maedeh\V1_visual_stimuli\780125\slap2_780125_2025-03-14_09-30-06\Neuron1), analysis trials 2–6 (five 28 s trials, about 0.55 s apart), SLAP2, 200 Hz analysis rate.

Method: each source's per-frame F0 was divided by its own median and averaged across sources, with discarded frames excluded. Each trial was then normalized to its own mean and the trials were averaged. global/F (raw whole-field fluorescence) is the reference.

Path2 (dendrites, 68 sources) Path1 (soma plane, 107 sources)
Last 2 s vs. trial middle, F0 +1.2% +2.2%
Last 2 s vs. trial middle, global F −1.0% −3.4%
First 2 s vs. trial middle, F0 +6.8% +4.8%
First 2 s vs. trial middle, global F +3.1% +6.4%
F0 step across the 4 trial edges +4.2, +2.3, +1.9, +1.5% −0.6, −3.5, +0.1, −0.5%
Global F step across the same edges +2.5, +0.3, −0.1, +0.8% −1.9, +1.3, +0.3, +2.0%
  • Trial ends: F0 and raw fluorescence move in opposite directions, so this looks like an artifact.
  • Trial starts: raw fluorescence really is higher (recovery during the gap between trials), but on Path2 F0's start excess is about twice global F's, so F0 likely overshoots there too.
  • Not footprint scale: sources/temporal/F0 = H'B/sum(H.^2) depends on footprint shape, but the median sum(H.^2) is constant across trials, and the footprint-weighted mean of B shows the same pattern.

Likely causes (not yet confirmed)

  • splitFreq interpolates the lower envelope of page means with interp1(..., 'linear', 'extrap'), so the baseline is extrapolated past the last full page. lowess and movmean smoothing are also less constrained at the ends.
  • fitB includes sinePredictors and the surround high-pass terms, which are unconstrained at the trial boundaries.

Suggested next steps

  • Plot B and the splitFreq low-pass for single pixels near trial ends, to see which step introduces the rise.
  • Consider fitting the baseline over padded data (reflect at the edges) or fitting adjacent trials jointly, so the baseline can't diverge at trial edges.

Workaround in progress

The per-trial F0 images being added to per_trial_summary.h5 (per_trial_F0_im) will leave out the first and last few seconds of each trial when averaging. The per-frame F0 traces (sources/temporal/F0) are still affected.

主要语言
MATLAB
星标
3
派生
3
平均合并
4 天 6 小时
30 天内合并 PR
6

环境准备

这个项目没有提供开发容器、Dockerfile 或贡献指南,环境需要你自己搭建:先看它的 README,通用步骤见我们的新手贡献指南。

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

AllenNeuralDynamics/GIAnT-MATLAB 的其他 Issue

查看 AllenNeuralDynamics/GIAnT-MATLAB 的全部 Issue

相似的 Issue

更多 MATLAB Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。