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

news/2024/6/19 6:23:08 标签: 学习, 笔记, 数据挖掘

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

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


http://www.niftyadmin.cn/n/5436905.html

相关文章

RabbitMQ介绍及搭建

架构 RabbitMQ是实现了高级消息队列协议&#xff08;AMQP&#xff09;的开源消息代理软件&#xff0c;使用erlang语言编写&#xff0c;依赖Erlang环境运行。 Broker&#xff1a;运行消息队列服务进程的节点&#xff0c;包含Exchange、Queue&#xff1b; Producer&#xff1a;消…

ubuntu下在vscode中配置matplotlibcpp

ubuntu下在vscode中配置matplotlibcpp 系统&#xff1a;ubuntu IDE&#xff1a;vscode 库&#xff1a;matplotlib-cpp matplotlibcpp.h文件可以此网址下载&#xff1a;https://github.com/lava/matplotlib-cpp 下载的压缩包中有该头文件&#xff0c;以及若干实例程序。 参考…

Odoo17免费开源ERP开发技巧:如何在表单视图中调用JS类

文/Odoo亚太金牌服务开源智造 老杨 在Odoo最新V17新版中&#xff0c;其突出功能之一是能够构建个性化视图&#xff0c;允许用户以独特的方式与数据互动。本文深入探讨了如何使用 JavaScript 类来呈现表单视图来创建自定义视图。通过学习本教程&#xff0c;你将获得关于开发Odo…

mac清除dns缓存指令 mac清除缓存怎么清理

你是否曾经被要求清理dns缓存并刷新&#xff1f;清理dns缓存一般是由于修改了主机文件&#xff0c;或者想排除一些网络上的故障。在Mac上清除dns缓存需要使用命令行来实现。在本文中&#xff0c;软妹子将向大家介绍mac清除dns缓存指令&#xff0c;并展示mac清除缓存怎么清理。 …

Flutter如何正确使用图片资源

现况 在使用Flutter中Image控件加载本地图片时&#xff0c;我们一般使用如下&#xff1a; // 图片资源放在"assets/images"目录下. Image.asset("assets/images/muma.png"),那么问题就来了&#xff0c;这样使用可能会出现一些问题。 问题1&#xff1a;如…

新能源汽车小三电系统

小三电系统 新能源电动汽车的"小三电"系统&#xff0c;一般指车载充电机(OBC)、车载 DC/DC 变换器&#xff0c;和高压直流配电盒(PDU)。一辆纯电动汽车一般配备一台OBC 和一台车载 DC/DC 变换器。OBC将外部输入的交流电转化为直流电输出给电池&#xff0c;DC/DC衔接…

反射计数(100%用例)(JavaPythonC++Node.jsC语言)

给定一个包含0和1的二维矩阵 给定一个初始位置和速度 一个物体从给定的初始位置触发,在给定的速度下进行移动,遇到矩阵的边缘则发生镜面反射 无论物体经过0还是1,都不影响其速度 请计算并给出经过t时间单位后,物体经过1点的次数 矩阵以左上角位置为[0,0](列(x),行(行)),例如下面…

Spark写数据到Kafka

创建KafkaSink对象&#xff1a; import org.apache.kafka.clients.producer.{KafkaProducer, ProducerRecord, RecordMetadata}import java.util.concurrent.Future/**** Author:jianjipankanzhun.com* Date:2024/2/26 10:50*/ class KafkaSink[K, V](createProducer: () > …