操作记录-2021-03-04: sunxiaoyu_project

一、数据加工处理

1. 检查数据完整性

(base) zexing@DNA:~/projects/sunxiaoyu/RNA_seq/2021_03_04$ cat md5.txt > check_md5sum.txt && md5sum -c check_md5sum.txt
./clean/sh4A_2_8_2.clean.fq.gz: OK
./clean/shP2_2_4_2.clean.fq.gz: OK
./clean/shP2_4_2.clean.fq.gz: OK
./clean/shKA_12_2.clean.fq.gz: OK
./clean/shP2_2_N_1.clean.fq.gz: OK
./clean/shP2_2_2.clean.fq.gz: OK
./clean/sh4A_2_4_1.clean.fq.gz: OK
./clean/shP2_2_8_2.clean.fq.gz: OK
./clean/sh4A_2_2_2.clean.fq.gz: OK
./clean/WT_12H_1.clean.fq.gz: OK
./clean/shKA_2_1.clean.fq.gz: OK
./clean/shKA_4_2.clean.fq.gz: OK
./clean/WT2_4H_2.clean.fq.gz: OK
./clean/shKA_4_1.clean.fq.gz: OK
./clean/sP2_2_12_1.clean.fq.gz: OK
./clean/WT2_8H_2.clean.fq.gz: OK
./clean/sh4A_0_1.clean.fq.gz: OK
./clean/shP2_N_2.clean.fq.gz: OK
./clean/shP2_4_1.clean.fq.gz: OK
./clean/WT2_2H_1.clean.fq.gz: OK
./clean/WT_4H_1.clean.fq.gz: OK
./clean/WT2_12H_1.clean.fq.gz: OK
./clean/shP2_2_2_1.clean.fq.gz: OK
./clean/sh4A_0_2.clean.fq.gz: OK
./clean/sh4A_2_8_1.clean.fq.gz: OK
./clean/WT_2H_1.clean.fq.gz: OK
./clean/shP2_2_N_2.clean.fq.gz: OK
./clean/WT_12H_2.clean.fq.gz: OK
./clean/WT2_12H_2.clean.fq.gz: OK
./clean/WT_N_2.clean.fq.gz: OK
./clean/shP2_2_2_2.clean.fq.gz: OK
./clean/WT_2H_2.clean.fq.gz: OK
./clean/shKA_12_1.clean.fq.gz: OK
./clean/sh4A_2_2_1.clean.fq.gz: OK
./clean/shP2_N_1.clean.fq.gz: OK
./clean/shKA_8_1.clean.fq.gz: OK
./clean/shP2_2_4_1.clean.fq.gz: OK
./clean/WT_4H_2.clean.fq.gz: OK
./clean/shP2_8_1.clean.fq.gz: OK
./clean/WT2_8H_1.clean.fq.gz: OK
./clean/shP2_2_8_1.clean.fq.gz: OK
./clean/WT2_4H_1.clean.fq.gz: OK
./clean/WT2_2H_2.clean.fq.gz: OK
./clean/sP2_2_12_2.clean.fq.gz: OK
./clean/shKA_8_2.clean.fq.gz: OK
./clean/shP2_12_1.clean.fq.gz: OK
./clean/WT_N_1.clean.fq.gz: OK
./clean/WT2_N_2.clean.fq.gz: OK
./clean/shP2_8_2.clean.fq.gz: OK
./clean/shP2_12_2.clean.fq.gz: OK
./clean/shKA_2_2.clean.fq.gz: OK
./clean/sh4A_2_4_2.clean.fq.gz: OK
./clean/WT_8H_1.clean.fq.gz: OK
./clean/shP2_2_1.clean.fq.gz: OK
./clean/WT_8H_2.clean.fq.gz: OK
./clean/WT2_N_1.clean.fq.gz: OK
md5sum: WARNING: 1 line is improperly formatted

对有问题的数据重新拷贝。

2. 建立相应目录

# 新建对应的目录
mkdir raw_data clean_data ballgown bam bam_sort sam fastqc_report GSEA MD5_txt  scripts_log

3.在Linux服务器中对RNA_seq数据进行处理

vim新建RNA_seq_script将数据质控、比对、格式转换、排序、拼接和定量综合在一起。

#!/bin/bash
# 上面一行宣告这个script的语法使用bash语法,当程序被执行时,能够载入bash的相关环境配置文件。
# Program
#     This program is used for RNA-seq data analysis.
# History
#     2021/03/04       zexing            First release
# 设置变量${dir}为常用目录
dir=/f/xudonglab/zexing/projects/sunxiaoyu/RNA_seq/2021_03_04

