2019-12-13

数据标准化(中心化+均一化)

Center,就是中心化。什么是中心化呢?the variables should be shifted to be zero centered,就是说中心化以后,原始数据点的中心移到与原点重合,为什么要中心化呢?其实为了,方便后续的运算,
Scale,也就是均一化,公式为(x-mean(x))/sd(x)
就是中心化数据再除以标准差以消除不同量级的影响,例如10、100、1000、10000等,若不对不同量级的数据进行均一化处理,原来数据,方差越大,对主成分的贡献越大,这样是不对的。那是不是所有的都应该方差化呢?并不是,因为均一化之后,会增大噪音的权重。噪音就是因为人为误差导致的样品状态有一些小的差异,但是并不会影响核心。
总结:当量级相差过大,我们应使用均一化;当差距不大,我们就不必使用均一化了。

相关性

Cor 就是协方差: 两个变量的变化趋势一致,也就是说如果其中一个大于自身的期望值时另外一个也大于自身的期望值,那么两个变量之间的协方差就是正值;如果两个变量的变化趋势相反,即其中一个变量大于自身的期望值时另外一个却小于自身的期望值,那么两个变量之间的协方差就是负值。

今天的内容是将下载好的数据读入到R里面然后进行分组

options(stringsAsFactors = F)
# 读入featureCounts的表达矩阵
data <- read.table("counts.txt",sep = "\t",header = T,row.names = 1)
data[1:3,]

# 为`data`的列进行重新命名
str <- stringr::str_split(colnames(data),"\\.",simplify=T)
colnames(data) <- str[,1]
data[1:3,]
c=unlist(lapply(rownames(data),function(x){stringr::str_split(as.character(x),"[.]",)[[1]][1]}))
dat=t(data)
colnames(dat)=c
dataa=as.data.frame(t(dat))
dataa[1:3,]#检查数据
options(stringsAsFactors = F)
#读入基因名
library(readxl)
pdata=read_xls("41576_2014_BFnrg3813_MOESM25_ESM.xls",sheet = 2,col_names=T,na = "")
table(pdata$`consensus RNA target`)
y=as.data.frame(table(pdata$`consensus RNA target`))
colnames(y)=c('group','value')
library(ggplot2)
bp<- ggplot(y, aes(x="",y=value, fill=group))+
  geom_bar(width = 1, stat = "identity")+coord_polar("y")+
  labs(x = "", y = "Total RBPs", title = "") +  ## 将标签设为空
  theme(axis.ticks = element_blank())+  ## 把左上角多出来的“刻度线”去掉
  theme(axis.text.x = element_blank())+ ## 白色的外框即是原柱状图的X轴,把X轴的刻度文字去掉即可
  theme(panel.grid=element_blank())+    ## 去掉白色圆框和中间的坐标线
  theme(panel.border=element_blank()) +  ## 去掉最外层正方形的框框
    geom_text(aes(y = rev(c(0,cumsum(rev(y$value))[-length(y$value)])+rev(y$value/2)), x = sum(y$value)/925, label = group)) 
bp
ids=pdata[,c(1,3)]
colnames(ids)=c('symbol','probe_id')
ids=ids[ids$probe_id %in% rownames(dataa),]
ids$probe_id=as.character(ids$probe_id)
dataa[1:4,1:4]   
dataa=dataa[ids$probe_id,] 
ids$median=apply(dataa,1,median) #ids新建median这一列,列名为median,同时对dat这个矩阵按行操作,取每一行的中位数,将结果给到median这一列的每一行
ids=ids[order(ids$symbol,ids$median,decreasing = T),]#对ids$symbol按照ids$median中位数从大到小排列的顺序排序,将对应的行赋值为一个新的ids
ids=ids[!duplicated(ids$symbol),]#将symbol这一列取取出重复项,'!'为否,即取出不重复的项,去除重复的gene ,保留每个基因最大表达量结果s
dataa=dataa[ids$probe_id,] #新的ids取出probe_id这一列,将dat按照取出的这一列中的每一行组成一个新的dat
dataa[1:4,1:4] 
rownames(dataa)=ids$symbol#把ids的symbol这一列中的每一行给dat作为dat的行名
dataa[1:4,1:4]  #保留每个基因ID第一次出现的信息
dim(dataa)
exprSet=dataa
group_li=c(paste0(rep("AT",2)),
           paste0(rep("10A",2)), 
           paste0(rep("CA1a",2)),
           paste0(rep("DCIS",2))) #根据样本信息写分组
