Nano Hash - криптовалюты, майнинг, программирование

Атрибуты трассировки в ребрах R igraph

Мой график

nodes = data.frame(GENES = c("GENE_A", "GENE_B", "GENE_C", "GENE_D", "GENE_E","GENE_F", "GENE_G", "GENE_H", "GENE_I", "GENE_J"),TYPES = c("LIGAND", "RECEPTOR", "PROTEIN", "RECEPTOR", "LIGAND", "PROTEIN", "LIGAND","RECEPTOR", "PROTEIN", "LIGAND"))

edges = data.frame(FROM=c("GENE_A","GENE_B","GENE_C","GENE_C","GENE_D","GENE_E","GENE_F","GENE_A","GENE_H","GENE_H","GENE_I","GENE_J","GENE_J"),TO=c("GENE_B","GENE_D","GENE_I","GENE_G","GENE_F","GENE_I","GENE_B","GENE_G","GENE_E","GENE_F","GENE_C","GENE_D","GENE_J"),STATUS=c('ACTIVE','INACTIVE','UNKNOWN','INACTIVE','INACTIVE','UNKNOWN','ACTIVE', 'ACTIVE','ACTIVE','INACTIVE','UNKNOWN',"ACTIVE","ACTIVE"))

g <- graph_from_data_frame(edges, directed = TRUE, vertices = nodes)

И я хочу подграфить и упростить следующие узлы d = data.frame(NODES = "GENE_B", "GENE_D", "GENE_H"), но каждый раз, когда я simplify, я теряю все атрибуты в ребрах.

На выходе я хочу получить граф узлов в d с прямыми ребрами (order = 1). Я пробовал с subg <- induced.subgraph(graph = g, vids = unlist(neighborhood(graph = g, order = 1, nodes = d, mode = 'out'))), но после упрощения я теряю атрибуты края и не могу отследить E(g)$STATUS

17.08.2018

Ответы:


1

Для некоторых графов не очень понятно, что делать с атрибутами ребер в упрощенном графе. Функция simplify предлагает довольно много опций через аргумент edge.attr.comb. Ваш график не очень сложен, поэтому несколько вариантов, отличных от значения по умолчанию, будут работать. Например,

subg <- induced.subgraph(graph = g, 
    vids = unlist(neighborhood(graph = g, order = 1, nodes = d, mode = 'out')))
S1 = simplify(subg)
edge_attr(S1)
named list()

НО

S2 = simplify(subg, edge.attr.comb ="first")
edge_attr(S2)
$STATUS
[1] "ACTIVE" "ACTIVE"
24.08.2018
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..