利用R語言heatmap.2函數進行聚類并畫熱圖

數據聚類然后展示聚類熱圖是生物信息中組學數據分析的常用方法,在R語言中有很多函數可以實現,譬如heatmap,kmeans等,除此外還有一個用得比較多的就是heatmap.2。最近在網上看到一個筆記文章關于《一步一步學heatmap.2函數》,在此與大家分享。由于原作者不詳,暫未標記來源,請原作者前來認領哦,O(∩_∩)O哈哈~

數據如下:

  
  1. library(gplots)
  2. data(mtcars)
  3. x <- as.matrix(mtcars)
  4. rc <- rainbow(nrow(x), start=0, end=.3)
  5. cc <- rainbow(ncol(x), start=0, end=.3)

利用R語言heatmap.2函數進行聚類并畫熱圖-圖片1

X就是一個矩陣,里面是我們需要畫熱圖的數據。

Rc是一個調色板,有32個顏色,漸進的

Cc也是一個調色板,有11個顏色,也是漸進的

首先畫一個默認的圖:

  
  1. heatmap.2(x)

利用R語言heatmap.2函數進行聚類并畫熱圖-圖片2

然后可以把聚類數可以去掉:就是控制這個dendrogram參數

  
  1. heatmap.2(x, dendrogram=“none”)

利用R語言heatmap.2函數進行聚類并畫熱圖-圖片3

然后我們控制一下聚類樹

  
  1. heatmap.2(x, dendrogram=“row”) # 只顯示行向量的聚類情況
  2. heatmap.2(x, dendrogram=“col”) #只顯示列向量的聚類情況

?

下面還是在調控聚類樹,但是我沒看懂跟上面的參數有啥子區別!

  
  1. heatmap.2(x, keysize=2) ## default - dendrogram plotted and reordering done.
  2. heatmap.2(x, Rowv=FALSE, dendrogram=“both”) ## generate warning!
  3. heatmap.2(x, Rowv=NULL, dendrogram=“both”) ## generate warning!
  4. heatmap.2(x, Colv=FALSE, dendrogram=“both”) ## generate warning!

接下來我們可以調控行列向量的label的字體大小方向

首先我們調控列向量,也就是x軸的label

  
  1. heatmap.2(x, srtCol=NULL)
  2. heatmap.2(x, srtCol=0, adjCol = c(0.5,1) )
  3. heatmap.2(x, srtCol=45, adjCol = c(1,1) )
  4. heatmap.2(x, srtCol=135, adjCol = c(1,0) )
  5. heatmap.2(x, srtCol=180, adjCol = c(0.5,0) )
  6. heatmap.2(x, srtCol=225, adjCol = c(0,0) ) ## not very useful
  7. heatmap.2(x, srtCol=270, adjCol = c(0,0.5) )
  8. heatmap.2(x, srtCol=315, adjCol = c(0,1) )
  9. heatmap.2(x, srtCol=360, adjCol = c(0.5,1) )

利用R語言heatmap.2函數進行聚類并畫熱圖-圖片4

然后我們調控一下行向量,也就是y軸的label

  
  1. heatmap.2(x, srtRow=45, adjRow=c(0, 1) )
  2. heatmap.2(x, srtRow=45, adjRow=c(0, 1), srtCol=45, adjCol=c(1,1) )
  3. heatmap.2(x, srtRow=45, adjRow=c(0, 1), srtCol=270, adjCol=c(0,0.5) )

利用R語言heatmap.2函數進行聚類并畫熱圖-圖片5

