Моделирование негативного эффекта или конкурирующего поведения в двудольных сетях
Мы хотели бы отслеживать изменения в сети при изменении узла. (поставщик против покупателя, ток против сопротивления в электрической цепи, микроРНК против гена, хозяин против патогена и т. д.).
Например, предположим, что система включает двух разных паразитов и их общих и разных хозяев. Если популяция одного из отдельных хозяев увеличивается, популяция паразитов имеет тенденцию быть эффективной в отношении увеличения хозяина. В результате этого негативное влияние паразита на других хозяев уменьшается, а затем увеличивается популяция других хозяев. Эту ситуацию можно объяснить с помощью общих хостов и паразитов в сети.
Мы хотим использовать этот подход для объяснения взаимодействия между микроРНК и генами. Пожалуйста, не пугайтесь биологии в этом примере, это общая проблема.
Мы пытаемся создать модель для взаимодействия микроРНК и гена, когда экспрессия гена увеличивается, он привлекает больше микроРНК, тем самым уменьшая общее количество микроРНК, чтобы воздействовать на оставшиеся гены, что приводит к увеличению уровней оставшихся генов.
Модель может быть объяснена следующим образом: (пожалуйста, обратитесь к анимированному GIF для кадров)
- Кадр 1: Данные "выборки" включают 2 микроРНК (предполагается, что постоянный уровень) и 6 генов (отрицательно регулируется). Эту фазу можно считать устойчивой.
- Кадр 2: В стационарном состоянии микроРНК воздействует на каждый ген в соответствии с пропорциональным значением в общем количестве мишеней. Например, G1 и G4 имеют одинаковое значение выражения, так что M1 одинаково влияет на эти цели.
- Frame3: выражение G2 увеличено (1000->2000)
- Кадр 4: Теперь G2 тянет 444 единицы М1. Оставшиеся 556 юнитов M1 атакуют G1, G3 и G4 пропорционально их уровням. Значения серого указывают на предыдущие единицы M1.
- Frame5: Для интеракторов M1 мы вычислили разницу единиц M1 (предыдущая - текущая) и добавили ее к уровням G1, G2, G3 и G4. Из-за изменения уровня G4, теперь подсеть M2 взволнована, она тянет еще 3 единицы M2.
- Кадр 6: В подсети М2 в распределении М2 происходят небольшие изменения (значения Серого указывают на предыдущие единицы М2). В подсети M1 из-за изменений в уровнях G1-4, распределение M1 обновляется и, следовательно, уровни G1-G4 еще раз.
Вот код R для создания сети
# sample data
library(tidygraph)
sample_data <- data.frame(genes = c("G1", "G2", "G3", "G4", "G4", "G5", "G6"),
mirna = c("M1", "M1","M1", "M1", "M2", "M2", "M2"),
Geneexpression = c(10000, 10000, 5000, 10000, 10000, 5000, 10000),
mirnaexpression = c(1000, 1000, 1000, 1000, 2000, 2000, 2000), stringsAsFactors = FALSE)
sample_graph <- as_tbl_graph(sample_data)
В настоящее время мы проходим сложные и неэффективные шаги для подсчета результатов. Код поделился в этой сути. Мы искали лучший подход.
Мы задавали аналогичный вопрос ранее, так что ссылка не была получена, поэтому мы улучшили ее и задали снова