美文网首页
2022-05-25如何绘制转录组指定基因的热图

2022-05-25如何绘制转录组指定基因的热图

作者: 麦冬花儿 | 来源:发表于2022-05-26 20:47 被阅读0次

    方法一
    1、准备数据


    图片.png

    2、利用R语言中的pheatmap包进行热图的制作

    #载入pheatmap
    library(pheatmap)
    # 进入到数据文件所在的文件夹路径下
    setwd("E:/shengwuxinxi/基因组重测序数据操作步骤/作业")
    #导入数据文件
    mat=read.table("tumorous_v_survive.txt",header=TRUE,row.names=1,sep="\t",check.names = F)
    dim(mat)
    #利用pheatmap画热图,fontsize参数是用来设置字体大小
    pheatmap(mat,cluster_rows =T,scale = "row",clustering_method = "average",fontsize=5,fontsize_row=5,fontsize_col=10,color=colorRampPalette(rev(c("red","white","blue")))(102))
    

    3.得到的结果图是


    图片.png

    方法二
    1、数据下载
    https://doi.org/10.6084/m9.figshare.19125641
    目的图片

    图片.png
    2、数据展示
    图片.png
    3、读取数据
    library(readxl)
    
    dat01<-read_excel("data/20220526/NaturePlantsFig3d.xlsx")
    head(dat01)
    

    论文中的图展示的是Z-score,数据应该是FPKM之类的,这里需要对数据集进行一个转化,这里关于zscore的计算我采用的公式是 以每个基因为单位,先取log2,然后是 (FPKM - mean(FPKM))/sd(FPKM) 这里我不确定这个转化做的对不对,这里的疑问是计算平均值和标准差的时候是用提供的所有基因的数据 还是用每个基因分别算平均值和标准差,我采用的是后者。
    4、计算z-score

    library(tidyverse)
    library(stringr)
    dat01 %>% 
      rowwise() %>% 
      mutate(mean_value = mean(c_across(2:16)),
             sd_value = sd(c_across(2:16))) %>% 
      mutate(across(2:16,~(.x-mean_value)/sd_value)) %>% 
      select(-c(mean_value,sd_value)) -> dat01.2
    

    5、宽格式转换为长格式

    dat01.2 %>% 
      reshape2::melt(id.vars="Gene") %>% 
      mutate(new_var=str_replace(variable,'-[123]','')) %>% 
      group_by(Gene,new_var) %>% 
      summarise(mean_value=mean(value)) %>%
      ungroup() -> dat01.3
    

    6、开始绘图

    library(ggplot2)  
    library(paletteer)
    
    dat01.3$new_var<-factor(dat01.3$new_var,
                            levels = c("Ph","Sb","Xy","Pi","Le1"))
    
    ggplot(data = dat01.3,
           aes(x=Gene,y=new_var))+
      geom_tile(aes(fill=mean_value),
                color="white")+
      scale_fill_paletteer_c("ggthemes::Classic Red-Green",
                             direction = -1,
                             name="Expression level (Z-score)",
                             limits=c(-2,2))+
      scale_y_discrete(position = "right")+
      labs(x=NULL,y=NULL)+
      theme_minimal()+
      theme(panel.grid = element_blank(),
            legend.position = "top",
            axis.text.x = element_text(angle = 60,
                                       hjust = 1,
                                       vjust=1),
            plot.margin = unit(c(0.2,0.2,0.2,1),'cm'))+
      guides(fill=guide_colorbar(title.position = "top",
                                 title.hjust = 0.5,
                                 barwidth = 10,
                                 barheight = 0.5,
                                 ticks = FALSE))
    

    7、结果展示


    图片.png

    方法三
    软件推荐MeV(Multiple ExperimentViewer)

    相关文章

      网友评论

          本文标题:2022-05-25如何绘制转录组指定基因的热图

          本文链接:https://www.haomeiwen.com/subject/gvoeprtx.html