当前位置: 首页 > news >正文

R语言作图——热图聚类及其聚类结果输出

代码

不多说了,做个记录,代码如下。

library(pheatmap)
library(RColorBrewer)
# args = commandArgs(TRUE)
betafile = "twist_common_panel_434.csv"
infofile = "twist_common_panel_434.txt"
title = "twist_common_panel"
# readbeta <- function(data){
#   dat <- read.table(data, header = T,stringsAsFactors = F)
#   dat$pos <- paste(dat$chr, dat$start, sep = "_")
#   dat$chr = dat$start = NULL
#   rownames(dat) <- dat$pos
#   dat$pos <- NULL
#   dat
# }
# d <- readbeta(betafile)
# d<-read.table(betafile,header=T,stringsAsFactors=FALSE,row.names = 1)
# d <- as.matrix(t(d))
d <- read.csv(betafile, row.names = 1)
info <- read.table(infofile,header = F,sep = "\t")
colnames(info) <- c("id","group")
rownames(info) <- info$id
# table(rownames(d) == info$id)
#排序
loc = match(rownames(d), rownames(info))
dd <- d[loc,]
col_anno <- as.data.frame(info[,2])
rownames(col_anno) <- rownames(info)
colnames(col_anno) <- 'group'
tiff(paste0(title,".tif"),width = 2000,height = 1500)
pheatmap(dd,# cellwidth = 45,# cellheight = 12,fontsize = 18,# border = 'white',cluster_rows = F,cluster_cols = F,# annotation_col = col_anno,annotation_row = col_anno,angle_col = "0",main = paste0(title, " pheatmap"))
dev.off()result <- pheatmap(dd,# cellwidth = 45,# cellheight = 12,fontsize = 18,# border = 'white',cluster_rows = T,cluster_cols = T,# annotation_col = col_anno,annotation_row = col_anno,angle_col = "0",main = paste0(title, " pheatmap"))
col_oder=result$tree_col$order # 保存热图列顺序(序号)
row_oder=result$tree_row$order # 保存热图行顺序(序号)
cn_new <- colnames(dd)[col_oder] # 保存热图的列名
rn_new <- rownames(dd)[row_oder] # 保存热图的行名## 生成两个新的与原来的总表长宽相同的数据框(暂时都填写0)
new_dd <- matrix(rep(0,ncol(dd)*nrow(dd)),nrow = nrow(dd),ncol = ncol(dd))
out <- matrix(rep(0,ncol(dd)*nrow(dd)),nrow = nrow(dd),ncol = ncol(dd))## 将数据读入数据框new_dd,行顺序已经按照热图的顺序重排
for (i in 1:ncol(dd)){new_dd[,i]=dd[,i][row_oder]
}
## 将数据读入数据框out,列顺序已经进一步按照热图的顺序重排
for (i in 1:ncol(dd)){out[,i]= new_dd[,col_oder[ i ]]
}
# 将热图的行名和列名导入到排序后的表达量总表中
rownames(out)=rn_new
colnames(out)=cn_newwrite.table(out,"twist大panel聚类.txt",sep="\t",quote = F) #输出重排后的表达量表

相关文章:

R语言作图——热图聚类及其聚类结果输出

代码 不多说了&#xff0c;做个记录&#xff0c;代码如下。 library(pheatmap) library(RColorBrewer) # args commandArgs(TRUE) betafile "twist_common_panel_434.csv" infofile "twist_common_panel_434.txt" title "twist_common_panel&qu…...

Tomcat优化

Tomcat优化 Tomcat默认安装下的缺省配置并不适合生产环境&#xff0c;它可能会频繁出现假死现象需要重启&#xff0c;只有通过不断压测优化才能让它最高效率稳定的运行。优化主要包括三方面&#xff0c;分别为操作系统优化&#xff08;内核参数优化&#xff09;&#xff0c;Tom…...

我的GIT练习TWO

目录 前言 GIT安装教程 Git作者 GIT优点 GIT缺点 为什么要使用 Git GIT练习TWO C1 C2 C3 C4 C5 C6 C7 总结 前言 Git 是一个分布式版本控制及源代码管理工具;Git 可以为你的项目保存若干快照&#xff0c;以此来对整个项目进行版本管理 GIT安装教程 点击进入查看教程…...

个人器件库整理

样品本 包含如下&#xff1a; 电容器件&#xff1a; 元件值封装备注钽电容47uF 10V1206钽电容10uF 10V1206电容10uF 10% 10V0603X5R&#xff0c;CL10A106KP8NNNC 元件值封装备注100nF电容50V&#xff0c;10%0603 电阻器件&#xff1a; 元件值封装备注75 Ω \Omega Ω…...

javascript——内存管理

JavaScript内存管理是Web开发中的一个重要主题。正确管理内存可以提高应用程序的性能和稳定性。本文将介绍JavaScript中的内存管理概念、常见的内存泄漏问题以及一些有效的内存管理技巧。 什么是JavaScript内存管理&#xff1f; JavaScript具有自动内存管理机制&#xff0c;开…...

Qt5.15.2安卓Android项目开发环境配置

1、Qt Creator 4.11.2 官方下载&#xff1a;https://download.qt.io/archive/qtcreator/4.11/4.11.2/ 镜像下载&#xff1a;https://mirrors.cloud.tencent.com/qt/archive/qtcreator/4.11/4.11.2/ 2、Qt 5.15.2 Android 官方更新器内部下载 参考&#xff1a;https://blog…...

第四十三章 弹跳训练2(灵识扫描)

“再不脱离便会陷死在里面。”这个声音似乎来自脑海深处某个隐秘角落。 双眼一睁&#xff0c;灵识退去&#xff0c;空空的头壳兀自嗡嗡作响&#xff0c;一股说不清道不明的失落感笼罩全身&#xff0c;似要将自己拖入抑郁的谷底。 不&#xff01;没什么好失落沮丧的&#xff01;…...

【location对象的方法,history对象,navigator--BOM】

location对象的方法 location.assign()//跟href一样&#xff0c;可以跳转页面&#xff08;也称重定向页面&#xff09; location.replace()//替换当前页面&#xff0c;因为不记录历史&#xff0c;所以不能后退页面 location.reload()//重新加载页面&#xff0c;相当于刷新按钮或…...

论文笔记:Normalizing Flows for Probabilistic Modeling and Inference

Abstract 正则流&#xff08;Normalizing flows&#xff09;提供了一种通用的机制来定义富有表达力的概率分布&#xff0c;只需要指定一个&#xff08;通常简单的&#xff09;基础分布和一系列可逆变换。 Intraduction 正则流通过将简单的密度通过一系列变换来产生更丰富、可…...

java 异常类介绍

Java 异常&#xff08;Exception&#xff09;是指在程序运行期间出现的错误或异常情况。Java 异常处理机制允许程序在出现异常情况时进行处理&#xff0c;避免程序崩溃或出现不可预知的错误 一、Java 异常的概念 Java 异常是指程序在运行期间出现的错误或异常情况。Java 异常…...

shiro 550 反序列化rce

Apach shiro 是一款开源安全框架&#xff0c;提供身份验证&#xff0c;授权&#xff0c;会话管理等。 shiro 550 反序列化漏洞rce 通关利用它反序列化的漏洞直接执行rce 加密的用户信息序列化后储存在名为remenber -me的cooike中。攻击者可以使用shiro默认密钥伪造cooike&am…...

【C++】---模板初阶(超详练气篇)

个人主页&#xff1a;平行线也会相交&#x1f4aa; 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 平行线也会相交 原创 收录于专栏【C之路】&#x1f48c; 本专栏旨在记录C的学习路线&#xff0c;望对大家有所帮助&#x1f647;‍ 希望我们一起努力、成长&…...

windows系统典型漏洞分析

内存结构 缓冲区溢出漏洞 缓冲区溢出漏洞就是在向缓冲区写入数据时&#xff0c;由于没有做边界检查&#xff0c;导致写入缓冲区的数据超过预先分配的边界&#xff0c;从而使溢出数据覆盖在合法数据上而引起系统异常的一种现象。 ESP、EPB ESP&#xff1a;扩展栈指针&#xff08…...

WPF开发txt阅读器:需求分析和文件读写

文章目录 需求分析读取文本文件保存文本文件 需求分析 尽管现在比较主流的阅读格式已经是epub, modi之类的&#xff0c;但txt的使用范围要远比前两者广泛&#xff0c;所以做一个txt阅读器还是有必要的。 但是对于书籍阅读而言&#xff0c;纯文本不包含目录信息&#xff0c;这…...

C++服务器框架开发9——日志系统LogFormatter_4/各个类的关系梳理/std::function/std::get

该专栏记录了在学习一个开发项目的过程中遇到的疑惑和问题。 其教学视频见&#xff1a;[C高级教程]从零开始开发服务器框架(sylar) 上一篇&#xff1a;C服务器框架开发8——日志系统LogFormatter_3/override/宏定义优化switchcase结构 C服务器框架开发9——日志系统LogFormatt…...

arm平台上的MNN编译与运行

0.成果物 直接获取成果物见&#xff1a;https://download.csdn.net/download/u012824853/87867665 以下为编译、运行过程 1.编译准备 在GitHub - alibaba/MNN: MNN is a blazing fast, lightweight deep learning framework, battle-tested by business-critical use cases …...

python 编译安装指定版本 for linux

python环境是linux中必备的&#xff0c;部分发行版会自带python&#xff0c;有时候需要安装手动安装 注意&#xff1a;如果需要多个版本并存&#xff0c;建议使用conda环境&#xff0c;如果自己配置多版本&#xff0c;需要用多个软链接 conda环境&#xff0c;可以参考&#x…...

在Linux系统下基于Docker搭建Redis集群

创建镜像 #部署Redis集群&#xff0c;该集群有3个节点; --cluster-enabled yes允许启用集群; docker create --name redis-node--01 --net host -v /data/redis-data/node1:/data redis:5.0.5 --cluster-enabled yes --cluster-config-file redis-node--01.conf --port 6379…...

牛客网刷题Day5

1.内容中可以使用哪个元素来表示 <article> 标签外的内容&#xff1f; A aside B cite C article D class 正确答案&#xff1a;A 解析&#xff1a;<aside> 标签定义 <article> 标签外的内容&#xff0c;aside 的内容应该与附近的内容相关 2. 以下的HTML代码…...

Vue.js 中的动态组件是什么?如何使用动态组件?

Vue.js 中的动态组件是什么&#xff1f;如何使用动态组件&#xff1f; Vue.js是一种流行的前端框架&#xff0c;它提供了一种称为“动态组件”的技术&#xff0c;使得我们可以动态地切换组件的内容和结构。在本文中&#xff0c;我们将深入探讨Vue.js中的动态组件&#xff0c;包…...

测试微信模版消息推送

进入“开发接口管理”--“公众平台测试账号”&#xff0c;无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息&#xff1a; 关注测试号&#xff1a;扫二维码关注测试号。 发送模版消息&#xff1a; import requests da…...

脑机新手指南(八):OpenBCI_GUI:从环境搭建到数据可视化(下)

一、数据处理与分析实战 &#xff08;一&#xff09;实时滤波与参数调整 基础滤波操作 60Hz 工频滤波&#xff1a;勾选界面右侧 “60Hz” 复选框&#xff0c;可有效抑制电网干扰&#xff08;适用于北美地区&#xff0c;欧洲用户可调整为 50Hz&#xff09;。 平滑处理&…...

工业安全零事故的智能守护者:一体化AI智能安防平台

前言&#xff1a; 通过AI视觉技术&#xff0c;为船厂提供全面的安全监控解决方案&#xff0c;涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面&#xff0c;能够实现对应负责人反馈机制&#xff0c;并最终实现数据的统计报表。提升船厂…...

线程同步:确保多线程程序的安全与高效!

全文目录&#xff1a; 开篇语前序前言第一部分&#xff1a;线程同步的概念与问题1.1 线程同步的概念1.2 线程同步的问题1.3 线程同步的解决方案 第二部分&#xff1a;synchronized关键字的使用2.1 使用 synchronized修饰方法2.2 使用 synchronized修饰代码块 第三部分&#xff…...

条件运算符

C中的三目运算符&#xff08;也称条件运算符&#xff0c;英文&#xff1a;ternary operator&#xff09;是一种简洁的条件选择语句&#xff0c;语法如下&#xff1a; 条件表达式 ? 表达式1 : 表达式2• 如果“条件表达式”为true&#xff0c;则整个表达式的结果为“表达式1”…...

linux 错误码总结

1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...

使用van-uploader 的UI组件,结合vue2如何实现图片上传组件的封装

以下是基于 vant-ui&#xff08;适配 Vue2 版本 &#xff09;实现截图中照片上传预览、删除功能&#xff0c;并封装成可复用组件的完整代码&#xff0c;包含样式和逻辑实现&#xff0c;可直接在 Vue2 项目中使用&#xff1a; 1. 封装的图片上传组件 ImageUploader.vue <te…...

python如何将word的doc另存为docx

将 DOCX 文件另存为 DOCX 格式&#xff08;Python 实现&#xff09; 在 Python 中&#xff0c;你可以使用 python-docx 库来操作 Word 文档。不过需要注意的是&#xff0c;.doc 是旧的 Word 格式&#xff0c;而 .docx 是新的基于 XML 的格式。python-docx 只能处理 .docx 格式…...

Linux系统部署KES

1、安装准备 1.版本说明V008R006C009B0014 V008&#xff1a;是version产品的大版本。 R006&#xff1a;是release产品特性版本。 C009&#xff1a;是通用版 B0014&#xff1a;是build开发过程中的构建版本2.硬件要求 #安全版和企业版 内存&#xff1a;1GB 以上 硬盘&#xf…...

LLaMA-Factory 微调 Qwen2-VL 进行人脸情感识别(二)

在上一篇文章中,我们详细介绍了如何使用LLaMA-Factory框架对Qwen2-VL大模型进行微调,以实现人脸情感识别的功能。本篇文章将聚焦于微调完成后,如何调用这个模型进行人脸情感识别的具体代码实现,包括详细的步骤和注释。 模型调用步骤 环境准备:确保安装了必要的Python库。…...