group_list=factor(group_li,levels = c("AT","10A","CA1a","DCIS"))
save(exprSet,group_list,file = 'phf5aRNA-seq_exprSet.Rdata')
# 大家务必注意这样的代码技巧,多次存储Rdata文件。
# 存储后的Rdata文件,很容易就加载进入R语言工作环境。
load(file = 'phf5aRNA-seq_exprSet.Rdata')
table(group_list)
# 下面代码是为了检查
if(T){
  colnames(exprSet)
  pheatmap::pheatmap(cor(exprSet))
  group_list
  tmp=data.frame(g=group_list)
  rownames(tmp)=colnames(exprSet)
  # 组内的样本的相似性理论上应该是要高于组间的
  # 但是如果使用全部的基因的表达矩阵来计算样本之间的相关性
  # 是不能看到组内样本很好的聚集在一起。
  pheatmap::pheatmap(cor(exprSet),annotation_col = tmp)
  dim(exprSet)
  # 所以我这里初步过滤低表达量基因。
  exprSet=exprSet[apply(exprSet,1, function(x) sum(x>1) > 5),]
  dim(exprSet)
  
  exprSet=log(edgeR::cpm(exprSet)+1)
  dim(exprSet)
  # 再挑选top500的MAD值基因
  exprSet=exprSet[names(sort(apply(exprSet, 1,mad),decreasing = T)[1:500]),]
  dim(exprSet)
  M=cor(log2(exprSet+1))
  tmp=data.frame(group=group_list)
  rownames(tmp)=colnames(M)
  pheatmap::pheatmap(M,annotation_col = tmp)
  # 现在就可以看到,组内样本很好的聚集在一起
  # 组内的样本的相似性是要高于组间
  pheatmap::pheatmap(M,annotation_col = tmp,filename = 'cor.png')
  
  
  
  library(pheatmap)
  pheatmap(scale(cor(log2(exprSet+1))))
  
}
dev.off()
# 以上代码,就是为了检查R包airway及其数据集airway里面的表达矩阵和表型信息

然后进行分组

rm(list = ls())
options(stringsAsFactors = F)
load(file = 'phf5aRNA-seq_exprSet.Rdata')
group_li=as.character(c(paste0(rep("AT",2)),
           paste0(rep("A",2)), 
           paste0(rep("CA1a",2)),
           paste0(rep("DCIS",2))))
group_list1=as.factor(group_li[c(T,T,F,F)])
exprSet1=as.data.frame(exprSet[c(T,T,F,F)])
group_list2=as.factor(group_li[c(F,F,T,T,T,T,F,F)])
exprSet2=as.data.frame(exprSet[c(F,F,T,T,T,T,F,F)])
group_list3=as.factor(group_li[c(T,T,F,F,F,F,T,T)])
exprSet3=as.data.frame(exprSet[c(T,T,F,F,F,F,T,T)])
group_list4=as.factor(group_li[c(F,F,T,T)])
exprSet4=as.data.frame(exprSet[c(F,F,T,T)])
group_list1=relevel(group_list1,ref = 'AT')
group_list2=relevel(group_list2,ref = 'A')
group_list3=relevel(group_list3,ref = 'AT')
group_list4=relevel(group_list4,ref = 'A')

晚上的时候一直在理解这个分组代码。 今天还是在走RNA -seq的流程。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,772评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,458评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,610评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,640评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,657评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,590评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,962评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,631评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,870评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,611评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,704评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,386评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,969评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,944评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,179评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,742评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,440评论 2 342

推荐阅读更多精彩内容