学习笔记Day8:GEO数据挖掘-基因表达芯片

GEO数据挖掘

  • 数据库:GEO、NHANCE、TCGA、ICGC、CCLE、SEER等

  • 数据类型:基因表达芯片、转录组、单细胞、突变、甲基化、拷贝数变异等等

  • 在这里插入图片描述

常见图表

表达矩阵

在这里插入图片描述

  • 一行为一个基因,一列为一个样本,内容是基因表达量。
热图

输入数据是数值型矩阵/数据框

颜色变化表示数值大小

  • Complexheatmap:自行探索~可以定义某些需要标注的基因。
散点图和箱线图
  1. 数据要求:xy轴分别为一个连续型向量和一个有重复值的离散型向量(分类向量)

  2. 数据意义:箱线图会删除离群点

    在这里插入图片描述

  3. 意义:单个基因在两组之间的表达量差异

    矩阵/数据框中无法直接添加分组信息,因此需要一个单独向量来说明样本的分组信息。

    在这里插入图片描述

火山图
  1. 意义:展示多个基因在两组间的表达量差异

  2. 横坐标:FC(Foldchange) 处理组平均值/对照组平均值;logFC(log2Foldchange)

    • 芯片差异分析的起点是一个取过log的表达矩阵,如果未取log需要自行log

      在这里插入图片描述

  3. 理解logFC:log2(X/Y)=log2(x)-log2(y)

    • log后的表达矩阵:表达量在0-24之间。
    • 未log的表达矩阵,表达量在0,10,100,1000…
    • logFC的正常范围:个位数居多。
  4. logFC>0,treat>control,基因表达量上升;logFC<0,treat<control,基因表达量下降。通常说的上调和下调基因是指表达量显著上升下降的基因。

  5. logFC常见的阈值:1/2/1.2/1.5/2.2/0.585[log2(1.5)];需要根据情况取值。

    在这里插入图片描述

  6. 纵坐标:P.Value→log10(P.Value)→-log10(P.Value)

    在这里插入图片描述

主成分分析
  1. PCA:主成分,把多个指标转换成少数综合指标(主成分)来代表样本。代表样本的点在坐标轴上距离越远,说明样本差异越大。

  2. PCA样本聚类图:dim1/dim2中数字不重要(尽量大)。

在这里插入图片描述

  • 图上点代表样本(中心点除外),点与点之间距离代表样本差异。
  1. 可以用于“预实验”,简单看组间是否有差别。

表达芯片分析思路

表达数据实验设计
  1. 实验目的:通过基因表达量数据的差异分析富集分析来解释生物学现象。
    • 设计实验组和对照组
  2. 有差异的材料→差异基因→找功能→解释差异,缩小差异范围。
基因表达芯片

探针的表达量代表基因的表达量

探针根据要测量的基因设计,是一段与基因互补杂交的短核苷酸序列。探针和序列绑定,不和基因绑定。

数据库介绍
  1. GEO数据库

    • GEO工具:GEO2R,可以导入代码进入R修改。
  2. Series:用户提交给数据库一个完整的研究,包括其样本数据(GSM),包含提供研究描述,包括对数据描述并总结分析(GSE)。

  3. GEO数据集筛选

    表达芯片数据:Expression profiling by array

    单细胞/普通转录组(高通量测序):Expression profiling by high throughput sequencing

  4. GSE界面:GPL(平台)中看ID和Symbol Gene;GSM(样本)中看表达量是否正常、是否需要取log等。

分析思路
  1. 找数据,找到GSE编号
    • GEO数据库中检索
    • 文献中查找GSE编号
  2. 下载数据:表达矩阵、临床信息(分组信息)、GPL编号(探针注释)
    • 网页中点选下载
    • 代码下载(推荐)
  3. 数据探索:分组之间是否有差异、PCA、热图(方差排名靠前的1k个基因)
  4. 差异分析和可视化:P值、logFC;火山图、热图
  5. 富集分析:KEGG、GO
