Обнаружение сообщества в R благодаря пакету igraph - PullRequest
0 голосов
/ 12 июня 2019

У меня есть data.frame с корреляциями между OTU и генами. Эти корреляции позволят мне построить геномы. Этот data.frame имеет 1105854 строк.

      var1                var2  corr
1  OTU3978 UniRef90_A0A010P3Z8 0.846
2  OTU4011 UniRef90_A0A010P3Z8 0.855
3  OTU4929 UniRef90_A0A010P3Z8 0.829
4  OTU4317 UniRef90_A0A011P550 0.850
5  OTU4816 UniRef90_A0A011P550 0.807
6  OTU3902 UniRef90_A0A011QPQ2 0.836
7  OTU3339 UniRef90_A0A011RKI6 0.835
8  OTU1359 UniRef90_A0A011RLA7 0.801
9  OTU2085 UniRef90_A0A011RLA7 0.843
10 OTU3542 UniRef90_A0A011RLA7 0.866
11 OTU0473 UniRef90_A0A011TDE1 0.807

Я использую библиотеку igraph для построения графического объекта.

g<-graph.data.frame(df)

Затем я хочу извлечь компоненты этого графа для построения геномов: я имею в виду, один компонент будет соответствовать одному геному.

Я попробовал эту команду: genomes<-split(names(V(g)),components(g)$membership)

Он возвращает мне несколько компонентов, например:

> genomes[[4]]
[1] "OTU2417"             "UniRef90_A0A076H0Q4" "UniRef90_A0A2E8T3F8"
[4] "UniRef90_G5ZY43"

Я проверяю OTU и различные гены каждого компонента благодаря моей таблице OTU и благодаря базе данных EMBL-EBI для генов. Я могу определить, имеет ли смысл каждый реконструированный геном.

Я также проверил документацию и обнаружил много других методов обнаружения сообщества: edge -weenness, louvain, multi-level ... Я хотел бы знать, в чем главное отличие командной строки, которую я использовал (которая дает мне обратно довольно значимые компоненты) и эти алгоритмы (которые также дают мне компоненты)?

Спасибо

1 Ответ

0 голосов
/ 12 июня 2019

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

У Louvain и edge -weeness нет этого ограничения, они пытаются найти оптимальное распределение / кластеризацию для сообщества / кластеризациюмаксимизируя цель, модульность и между ними соответственно.Модульный подход страдает от ограничения разрешения: очень маленькие, но отдельные сообщества никогда не будут распознаваться на достаточно большом графике.Имейте это в виду, если вы ожидаете найти много небольших кластеров.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...