PCA分析及CNS级别作图

article/2025/7/8 23:31:53

 

从这节开始,就逐渐涉及转录组的基本可视化了,我们的可视化要做到CNS级别的图,争取做好分析,一步到位,让您有真正的收获!

PCA(主成分分析),具体的原理就不说了,自行百度。简单理解,PCA就是降维,将多维数据在2为平面理解和可视化。在转录组中的作用则是可以看出样本组间是否有差异,或者样本的一致性。组间差异大则两组分的开,反之则是差别不是很大。

示例数据用上节下载的GSE125424芯片数据表达矩阵,读入数据,并对数据进行初步的处理。


setwd("F:/生物信息学")
A <- read.table("GSE125424_series_matrix.txt",header = T,row.names = 1,sep = "\t",comment.char = "!")#这里注意,下载的芯片数据开有结尾包含有注释行,都是以!开头,所以要去除这些行
data <- t(A)#PCA分析需要将表达矩阵转置   

图片

PCA分析很简单,只需要一个函数就可以搞定。prcomp()就可以,然后导出分析结果。

###PCA分析
data.pca <- prcomp(data, scale. = T)  #这是后续作图的文件
#输出特征向量
write.table(data.pca$rotation, file="PC.xls", quote=F, sep = "\t")
#输出新表
write.table(predict(data.pca), file="newTab.xls", quote=F, sep = "\t")
#输出PC比重
pca.sum=summary(data.pca)
write.table(pca.sum$importance, file="importance.xls", quote=F, sep = "\t")

接着就是PCA分析结果的可视化了,这里我们提供了两种方法。

1、factoextra包

加载包:

library(factoextra)

设置分组:

group=c(rep("Control",3),rep("Test",3))

可视化,由于factoextra是ggplot2的,所以在画完图后可以用ggplot2的方式进行修饰。

fviz_pca_ind(data.pca,col.ind=group,mean.point=F,addEllipses = T, legend.title="Groups",ellipse.type="confidence",ellipse.level=0.9,palette = c("#CC3333", "#339999"))+ #Cell配色哦theme(panel.border = element_rect(fill=NA,color="black", size=1, linetype="solid"))#加个边框

图片

结果很完美,非常满意!

2、ggbiplot包

看这包的名字就知道和ggplot2脱不了干系,先安装:

ibrary(devtools)
install_github("vqv/ggbiplot")
library(ggbiplot)

画图,画图数据和上一个一样:

ggbiplot(data.pca,obs.scale = 1,var.scale = 1,groups = group,ellipse = T,var.axes = F) +scale_color_brewer(palette = "Set1")  +theme(legend.direction = 'horizontal',legend.position = 'top') +geom_vline(xintercept = c(0), linetype = 6,color = "black") +geom_hline(yintercept = c(0),linetype = 6,color = "black") +theme_bw() + theme(panel.grid = element_line(colour = NA))

图片

同样看起来非常完美,赏心悦目有没有!

PCA分析和作图就是这么简单,你学会了吗?


http://chatgpt.dhexx.cn/article/DB2Y7kMp.shtml

相关文章

R语言PCA分析

常用R包&#xff1a;princomp&#xff0c;prcomp及rda R中输入数据类型有两类&#xff0c;R mode和Q mode。一般来说数据每一列为一个变量&#xff08;variable&#xff09;&#xff0c;每一行为一个数据&#xff08;observation&#xff09;。其中R mode的数据行数大于列数&a…

CSS3 媒体查询

1. 什么是媒体查询 CSS3媒体查询&#xff08;Media Query&#xff09;语法的特性&#xff1a; ①使用 media 查询&#xff0c;可以针对不同的媒体类型定义不同的样式&#xff1b; ②media 可以针对不同的屏幕尺寸设置不同的样式&#xff1b; ③当你重置浏览器大小的过程中&am…

mysql以逗号分隔的字段作为查询条件怎么查——find_in_set()函数

文章目录 写在前面作为查询条件 多条件查询用于mybatis 聚合查询count总数查询distinct的列表find_in_set()函数走索引吗 写在前面 使用mysql时&#xff0c;有可能一个字段代表一个集合&#xff0c;如果将这个集合单独抽成一张表又不值当的&#xff0c;这个时候我们存储时&a…

PageHelper实现分页查询

文章目录 前言一、PageHelper实现分页查询二、PageHelper的基本使用1. 先编写持久层2.编写业务逻辑层3..编写控制层4.使用JsonPage返回结果 总结 前言 分页查询的优点 所谓分页,就是查询结果数据较多时,采用按页显示的方法,而不是一次性全部显示 分页的优点: 服务器:一次性…

降低数据库压力的方法

1.合理增加索引 表索引可以加快对表中数据的检索速度&#xff0c;但是会降低表中数据的更新速度&#xff0c;所以增加表的索引一定控制在合理范围内&#xff0c;过多的索引不但不会降低数据库的压力&#xff0c;反而可能增大数据库的压力&#xff0c;表索引的建立一般要从具体业…

MyBatis—利用MyBatis查询(查询所有,查询一行,条件查询)

文章目录 1、查询所有2、查询详情&#xff08;通过特定属性查询&#xff09;3、多条件查询&#xff08;1&#xff09;接口参数列表三种表达方式&#xff08;2&#xff09;多条件查询&#xff08;3&#xff09;动态Sql&#xff08;4&#xff09;多条件动态查询&#xff08;5&…

Redis实现分页和多条件模糊查询方案