表达矩阵

在这里插入图片描述

以分组为单位说问题,而不是以样本为单位

代码分析流程

安装R包
下载数据
library(GEOquery)
eSet = getGEO("GSE7305", destdir = '.', getGPL = F)

##探索eSet
class(eSet)
##[1] "list"
length(eSet)
##[1] 1
eSet = eSet[[1]]     ##将list解开
class(eSet)          ##是一种特殊的数据类型,可以从帮助文档中找到详细说明。出自Biobase包
##[1] "ExpressionSet"
##attr(,"package")
##[1] "Biobase"
提取表达矩阵
exp <- exprs(eSet)    ##提取表达矩阵
dim(exp)              ##查看数据属性
range(exp)            ##查看数据范围,决定是否需要取log,是否有负值
##[1]     5.020951 22011.934000       ##这样的数据就需要取log
exp = log2(exp+1)     ##取log
boxplot(exp,las = 2)  ##检查数据情况
  • 有异常样本:1. 删掉异常样本;2. limma包的标准化函数拉齐。
  • 负值:log后少量负值可以接受,log前有负值或一半都是负值(标准化)弃用。
  • 如果logFC在2-4之间,有可能取了2次log

在这里插入图片描述

提取临床信息
pd <- pData(eSet)       ##包含分组信息
让表达矩阵和临床信息顺序匹配
p = identical(rownames(pd),colnames(exp));p    ##判断是否对应

if(!p) {                                       ##如果不对应,运行
  s = intersect(rownames(pd),colnames(exp))   
  exp = exp[,s]
  pd = pd[s,]
}
提取芯片平台编号
gpl_number <- eSet@annotation;gpl_number        ##等同于网页查找
save(pd,exp,gpl_number,file = "step1output.Rdata")  ##保存数据
  • 原始数据处理方法(有时间再整理吧~):https://mp.weixin.qq.com/s/0g8XkhXM3PndtPd-BUiVgw

引用自生信技能树课程~ 给小洁老师比心~

  • 23
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在Python中,异常处理是非常重要的一部分。当程序运行时如果出现错误,如果没有异常处理,程序就会崩溃。为了避免这种情况,Python提供了异常处理机制。 在Python中,异常处理语句使用 `try` 和 `except` 关键字来实现。`try` 语句块中包含可能会发生异常的代码,如果这段代码出现了异常,则会跳转到 `except` 语句块中执行异常处理代码。 下面是一个简单的例子: ```python try: num = int(input("请输入一个整数:")) print(10/num) except ZeroDivisionError: print("除数不能为0") except ValueError: print("输入的不是整数") ``` 在上面的代码中,我们尝试将用户输入的字符串转换为整数,并将其用作除数计算 10/num。如果用户输入的是 0,则会触发 ZeroDivisionError 异常。如果用户输入的不是整数,则会触发 ValueError 异常。如果发生异常,则会跳转到对应的 except 语句块中执行处理代码。 除了可以指定具体的异常类型,也可以使用 `except Exception` 来捕获所有异常。例如: ```python try: num = int(input("请输入一个整数:")) print(10/num) except Exception as e: print("发生异常:", e) ``` 在上面的代码中,如果发生任何异常,都会跳转到 `except` 语句块中执行处理代码,并将异常信息打印出来。 除了 `try` 和 `except`,还有 `finally` 关键字,它指定的代码块无论是否发生异常都会执行。例如: ```python try: num = int(input("请输入一个整数:")) print(10/num) except Exception as e: print("发生异常:", e) finally: print("程序执行完毕") ``` 在上面的代码中,无论是否发生异常,都会执行 `finally` 中的代码,即输出“程序执行完毕”。 总之,在Python中,异常处理是非常重要的一部分,它可以有效避免程序崩溃,提高程序的健壮性和可靠性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值