-
Notifications
You must be signed in to change notification settings - Fork 1
/
biomarkers.R
70 lines (59 loc) · 3.04 KB
/
biomarkers.R
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
library(pheatmap)
library(ggplot2)
library(RColorBrewer)
library(gplots)
library(dplyr)
library(ggbiplot)
col.pan <- colorpanel(100, "blue", "white", "red")
##устанавливаем домашнюю директорию
setwd("~/Documents/test_task/")
#cчитываем данные, так как у нас тут Nan вкачестве проебанных ячеек, так и пишем
df_main <- read.delim("Hugo.tsv", na.strings = "NaN")
biomarkers <- read.delim("biomarkers_info.tsv")
pat <- read.delim("Hugo_annotation.tsv", header = FALSE)
#красим пациентов на основании ответа
pat$col <- ifelse(pat$V2 == "R", "red", "blue")
pat <- pat[order(pat$V1),]
#чистим датафреймы от говна
df_main <- df_main[complete.cases(df_main),]
#пишем названия маркеров в отдельную переменную, саму колонку стираем
#ассоциируем их с цветаами, красный - повышение, синий - падение
names.bio.main <- data.frame(df_main$Biomarker)
colnames(names.bio.main) <- c("names")
names.bio.main$color <- ifelse(names.bio.main$names == "up", "red", "blue")
df_main$Biomarker <- NULL
#переводим все в числа
df_main <-as.data.frame(sapply(df_main, as.numeric))
rownames(df_main) <- names.bio.main$names
biomarkers$col <- ifelse(biomarkers$Direction == "up", "red", "blue")
df_main <- data.frame(t(df_main))
df_main <- df_main[order(rownames(df_main)),]
#простейшие матрицы корелляций, по датасету. цвет - ответ на лечение
annot <- data.frame(pat$V1, pat$col)
#pdf("Biomarkers.pdf")
df_main.cor <- cor(t(df_main), method = "spearman")
heatmap.2(df_main.cor, col = col.pan, Rowv=TRUE, Colv= TRUE, scale="none",
trace="none", dendrogram="column", cexRow=1, cexCol=1.4, density.info="none",
margin=c(10,9), lhei=c(2,10), lwid=c(2,6),
main = "Corellation", RowSideColors = pat$col,
ColSideColors = pat$col)
legend("topright", legend = unique(pat$V2), col = pat$col, lty= 1, lwd = 5, cex=.7)
##сделаем анализ главных компонент по всем образцам, c окраской по response-no response
pr.main <- prcomp(df_main, center = TRUE)
plot(pr.main$x,
col = pat$col,
main = "Principle Component Analysis",
pch = ".")
text(pr.main$x, labels = rownames(df_main), col = pat$col)
###дендрограмма
dd <- dist(scale(df_main), method = "euclidean")
hc <- hclust(dd, method = "ward.D2")
plot(hc)
##сокращаем количество биомаркеров, до того, по которому есть данные
biomarkers <- biomarkers[biomarkers$ID %in% names.bio.main$names,]
df_trans <- data.frame(t(df_main))
#еще один анализ главных компонент, по биомаркерам
pr.main <- prcomp(df_trans, center = TRUE)
ggbiplot(pr.main, groups = biomarkers$Direction, var.axes = F) +
theme_bw() +
ggtitle("Principle Component Analysis biomarkers")