# 对数据进行质控
fastqc -t 16 -o ${dir}/fastqc_report/ ${dir}/clean_data/*.fq.gz

# 利用for循环进行后续操作
for i in  sh4A_0_1 sh4A_12_1 sh4A_12_2 sh4A_2_2 sh4A_4_2 sh4A_8_2 sh4A_N sh4A_N_2_1 shKA_12 shKA_2 shKA_4 shKA_8 shP2_12 shP2_2 shP2_2_2 shP2_2_4 shP2_2_8 shP2_2_N shP2_4 shP2_8 shP2_N shP2_2_12 WT2_12H WT2_2H WT2_4H WT2_8H WT2_N WT_12H WT_2H WT_4H WT_8H WT_N
do
# 对数据进行比对
hisat2 -t -p 16 -x /f/xudonglab/zexing/reference/UCSC_hg19/hisat2_index/hisat2_index_hg19 \
-1 ${dir}/clean_data/${i}_1.clean.fq.gz \
-2 ${dir}/clean_data/${i}_2.clean.fq.gz \
-S ${dir}/sam/${i}.sam

# 对数据进行格式转换
samtools view -@ 16 -S ${dir}/sam/${i}.sam -1b -o ${dir}/bam/${i}.bam

# 对数据进行排序
samtools sort -@ 16 -l 5 -o ${dir}/bam_sort/${i}.bam.sort ${dir}/bam/${i}.bam

# 对数据进行拼接、定量
mkdir ${dir}/ballgown/"$i"
stringtie ${dir}/bam_sort/"$i".bam.sort -o ${dir}/ballgown/"$i"/"$i".gtf \
-p 16 -G /f/xudonglab/zexing/reference/UCSC_hg19/hg19_genes.gtf -e -B \
-A ${dir}/ballgown/"$i"/"$i".gene.tab
done

4. 使用prepDE.py脚本提取read_counts数值

  • 进入ballgown文件夹,将prepDE.py脚本拷贝至当前文件夹
cp /f/xudonglab/zexing/software/prepDE.py ./
  • 退出当前conda环境
conda deactivate
  • 使用python命令直接运行脚本
python prepDE.py

运行结果中"gene_count_matrix.csv"即是DESeq2的输入文件。

二、作图分析

1. 对RNA_seq_2021_03_04绘制热图

# heatmap ----------------------------------------------------------------------
#heatmap绘制时,需要使用gene_symbol和FPKM值
#关于FPKM值的说明
#在绘制heatmap热图时,需要使用差异基因所对应的FPKM值,该值的获取有几个办法:
#利用Stringtie的-A参数直接获得
#利用DESeq2的-FPKM参数由count转化获得
#利用ballgown包进行转化获得
#本次采用StringTie的-A参数直接获得

#关于gene_symbol的说明
#对于绘制heatmap图的gene,使用具有差异性的基因进行绘图
#利用之前DESeq2分析得到的abs(log2FoldChange)>=1的基因来做图
#需要根据"significant_different_genes"来从包含FPKM值的文件中将其提取出来,使用到了match()函数

#绘图前的准备工作

#对FPKM数据进行整理
#清空环境变量
rm(list=ls())
#获取当前工作目录
getwd()

##将StringTie分析得到的含有FPKM数据的TAB文件导入当前工作环境中

#设置工作目录
setwd("G:/sunxiaoyu/RNA-seq/2021_03_04/gene_tab/")

Scr_1_0H.gene.tab <- read.table("G:/sunxiaoyu/RNA-seq/2021_03_04/gene_tab/WT_N.gene.tab", header = TRUE, sep = "\t" , quote = "\"")
Scr_1_2H.gene.tab <- read.table("G:/sunxiaoyu/RNA-seq/2021_03_04/gene_tab/WT_2H.gene.tab", header = TRUE, sep = "\t" , quote = "\"")
Scr_1_4H.gene.tab <- read.table("G:/sunxiaoyu/RNA-seq/2021_03_04/gene_tab/WT_4H.gene.tab", header = TRUE, sep = "\t" , quote = "\"")
Scr_1_8H.gene.tab <- read.table("G:/sunxiaoyu/RNA-seq/2021_03_04/gene_tab/WT_8H.gene.tab", header = TRUE, sep = "\t" , quote = "\"")
Scr_1_12H.gene.tab <- read.table("G:/sunxiaoyu/RNA-seq/2021_03_04/gene_tab/WT_12H.gene.tab", header = TRUE, sep = "\t" , quote = "\"")

Scr_2_0H.gene.tab <- read.table("G:/sunxiaoyu/RNA-seq/2021_03_04/gene_tab/WT2_N.gene.tab", header = TRUE, sep = "\t" , quote = "\"")
Scr_2_2H.gene.tab <- read.table("G:/sunxiaoyu/RNA-seq/2021_03_04/gene_tab/WT2_2H.gene.tab", header = TRUE, sep = "\t" , quote = "\"")
Scr_2_4H.gene.tab <- read.table("G:/sunxiaoyu/RNA-seq/2021_03_04/gene_tab/WT2_4H.gene.tab", header = TRUE, sep = "\t" , quote = "\"")
Scr_2_8H.gene.tab <- read.table("G:/sunxiaoyu/RNA-seq/2021_03_04/gene_tab/WT2_8H.gene.tab", header = TRUE, sep = "\t" , quote = "\"")
Scr_2_12H.gene.tab <- read.table("G:/sunxiaoyu/RNA-seq/2021_03_04/gene_tab/WT2_12H.gene.tab", header = TRUE, sep = "\t" , quote = "\"")

shPRMT2_1_0H.gene.tab <- read.table("G:/sunxiaoyu/RNA-seq/2021_03_04/gene_tab/shP2_N.gene.tab", header = TRUE, sep = "\t" , quote = "\"")
shPRMT2_1_2H.gene.tab <- read.table("G:/sunxiaoyu/RNA-seq/2021_03_04/gene_tab/shP2_2.gene.tab", header = TRUE, sep = "\t" , quote = "\"")
shPRMT2_1_4H.gene.tab <- read.table("G:/sunxiaoyu/RNA-seq/2021_03_04/gene_tab/shP2_4.gene.tab", header = TRUE, sep = "\t" , quote = "\"")
shPRMT2_1_8H.gene.tab <- read.table("G:/sunxiaoyu/RNA-seq/2021_03_04/gene_tab/shP2_8.gene.tab", header = TRUE, sep = "\t" , quote = "\"")
shPRMT2_1_12H.gene.tab <- read.table("G:/sunxiaoyu/RNA-seq/2021_03_04/gene_tab/shP2_12.gene.tab", header = TRUE, sep = "\t" , quote = "\"")

shPRMT2_2_0H.gene.tab <- read.table("G:/sunxiaoyu/RNA-seq/2021_03_04/gene_tab/shP2_2_N.gene.tab", header = TRUE, sep = "\t" , quote = "\"")
shPRMT2_2_2H.gene.tab <- read.table("G:/sunxiaoyu/RNA-seq/2021_03_04/gene_tab/shP2_2_2.gene.tab", header = TRUE, sep = "\t" , quote = "\"")
shPRMT2_2_4H.gene.tab <- read.table("G:/sunxiaoyu/RNA-seq/2021_03_04/gene_tab/shP2_2_4.gene.tab", header = TRUE, sep = "\t" , quote = "\"")
shPRMT2_2_8H.gene.tab <- read.table("G:/sunxiaoyu/RNA-seq/2021_03_04/gene_tab/shP2_2_8.gene.tab", header = TRUE, sep = "\t" , quote = "\"")
shPRMT2_2_12H.gene.tab <- read.table("G:/sunxiaoyu/RNA-seq/2021_03_04/gene_tab/shP2_2_12.gene.tab", header = TRUE, sep = "\t" , quote = "\"")

shKDM4A_1_0H.gene.tab <- read.table("G:/sunxiaoyu/RNA-seq/2021_03_04/gene_tab/sh4A_N.gene.tab", header = TRUE, sep = "\t" , quote = "\"")
shKDM4A_1_2H.gene.tab <- read.table("G:/sunxiaoyu/RNA-seq/2021_03_04/gene_tab/shKA_2.gene.tab", header = TRUE, sep = "\t" , quote = "\"")
shKDM4A_1_4H.gene.tab <- read.table("G:/sunxiaoyu/RNA-seq/2021_03_04/gene_tab/shKA_4.gene.tab", header = TRUE, sep = "\t" , quote = "\"")
shKDM4A_1_8H.gene.tab <- read.table("G:/sunxiaoyu/RNA-seq/2021_03_04/gene_tab/shKA_8.gene.tab", header = TRUE, sep = "\t" , quote = "\"")
shKDM4A_1_12H.gene.tab <- read.table("G:/sunxiaoyu/RNA-seq/2021_03_04/gene_tab/shKA_12.gene.tab", header = TRUE, sep = "\t" , quote = "\"")

shKDM4A_2_0H.gene.tab <- read.table("G:/sunxiaoyu/RNA-seq/2021_03_04/gene_tab/sh4A_N_2_1.gene.tab", header = TRUE, sep = "\t" , quote = "\"")
shKDM4A_2_2H.gene.tab <- read.table("G:/sunxiaoyu/RNA-seq/2021_03_04/gene_tab/sh4A_2_2.gene.tab", header = TRUE, sep = "\t" , quote = "\"")
shKDM4A_2_4H.gene.tab <- read.table("G:/sunxiaoyu/RNA-seq/2021_03_04/gene_tab/sh4A_4_2.gene.tab", header = TRUE, sep = "\t" , quote = "\"")
shKDM4A_2_8H.gene.tab <- read.table("G:/sunxiaoyu/RNA-seq/2021_03_04/gene_tab/sh4A_8_2.gene.tab", header = TRUE, sep = "\t" , quote = "\"")
shKDM4A_2_12H.gene.tab <- read.table("G:/sunxiaoyu/RNA-seq/2021_03_04/gene_tab/sh4A_12_2.gene.tab", header = TRUE, sep = "\t" , quote = "\"")


##提取指定列的内容
###对数据中的Gene.ID和FPKM两列数据进行提取
Scr_1_0H.FPKM <- Scr_1_0H.gene.tab[,c(1,8)]
Scr_1_2H.FPKM <- Scr_1_2H.gene.tab[,c(1,8)]
Scr_1_4H.FPKM <- Scr_1_4H.gene.tab[,c(1,8)]
Scr_1_8H.FPKM <- Scr_1_8H.gene.tab[,c(1,8)]
Scr_1_12H.FPKM <- Scr_1_12H.gene.tab[,c(1,8)]

Scr_2_0H.FPKM <- Scr_2_0H.gene.tab[,c(1,8)]
Scr_2_2H.FPKM <- Scr_2_2H.gene.tab[,c(1,8)]
Scr_2_4H.FPKM <- Scr_2_4H.gene.tab[,c(1,8)]
Scr_2_8H.FPKM <- Scr_2_8H.gene.tab[,c(1,8)]
Scr_2_12H.FPKM <- Scr_2_12H.gene.tab[,c(1,8)]

shPRMT2_1_0H.FPKM <- shPRMT2_1_0H.gene.tab[,c(1,8)]
shPRMT2_1_2H.FPKM <- shPRMT2_1_2H.gene.tab[,c(1,8)]
shPRMT2_1_4H.FPKM <- shPRMT2_1_4H.gene.tab[,c(1,8)]
shPRMT2_1_8H.FPKM <- shPRMT2_1_8H.gene.tab[,c(1,8)]
shPRMT2_1_12H.FPKM <- shPRMT2_1_12H.gene.tab[,c(1,8)]

shPRMT2_2_0H.FPKM <- shPRMT2_2_0H.gene.tab[,c(1,8)]
shPRMT2_2_2H.FPKM <- shPRMT2_2_2H.gene.tab[,c(1,8)]
shPRMT2_2_4H.FPKM <- shPRMT2_2_4H.gene.tab[,c(1,8)]
shPRMT2_2_8H.FPKM <- shPRMT2_2_8H.gene.tab[,c(1,8)]
shPRMT2_2_12H.FPKM <- shPRMT2_2_12H.gene.tab[,c(1,8)]

shKDM4A_1_0H.FPKM <- shKDM4A_1_0H.gene.tab[,c(1,8)]
shKDM4A_1_2H.FPKM <- shKDM4A_1_2H.gene.tab[,c(1,8)]
shKDM4A_1_4H.FPKM <- shKDM4A_1_4H.gene.tab[,c(1,8)]
shKDM4A_1_8H.FPKM <- shKDM4A_1_8H.gene.tab[,c(1,8)]
shKDM4A_1_12H.FPKM <- shKDM4A_1_12H.gene.tab[,c(1,8)]

shKDM4A_2_0H.FPKM <- shKDM4A_2_0H.gene.tab[,c(1,8)]
shKDM4A_2_2H.FPKM <- shKDM4A_2_2H.gene.tab[,c(1,8)]
shKDM4A_2_4H.FPKM <- shKDM4A_2_4H.gene.tab[,c(1,8)]
shKDM4A_2_8H.FPKM <- shKDM4A_2_8H.gene.tab[,c(1,8)]
shKDM4A_2_12H.FPKM <- shKDM4A_2_12H.gene.tab[,c(1,8)]


###重命名指定列
###重命名全部的列是name(data) <- c("NO","name")
###重命名单个列是colnames(data)[2] <- 'newname'
colnames(Scr_1_0H.FPKM)[2] <-"Scr_1_0H"
colnames(Scr_1_2H.FPKM)[2] <-"Scr_1_2H"
colnames(Scr_1_4H.FPKM)[2] <-"Scr_1_4H"
colnames(Scr_1_8H.FPKM)[2] <-"Scr_1_8H"
colnames(Scr_1_12H.FPKM)[2] <-"Scr_1_12H"

colnames(Scr_2_0H.FPKM)[2] <-"Scr_2_0H"
colnames(Scr_2_2H.FPKM)[2] <-"Scr_2_2H"
colnames(Scr_2_4H.FPKM)[2] <-"Scr_2_4H"
colnames(Scr_2_8H.FPKM)[2] <-"Scr_2_8H"
colnames(Scr_2_12H.FPKM)[2] <-"Scr_2_12H"

colnames(shPRMT2_1_0H.FPKM)[2] <-"shPRMT2_1_0H"
colnames(shPRMT2_1_2H.FPKM)[2] <-"shPRMT2_1_2H"
colnames(shPRMT2_1_4H.FPKM)[2] <-"shPRMT2_1_4H"
colnames(shPRMT2_1_8H.FPKM)[2] <-"shPRMT2_1_8H"
colnames(shPRMT2_1_12H.FPKM)[2] <-"shPRMT2_1_12H"

colnames(shPRMT2_2_0H.FPKM)[2] <-"shPRMT2_2_0H"
colnames(shPRMT2_2_2H.FPKM)[2] <-"shPRMT2_2_2H"
colnames(shPRMT2_2_4H.FPKM)[2] <-"shPRMT2_2_4H"
colnames(shPRMT2_2_8H.FPKM)[2] <-"shPRMT2_2_8H"
colnames(shPRMT2_2_12H.FPKM)[2] <-"shPRMT2_2_12H"

colnames(shKDM4A_1_0H.FPKM)[2] <-"shKDM4A_1_0H"
colnames(shKDM4A_1_2H.FPKM)[2] <-"shKDM4A_1_2H"
colnames(shKDM4A_1_4H.FPKM)[2] <-"shKDM4A_1_4H"
colnames(shKDM4A_1_8H.FPKM)[2] <-"shKDM4A_1_8H"
colnames(shKDM4A_1_12H.FPKM)[2] <-"shKDM4A_1_12H"

colnames(shKDM4A_2_0H.FPKM)[2] <-"shKDM4A_2_0H"
colnames(shKDM4A_2_2H.FPKM)[2] <-"shKDM4A_2_2H"
colnames(shKDM4A_2_4H.FPKM)[2] <-"shKDM4A_2_4H"
colnames(shKDM4A_2_8H.FPKM)[2] <-"shKDM4A_2_8H"
colnames(shKDM4A_2_12H.FPKM)[2] <-"shKDM4A_2_12H"

##将得到的各样本的FPKM值数据保存入heatmap目录
write.table(Scr_1_0H.FPKM, file = "G:/sunxiaoyu/RNA-seq/2021_03_04/Rtreatment/heatmap/Scr_1_0H.FPKM", row.names = FALSE, quote = FALSE, sep = "\t")
write.table(Scr_1_2H.FPKM, file = "G:/sunxiaoyu/RNA-seq/2021_03_04/Rtreatment/heatmap/Scr_1_2H.FPKM", row.names = FALSE, quote = FALSE, sep = "\t")
write.table(Scr_1_4H.FPKM, file = "G:/sunxiaoyu/RNA-seq/2021_03_04/Rtreatment/heatmap/Scr_1_4H.FPKM", row.names = FALSE, quote = FALSE, sep = "\t")
write.table(Scr_1_8H.FPKM, file = "G:/sunxiaoyu/RNA-seq/2021_03_04/Rtreatment/heatmap/Scr_1_8H.FPKM", row.names = FALSE, quote = FALSE, sep = "\t")
write.table(Scr_1_12H.FPKM, file = "G:/sunxiaoyu/RNA-seq/2021_03_04/Rtreatment/heatmap/Scr_1_12H.FPKM", row.names = FALSE, quote = FALSE, sep = "\t")

write.table(Scr_2_0H.FPKM, file = "G:/sunxiaoyu/RNA-seq/2021_03_04/Rtreatment/heatmap/Scr_2_0H.FPKM", row.names = FALSE, quote = FALSE, sep = "\t")
write.table(Scr_2_2H.FPKM, file = "G:/sunxiaoyu/RNA-seq/2021_03_04/Rtreatment/heatmap/Scr_2_2H.FPKM", row.names = FALSE, quote = FALSE, sep = "\t")
write.table(Scr_2_4H.FPKM, file = "G:/sunxiaoyu/RNA-seq/2021_03_04/Rtreatment/heatmap/Scr_2_4H.FPKM", row.names = FALSE, quote = FALSE, sep = "\t")
write.table(Scr_2_8H.FPKM, file = "G:/sunxiaoyu/RNA-seq/2021_03_04/Rtreatment/heatmap/Scr_2_8H.FPKM", row.names = FALSE, quote = FALSE, sep = "\t")
write.table(Scr_2_12H.FPKM, file = "G:/sunxiaoyu/RNA-seq/2021_03_04/Rtreatment/heatmap/Scr_2_12H.FPKM", row.names = FALSE, quote = FALSE, sep = "\t")

write.table(shPRMT2_1_0H.FPKM, file = "G:/sunxiaoyu/RNA-seq/2021_03_04/Rtreatment/heatmap/shPRMT2_1_0H.FPKM", row.names = FALSE, quote = FALSE, sep = "\t")
write.table(shPRMT2_1_2H.FPKM, file = "G:/sunxiaoyu/RNA-seq/2021_03_04/Rtreatment/heatmap/shPRMT2_1_2H.FPKM", row.names = FALSE, quote = FALSE, sep = "\t")
write.table(shPRMT2_1_4H.FPKM, file = "G:/sunxiaoyu/RNA-seq/2021_03_04/Rtreatment/heatmap/shPRMT2_1_4H.FPKM", row.names = FALSE, quote = FALSE, sep = "\t")
write.table(shPRMT2_1_8H.FPKM, file = "G:/sunxiaoyu/RNA-seq/2021_03_04/Rtreatment/heatmap/shPRMT2_1_8H.FPKM", row.names = FALSE, quote = FALSE, sep = "\t")
write.table(shPRMT2_1_12H.FPKM, file = "G:/sunxiaoyu/RNA-seq/2021_03_04/Rtreatment/heatmap/shPRMT2_1_12H.FPKM", row.names = FALSE, quote = FALSE, sep = "\t")

write.table(shPRMT2_2_0H.FPKM, file = "G:/sunxiaoyu/RNA-seq/2021_03_04/Rtreatment/heatmap/shPRMT2_2_0H.FPKM", row.names = FALSE, quote = FALSE, sep = "\t")
write.table(shPRMT2_2_2H.FPKM, file = "G:/sunxiaoyu/RNA-seq/2021_03_04/Rtreatment/heatmap/shPRMT2_2_2H.FPKM", row.names = FALSE, quote = FALSE, sep = "\t")
write.table(shPRMT2_2_4H.FPKM, file = "G:/sunxiaoyu/RNA-seq/2021_03_04/Rtreatment/heatmap/shPRMT2_2_4H.FPKM", row.names = FALSE, quote = FALSE, sep = "\t")
write.table(shPRMT2_2_8H.FPKM, file = "G:/sunxiaoyu/RNA-seq/2021_03_04/Rtreatment/heatmap/shPRMT2_2_8H.FPKM", row.names = FALSE, quote = FALSE, sep = "\t")
write.table(shPRMT2_2_12H.FPKM, file = "G:/sunxiaoyu/RNA-seq/2021_03_04/Rtreatment/heatmap/shPRMT2_2_12H.FPKM", row.names = FALSE, quote = FALSE, sep = "\t")

write.table(shKDM4A_1_0H.FPKM, file = "G:/sunxiaoyu/RNA-seq/2021_03_04/Rtreatment/heatmap/shKDM4A_1_0H.FPKM", row.names = FALSE, quote = FALSE, sep = "\t")
write.table(shKDM4A_1_2H.FPKM, file = "G:/sunxiaoyu/RNA-seq/2021_03_04/Rtreatment/heatmap/shKDM4A_1_2H.FPKM", row.names = FALSE, quote = FALSE, sep = "\t")
write.table(shKDM4A_1_4H.FPKM, file = "G:/sunxiaoyu/RNA-seq/2021_03_04/Rtreatment/heatmap/shKDM4A_1_4H.FPKM", row.names = FALSE, quote = FALSE, sep = "\t")
write.table(shKDM4A_1_8H.FPKM, file = "G:/sunxiaoyu/RNA-seq/2021_03_04/Rtreatment/heatmap/shKDM4A_1_8H.FPKM", row.names = FALSE, quote = FALSE, sep = "\t")
write.table(shKDM4A_1_12H.FPKM, file = "G:/sunxiaoyu/RNA-seq/2021_03_04/Rtreatment/heatmap/shKDM4A_1_12H.FPKM", row.names = FALSE, quote = FALSE, sep = "\t")

write.table(shKDM4A_2_0H.FPKM, file = "G:/sunxiaoyu/RNA-seq/2021_03_04/Rtreatment/heatmap/shKDM4A_2_0H.FPKM", row.names = FALSE, quote = FALSE, sep = "\t")
write.table(shKDM4A_2_2H.FPKM, file = "G:/sunxiaoyu/RNA-seq/2021_03_04/Rtreatment/heatmap/shKDM4A_2_2H.FPKM", row.names = FALSE, quote = FALSE, sep = "\t")
write.table(shKDM4A_2_4H.FPKM, file = "G:/sunxiaoyu/RNA-seq/2021_03_04/Rtreatment/heatmap/shKDM4A_2_4H.FPKM", row.names = FALSE, quote = FALSE, sep = "\t")
write.table(shKDM4A_2_8H.FPKM, file = "G:/sunxiaoyu/RNA-seq/2021_03_04/Rtreatment/heatmap/shKDM4A_2_8H.FPKM", row.names = FALSE, quote = FALSE, sep = "\t")
write.table(shKDM4A_2_12H.FPKM, file = "G:/sunxiaoyu/RNA-seq/2021_03_04/Rtreatment/heatmap/shKDM4A_2_12H.FPKM", row.names = FALSE, quote = FALSE, sep = "\t")

# 对所有样品的FPKM进行合并

#使用intersect函数选取各个样品中的共有gene_id

##intersect函数处理的是两个向量的交集,需要先将gene_id转换成字符向量
Scr_1_0H_gene <- Scr_1_0H.FPKM$Gene.ID
Scr_1_2H_gene <- Scr_1_2H.FPKM$Gene.ID
Scr_1_4H_gene <- Scr_1_4H.FPKM$Gene.ID
Scr_1_8H_gene <- Scr_1_8H.FPKM$Gene.ID
Scr_1_12H_gene <- Scr_1_12H.FPKM$Gene.ID

Scr_2_0H_gene <- Scr_2_0H.FPKM$Gene.ID
Scr_2_2H_gene <- Scr_2_2H.FPKM$Gene.ID
Scr_2_4H_gene <- Scr_2_4H.FPKM$Gene.ID
Scr_2_8H_gene <- Scr_2_8H.FPKM$Gene.ID
Scr_2_12H_gene <- Scr_2_12H.FPKM$Gene.ID

shPRMT2_1_0H_gene <- shPRMT2_1_0H.FPKM$Gene.ID
shPRMT2_1_2H_gene <- shPRMT2_1_2H.FPKM$Gene.ID
shPRMT2_1_4H_gene <- shPRMT2_1_4H.FPKM$Gene.ID
shPRMT2_1_8H_gene <- shPRMT2_1_8H.FPKM$Gene.ID
shPRMT2_1_12H_gene <- shPRMT2_1_12H.FPKM$Gene.ID

shPRMT2_2_0H_gene <- shPRMT2_2_0H.FPKM$Gene.ID
shPRMT2_2_2H_gene <- shPRMT2_2_2H.FPKM$Gene.ID
shPRMT2_2_4H_gene <- shPRMT2_2_4H.FPKM$Gene.ID
shPRMT2_2_8H_gene <- shPRMT2_2_8H.FPKM$Gene.ID
shPRMT2_2_12H_gene <- shPRMT2_2_12H.FPKM$Gene.ID

shKDM4A_1_0H_gene <- shKDM4A_1_0H.FPKM$Gene.ID
shKDM4A_1_2H_gene <- shKDM4A_1_2H.FPKM$Gene.ID
shKDM4A_1_4H_gene <- shKDM4A_1_4H.FPKM$Gene.ID
shKDM4A_1_8H_gene <- shKDM4A_1_8H.FPKM$Gene.ID
shKDM4A_1_12H_gene <- shKDM4A_1_12H.FPKM$Gene.ID

shKDM4A_2_0H_gene <- shKDM4A_2_0H.FPKM$Gene.ID
shKDM4A_2_2H_gene <- shKDM4A_2_2H.FPKM$Gene.ID
shKDM4A_2_4H_gene <- shKDM4A_2_4H.FPKM$Gene.ID
shKDM4A_2_8H_gene <- shKDM4A_2_8H.FPKM$Gene.ID
shKDM4A_2_12H_gene <- shKDM4A_2_12H.FPKM$Gene.ID

##使用intersect函数选取各个样品中的共有gene_id
Scr_1_common_gene_1 <- intersect(Scr_1_0H_gene, Scr_1_2H_gene)
Scr_1_common_gene_2 <- intersect(Scr_1_common_gene_1, Scr_1_4H_gene)
Scr_1_common_gene_3 <- intersect(Scr_1_common_gene_2, Scr_1_8H_gene)
Scr_1_common_gene_4 <- intersect(Scr_1_common_gene_3, Scr_1_12H_gene)

Scr_2_common_gene_1 <- intersect(Scr_2_0H_gene, Scr_2_2H_gene)
Scr_2_common_gene_2 <- intersect(Scr_2_common_gene_1, Scr_2_4H_gene)
Scr_2_common_gene_3 <- intersect(Scr_2_common_gene_2, Scr_2_8H_gene)
Scr_2_common_gene_4 <- intersect(Scr_2_common_gene_3, Scr_2_12H_gene)

shPRMT2_1_common_gene_1 <- intersect(shPRMT2_1_0H_gene, shPRMT2_1_2H_gene)
shPRMT2_1_common_gene_2 <- intersect(shPRMT2_1_common_gene_1, shPRMT2_1_4H_gene)
shPRMT2_1_common_gene_3 <- intersect(shPRMT2_1_common_gene_2, shPRMT2_1_8H_gene)
shPRMT2_1_common_gene_4 <- intersect(shPRMT2_1_common_gene_3, shPRMT2_1_12H_gene)

shPRMT2_2_common_gene_1 <- intersect(shPRMT2_2_0H_gene, shPRMT2_2_2H_gene)
shPRMT2_2_common_gene_2 <- intersect(shPRMT2_2_common_gene_1, shPRMT2_2_4H_gene)
shPRMT2_2_common_gene_3 <- intersect(shPRMT2_2_common_gene_2, shPRMT2_2_8H_gene)
shPRMT2_2_common_gene_4 <- intersect(shPRMT2_2_common_gene_3, shPRMT2_2_12H_gene)

shKDM4A_1_common_gene_1 <- intersect(shKDM4A_1_0H_gene, shKDM4A_1_2H_gene)
shKDM4A_1_common_gene_2 <- intersect(shKDM4A_1_common_gene_1, shKDM4A_1_4H_gene)
shKDM4A_1_common_gene_3 <- intersect(shKDM4A_1_common_gene_2, shKDM4A_1_8H_gene)
shKDM4A_1_common_gene_4 <- intersect(shKDM4A_1_common_gene_3, shKDM4A_1_12H_gene)

shKDM4A_2_common_gene_1 <- intersect(shKDM4A_2_0H_gene, shKDM4A_2_2H_gene)
shKDM4A_2_common_gene_2 <- intersect(shKDM4A_2_common_gene_1, shKDM4A_2_4H_gene)
shKDM4A_2_common_gene_3 <- intersect(shKDM4A_2_common_gene_2, shKDM4A_2_8H_gene)
shKDM4A_2_common_gene_4 <- intersect(shKDM4A_2_common_gene_3, shKDM4A_2_12H_gene)

common_gene_1 <- intersect(Scr_1_common_gene_4, Scr_2_common_gene_4)
common_gene_2 <- intersect(common_gene_1, shPRMT2_1_common_gene_4)
common_gene_3 <- intersect(common_gene_2, shPRMT2_2_common_gene_4)
common_gene_4 <- intersect(common_gene_3, shKDM4A_1_common_gene_4)
common_gene_5 <- intersect(common_gene_1, shKDM4A_2_common_gene_4)

#利用match函数对共有基因List信息(小文件)和FPKM值信息(大文件)进行提取
##利用match函数提取各样品中差异基因所在的行数并重新命名为row.NO文件
##match(x,y)函数输出结果:x向量在y向量中所处的位置,x向量元素不存在y向量中的返回NA
##match(x, table$i)函数输出结果:返回x向量在table中$i列中所处的位置
##利用common_gene对各样品进行处理
Scr_1_0H_common_gene_row.NO <- c(match(common_gene_5, Scr_1_0H.FPKM$Gene.ID))
Scr_1_2H_common_gene_row.NO <- c(match(common_gene_5, Scr_1_2H.FPKM$Gene.ID))
Scr_1_4H_common_gene_row.NO <- c(match(common_gene_5, Scr_1_4H.FPKM$Gene.ID))
Scr_1_8H_common_gene_row.NO <- c(match(common_gene_5, Scr_1_8H.FPKM$Gene.ID))
Scr_1_12H_common_gene_row.NO <- c(match(common_gene_5, Scr_1_12H.FPKM$Gene.ID))

Scr_2_0H_common_gene_row.NO <- c(match(common_gene_5, Scr_2_0H.FPKM$Gene.ID))
Scr_2_2H_common_gene_row.NO <- c(match(common_gene_5, Scr_2_2H.FPKM$Gene.ID))
Scr_2_4H_common_gene_row.NO <- c(match(common_gene_5, Scr_2_4H.FPKM$Gene.ID))
Scr_2_8H_common_gene_row.NO <- c(match(common_gene_5, Scr_2_8H.FPKM$Gene.ID))
Scr_2_12H_common_gene_row.NO <- c(match(common_gene_5, Scr_2_12H.FPKM$Gene.ID))

shPRMT2_1_0H_common_gene_row.NO <- c(match(common_gene_5, shPRMT2_1_0H.FPKM$Gene.ID))
shPRMT2_1_2H_common_gene_row.NO <- c(match(common_gene_5, shPRMT2_1_2H.FPKM$Gene.ID))
shPRMT2_1_4H_common_gene_row.NO <- c(match(common_gene_5, shPRMT2_1_4H.FPKM$Gene.ID))
shPRMT2_1_8H_common_gene_row.NO <- c(match(common_gene_5, shPRMT2_1_8H.FPKM$Gene.ID))
shPRMT2_1_12H_common_gene_row.NO <- c(match(common_gene_5, shPRMT2_1_12H.FPKM$Gene.ID))

shPRMT2_2_0H_common_gene_row.NO <- c(match(common_gene_5, shPRMT2_2_0H.FPKM$Gene.ID))
shPRMT2_2_2H_common_gene_row.NO <- c(match(common_gene_5, shPRMT2_2_2H.FPKM$Gene.ID))
shPRMT2_2_4H_common_gene_row.NO <- c(match(common_gene_5, shPRMT2_2_4H.FPKM$Gene.ID))
shPRMT2_2_8H_common_gene_row.NO <- c(match(common_gene_5, shPRMT2_2_8H.FPKM$Gene.ID))
shPRMT2_2_12H_common_gene_row.NO <- c(match(common_gene_5, shPRMT2_2_12H.FPKM$Gene.ID))

shKDM4A_1_0H_common_gene_row.NO <- c(match(common_gene_5, shKDM4A_1_0H.FPKM$Gene.ID))
shKDM4A_1_2H_common_gene_row.NO <- c(match(common_gene_5, shKDM4A_1_2H.FPKM$Gene.ID))
shKDM4A_1_4H_common_gene_row.NO <- c(match(common_gene_5, shKDM4A_1_4H.FPKM$Gene.ID))
shKDM4A_1_8H_common_gene_row.NO <- c(match(common_gene_5, shKDM4A_1_8H.FPKM$Gene.ID))
shKDM4A_1_12H_common_gene_row.NO <- c(match(common_gene_5, shKDM4A_1_12H.FPKM$Gene.ID))

shKDM4A_2_0H_common_gene_row.NO <- c(match(common_gene_5, shKDM4A_2_0H.FPKM$Gene.ID))
shKDM4A_2_2H_common_gene_row.NO <- c(match(common_gene_5, shKDM4A_2_2H.FPKM$Gene.ID))
shKDM4A_2_4H_common_gene_row.NO <- c(match(common_gene_5, shKDM4A_2_4H.FPKM$Gene.ID))
shKDM4A_2_8H_common_gene_row.NO <- c(match(common_gene_5, shKDM4A_2_8H.FPKM$Gene.ID))
shKDM4A_2_12H_common_gene_row.NO <- c(match(common_gene_5, shKDM4A_2_12H.FPKM$Gene.ID))

#根据以上行数,对各样品的FPKM值进行提取
##利用common_gene对各样品的FPKM值进行提取

Scr_1_0H_common_gene_FPKM <- Scr_1_0H.FPKM[Scr_1_0H_common_gene_row.NO ,]
Scr_1_2H_common_gene_FPKM <- Scr_1_2H.FPKM[Scr_1_2H_common_gene_row.NO ,]
Scr_1_4H_common_gene_FPKM <- Scr_1_4H.FPKM[Scr_1_4H_common_gene_row.NO ,]
Scr_1_8H_common_gene_FPKM <- Scr_1_8H.FPKM[Scr_1_8H_common_gene_row.NO ,]
Scr_1_12H_common_gene_FPKM <- Scr_1_12H.FPKM[Scr_1_12H_common_gene_row.NO ,]

Scr_2_0H_common_gene_FPKM <- Scr_2_0H.FPKM[Scr_2_0H_common_gene_row.NO ,]
Scr_2_2H_common_gene_FPKM <- Scr_2_2H.FPKM[Scr_2_2H_common_gene_row.NO ,]
Scr_2_4H_common_gene_FPKM <- Scr_2_4H.FPKM[Scr_2_4H_common_gene_row.NO ,]
Scr_2_8H_common_gene_FPKM <- Scr_2_8H.FPKM[Scr_2_8H_common_gene_row.NO ,]
Scr_2_12H_common_gene_FPKM <- Scr_2_12H.FPKM[Scr_2_12H_common_gene_row.NO ,]


shPRMT2_1_0H_common_gene_FPKM <- shPRMT2_1_0H.FPKM[shPRMT2_1_0H_common_gene_row.NO ,]
shPRMT2_1_2H_common_gene_FPKM <- shPRMT2_1_2H.FPKM[shPRMT2_1_2H_common_gene_row.NO ,]
shPRMT2_1_4H_common_gene_FPKM <- shPRMT2_1_4H.FPKM[shPRMT2_1_4H_common_gene_row.NO ,]
shPRMT2_1_8H_common_gene_FPKM <- shPRMT2_1_8H.FPKM[shPRMT2_1_8H_common_gene_row.NO ,]
shPRMT2_1_12H_common_gene_FPKM <- shPRMT2_1_12H.FPKM[shPRMT2_1_12H_common_gene_row.NO ,]

shPRMT2_2_0H_common_gene_FPKM <- shPRMT2_2_0H.FPKM[shPRMT2_2_0H_common_gene_row.NO ,]
shPRMT2_2_2H_common_gene_FPKM <- shPRMT2_2_2H.FPKM[shPRMT2_2_2H_common_gene_row.NO ,]
shPRMT2_2_4H_common_gene_FPKM <- shPRMT2_2_4H.FPKM[shPRMT2_2_4H_common_gene_row.NO ,]
shPRMT2_2_8H_common_gene_FPKM <- shPRMT2_2_8H.FPKM[shPRMT2_2_8H_common_gene_row.NO ,]
shPRMT2_2_12H_common_gene_FPKM <- shPRMT2_2_12H.FPKM[shPRMT2_2_12H_common_gene_row.NO ,]

shKDM4A_1_0H_common_gene_FPKM <- shKDM4A_1_0H.FPKM[shKDM4A_1_0H_common_gene_row.NO ,]
shKDM4A_1_2H_common_gene_FPKM <- shKDM4A_1_2H.FPKM[shKDM4A_1_2H_common_gene_row.NO ,]
shKDM4A_1_4H_common_gene_FPKM <- shKDM4A_1_4H.FPKM[shKDM4A_1_4H_common_gene_row.NO ,]
shKDM4A_1_8H_common_gene_FPKM <- shKDM4A_1_8H.FPKM[shKDM4A_1_8H_common_gene_row.NO ,]
shKDM4A_1_12H_common_gene_FPKM <- shKDM4A_1_12H.FPKM[shKDM4A_1_12H_common_gene_row.NO ,]

shKDM4A_2_0H_common_gene_FPKM <- shKDM4A_2_0H.FPKM[shKDM4A_2_0H_common_gene_row.NO ,]
shKDM4A_2_2H_common_gene_FPKM <- shKDM4A_2_2H.FPKM[shKDM4A_2_2H_common_gene_row.NO ,]
shKDM4A_2_4H_common_gene_FPKM <- shKDM4A_2_4H.FPKM[shKDM4A_2_4H_common_gene_row.NO ,]
shKDM4A_2_8H_common_gene_FPKM <- shKDM4A_2_8H.FPKM[shKDM4A_2_8H_common_gene_row.NO ,]
shKDM4A_2_12H_common_gene_FPKM <- shKDM4A_2_12H.FPKM[shKDM4A_2_12H_common_gene_row.NO ,]

##利用Merge函数对各样品的FPKM值进行合并
Scr_1_common_gene_FPKM <- merge(Scr_1_0H_common_gene_FPKM, merge(merge(Scr_1_2H_common_gene_FPKM,Scr_1_4H_common_gene_FPKM, by="Gene.ID"), merge(Scr_1_8H_common_gene_FPKM,Scr_1_12H_common_gene_FPKM, by="Gene.ID"), by="Gene.ID"), by="Gene.ID")
Scr_2_common_gene_FPKM <- merge(Scr_2_0H_common_gene_FPKM, merge(merge(Scr_2_2H_common_gene_FPKM,Scr_2_4H_common_gene_FPKM, by="Gene.ID"), merge(Scr_2_8H_common_gene_FPKM,Scr_2_12H_common_gene_FPKM, by="Gene.ID"), by="Gene.ID"), by="Gene.ID")

shPRMT2_1_common_gene_FPKM <- merge(shPRMT2_1_0H_common_gene_FPKM, merge(merge(shPRMT2_1_2H_common_gene_FPKM,shPRMT2_1_4H_common_gene_FPKM, by="Gene.ID"), merge(shPRMT2_1_8H_common_gene_FPKM,shPRMT2_1_12H_common_gene_FPKM, by="Gene.ID"), by="Gene.ID"), by="Gene.ID")
shPRMT2_2_common_gene_FPKM <- merge(shPRMT2_2_0H_common_gene_FPKM, merge(merge(shPRMT2_2_2H_common_gene_FPKM,shPRMT2_2_4H_common_gene_FPKM, by="Gene.ID"), merge(shPRMT2_2_8H_common_gene_FPKM,shPRMT2_2_12H_common_gene_FPKM, by="Gene.ID"), by="Gene.ID"), by="Gene.ID")

shKDM4A_1_common_gene_FPKM <- merge(shKDM4A_1_0H_common_gene_FPKM, merge(merge(shKDM4A_1_2H_common_gene_FPKM,shKDM4A_1_4H_common_gene_FPKM, by="Gene.ID"), merge(shKDM4A_1_8H_common_gene_FPKM,shKDM4A_1_12H_common_gene_FPKM, by="Gene.ID"), by="Gene.ID"), by="Gene.ID")
shKDM4A_2_common_gene_FPKM <- merge(shKDM4A_2_0H_common_gene_FPKM, merge(merge(shKDM4A_2_2H_common_gene_FPKM,shKDM4A_2_4H_common_gene_FPKM, by="Gene.ID"), merge(shKDM4A_2_8H_common_gene_FPKM,shKDM4A_2_12H_common_gene_FPKM, by="Gene.ID"), by="Gene.ID"), by="Gene.ID")

common_gene_FPKM <- merge(merge(Scr_1_common_gene_FPKM, Scr_2_common_gene_FPKM, by="Gene.ID"), merge(merge(shPRMT2_1_common_gene_FPKM, shPRMT2_2_common_gene_FPKM, by="Gene.ID"), merge(shKDM4A_1_common_gene_FPKM, shKDM4A_2_common_gene_FPKM, by="Gene.ID"), by="Gene.ID"), by="Gene.ID")

#将gene_id作为文件的行名
rownames(common_gene_FPKM) <- common_gene_FPKM[,1]
common_gene_FPKM <- common_gene_FPKM[,-1]

#将FPKM值均为0的基因进行剔除
fpkm <- common_gene_FPKM[rowSums(common_gene_FPKM>0)>0 , ]

##将得到的各样本的FPKM值数据保存入heatmap目录
write.table(fpkm, file = "G:/sunxiaoyu/RNA-seq/2021_03_04/Rtreatment/heatmap/fpkm.txt", row.names = TRUE, quote = FALSE, sep = "\t")

write.csv(fpkm, "G:/sunxiaoyu/RNA-seq/2021_03_04/Rtreatment/heatmap/fpkm.csv", quote = FALSE, row.names = TRUE)

#pheatmap绘图
results <- read.csv("G:/sunxiaoyu/RNA-seq/2021_03_04/Rtreatment/heatmap/fpkm.csv", row.names = 1,header = T)
#加载包
library(RColorBrewer)#设置颜色用的
# BiocManager::install("pheatmap")
library(pheatmap)
#设置配色方案
cc = colorRampPalette(rev(brewer.pal(n=7, name="RdYlBu"))) #Rd=red Yl=yellow Bu=blue

#如果矩阵内容是fpkm表达量,一般取log10(fpkm+1)绘图
results=log2(results+1)

#pheatmap参数解释:
#第一个参数是需要用pheatmap画图的数据
#color: 设置颜色。如果想画得更精细一些,可以取cc(1000)
#main: 标题,会显示在最上面
#fontsize: row的字体大小
#scale: 是否归一化为正态分布,可选row,column,none。一般对row进行归一化的情况比较多,column较少。
#border_color: 是否显示边框及边框的颜色,NA不显示, red显示红色。支持简单的颜色单词
#na_col: 设置缺失值的颜色,支持简单颜色单词,一般设置为灰色就满好识别的。
#cluster_rows & cluster_cols: 设置是否对行进行聚类,这个就见仁见智,看你的实际需求了。当缺失值较多的时候是无法进行聚类的。一个解决办法是读取数据的时候不设置缺失值。
#show_rownames & show_colnames: 是否显示行/列的名称
#treeheight_row & treeheight_col: 当前面设置了聚类之后,两边会出现聚类的树,这个参数是设置树的高度的。
#cellheight & cellwidth: 设置每个各自的宽度和高度。有的时候不设置这两个值画出来的树容易放飞自我????
#cutree_row & cutree_col: 是否根据聚类情况把树切开,可以设置切开的份数。
#display_numbers: 设置是否显示每个单元格的值。这个也是个人喜好及文章需求。
#legend: 设置是否显示旁边的bar状图例,emmmm好像还没碰到说不要那个玩意儿的情况。。
#filename: 设置输出文件的名字。可以设置的文件类型有:pdf,png,jpg,tiff,bmp

#设置工作目录
setwd("G:/sunxiaoyu/RNA-seq/2021_03_04/Rtreatment/heatmap/")

heatmap = pheatmap(results, color = colorRampPalette(c("blue", "white", "red"))(1000),
                   main=" ",
                   fontsize = 4,                               # 字体大小
                   scale="row",                             # 比例尺依据?
                   border_color = NA,                          # 边框颜色
                   na_col = " ",
                   cluster_rows = T,cluster_cols = F,          # 聚类行,聚类列
                   show_rownames = T,show_colnames = T,        # 显示行名称,显示列名称   
                   treeheight_row = 50, treeheight_col = 50,
                   cellheight = 5, cellwidth = 5,
                   cutree_row=1, cutree_col=1,
                   display_numbers = F,legend = T,
                   filename = "Result_2.tiff")

#绘图group_up
heatmap=pheatmap(results,color = cc(1000),
                 main=" ",
                 fontsize = 15,
                 scale="row",
                 border_color = NA,
                 na_col = "grey",
                 cluster_rows = F,cluster_cols = F,
                 show_rownames = T,show_colnames = T,
                 treeheight_row = 30,treeheight_col = 3,
                 cellheight = 3,cellwidth = 3,
                 cutree_row=1,cutree_col=1,
                 display_numbers = F,legend = T,
                 filename = "results_2.tiff")
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值