Как создать сеть коэкспрессии генов из фрейма данных, содержащего информацию об узлах и краях, с помощью пакета Rcy3 или igraph в R?

У меня есть фрейм данных коэкспрессии генов, который содержит узлы «от» (Probe_ID1), «к» узлам (Probe_ID2) и параметр коэкспрессии (Pearson_correlation). Я хотел бы создать неориентированную сеть через cytoscape в R. Я пробовал пройти несколько руководств, в которых показано, как использовать матрицу выражений или отдельную таблицу данных для узлов и ребер для создания сети с использованием Rcy3 и igraph. Пока не повезло. (https://bioconductor.github.io/BiocWorkshops/cytoscape-automation-in-r-using-rcy3.html) (http://www.vesnam.com/Rblog/viznets5/)

Фрейм данных выглядит следующим образом:

введите описание изображения здесь

Когда я использовал

  • g ‹- graph_from_data_frame (df, Directed = FALSE)
  • plot (g, edge.width = E (g) $ Pearson_correlation)

Я получаю статичный сюжет, который не очень полезен!

Моя цель - создать график, как показано ниже:

введите описание изображения здесь

Спасибо большое за вашу помощь.

DF <- структура (список (Probe_ID1 = с (1377847_at, 1377847_at, 1374391_at, 1377847_at, 1374391_at, 1371293_at, 1370349_a_at, 1375043_at, 1377847_at, 1374391_at, 1371293_at, 1367896_at, 1370349_a_at, 1367555_at, 1377847_at, 1374391_at, 1371293_at, 1367896_at, 1371400_at, 1377847_at ), Probe_ID2 = с (1374391_at, 1371293_at, 1371293_at, 1367896_at, 1367896_at, 1367896_at, 1367555_at, 1373759_at, 1371400_at, 1371400_at, 1371400_at, 1371400_at, 1367556_s_at, 1367556_s_at, 1370150_a_at, 1370150_a_at, 1370150_a_at, 1370150_a_at, 1370150_a_at, 1387033_at), Pearson_correlation = с (0,848285270961176, 0,811387513485743, 0,984665285551617, 0,810053803921012, +0,87996593265479, 0,831296522615296, +0,97896759238534, 0,865015908452676, +0,95200088118552, 0,897979364923317, 0,862952264288276, 0,871551804796571, 0,982470139843159, 0,983102257804976, 0,944065566290634, 0,885963573215256, +0,86195415426524, 0,856926733543681, 0,992345494455764, 0,890033683765388)), класс = data.frame, строка .names = c (NA, -20L))


person Arif Rahman    schedule 26.06.2020    source источник


Ответы (1)


Используя RCy3, вы можете сделать это несколькими способами.

  1. Учитывая ваш объект igraph 'g', вы можете просто запустить

    RCy3::createNetworkFromIgraph(g)

    Пока у вас запущен локальный экземпляр Cytoscape, эта функция откроет интерактивный сеанс с вашей сетью. Затем вы можете изменить любой аспект макета или стиля, используя сотни функций в RCy3.

  2. Учитывая исходный фрейм данных, 'df', вы можете указать исходный и целевой столбцы (даже для ненаправленных сетей) и загрузить сеть с помощью

    colnames(df)[1:2] <- c("source", "target") RCy3::createNetworkFromDataFrames(edges=df)

    Вывод в Cytoscape должен быть идентичным. И вы можете продолжить анализ и визуализацию сети.

person AlexanderPico    schedule 02.07.2020