Как извлечь полную двудольную сеть из существующей сети в igraph - PullRequest
0 голосов
/ 10 июля 2020

Я немного борюсь с относительно простой проблемой, но на самом деле у меня есть некоторые проблемы с реализацией ее в R с пакетом igraph.

У меня есть два типа связанных элементов, гены и, скажем, элементы регулирования. Мой фрейм данных выглядит так:

genes=c("gene1","gene2","gene1","gene3","gene4","gene3")
regulatory_elements=c("e1","e2","e3","e3","e4","e5")

g.e=data.frame(cbind(genes,regulatory_elements))
print(g.e)

  genes regulatory_elements
1 gene1                  e1
2 gene2                  e2
3 gene1                  e3
4 gene3                  e3
5 gene4                  e4
6 gene3                  e5

Если я построю график из моего фрейма данных с помощью пакета igraph, я получу такой график.

library(igraph)
graph=graph_from_data_frame(g.e, directed = F)
plot(graph)

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

Здесь я хотел бы создать новые сети в изоляции полных двудольных сетей. В этом примере сеть с gene1 и gene3 будет разделена на три подграфа следующим образом:

gene1 - e1; gene1 - e3 - gene3; gene3 - e5

Любые выводы приветствуются.

...