每次都要检测数据

>dat[1:4,1:4]
library(hgu133plus2.db)
ids=toTable(hgu133plus2SYMBOL) #toTable这个函数:通过看hgu133plus2.db这个包的说明书知道提取probe_id(探针名)和symbol(基因名)的对应关系的表达矩阵的函数为toTable
head(ids) #head为查看前六行
dat=dat[ids$probe_id,] #ids提取出probe_id这列,这列的每行都为一个探针,接着在dat这个矩阵中,按照刚刚取出的探针所在的行,再取出来组成一个新的矩阵dat,此操纵为取出与注视ids相对于的dat

#保证ids矩阵和dat矩阵长度相等

dat[1:4,1:4]
ids$median=apply(dat,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
dat=dat[ids$probe_id,] #新的ids取出probe_id这一列,将dat按照取出的这一列中的每一行组成一个新的dat
rownames(dat)=ids$symbol#把ids的symbol这一列中的每一行给dat作为dat的行名
##确保两个矩阵长度一致
dat[1:4,1:4]  #保留每个基因ID第一次出现的信息

去重
按symbol列去重,常见标准有3个:最大值/平均值/随机去重

**

方法1.随机去重

**

> ids = ids[!duplicated(ids$symbol),]#谁排第一个就取谁
>
> deg <- inner_join(deg,ids,by="probe_id")#去交集
> head(deg)logFC   AveExpr         t      P.Value    adj.P.Val        B    probe_id  symbol
1 -1.633518 11.204696 -16.14895 8.628803e-14 2.358899e-09 20.92048 208629_s_at   HADHA
2 -1.713884 11.965832 -15.06767 3.572073e-13 4.882577e-09 19.68466 201861_s_at LRRFIP1
3 -2.274611  7.651265 -13.43343 3.618635e-12 3.297481e-08 17.61994 203479_s_at   OTUD4
4 -1.935657  8.628444 -13.04331 6.501205e-12 3.554534e-08 17.08858   203391_at   FKBP2
5 -1.893808  8.896532 -12.38173 1.812689e-11 6.607251e-08 16.15073   205457_at   ILRUN
6 -1.691681 10.302132 -12.00890 3.290947e-11 1.124578e-07 15.60094 201392_s_at   IGF2R
> nrow(deg)
[1] 20161

**

方法2.求平均值

**

#rm(list = ls())

> #load("step2output.Rdata")
> exp3 = exp[ids$probe_id,]
> exp3[1:4,1:4]GSM1366348 GSM1366349 GSM1366350 GSM1366351
1053_at     8.932805   8.679543   8.625015   8.637085
117_at      9.383421   8.605809   9.462774   9.898573
121_at      7.916751   8.500635   8.258467   8.553656
1255_g_at   5.085221   2.414033   1.718570   4.311794
> # 有重复的基因,求平均值
> s = unique(ids$symbol[duplicated(ids$symbol)]);length(s)
[1] 10753
> exp4 = sapply(s, function(i){>+   colMeans(exp3[ids$symbol==i,])
>+ })
> dim(exp4)
[1]    22 10753
> exp4 = t(exp4)
> dim(exp4)
[1] 10753    22

欢迎关注我的微信号

基因去重表达矩阵有重复的基因名 探针名字相关推荐

  1. 基因共表达网络分析java,WGCNA:加权基因共表达网络分析

    加权基因表达网络分析(Weighted gene co-expression network analysis, WGCNA),又叫权重基因共表达网络分析,其根本思想是根据基因表达模式的不同,挖掘出相 ...

  2. 基因共表达网络分析java,WGCNA 加权基因共表达网络分析教程(1)

    学是很多做科研的同学都想学的,包括我在内,现阶段正在学习这个,深夜整理材料不易,请多多关照支持! 先安装Rstudio以及以及加载WGCNA数据包 Rstudio软件下载地址: WGCNA加载按照网站 ...

  3. WGCNA加权基因共表达网络分析(1)简介、原理

    WGCNA简介 WGCNA(Weighted Gene Co-Expression Network Analysis, 加权基因共表达网络分析),鉴定表达模式相似的基因集合(module),解析基因集 ...

  4. R语言---查看指定癌症中感兴趣基因的表达量---笔记整理

    原文链接:https://mp.weixin.qq.com/s?__biz=MzAxMDkxODM1Ng==&mid=2247486845&idx=1&sn=b735a4690 ...

  5. 标准正态分布表_表达矩阵的归一化和标准化,去除极端值,异常值

    我们阅读量破万的综述:RNA-seq这十年(3万字长文综述)给粉丝朋友们带来了很多理解上的挑战,所以我们开辟专栏慢慢介绍其中的一些概念性的问题,上一期: RNA-seq的counts值,RPM, RP ...

  6. ClusterProfiler在线基因集富集分析,支持自定义基因集、任意物种

    为什么pathway富集分析结果没有我感兴趣的通路? GO和KEGG富集分析使用差异基因(上调基因,下调基因,或者上下调合起来的基因)作为输入,使用超几何分布等算法计算显著富集的GO term或者通路 ...

  7. 单基因gsea_GSEA:基因集富集分析和ssGSEA:单样本基因集富集分析

    传统富集分析(基于超几何分布或者Fisher精确检验):关注一列差异基因是否是随机分布在某一感兴趣的基因集中(某通路的基因) 得到通路富集的结果时: (1).一条通路中既有上调基因又有下调基因,无法确 ...

  8. 生物信息学入门 根据表达矩阵和差异表达基因列表制作差异表达矩阵

    根据表达矩阵做完差异分析之后,就要将差异表达基因的表达情况从表达矩阵中提取出来,制作差异表达矩阵.这个过程非常简单,但是也有一些人问到,就整理了这个教程. 1. 数据准备:原始表达矩阵和差异表达基因 ...

  9. R语言 | GEO数据库下载GSE基因芯片 以及表达矩阵和临床信息的提取

    目录 1.载入R包 2.利用AnnoProbe下载GEO数据库中的数据 3.提取表达矩阵和临床信息 4.输出文件 1.获得GEO数据库中的数据 下面以GSE14520数据系为例: 获得GEO数据库中的 ...

最新文章

  1. 如何提取edit control中输入的数据_如何在Power Query中提取数据——列表篇(1)
  2. mac 开机执行命令
  3. 腾讯CDC-审批流设计指南
  4. Android 编程下帧动画在 Activity 启动时自动运行的几种方式
  5. TestFlight
  6. jdk 1.8 不可变常量_在JDK 10中不可变与不可修改
  7. 阿里云日志添加要查询字段
  8. struts项目部署在Tomca上在断网情况下启动报错
  9. DNS 系统解析过程概述
  10. 本页不但包含安全的内容,也包含不安全的内容
  11. Leetcode 385.字典序排序
  12. win7关闭UAC的方法
  13. sort(function(a,b){return a -b})函数排序问题
  14. 谈谈我对零售云在云原生总结与思考
  15. Ai作图工业化流程工具
  16. 在电脑上显示未知发布者怎么办_Win7无法验证发行者、未知发布者的解决方法...
  17. 监控相机IQ调试策略
  18. 软件质量保证与测试技术实验报告(三)静态测试
  19. html姓氏样式,单个姓氏聚合页.html
  20. 搭建网校系统,既能解决疫情下教育培训难题,也解决了企业办公问题

热门文章

  1. 堆排序(最小堆)C++
  2. eai java实现,月光软件站 - 编程文档 - Java - 建立EAI方式与SAI方式之间的通信
  3. IntelliJ IDEA 之 Spring Boot (五) Freemarker 模板引擎渲染 Web 试图
  4. C++的运算符重载http://blog.csdn.net/zgl_dm/article/details/1767201
  5. win10下安装java
  6. 7.springcloudAlibaba-网关gateway
  7. 不只是电商,苏宁打通全供应链的野望
  8. android复读机功能,点滴复读机最新版-点滴复读机app下载v3.0.1 安卓版-腾牛安卓网...
  9. 2011年正月初6学校初六补课,还要170元补课费
  10. 爆改YOLOV7的detect.py制作成API接口供其他python程序调用(超低延时)