Что я пытаюсь сделать
Я использую пакет igraph R для создания и визуализации интересующей сети.
Макет в R довольно плохой. Я хотел бы импортировать свою сеть в Cytoscape, чтобы самому составить макет.
Что не работает
Я сохраняю свой объект igraph и использую пакет RCy3 R (функция createNetworkFromIgraph) для его экспорта в cytoscape. Однако сетевое форматирование (цвет узлов и т. Д.) Теряется! Есть ли способ сохранить форматирование и перенести его в Cytoscape?
Мой код
library(igraph)
network_graph <- graph_from_data_frame(d = network_df, directed = F)
vertices = unique(as.character(network_df[,2]))
netm <- get.adjacency(network_graph, sparse = F)
network_df - это data.frame с источником, целью и значением. Вот голова:
source target means
colchicine TUBB1 0.08330359
colchicine TTL 0.08330359
colchicine TTLL2 0.08330359
colchicine TUBA4A 0.08330359
colchicine TUBB2B 0.08330359
colchicine BRD4 0.08330359
Выбор макета (для разреженных графиков подходят оба варианта: fr или kk)
l <- layout_with_fr(network_graph)
Нормализация координат, чтобы мы знали, насколько велика фигура в координатах базовой графики
l <- norm_coords(l, ymin=-1, ymax=1, xmin=-1, xmax=1)
Придайте узлам скаляр цветов. Обеспечьте разрывы значений узлов, чтобы они имели другой цветовой оттенок.
pal <- colorRampPalette(c("red", "slateblue"))(6)
values <- network_df$means
bks <- pheatmap:::generate_breaks(values, length(pal), center = F)
cols <- pheatmap:::scale_colours(values, col=pal, breaks=bks, na_col = "grey")
network_df$cols <- cols
shapes = c(rep('square',10), rep('circle', dim(network_df)[1]-10))
save.image('igraph_drug_targets.RData')
Это та часть, которую я хочу нарисовать в Cytoscape
plot(network_graph, rescale = F, layout=l*1.0, vertex.label = NA,
vertex.shape=shapes, vertex.frame.color = "gray20", edge.arrow.size =
.5, vertex.color = network_df$cols, vertex.size = 5, edge.color =
rgb(0,0,0,0.4), edge.width = 0.3, xlim = c(-1.3, 1.3), ylim = c(-1.3,
1.3))
Добавьте собственные текстовые метки
for(j in 1:nrow(netm))
text(l[j,1], l[j,2], labels=rownames(netm)[j], pos = 3, cex = 0.7, font = 2)
Создание координат Y для прямоугольников в цветовом ключе
rect_series = seq(0.3, 1, length.out = max(network_df$means) + 1)
Цикл для рисования прямоугольников внутри цветового ключа
pal2 <- c(pal1[1], rev(pal[1:length(pal)-1]))
for(q in 1:max(network_df$means+1)){
rect(1.1, rect_series[q], 1.2,
rect_series[q+1], col = pal2[q], border = NA)
rect(1.1, 0.3, 1.2, 1)
text(1.2, 0.3, min(network_df$means, 2), pos = 4)
text(1.2, 1, round(max(network_df$means, 2),2), pos = 4)
text(1.2, 1.1, labels = "Log10 normalized counts", pos = 4)
}
ggraph
, очень хорошее смешивание междуiGraph
иggplot2
, не выходяR
. Ясно, что это намек, а не ответ на ваш вопрос. - person s__   schedule 01.08.2018