生信分析系列 | 輕鬆利用Python繪製基因表達熱圖

2021-02-08 GENEWIZ金唯智

(閱讀本文需要簡單了解python中的函數、python模組的安裝與模組的調用)

文末有驚喜,免費Python信息分析培訓班送給你哦

Python是當下數據科學主流程式語言之一。Python與R在處理統計問題和數據可視化方面同樣強大,但Python擁有更豐富的生態系統和更廣泛的應用場景,如搭建深度學習模型和編碼簡單的算法。對於有編程基礎或項目周期較充裕的科研工作者,Python適合作為職業發展初期的入門與主力程式語言。

熱圖(heatmap)是一種直觀的數據可視化方式,使用明暗相間的相鄰色塊表示數值大小。熱圖常與聚類分析一同使用,用於展示多個基因的表達量及其分組關係。使用Python的Matplotlib和Seaborn模組可以輕鬆得到自定義風格的熱圖用於數據展示。下面讓我們一步一步了解如何繪製一幅自定義風格的熱圖:

(可使用pip命令或anaconda下載對應的python模組。可使用清華大學開源軟體鏡像站下載最新的anaconda:https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/)

將數據整理成如下格式:第一列為sgRNA名稱,後續每列為每個樣本sgRNA的reads數

(DEMO_gRNACount.txt,注意保證每行的長度相同)

使用read_csv(分隔符為\t)讀取文件,indexcolumn為"sgRNA"列

取第2-10列用於繪圖

3.使用sns.heatmap繪製不含聚類分析的熱圖

參數介紹:

data:結構為PandasDataFrame (DF)

vmin,vmax:colormap對應數值的最小值和最大值(float)

cmap:Matplotlib colormap名(string)

center:colormap中心的數值(float)

annot:是否在色塊中間添加數據標籤(True/False)

fmt:數據標籤格式(string)

linewidth:色塊邊框線條粗細

cbar:是否有cmap對應的顏色漸變條

繪製結果如下圖所示:

調整cmap參數可以繪製不同風格的熱圖:

3.2使用sns.clustermap繪製含有聚類分析的熱圖

使用heatmap繪製的熱圖不包含聚類分析。如果需要繪製含有聚類分析的熱圖,需要使用clustermap函數:

參數介紹:

clustermap的大部分參數和heatmap相同,其它參數包含

col/row_cluster:是否對x,y軸進行聚類

method:聚類分析的方法/算法(可選項:'single', 'complete', 'average', 'weighted', 'centroid', 'median','ward' )

metric:":簇之間的距離類型(可選項:'braycurtis','canberra','chebyshev', 'cityblock','correlation','cosine','dice','euclidean','hamming','jaccard','jensenshannon','kulsinski','mahalanobis','matching','minkowski','rogerstanimoto','russellrao','seuclidean','sokalmichener','sokalsneath','sqeuclidean','yule')

繪製結果如下:

with"fmt"

without"fmt"

安裝Seaborn, Matplotlib, Pandas包用於數據處理和繪圖

使用sns.heatmap和sns.clustermap 繪製熱圖

調整參數繪製不同配色風格與聚類方法的熱圖

參考資料與推薦閱讀:

python官方文檔– import語句

https://docs.python.org/zh-cn/3/reference/simple_stmts.html#import

Matplotlib官方文檔:matplotlib.pyplot.subplots

https://matplotlib.org/3.3.2/api/_as_gen/matplotlib.pyplot.subplots.html

熱圖

Gehlenborg N, Wong B. Heat maps. NatMethods. 2012 Mar;9(3):213–213.

Seaborn官方文檔:seaborn.heatmap

https://seaborn.pydata.org/generated/seaborn.heatmap.html

Seaborn官方文檔:seaborn.clustermap

https://seaborn.pydata.org/generated/seaborn.clustermap.html

Scipy官方文檔:聚類分析的距離類型

https://docs.scipy.org/doc/scipy/reference/generated/scipy.spatial.distance.pdist.html#scipy.spatial.distance.pdist

Scipy官方文檔:聚類分析的方法

https://docs.scipy.org/doc/scipy/reference/generated/scipy.cluster.hierarchy.linkage.html#scipy.cluster.hierarchy.linkage


