Как извлечь тепловую карту из набора интересующих генов из основной тепловой карты? - PullRequest
1 голос
/ 20 февраля 2020

Я сделал тепловую карту на основе следующего сценария.

#load the library
library(pheatmap)

#set label font
par(cex.lab=1.5) # is for y-axis
par(cex.axis=1.5) # is for x-axis

#Set the working directory
setwd("F:\\snijesh\\OneDrive-Snijesh\\GSE4170\\final\\Rcode")


#hedge
#read the expression matrix
hedge <- read.table("hedge.txt",sep="\t",header = TRUE)

#Group the data in the frame
group_df = data.frame(Groups=rep(c("AP","CP","BP"),c(6,42,28)))

#Assign the col name to the matrix
rownames(group_df) = colnames(hedge)[2:ncol(hedge)]

#Assign the rownames
rownames(hedge) = hedge[,1]

#plot the heatmap with specific split
pheatmap(hedge[,-1],cluster_cols=FALSE,
         annotation_col=group_df, gaps_col = cumsum(c(6,42,28)))

Я получил следующую тепловую карту из кода: enter image description here

Теперь я хочу извлечь и подготовить реплот из основной тепловой карты, используя интересующий меня набор генов (CD34, CD117, CD38, SHH, GLI1, GLI2, GLI3, BCL2, PTCH1, PTCH2, SMO). Как я могу это сделать?

Ответы [ 2 ]

1 голос
/ 20 февраля 2020

Вы можете сделать что-то вроде этого, определить интересующие гены:

genes_of_interest = c("CD34","CD117","CD38","SHH",
"GLI1","GLI2","GLI3","BCL2","PTCH1","PTCH2","SMO")

Если некоторых из них нет в матрице, выполните:

pheatmap(hedge[rownames(hedge) %in% genes_of_interest,-1],cluster_cols=FALSE,
         annotation_col=group_df, gaps_col = cumsum(c(6,42,28)))

Если вы уверены, все они находятся там:

pheatmap(hedge[genes_of_interest,-1],cluster_cols=FALSE,
         annotation_col=group_df, gaps_col = cumsum(c(6,42,28)))

Строки будут снова кластеризованы, поэтому, если вы этого не хотите, вам нужно повернуть cluster_rows в FALSE.

1 голос
/ 20 февраля 2020

Это должно сработать:

pheatmap(hedge[which(hedge[,1]==c("CD34" , "CD117" , "CD38" , "SHH" ,
"GLI1" , "GLI2" , "GLI3" , "BCL2" , "PTCH1" , "PTCH2" , "SMO")),-1],
cluster_cols=FALSE, annotation_col=group_df, gaps_col =cumsum(c(6,42,28))) 

Здесь вы берете строки с именами генов в первом столбце и наносите их на график.

РЕДАКТИРОВАТЬ: Удален первый столбец.

...