亚洲蜜臀AV乱码久久精品蜜桃,性猛交一级A片少妇视频无码,国产成人无码精品一区二区 http://cysolarrack.com BioMarker Mon, 03 May 2032 15:33:46 +0000 zh-CN hourly 1 https://wordpress.org/?v=4.7.22 http://cysolarrack.com/wp-content/uploads/2020/04/cropped-512-512-32x32.png 熱圖 – 百邁客生物 http://cysolarrack.com 32 32 高大上的甲基化和表達(dá)譜聯(lián)合分析熱圖展示實例 http://cysolarrack.com/archives/16830 Fri, 31 May 2019 08:33:04 +0000 http://cysolarrack.com/?p=16830 隨著時代的發(fā)展,單一研究轉(zhuǎn)錄組、蛋白代謝、甲基化等已經(jīng)難以滿足研究者越來越高的研究期望,大家更多地期望聯(lián)合多種數(shù)據(jù)進(jìn)行多組學(xué)聯(lián)合分析。那么這時候,一種好的展示結(jié)果的方式無疑會為發(fā)表高分文章增光添彩。

誠然,小編的上一篇(如何讓你的圖變得高大上之ComplexHeatmap())結(jié)局得太匆匆,因此,本篇奉上作圖代碼實例。

本次,我們將展示一個甲基化與表達(dá)譜聯(lián)合分析的熱圖。本著先學(xué)習(xí)再創(chuàng)造的態(tài)度,小編做了一下知識的搬運工,本篇所有代碼均引用自:Zuguang Gu, Roland Eils and Matthias Schlesner,?Complex heatmaps reveal patterns and correlations in multidimensional genomic data,?Bioinformatics, 2016。

我們先上效果圖:

其實代碼并不長,關(guān)鍵在于如何準(zhǔn)備作圖所用數(shù)據(jù)以及對代碼的理解上,所以下面將著重對這兩點進(jìn)行解釋說明。

>library(ComplexHeatmap)
>library(circlize)
#為了測試方便,用setwd設(shè)置工作路徑
setwd(“/media/bmk/***/Meth_Exp”)
#rds格式是一種保存了數(shù)據(jù)的數(shù)據(jù)類型和結(jié)構(gòu)的格式,可以用函數(shù)saveRDS()來生成這種格式的文件。meth.rds文件來自R包示例文件,如需查看這個文件中都是什么,請參考(看不清熱圖的聚類結(jié)果怎么辦)的方法。另外,文件中只包含了DMR關(guān)聯(lián)基因的甲基化和表達(dá)量呈現(xiàn)負(fù)相關(guān)的DMR
>res_list?=?readRDS(“data/meth.rds”)

#顯示樣本是腫瘤樣本還是正常樣本的標(biāo)簽
>type?=?res_list$type
(20個正常樣本和20個腫瘤樣本)
#矩陣,其中行對應(yīng)差異甲基化區(qū)域(DMR),矩陣中的值是每個樣品中DMR中的平均甲基化水平。
>mat_meth?=?res_list$mat_meth

 

#矩陣,其中行對應(yīng)于與DMR相關(guān)的基因(即與DMR最近的基因,也可以叫做DMR關(guān)聯(lián)基因),矩陣中的值是每個樣品中每個基因的表達(dá)水平(對樣品中的每個基因的表達(dá)進(jìn)行了標(biāo)準(zhǔn)化)。
>mat_expr?=?res_list$mat_expr

 

#甲基化變化的方向(hyper表示腫瘤樣本中高甲基化,hypo表示腫瘤樣本中低甲基化)
>direction?=?res_list$direction
#甲基化與甲基化關(guān)聯(lián)基因相關(guān)性p值
>cor_pvalue?=?res_list$cor_pvalue
#基因類型(如蛋白編碼基因或lincRNA等)
>gene_type?=?res_list$gene_type
#DMR注釋到基因的功能區(qū)間(如intergenic/intragenic或者TSS
>anno_gene?=?res_list$anno_gene
#DMR到關(guān)聯(lián)基因TSS的距離
>dist?=?res_list$dist
#與增強子重疊的DMR的部分
>anno_enhancer?=?res_list$anno_enhancer

