首页 > 其他分享 >生信小白菜之GEO芯片数据分析流程--附画图代码

生信小白菜之GEO芯片数据分析流程--附画图代码

时间:2024-03-25 22:33:58浏览次数:30  
标签:Group -- library ## 分组 exp GEO 生信 deg


title: “GEO data analysis”
author: “yuluyang”
date: “2024-03-22”


生信技能树数据挖掘课程笔记~小洁老师授课

主要内容:

  • 数据分组的内容
  • 关键词的分组和多分组比较
  • id map报错的原因及解决方法
  • 基因组的注释流程
  • 数据的行列互换及方差数值
  • 画图示例代码

示例数据

library(GEOquery)
eSet = getGEO("GSE7305", destdir = '.', getGPL = F)
library(stringr)
# 紧接数据下载后
# 第一步:提取表达矩阵exp
eSet = eSet[[1]]  # 要先打破列表的框架方便后续提取信息
exp <- exprs(eSet) 
range(exp) # 看数据范围决定是否需要log,是否有负值,异常值
exp = log2(exp+1)
# 第二步:提取临床信息
pd <- pData(eSet)
## 要记得自己命名了哪些内容,'exp'是表达矩阵、'pd'是临床/分组信息

可以自己上GEO筛选一个芯片数据集,然后按以下流程复现一遍
只要命名方式不改变,后续作图代码可以直接copy然后run

提取后如何处理分组信息

if(F){    # 括号里是F,即不运行,这里只是示例有这种方法可供选择
  # 第一种方法,有现成的可以用来分组的列
}else if(F){
  # 第二种方法,眼睛数,自己生成
  Group = rep(c("Disease","Normal"),each = 10) # 这个数据是很整齐排好的,前10个为`disease`,后10个为`normal`
  # 如果两个组个数不一样的话咋整?
}else if(T){
  # 第三种方法,使用字符串处理的函数获取分组 
  k = str_detect(pd$title,"Normal");table(k)  # 选中信息这一列,找一个能区分组的关键词"Normal",然后`str_detect`分成`true`和`false`两组
  ## 记得检查`table`的结果
  Group = ifelse(k,"Normal","Disease")  # 对`true`、`false`结果进行分组分配
}
## 想起什么名字都可以
## 分组关系一定要对应清楚

# 需要把Group转换成因子,并设置参考水平,指定levels,对照组在前,处理组在后
Group = factor(Group,levels = c("Normal","Disease")) ## `factor()`转化为因子型向量,`levels=`指定因子的水平向量
Group
## `levels=`如果不指定的话,默认是按照字母顺序排列的

推荐使用第三种,优先考虑代码梳理
factor因子型向量是R中一类特殊的向量类别
作用是给其他类别元素进行分组、计数,相当于统计学中分类变量,分可枚举【有序】和类别型【无序】两类

补充:如果两个组样本数量不一致
# 例如 对照组有10个,样本组15个
rep(c("control","disease"),times=c(10,15))
## 要记得检查生成的向量是不是先10个`control`再15个`disease`
rep(c("control","disease"),c(10,15)) 
## `times=`可以省略
## 不可以用`each=`
补充:如何检查分组设置与临床信息是否对应
# 新建一个数据框
data.frame(a=pd$title,
           b=Group)
## 两列对照着看
补充:多分组里面取两个分组
# 举

标签:Group,--,library,##,分组,exp,GEO,生信,deg
From: https://blog.csdn.net/yangyulu1998/article/details/136941593

相关文章

  • CAPL 自动化脚本 - UDS 安全解锁 Lv1
    一种简易的UDS$27解锁方式,使用capl脚本去实行自动化。利用CANoe自己的Diagnostic去诊断,返回。首先:声明27012702拿到种子后,使用diagGenerateKeyFromSeed函数去调用工程里面的DLL文件去计算。再将计算好的密钥发送到ECU。voidSecurityAccess_Lv1(){diagRequestDCM.re......
  • 【笔记】普通生成函数
    【笔记】普通生成函数0前置芝士0.1等比数列因为我不会,所以在这里提一嘴。\(a_i=a_{i-1}q\Rightarrowa_i=a_1q^{i-1}\)\(S=\sum\limits_{i=1}^na_i\RightarrowqS=\sum\limits_{i=2}^{n+1}a_i=S-a_{n+1}+a_1\)\(\RightarrowS=\dfrac{a_1(q^n-1)}{q-1}\)​0.2泰勒级......
  • HashMap---数据结构
    目录一、基本数据结构二、树化与退化三、索引计算四、put方法和扩容五、并发问题六、key的设计一、基本数据结构        在jdk1.7版本的时候,hashmap结构主要是使用数组+链表的格式,而在jdk1.8版本中,hashmap的数据结构增加了一种“红黑树”的结构,即数组+(......
  • CMD命令
    【cmd命令大全】一、CMD命令4、explorer-------打开资源管理器。5、logoff---------注销命令。6、shutdown-------60秒倒计时关机命令。7、lusrmgr.msc----本机用户和组。8、services.msc—本地服务设置。9、oobe/msoobe/a----检查XP是否激活。10、notepad--------打开记......
  • 4.1 内核
    相关参考资料:技术参考手册和数据手册(要知道技术文档的作用哦)技术参考手册是有关如何使用该产品的具体信息,包含各个功能模块的内部结构、所有可能的功能描述、各种工作模式的使用和寄存器配置等详细信息。技术参考手册不包含有关产品技术特征的说明,这些内容在数据手册中。//......
  • TryHackMe - Alfred
    本文相关TryHackMe实验房间链接:TryHackMe|WhySubscribe本文相关介绍:本次实验我们将学习如何利用Jenkins的错误配置来获取目标的初始shell,然后再利用Windows身份验证令牌(tokens)执行权限提升。 本次实验目标IP:10.10.152.218Task1-InitialAccess(初始访问)利......
  • 静态数据成员的应用
    classStudent{//1.数据成员privateStringname;privateStringsex;publicstaticStringschool="岳麓书院";//公布静态数据成员//2.省略构造方法;//3.省略setter和getter方法;//4.功能方法publicvoiddisplay(){......
  • 齿轮系统故障跟踪:一种基于现场测量的传递路径分析方法(Matlab代码实现)
     ......
  • PTA最短距离的两点
    给出一些整数对,它们表示平面上的点,求所有这些点中距离最近的两个点。输入格式:测试数据有多组。对于每组测试,先输入一个整数N,表示点的个数,再输入N个点(以两个整数表示横纵坐标)。若N为0,则表示输入结束。输出格式:对于每组测试,输入所有点中距离最短的两点,格式为“(a,b)(......
  • 海量数据处理项目-阿里编码规范里面Manager分层介绍和开发规范说明
    ......