搜索
查看: 2555|回复: 0

quantile normalization到底对数据做了什么?

[复制链接]

634

主题

1182

帖子

4030

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
4030
发表于 2017-2-16 10:16:28 | 显示全部楼层 |阅读模式
首发于我的博客:http://www.bio-info-trainee.com/2043.html
在R里面,推荐用preprocessCore 包来做quantile normalization,不需要自己造轮子啦!

但是需要明白什么时候该用quantile normalization,什么时候不应该用,就复杂很多了,自己看
http://biorxiv.org/content/biorxiv/early/2014/12/04/012203.full.pdf



如果你想造轮子,就看: https://davetang.org/muse/2014/07/07/quantile-normalisation-in-r/

[AppleScript] 纯文本查看 复制代码
quantile_normalisation <- function(df){
  df_rank <- apply(df,2,rank,ties.method="min")
  df_sorted <- data.frame(apply(df, 2, sort))
  df_mean <- apply(df_sorted, 1, mean)
   
  index_to_mean <- function(my_index, my_mean){
    return(my_mean[my_index])
  }
   
  df_final <- apply(df_rank, 2, index_to_mean, my_mean=df_mean)
  rownames(df_final) <- rownames(df)
  return(df_final)
}
 
#test the function
df <- data.frame(one=c(5,2,3,4),
                 two=c(4,1,4,2),
                 three=c(3,4,6,8)
                 )
rownames(df) <- toupper(letters[1:4])
 
quantile_normalisation(df)





上一篇:表达芯片数据预处理四部曲-N,T,B,Q(normalization,transformation,bac...
下一篇:MySQL基础语句学习
你这个问题很复杂,需要打赏,请点击 http://www.bio-info-trainee.com/donate 进行打赏,谢谢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|生信技能树 ( 粤ICP备15016384号  

GMT+8, 2019-9-16 09:10 , Processed in 0.038123 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.