##首先計算甲基化矩陣的列聚類,以便可以將表達(dá)矩陣中的列調(diào)整為具有與甲基化矩陣中相同的列順序。
>column_tree?=?hclust(dist(t(mat_meth)))
>column_order?=?column_tree$order

#顏色定義參見上一篇(如何讓你的圖變得高大上之ComplexHeatmap())
>library(RColorBrewer)
#定義甲基化表達(dá)水平顏色,從0/blue-0.5/white-1/red漸變
>meth_col_fun?=?colorRamp2(c(0,?0.5,?1),?c(“blue”,?“white”,?“red”))
#定義甲基化變化方向?qū)?yīng)顏色
>direction_col?=?c(“hyper”?=?“red”,?“hypo”?=?“blue”)
#定義表達(dá)水平顏色
>expr_col_fun?=?colorRamp2(c(-2,?0,?2),?c(“green”,?“white”,?“red”))
#定義相關(guān)性p值顏色
>pvalue_col_fun?=?colorRamp2(c(0,?2,?4),?c(“white”,?“white”,?“red”))
#定義基因類型顏色
>gene_type_col?=?structure(brewer.pal(length(unique(gene_type)),?“Set3”),
names?=?unique(gene_type))
#定義注釋model顏色
>anno_gene_col?=?structure(brewer.pal(length(unique(anno_gene)),?“Set1”),
names?=?unique(anno_gene))
#定義距離顏色
>dist_col_fun?=?colorRamp2(c(0,?10000),?c(“black”,?“white”))
#定義增強子相關(guān)顏色
>enhancer_col_fun?=?colorRamp2(c(0,?1),?c(“white”,?“orange”))

##我們首先定義兩個列注釋,然后制作復(fù)雜的熱圖。
#ht_global_opt()是一個可選函數(shù),它會全局控制一些參數(shù)。我們可以通過此全局函數(shù)同時為所有熱圖/注釋設(shè)置一些參數(shù)。需要注意的是,一定將它放在熱圖代碼(也就是Heatmap())之前,并在繪制熱圖后重置所有選項值以消除對下一個熱圖的影響。
#可以通過?ComplexHeatmap::ht_global_opt查看此函數(shù)的幫助
>?names(ht_global_opt())????????#可查看該函數(shù)可定義的參數(shù)
[1]?“heatmap_row_names_gp”
[2]?“heatmap_column_names_gp”
[3]?“heatmap_row_title_gp”
[4]?“heatmap_column_title_gp”
[5]?“heatmap_legend_title_gp”
[6]?“heatmap_legend_title_position”
[7]?“heatmap_legend_labels_gp”
[8]?“heatmap_legend_grid_height”
[9]?“heatmap_legend_grid_width”
[10]?“heatmap_legend_grid_border”
[11]?“annotation_legend_title_gp”
[12]?“annotation_legend_title_position”
[13]?“annotation_legend_labels_gp”
[14]?“annotation_legend_grid_height”
[15]?“annotation_legend_grid_width”????[16]?“annotation_legend_grid_border”
[17]?“fast_hclust”

>ht_global_opt(
heatmap_legend_title_gp?=?gpar(fontsize?=?8,?fontface?=?“bold”),
heatmap_legend_labels_gp?=?gpar(fontsize?=?8),
heatmap_column_names_gp?=?gpar(fontsize?=?8),
heatmap_column_title_gp?=?gpar(fontsize?=?10),
heatmap_row_title_gp?=?gpar(fontsize?=?8)
)
#利用HeatmapAnnotation()對行或列注釋。HeatmapAnnotation()函數(shù)會生成一個注釋用的list對象。該函數(shù)的主要格式是HeatmapAnnotation(df/數(shù)據(jù)框, name/注釋名稱, col/注釋顏色列表, show_legend/是否顯示數(shù)據(jù)框中每一列的圖例)
#樣本類型注釋,Tumor樣本為pink,Control樣本為royalbule,名稱在左邊
>ha?=?HeatmapAnnotation(type?=?type,
col?=?list(type?=?c(“Tumor”?=?“pink”,?“Control”?=?“royalblue”)),
annotation_name_side?=?“left”)
#不顯示圖例名稱
>ha2?=?HeatmapAnnotation(type?=?type,
col?=?list(type?=?c(“Tumor”?=?“pink”,?“Control”?=?“royalblue”)),
show_legend?=?FALSE)

