Chinaunix
标题:
求多重校正的perl脚本
[打印本页]
作者:
yang7473453
时间:
2014-02-28 20:34
标题:
求多重校正的perl脚本
FDR错误控制法是Benjamini于1995年提出一种方法,通过控制FDR(FalseDiscovery Rate)来决定P值的域值.假设你挑选了R个差异表达的基因,其中有S个是真正有差异表达的,另外有V个其实是没有差异表达的,是假阳性的。实践中希望错误比例Q=V/R平均而言不能超过某个预先设定的值(比如0.05),在统计学上,这也就等价于控制FDR不能超过5%.
对所有候选基因的p值进行从小到大排序,则若想控制fdr不能超过q,则只需找到最大的正整数i,使得p(i)<=(i*q)/m.然后,挑选对应p(1),p(2),...,p(i)的基因做为差异表达基因,这样就能从统计学上保证fdr不超过q。因此,FDR的计算公式如下:
q-value(i)=p(i)*length(p)/rank(p)
表示看完这些我还是不会写perl,不知道有没有大神会写,帮写一个吧,急求!!!!!
作者:
yinyuemi
时间:
2014-02-28 21:28
回复
1#
yang7473453
大概是这个意思
#!/usr/bin/env perl
my @test_data=(0.0003,0.0001,0.02);
my %sorted_data = map{$_=>++$i}sort @test_data;
@p_adjust_data = map{$_ * ($#test_data+1) / $sorted_data{$_}}@test_data;
print join "\t", "@test_data"';
print "\n";
print join "\t", "@p_adjust_data";
复制代码
作者:
rubyish
时间:
2014-03-01 01:29
yinyuemi 发表于 2014-02-28 17:28
回复 1# yang7473453
大概是这个意思
这个有意思~学习了!
作者:
q1208c
时间:
2014-03-01 07:48
表示看完楼主写的, 我觉得我需要回去重新学一下语文了.
完全没理解是什么意思.
作者:
pitonas
时间:
2014-03-01 13:30
(⊙0⊙) ~ 比较茫然, 看完以后也确实什么都没理解
假设你挑选了R个差异表达的基因,其中有S个是真正有差异表达的,另外有V个其实是没有差异表达的
大牛, 帮忙指点一下, 举个栗子:
举个栗子,什么是
有差异表达
?
什么是
没有差异表达
?
回复
2#
yinyuemi
作者:
yang7473453
时间:
2014-03-01 20:32
非常感谢,很有帮助
回复
2#
yinyuemi
作者:
yinyuemi
时间:
2014-03-02 21:05
回复
5#
pitonas
这是统计学的知识(
http://en.wikipedia.org/wiki/False_discovery_rate
), 一种控制假阳性率(FDR)的方法, 全称应该是benjamini hochberg.
楼主应该是搞生物信息的, 两种条件下生物的基因的表达量可能相同,也可能不一样, 前者就是 表达无差异, 后者即是 表达差异
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2