設置 offsetRow/offsetCol 可以把label跟熱圖隔開!

  
  1. ## Show effect of offsetRow/offsetCol (only works when srtRow/srtCol is
  2. ## not also present) heatmap.2(x, offsetRow=0, offsetCol=0)
  3. heatmap.2(x, offsetRow=1, offsetCol=1)
  4. heatmap.2(x, offsetRow=2, offsetCol=2)
  5. heatmap.2(x, offsetRow=-1, offsetCol=-1)
  6. heatmap.2(x, srtRow=0, srtCol=90, offsetRow=0, offsetCol=0)
  7. heatmap.2(x, srtRow=0, srtCol=90, offsetRow=1, offsetCol=1)
  8. heatmap.2(x, srtRow=0, srtCol=90, offsetRow=2, offsetCol=2)
  9. heatmap.2(x, srtRow=0, srtCol=90, offsetRow=-1, offsetCol=-1)

利用R語言heatmap.2函數進行聚類并畫熱圖-圖片6

  
  1. ## Show effect of z-score scaling within columns, blue-red color scale
  2. hv <- heatmap.2(x, col=bluered, scale=“column”, tracecol=“#303030”)

hv是一個熱圖對象!!!

  
  1. > names(hv) # 可以看到hv對象里面有很多子對象
  2. > “rowInd” “colInd” “call” “colMeans” “colSDs” “carpet” “rowDendrogram” “colDendrogram” “breaks” “col” “vline” “colorTable” ## Show the mapping of z-score values to color bins hvKaTeX parse error: Expected 'EOF', got '#' at position 638: …an class="com">#?# Extract the r…colorTable[hvKaTeX parse error: Expected 'EOF', got '#' at position 124: …n class="str">"#?FFFFFF"</span><…colorTable[hvKaTeX parse error: Expected 'EOF', got '#' at position 124: …n class="str">"#?FFFFFF"</span><…colSDs + hv c o l M e a n s < / s p a n > < s p a n c l a s s = " p u n " > , < / s p a n > < s p a n c l a s s = " p l n " > w h i t e B i n < / s p a n > < s p a n c l a s s = " p u n " > [ < / s p a n > < s p a n c l a s s = " l i t " > 2 < / s p a n > < s p a n c l a s s = " p u n " > ] < / s p a n > < s p a n c l a s s = " p l n " > < / s p a n > < s p a n c l a s s = " p u n " > ? < / s p a n > < s p a n c l a s s = " p l n " > h v colMeans</span><span class="pun">,</span><span class="pln"> whiteBin</span><span class="pun">[</span><span class="lit">2</span><span class="pun">]</span><span class="pln"> </span><span class="pun">*</span><span class="pln"> hv colMeans</span><spanclass="pun">,</span><spanclass="pln">whiteBin</span><spanclass="pun">[</span><spanclass="lit">2</span><spanclass="pun">]</span><spanclass="pln"></span><spanclass="pun">?</span><spanclass="pln">hvcolSDs + hvKaTeX parse error: Expected 'EOF', got '#' at position 1148: …n class="str">"#?303030"</span><…Type)],
  3. xlab=‘CellLines’,
  4. ylab=‘Probes’,
  5. main=Cluster_Method[i],
  6. col=greenred(64))
  7. dev.off()
  8. }

?

這樣就可以一下子把七種cluster的方法依次用到heatmap上面來。而且通過對cluster樹的比較,我們可以從中挑選出最好、最穩定到cluster方法,為后續分析打好基礎!

?

對下面這個數據聚類:

利用R語言heatmap.2函數進行聚類并畫熱圖-圖片12

  
  1. require(graphics)
  2. hc <- hclust(dist(USArrests), “ave”)
  3. plot(hc)

利用R語言heatmap.2函數進行聚類并畫熱圖-圖片13

首先對一個數據框用dist函數處理得到一個dist對象!

利用R語言heatmap.2函數進行聚類并畫熱圖-圖片14

Dist對象比較特殊,專門為hclust函數來畫聚類樹的!

利用R語言heatmap.2函數進行聚類并畫熱圖-圖片15

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/208573.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/208573.shtml
英文地址,請注明出處:http://en.pswp.cn/news/208573.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

計算機存儲結構分析(寄存器,內存,緩存,硬盤)