#Heatmap()實際上是單一熱圖的類構(gòu)造函數(shù)。如果需要組合超過一個熱圖,用戶可以通過+操作符添加熱圖。默認(rèn)情況下,將兩個熱圖通過+連接后,第二個熱圖的行聚類樹會去掉,行的順序會與是第一個熱圖的順序保持一致。
>ht_list?=?Heatmap(mat_meth,?name?=?“methylation”,?col?=?meth_col_fun,
column_order=?column_order,
top_annotation?=?ha,?column_title?=?“Methylation”)?+

#方向部分
Heatmap(direction,?name?=?“direction”,?col?=?direction_col)?+

#表達(dá)部分
Heatmap(mat_expr[,?column_tree$order],?name?=?“expression”,
col?=?expr_col_fun,
column_order?=?column_order,
top_annotation?=?ha2,?column_title?=?“Expression”)?+

#p值部分
Heatmap(cor_pvalue,?name?=?“-log10(cor_p)”,?col?=?pvalue_col_fun)+

#基因類型部分
Heatmap(gene_type,?name?=?“gene?type”,?col?=?gene_type_col)?+

#基因注釋部分
Heatmap(anno_gene,?name?=?“anno_gene”,?col?=?anno_gene_col)?+

#距離部分
Heatmap(dist,?name?=?“dist_tss”,?col?=?dist_col_fun)?+

#增強子部分
Heatmap(anno_enhancer,?name?=?“anno_enhancer”,?col?=?enhancer_col_fun,
cluster_columns?=?FALSE,?column_title?=?“Enhancer”)

#以上熱圖相加后得到的是

#可以看到,整個熱圖是單個熱圖從左到右依次相加,圖例是從上到下依次相加,除了第一個熱圖的行聚類樹保留了之外,其他的都默認(rèn)被去除掉,順序和第一個熱圖保持一致。
#熱圖相加的返回值是一個HeatmapList對象。直接允許ht_list對象會默認(rèn)調(diào)用draw()方法。通過顯式地調(diào)用draw()方法,你可以進(jìn)行更多的控制,例如圖例和標(biāo)題。
#可以通過??`draw,HeatmapList-method`來查看draw的幫助
#分兩個cluster進(jìn)行聚類,按hyper和hypo進(jìn)行分裂,加上整張熱圖的名稱,設(shè)置圖例位置等
>draw(ht_list,?km?=?2,?split?=?direction,
column_title?=?“Comprehensive?correspondence?between?methylation,
expression?and?other?genomic?features”,
column_title_gp?=?gpar(fontsize?=?12,?fontface?=?“bold”),
merge_legends?=?TRUE,?heatmap_legend_side?=?“bottom”)
#重置全局參數(shù)消除影響
>ht_global_opt(RESET?=?TRUE)

復(fù)雜的熱圖顯示高度甲基化的DMR富含基因間和基因內(nèi)區(qū)域,很少與增強子重疊。相反,低甲基化的DMR富含轉(zhuǎn)錄起始位點(TSS)和增強子。

知識點總結(jié)

1.ComplexHeatmap可實現(xiàn)單個熱圖的相加以實現(xiàn)數(shù)據(jù)之間的聯(lián)合。

2.ht_global_opt()函數(shù)可實現(xiàn)整個熱圖的全局控制,但要注意使用結(jié)束后進(jìn)行重置。

3.draw()函數(shù)在返回值是HeatmapList對象可以實現(xiàn)更多的控制。

 

]]>
r語言如何畫聚類熱圖?附代碼教程 http://cysolarrack.com/archives/16573 Fri, 10 May 2019 10:26:54 +0000 http://cysolarrack.com/?p=16573 pheatmap是R語言中一個使用非常廣泛的用于繪制聚類熱圖的繪圖包。使用這個繪圖包可以幫助我們快速的生成包含聚類結(jié)果的熱圖。

pheatmap的安裝非常簡單,只需要在R軟件中執(zhí)行一行安裝代碼即可

install.packages('pheatmap')

安裝完成后,我們來看如何使用pheatmap來繪制聚類熱圖

