FDR correction matlab script

40 sec read

The following script is to determine is a channel (or voxel) survives the FDR corrected threshold. Assume you have 48 channels and you already calculated the (uncorrected) p-value of each channel. You put it into an array called p. Now you want to know which channel will survive if you do a FDR correction at q=0.05. You may simply use

fdr0(p, 0.05)

The output is an array of 48 numbers, with 1s in the channel where it survives the FDR threshold.

function y = fdr0(p, q)
% y = fdr0(p, q)
%
% to calculate whether a pvalue survive FDR corrected q
%
% p: an array of p values. (e.g. p values for each channel)
% q: desired FDR threshold (typically 0.05)
% y: an array of the same size with p with only two possible values. 0
% means this position (channel) does not survive the threshold, 1 mean it
% survives
%
% Ref:
% Genovese et al. (2002). Thresholding statistical maps in functional
% neuroimaging using the false discovery rate. Neuroimage, 15:722-786.
%
% Example:
%   y = fdr0(rand(10,1),0.5);
%
% Xu Cui
% 2016/3/14
%

pvalue = p;
y = 0 * p;

[sortedpvalue, sortedposition] = sort(pvalue);
v = length(sortedposition);
for ii=1:v
    if q*ii/v >= sortedpvalue(ii)
        y(sortedposition(ii)) = 1;
    end
end

return;



文献鸟 618 活动


写作助手,把中式英语变成专业英文


Want to receive new post notification? 有新文章通知我

第六十五期fNIRS Journal Club通知2025/8/30, 10am 兰月教授 陈嘉琳

该文章的声音简介(中文版): 该文章的声音简介(英文版): 在运动想象型脑机接口 (MI-BCI)训练中,不少使用者表现出控制效果不佳,即使经过训练也难以达到理想水平的“BCI 无效性”现象。RDLP
Wanling Zhu
15 sec read

第六十四期fNIRS Journal Club视频 黄润玉

Youtube: https://youtu.be/8lyoR_K2BYA 优酷:https://v.youku.com/v_show/id_XNjQ4MjU2Mzk3Mg==.html 随着全球老龄
Wanling Zhu
14 sec read

第六十四期fNIRS Journal Club通知2025/7/12, 10am 黄润玉

该文章的声音简介(中文版): 该文章的声音简介(英文版): 随着全球老龄化加剧,越来越多老年人面临数字化适应、子女异地独居适应等问题。在青年志愿者人数明显不足以覆盖老龄人口的现实情况下,让老年同龄人进
Wanling Zhu
9 sec read

Leave a Reply

Your email address will not be published. Required fields are marked *