https://blog.csdn.net/bemodesty/article/details/81476906 前言 一個計算機包含多種存儲器比如&#xff1a;寄存器、高速緩存、內存、硬盤、光盤等&#xff0c;為啥有這么多種存儲方式&#xff0c;對于不太了解的人&#xff0c;總是覺得云里霧里的&#xff0c;搞不明白原因…

java-兩個列表進行比較,判斷那些是需要新增的、刪除的、和更新的

文章目錄 前言兩個列表進行比較&#xff0c;判斷那些是需要新增的、刪除的、和更新的 前言 如果您覺得有用的話&#xff0c;記得給博主點個贊&#xff0c;評論&#xff0c;收藏一鍵三連啊&#xff0c;寫作不易啊^ _ ^。 ??而且聽說點贊的人每天的運氣都不會太差&#xff0c;實…

SpringIOC之@Configuration

博主介紹&#xff1a;?全網粉絲5W&#xff0c;全棧開發工程師&#xff0c;從事多年軟件開發&#xff0c;在大廠呆過。持有軟件中級、六級等證書。可提供微服務項目搭建與畢業項目實戰&#xff0c;博主也曾寫過優秀論文&#xff0c;查重率極低&#xff0c;在這方面有豐富的經驗…

Django的logging-日志模塊的簡單使用方法

擴展閱讀&#xff1a; Python-Django的“日志功能-日志模塊(logging模塊)-日志輸出”的功能詳解 現在有下面的Python代碼&#xff1a; # -*- coding: utf-8 -*-def log_out_test(content_out):print(content_out)content1 "i love you01" log_out_test(content1)現…

云服務器Centos中安裝Docker

云服務器Centos中安裝Docker 1 簡介DockerCentosCentos和Ubuntu區別 2 安裝3 測試hello-world的鏡像測試 1 簡介 Docker Docker是一個開源的應用容器引擎&#xff0c;利用操作系統本身已有的機制和特性&#xff0c;可以實現遠超傳統虛擬機的輕量級虛擬化。它支持將軟件編譯成…

Hive 淺析

Hive是一個簡單的LUA沙盒&#xff0c;除了基本的LUA解釋器的功能以外&#xff0c;還提供了諸如熱加載等功能。 了解HIVE的工作原理有利于了解Lua虛擬機的底層實現機理。 本文從是什么-怎么用-為什么三個維度介紹HIVE。 Hive Hive是什么 hive是一個簡單的LUA應用框架,目前基于…

Mybatis Plus詳解【一】

一、簡介 MybatisPlus可以節省大量時間&#xff0c;所有的CRUD代碼都可以自動化完成。MyBatis-Plus是一個MyBatis的增強工具&#xff0c;在 MyBatis 的基礎上只做增強不做改變&#xff0c;為簡化開發、提高效率而生。 特性&#xff1a; 無侵入&#xff1a;只做增強不做改變&…

Windows 12 和 AI 計算機

據商業時報消息 &#xff0c;微軟計劃于 2024 年 6 月發布Windows 12。 新版本的操作系統將伴隨集成人工智能。 該數據基于廣達首席執行官林百里和宏基陳杰森在中國臺北醫療科技展上的發言。 雖然這篇文章沒有直接引用微軟高管的話&#xff0c;但它是根據他們的評論得出的結…

IDEA 社區版 add GitLab Account

問題 IntelliJ IDEA Community Edition 2023.3&#xff08;社區版&#xff09;在使用GitLab連接時&#xff0c;使用個人訪問令牌出現報錯&#xff0c;代碼&#xff1a; GraphQL error:[No such type ProjectMember,so it cant be a fraggment condition,Field id doesnt exis…

2023年最新prometheus + grafana搭建和使用

一、安裝prometheus 1.1 安裝 prometheus官網下載地址 sudo -i mkdir -p /opt/prometheus #移動解壓后的文件名到/opt/,并改名prometheus mv prometheus-2.45 /opt/prometheus/ #創建一個專門的prometheus用戶&#xff1a; -M 不創建家目錄&#xff0c; -s 不讓登錄 useradd…