# 加載軟件包 library('pheatmap') # 生成繪圖用的數(shù)據(jù) test = matrix(rnorm(200), 20, 10) test[1:10, seq(1, 10, 2)] = test[1:10, seq(1, 10, 2)] + 3 test[11:20, seq(2, 10, 2)] = test[11:20, seq(2, 10, 2)] + 2 test[15:20, seq(2, 10, 2)] = test[15:20, seq(2, 10, 2)] + 4 colnames(test) = paste("Test", 1:10, sep = "") rownames(test) = paste("Gene", 1:20, sep = "")

這段代碼實際上是利用隨機數(shù)生成了一個20 X 10的矩陣。

為了模擬不同樣品和基因之間的差異,我們將第一行到第10行中奇數(shù)列的數(shù)值全部加3,將第11行到第20行的偶數(shù)列數(shù)值全部加2,將15行到20行的偶數(shù)列全部加4。最后將列名命名為Test1 ~ Test10,將行名命名為Gene1~Gene 20,最終生成的數(shù)據(jù)格式如下圖

默認(rèn)參數(shù)繪制圖形只需要執(zhí)行以下代碼。

pheatmap(test)

生成的圖片如下圖:

當(dāng)默認(rèn)參數(shù)不能滿足我們的需求時,我們可以根據(jù)自己的需要在此基礎(chǔ)上修改這個圖形。常見的一些參數(shù)設(shè)置如下:

pheatmap(test,?scale?=?"row")

# scale = “row”的含義是繪圖時按行進(jìn)行均一化。進(jìn)行均一化可以降低個別特殊樣品與其它樣品間的差異,這會使得其它樣品間的差異在圖形中更加顯著。一般我們在基于表達(dá)量進(jìn)行聚類分析時,均是常用的參數(shù)。繪圖結(jié)果如下圖所示:

如果需要對配色方案進(jìn)行修改,可以修改color參數(shù),

pheatmap(test,?color?=?colorRampPalette(c("navy",?"white",?"firebrick3"))(50))

# colorRampPalette函數(shù)可以設(shè)置3種顏色(只能是3種),它可以根據(jù)給定的向量生成漸變色,這三個參數(shù)分別指定了最大值,中間值和最小值的顏色。繪圖結(jié)果如下:

同時,通過設(shè)置cluster_col和cluster_row參數(shù)可以控制是否取消對行或列進(jìn)行聚類分析,具體代碼及結(jié)果如下:

pheatmap(test,?cluster_col?=?FALSE)

show_rownames和show_colnames參數(shù)來控制是否顯示行名和列名,如下:

pheatmap(test,show_rownames=F,show_colnames=F)

display_numbers 和number_color 參數(shù)可以控制是否在圖中顯示數(shù)字及設(shè)置數(shù)字的顏色。

pheatmap(test,?display_numbers?=?TRUE,number_color?=?"blue")

cellwidth和cellheight兩個參數(shù)可以控制每個單元的長度和寬度。參數(shù)main可以在圖片中添加標(biāo)題。

pheatmap(test,?cellwidth?=?15,?cellheight?=?12,?main?=?"Example?heatmap")

以上呢,就是在使用pheatmap繪制聚類熱圖時常用的一些參數(shù)??梢钥吹?,使用pheatmap繪制聚類熱圖是非常簡單快速的。通過組合不同的參數(shù),我們可以控制最終生成的圖片的樣式與效果。更多的功能和參數(shù)可以通過執(zhí)行pheatmap命令查看pheatmap自帶的幫助文檔來獵取!本期聚類熱圖的繪制我們就分享完啦,敬請關(guān)注其他圖形繪制。

截止目前,百邁客成功舉辦了三場零基礎(chǔ)R語言繪圖培訓(xùn)班.而由于我們培訓(xùn)班主要是小班教學(xué)(20人左右),以及老師行程問題,還有部分老師未趕上前三期培訓(xùn),因此,現(xiàn)特征集R語言培訓(xùn)班東北、福建、西安、甘肅、北京場意向?qū)W員。如果您想學(xué)編程,想自己可以隨時繪制出編輯部要求的圖片,歡迎點擊下方按鈕聯(lián)系我們,我們會根據(jù)大家填寫的意向情況,安排后期的生信培訓(xùn)班場次,說不定下一場就在你的城市哦。

百邁客云

關(guān)注我們,隨時隨地學(xué)習(xí)

]]>