fanchong 我用秩和检验得到的一系列p值,做FDR修正后,发现很奇怪。 1 很多修正后的p值都是相同的(之前有帖子说这一点是正常的修正行为,why?) 2 也更重要的,修正后的p值和原来的差很远,而且本来有0.01的p值的位点的,fdr后完全没有<=0.01的了 下面是我的数据 snpname pvalue fdr Scaffold_1:309 0.0383143142369944 0.0787768145153086 Scaffold_1:1849 0.0383143142369944 0.0787768145153086 Scaffold_1:4578 0.0383143142369944 0.0787768145153086 Scaffold_1:4638 0.00767438172764509 0.0787768145153086 Scaffold_1:4881 0.0383143142369944 0.0787768145153086 Scaffold_1:5224 0.0126326560282803 0.0787768145153086 Scaffold_1:6644 0.0383143142369944 0.0787768145153086 Scaffold_1:6675 0.0383143142369944 0.0787768145153086 Scaffold_1:6863 0.0383143142369944 0.0787768145153086 Scaffold_1:7096 0.0383143142369944 0.0787768145153086 Scaffold_1:8258 0.0383143142369944 0.0787768145153086 Scaffold_1:8270 0.0383143142369944 0.0787768145153086 Scaffold_1:8520 0.23044309723769 0.276655789602949 Scaffold_1:9017 0.0212111382313823 0.0787768145153086 Scaffold_1:10389 0.0696447764714895 0.114419851415035 Scaffold_1:11821 0.0383143142369944 0.0787768145153086 Scaffold_1:12730 0.0383143142369944 0.0787768145153086 Scaffold_1:18062 0.893998459985799 0.906624067365408 Scaffold_1:18077 0.893998459985799 0.906624067365408 Scaffold_1:18489 0.156822539119987 0.203510536715702 Scaffold_1:21256 0.0811043331940412 0.124883386668363 Scaffold_1:21299 0.0110382982273165 0.0787768145153086 Scaffold_1:21367 0.0110382982273165 0.0787768145153086 Scaffold_1:21835 0.886877812774938 0.903583482964087 Scaffold_1:22039 0.182707530617833 0.228522119901052 Scaffold_1:22265 0.248171211464844 0.29433574343596 Scaffold_1:22876 0.929216236029016 0.936520938366434 Scaffold_1:23177 0.102676934240566 0.145661916767585 Scaffold_1:30143 0.374374126224447 0.421765395138684 Scaffold_1:30609 0.119001733318107 0.161689681678934 Scaffold_1:30626 0.0791497573648718 0.124479775424989 Scaffold_1:30647 0.102676934240566 0.145661916767585 Scaffold_1:30730 0.102676934240566 0.145661916767585 Scaffold_1:31060 0.169087680986851 0.215370652962107 Scaffold_1:31068 0.0545128649120101 0.0965039788880239 Scaffold_1:31088 0.102676934240566 0.145661916767585 Scaffold_1:31107 0.102676934240566 0.145661916767585 Scaffold_1:31262 0.248171211464844 0.29433574343596 Scaffold_1:31312 0.262141130188372 0.309153324492322 Scaffold_1:31319 0.0849105850467526 0.12902505573617 Scaffold_1:31374 0.25328426810873 0.29973601986022 Scaffold_1:31400 0.374860038384574 0.422285149087835 Scaffold_1:31409 0.306990960438431 0.354635667825989 Scaffold_1:31439 0.102676934240566 0.145661916767585 Scaffold_1:31475 0.102676934240566 0.145661916767585 Scaffold_1:31558 0.22552826593262 0.272184919539507 Scaffold_1:31565 0.929216236029016 0.936520938366434 Scaffold_1:31604 0.537602447368535 0.576583608295656 Scaffold_1:31640 0.222010701696134 0.268404362966677 Scaffold_1:31649 0.222010701696134 0.268404362966677
fanchong 回复 第2楼 的 mengchen:你好,谢谢你的回答。还是有一点不懂,望前辈指教 1 为什么修正后的p值和修正前的p值可以相差这么远,这是否是正常的? 2 如果R语言内建函数p.adjust完全没有问题的话,那为什么我14W个变异点对应的p值,在没修正前有一些是小于0.01的,但是修正后14w个p值没一个小于0.01的,请问这正常吗? 3 其实我们做这件事的目的就是筛选出小于0.01的p值对应的位点。现在修正了以后竟然没有位点p值小于0.01,了,筛选位点这件事情我们还能怎么做下去?
youngtf 回复 第3楼 的 fanchong: 私以为2楼说的还是比较明白的。 1. 校正之后p值变化很大我觉得很正常。 2. p值是根据你分析的数据算出来的,如果检查过自己的分析,那我觉得算出来是这样那就是这样了。有显著的结果或者没有显著的结果都是正常的。 3. 要怎么做我觉得是由你要做的分析来决定的,造成这种结果的原因有千千万,要具体分析才行。
yanlinlin82 回复 第3楼 的 fanchong: 假设有某段莫名其妙的代码,能够让你的“得到”一些小于0.01的p值,你敢相信吗? 个人觉得做科研还是得保守些,把自己放在零假设这边,认为这才是常态,而不要一开始就认定一定存在所谓“p值小于0.01的点”,不然太容易犯无法后悔的错误了。
mengchen 回复 第3楼 的 fanchong: 修正后的 p value 有多大,很重要的一个决定因素是你总共有多少次检验。14万已经是一个比较大的数值了,建议去除一部分质量比较差的位点,重新进行检验和FDR修正。