今天的文章分享到此結束,下面是福利時間

《金唯智第五屆生物信息培訓班--Python編程》已全部上線,而且完全免費!有需要的老師可以點擊下方海報收看課程回放。



關於金唯智

GENEWIZ(金唯智)成立於1999年,總部位於美國新澤西州,是專注於基因組研究和基因技術應用的生物高科技公司。金唯智在全球範圍內為科學研究人員提供高通量測序、Sanger測序、基因合成、引物合成、分子生物學服務及GLP標準規範服務。基於金唯智嚴謹的科學和卓越的服務,包括近30位諾貝爾獎獲得者在內的眾多科研工作者已成為金唯智的忠實客戶,全球諸多知名跨國公司以及著名高等學府也把金唯智選為其戰略合作夥伴和首選供應商。2018年,金唯智正式加入Brooks集團,成為納斯達克指數上市公司的一部分。

更多信息,請訪問 www.GENEWIZ.com.cn 

郵件:Enews.China@genewiz.com.cn



科學嚴謹  服務卓越

相關焦點

  • 全面乾貨的R系列課程,鎖高分文章的技能
    R來進行數據統計分析和繪圖操作,例如對數據進行T檢驗、聚類分析、超幾何分布富集分析等,能夠繪製氣泡圖、箱型圖、熱圖、火山圖等一系列生信分析中常見圖形。課程介紹:聚類熱圖是生信分析中常見的一種數據可視化方法,可以對比較組之間的基因、蛋白和代謝物進行比較分析,也可以發現基因、蛋白或代謝物的時空表達模式,對樣品聚類可以發現相似或相近的樣品,對基因、蛋白或代謝物聚類可以找到相同或相反的表達Cluster模塊。
  • 生信常用分析圖形的繪製03 -- 富集分析圈圖
    有了R語言的基礎,以及ggplot2繪圖基礎,我們的生信常用分析圖形的繪製就可以提上日程了!今天師兄就開始帶著大家一起學習如何用R語言繪製我們自己的各種分析圖吧!❝由於本系列的所有分析代碼均為師兄細心整理和詳細注釋而成的,所以本系列中部分教程需要收費的哦!付費即可獲取對應小節的繪圖數據和代碼!
  • 利用ComplexHeatmap繪製熱圖(一)
    之前熱圖三部曲介紹了使用ggplot2和pheatmp繪製熱圖R語言學習 - 熱圖繪製 (heatmap)  R語言學習 - 熱圖美化  R語言學習 - 熱圖簡化後來2017年最後學習1010個熱圖繪製方法簡略介紹了10種熱圖繪製方式,CIRCOS增加熱圖、點圖、線圖和區塊屬性是另一種形式的熱圖。
  • 使用biopython可視化染色體和基因元件
    歡迎關注」生信修煉手冊」! 基因組結構元件的可視化有多種方式,比如IGV等基因組瀏覽器中以track為單位的展示形式,亦或以circos為代表的圈圖形式,比如在細胞器基因組組裝中,基因元件常用圈圖形式展示,示例如下
  • R語言學習 - 熱圖繪製 (heatmap)
    還有另外2種獲取數值矩陣的方式。> data2 <- read.table(text=txt,sep=";", header=T, row.names=1, quote="", check.names = F)> head(data2)       Zygote 2_cell 4_cell 8_cellGene_1    1.0    2.0    3.0
  • Volcano plot | 別再問我這為什麼是火山圖 (在線輕鬆繪製)
    縱軸是-Log 10 (adjusted P-value),點越靠圖的頂部表示差異越顯著。點的大小和顏色也可以表示更多的屬性,如下圖中點的顏色標記其對應的基因是上調, 下調還是無差異。大小也可用於展示基因表達的平均豐度,一般我們關注表達水平較高且差異較大的基因用於後續的分析和驗證。
  • 0代碼高效繪製富集分析氣泡圖
    氣泡圖相較柱形圖的優點是可以顯示更加全面而詳細的可視化富集分析結果:即顯示參與富集通路的差異表達基因數量與對應的p值。R語言ggplot2可以方便的繪製富集分析氣泡圖,那麼不會編程的醫學生該如何實現富集分析氣泡圖的繪製呢?今天半夏就給大家分享0代碼使用在線工具與Origin高效實現富集分析與氣泡圖繪製!
  • 非腫瘤純生信:Tuner症候群的核心基因篩選
    篩選差異表達基因作者利用GEO資料庫中的GEO2R分析工具對GSE46687數據集(外周血單核細胞晶片數據集)進行分析。最後得到表達上調的DEG60個,表達下調的DEG25個(C)。A-B兩圖分別Xm-XX組和Xp-XX組中的DEG在樣本中表達情況的熱圖。此外,作者選擇了一些共同存在於TS患者中的DEG,對其作用和表達情況做了簡要描述。圖1. 篩選差異表達基因2.
  • ​無代碼高效繪製富集分析氣泡圖
    一圖勝千言,好的數據呈現方式能夠為文章增加光彩。
  • 單基因生信加點免疫組化,4分sci等你來發!
    根據AJCC臨床分期和ISUP病理分級進行分組,顯示了AQP9mRNA的表達與不同臨床分期和病理分級的關係。(可用在線工具UALCAN :http://ualcan.path.uab.edu/index.html完成)。
  • 圖形解讀系列 | 給你5個示例,你能看懂常用熱圖使用嗎?
    熱圖是一種很常見的圖,其基本原則是用顏色代表數字,讓數據呈現更直觀、對比更明顯。常用來表示不同樣品組代表性基因的表達差異、不同樣品組代表性化合物的含量差異、不同樣品之間的兩兩相似性。實際上,任何一個表格數據都可以轉換為熱圖展示。熱圖基本解讀熱圖通過將數據矩陣中的各個值按一定規律映射為顏色展示,利用顏色變化來可視化比較數據。
  • 在線網站繪製基因結構圖!
    小編今天給大家介紹一款在線繪製基因結構的工具Gene Structure Dispaly Server,簡單好用功能還挺強大。
  • DESeq2分析基因表達矩陣
    上一節對基因表達數據使用edgeR進行差異表達分析:edgeR分析基因表達矩陣,那麼接下來,我們就繼續使用DESeq2對expressMatrix
  • ComplexHeatmap |理解繪圖邏輯繪製熱圖
    之前熱圖三部曲介紹了使用ggplot2和pheatmp繪製熱圖R語言學習 - 熱圖繪製 (heatmap)  R語言學習 - 熱圖美化  R語言學習 - 熱圖簡化後來2017年最後學習1010個熱圖繪製方法簡略介紹了10種熱圖繪製方式,CIRCOS增加熱圖、點圖、線圖和區塊屬性是另一種形式的熱圖。
  • R包ComplexHeatmap繪製個性化熱圖
    使用ComplexHeatmap包繪製個性化熱圖作者:劉夢瑤 諾禾致源 微生物信息審稿:劉永鑫 中國科學院遺傳與發育生物學研究所
  • 使用ComplexHeatmap包繪製個性化熱圖
    使用ComplexHeatmap包繪製個性化熱圖作者:劉夢瑤 諾禾致源 微生物信息審稿:劉永鑫 中國科學院遺傳與發育生物學研究所
  • ggplot2|繪製GO富集柱形圖
    生信分析中經常會得到一些基因,然後做GO富集分析,達到對基因進行注釋和分類的目的。
  • (R數據分析,可視化,生信實戰)
    本文首發於「生信補給站」公眾號,更多關於R語言,ggplot2繪圖,生信分析的內容,敬請關注小號。為了能更方便的查看,檢索,對文章進行了精心的整理。建議收藏,各取所需,當前沒用也許以後就用到了呢!pheatmap|暴雨暫歇,「熱圖」來襲!!!
  • 科學家繪製出胎兒基因表達的人類細胞圖譜
    科學家繪製出胎兒基因表達的人類細胞圖譜 作者:小柯機器人 發布時間:2020/11/16 13:42:53 美國華盛頓大學Jay Shendure、Cole Trapnell等研究人員合作繪製出胎兒基因表達的人類細胞圖譜。