导言 Redis是一个高效的内存数据库&#xff0c;它支持包括String、List、Set、SortedSet和Hash等数据类型的存储&#xff0c;在Redis中通常根据数据的key查询其value值&#xff0c;Redis没有模糊条件查询&#xff0c;在面对一些需要分页、排序以及条件查询的场景时(如评论&…

python操作es条件查询定制body

参考连接&#xff1a; python操作elasticsearch - 无量python - 博客园 1、切片查询 from elasticsearch import Elasticsearch# 建立连接 es Elasticsearch( hosts{192.168.0.120, 192.168.0.153}, # 地址timeout3600 # 超时时间 )# body指定查询条件 body {from: 0, #…

Oracle clob怎么存储超过4000长度的数据,你了解吗

目录 方式一、使用存储过程&#xff1a; 方式二、使用to_clob函数 方式三、mybatis中的方法 附&#xff1a; oracle将把varchar2字段&#xff08;长度4000&#xff09;改为clob类型 参考资料&#xff1a; 题记&#xff1a;我们知道Oracle存储的字段长度是有限制&#xff0…

oracle中clob和blob,Oracle中的BLOB和CLOB

非洲小白脸 阅读(364) 评论(0) 编辑 收藏 所属分类: oracle Oracle中的BLOB和CLOB 一、区别和定义 LONG: 可变长的字符串数据,最长2G,LONG具有VARCHAR2列的特性,可以存储长文本一个表中最多一个LONG列 LONG RAW: 可变长二进制数据,最长2G CLOB: 字符大对象Clob 用来存储单…

mysql clob blob_Oracle中 CLOB, BLOB和NLOB

SQL 类型 CLOB 在 Java TM 编程语言中的映射关系。SQL CLOB 是内置类型&#xff0c;它将 Character Large Object 存储为数据库表的某一行中的一个列。默认情况下&#xff0c;驱动程序使用 SQL locator(CLOB) 实现 Clob 对象&#xff0c;这意味着 CLOB 对象包含一个指向 SQL CL…

java clob 操作_Java Clob 操作

java操作数据库clob字段的简单例子&#xff1a; package com.test.db.clob; import java.io.BufferedReader; import java.io.IOException; import java.io.Writer; import java.sql.Clob; import java.sql.Connection; import java.sql.DriverManager; import java.sql.Prepar…

ORACLE中CLOB介绍及使用

一、Oracle中的varchar2类型 我们在Oracle数据库存储的字符数据一般是用VARCHAR2。VARCHAR2既分PL/SQL Data Types中的变量类型&#xff0c;也分Oracle Database中的字段类型&#xff0c;不同场景的最大长度不同。 在Oracle Database中&#xff0c;VARCHAR2 字段类型&#xf…

clob类型(数据库clob类型)

如何获取clob类型的字节长度 blob和clob最大是多少&#xff1f;还是没有最大限制&#xff1f;它们的最大上限就是4G&#xff0c;Clob可以存储单字节字符数据&#xff0c;Blob可以存储无结构的二进制数据 Oracle中Clob类型如何处理&#xff1f; string id Guid。NewGuid()。ToS…

CRC校验方法的实现

1&#xff0c;确定收发双方所使用的校验位数(由收发双方自定义) 如1个字节的为CRC-8校验&#xff0c;2字节为CRC-16校验&#xff0c;4字节为CRC-32校验。 2&#xff0c;确定除数(生成多项式) 根据校验字节数&#xff0c;确定某个除数G(x)&#xff0c;这个除数一般以二进制形式…

【Verilog】CRC校验码生成器原理及verilog实现

目录 一、CRC的基本原理 二、CRC生成步骤 2.1举个栗子 三、Verilog实现 四、参考资料 4.1 CRC在线计算器 一、CRC的基本原理 CRC &#xff1a;Cyclic Redundancy Check循环冗余校验码 将被处理的报文比特序列当做一个二进制多项式A(x)的系数&#xff0c;任意一个由二进制…

CRC校验原理及其使用

目录 何为CRC 为什么需要校验 为什么是CRC CRC的缺点 目录 何为CRC 为什么需要校验 为什么是CRC CRC的缺点 如何进行CRC校验 校验标准式是什么玩意&#xff1f; 常见的CRC校验 CRC校验计算过程 CRC校验代码参考 代码解读 生成CRC8校验表的代码 CRC检验网站 如何…

FPGA校验(2):CRC校验

CRC:输入序列对某个表达式求余数&#xff0c;或者认为一系列数据求异或的过程。 CRC校验 CRC原理 CRC实现非常简单&#xff0c;但想要真正掌握CRC算法原理&#xff0c;就必须清楚地了解有限域的运算规则&#xff0c;知道CRC就是有限域中的除法余数&#xff0c;并且清楚如何将串…

crc校验c语言程序,C语言:CRC校验

一、CRC码 CRC:Cylic Reduancy check译作汉语就是循环冗余校验码。 二、XOR XOR:逻辑运算符异或,不知道用符号怎么写,总之其运算法则是,不同为1,相同为0。 三、用XOR代替算术运算上除法的两个例子。 1、10110010000/11001 第一次异或(相除),得到商为1,余数为1111,加入…

【Verilog】CRC 校验(二)用 Verilog 实现生成 CRC 校验码

目录 实验任务 CRC 生成 Verilog 实现 电路生成原理 模块设计图 CRC 生成时序图 具体代码实现 上板验证 实验任务 在上一篇介绍了 CRC 校验码的原理&#xff0c;如何计算 CRC 校验码&#xff0c;这篇介绍如何利用 Verilog 实现CRC 校验码的生成。 什么是 CRC 校验码&a…