Navicat 技術指引 | 適用于 GaussDB 分布式的數據遷移工具

Navicat Premium&#xff08;16.3.3 Windows 版或以上&#xff09;正式支持 GaussDB 分布式數據庫。GaussDB 分布式模式更適合對系統可用性和數據處理能力要求較高的場景。Navicat 工具不僅提供可視化數據查看和編輯功能&#xff0c;還提供強大的高階功能&#xff08;如模型、結…

單例模式---餓漢式、懶漢式

一、什么是單例模式 單例模式&#xff0c;指的是一個類中的對象只能有一個&#xff0c;它在內存中只會創建一次對象的設計模式。 二、餓漢式 public class SingleTon {// 私有的構造方法private SingleTon() {};// 1. 餓漢式private static SingleTon instance new SingleTon…

整數以及浮點數在內存中的存儲

一.整數在內存當中的存儲 數據在內存中是以十六進制補碼的形式進行存儲的。 原碼表示法簡單易懂&#xff0c;適用于乘法&#xff0c;但用原碼表示的數進行加減運算比較復雜&#xff0c;當兩數相加時&#xff0c;如果同號則數值相加&#xff0c;但是進行減法時要先比較絕對值的…

認知覺醒(六)

認知覺醒(六) 第二節 感性&#xff1a;頂級的成長竟然是“憑感覺” 人類生存于世&#xff0c;比拼的是腦力思維&#xff0c;但極少有人知道&#xff0c;我們的身體里還有一個更高級的系統&#xff0c;若能善用&#xff0c;成就非凡。 1941年&#xff0c;德軍對英國本土進行…

Neo4j介紹

1、Neo4j介紹 Neo4j 是一個圖數據庫管理系統&#xff0c;它專注于存儲和處理圖形結構的數據。圖數據庫是一類特殊的數據庫&#xff0c;用于有效地管理圖形數據模型&#xff0c;其中數據以節點、關系和屬性的形式存儲。 2、Neo4j特點 圖數據庫&#xff1a; Neo4j 是一種 NoSQ…

目標檢測器技術演進簡史

引言 目標檢測算法的發展已經取得了長足的進步&#xff0c;從早期的計算機視覺方法開始&#xff0c;通過深度學習達到了很高的準確度。在這篇博文中&#xff0c;我們將一起回顧一下這些算法的發展階段以及現代目標檢測系統中使用的主要方法。 我們首先回顧早期傳統的目標檢測…

大數據技術3:數據倉庫的ETL和分層模型

前言&#xff1a;我們先了解一下數據倉庫架構的演變過程。 1 、數據倉庫定義 數據倉庫是一個面向主題的&#xff08;Subject Oriented&#xff09;、集成的&#xff08;Integrate&#xff09;、相對穩定的&#xff08;Non-Volatile&#xff09;、反映歷史變化&#xff08;Time…

電商系統架構演進

聊聊電商系統架構演進 具體以電子商務網站為例&#xff0c; 展示web應用的架構演變過程。 1.0時代 這個時候是一個web項目里包含了所有的模塊&#xff0c;一個數據庫里包含了所需要的所有表&#xff0c;這時候網站訪問量增加時&#xff0c;首先遇到瓶頸的是應用服務器連接數&a…

深入體驗:山海鯨可視化軟件的獨特魅力

山海鯨可視化軟件是一款功能強大的數據可視化工具&#xff0c;作為該軟件的資深用戶&#xff0c;我深感其獨特的魅力和優勢。下面&#xff0c;我將從軟件特點、操作體驗、數據交互和實際應用場景等方面&#xff0c;為大家詳細介紹山海鯨可視化軟件。 首先&#xff0c;山海鯨可視…

解決Eslint和Prettier關于三元運算符的沖突問題

三元運算符Prettier的格式化 三元運算符Eslint的格式要求 解決辦法 // eslint加入配置&#xff0c;屏蔽標紅報錯indent: [error, 2, { ignoredNodes: [ConditionalExpression] }]效果