Overall though, I'm very much looking forward to feedback, thoughts, or comments on NetCoupler to help make it better.
Luke W. Johnston
Steno Diabetes Center Aarhus, Denmark
Background on analytical problem
NetCoupler history and implementation
R package work and usage
Examples using NetCoupler
Current challenges
Overall though, I'm very much looking forward to feedback, thoughts, or comments on NetCoupler to help make it better.
-omics type data
Metabolic biomarkers
High dimensionality
Complex networks
Reducing number of variables with PCA.
This has the advantage of making things simpler while trying to maximize variance in the data. Afterward you can do modelling on each principal component. The disadvantage of this approach is that it loses a lot of information since the interdependence and connections between variables it not maintained.
O1 = M1 + covariatesO1 = M2 + covariates...O1 = M7 + covariatesO1 = M8 + covariates
Some ways you might go about analyzing this data is by running many regression models, one for each metabolic variable for instance.
This of course has problems since you're simply running a bunch of models and not taking account of the inherent interdependencies between variables.
This approach is nice in that you can extract information about the connection between metabolic variables. But there is no way to incorporate the disease outcome with this approach and in order to construct the network properly most methods require you provide a prespecified base network, which you might not know.
want info about network structure?
don't know the network structure?
want info about network structure?
don't know the network structure?
have an exposure, metabolites, and outcome?
want info about network structure?
don't know the network structure?
have an exposure, metabolites, and outcome?
are interested in causal links?
Developed by Clemens Wittenbecher for his PhD thesis
Algorithm that:
Met him at EDEG, asked if it was an R package. Started working together after that.
Pipe (magrittr %>%
or base R
|>
) friendly
Uses tidyselect helpers (e.g.
starts_with()
, contains()
)
Pipe (magrittr %>%
or base R
|>
) friendly
Uses tidyselect helpers (e.g.
starts_with()
, contains()
)
Auto-complete friendly (e.g. start function names with nc_
)
Pipe (magrittr %>%
or base R
|>
) friendly
Uses tidyselect helpers (e.g.
starts_with()
, contains()
)
Auto-complete friendly (e.g. start function names with nc_
)
Inputs/outputs generally tibbles/dataframes or tidygraph tibbles
Pipe (magrittr %>%
or base R
|>
) friendly
Uses tidyselect helpers (e.g.
starts_with()
, contains()
)
Auto-complete friendly (e.g. start function names with nc_
)
Inputs/outputs generally tibbles/dataframes or tidygraph tibbles
Flexible with type of model
Pipe (magrittr %>%
or base R
|>
) friendly
Uses tidyselect helpers (e.g.
starts_with()
, contains()
)
Auto-complete friendly (e.g. start function names with nc_
)
Inputs/outputs generally tibbles/dataframes or tidygraph tibbles
Flexible with type of model
Website with beginner-focused documentation
std_data <- dataset %>% nc_standardize(starts_with("metabolite"))network <- std_data %>% nc_estimate_network(starts_with("metabolite")) %>% as_edge_tbl()
outcome_estimates <- std_data %>% nc_estimate_outcome_links( edge_tbl = network, outcome = "HbA1c", model_function = lm )
outcome_estimates <- std_data %>% nc_estimate_outcome_links( edge_tbl = network, outcome = "HbA1c", model_function = lm, adjustment_vars = c("age", "sex") )
outcome_estimates <- std_data %>% nc_estimate_outcome_links( edge_tbl = network, outcome = "incident_diabetes", model_function = glm, adjustment_vars = c("age", "sex"), model_arg_list = list( family = binomial("logit") ), exponentiate = TRUE )
Untested on larger networks
Untested on non-cross-sectional/time-to-event data
Untested on larger networks
Untested on non-cross-sectional/time-to-event data
Visualizing can be tricky
Untested on larger networks
Untested on non-cross-sectional/time-to-event data
Visualizing can be tricky
Interpreting estimates can be tricky
Before addressing many of these I want the API to be stable first and the general interface to be well-established before moving on to these things.
Background on analytical problem
NetCoupler history and implementation
R package work and usage
Examples using NetCoupler
Current challenges
Overall though, I'm very much looking forward to feedback, thoughts, or comments on NetCoupler to help make it better.
Keyboard shortcuts
↑, ←, Pg Up, k | Go to previous slide |
↓, →, Pg Dn, Space, j | Go to next slide |
Home | Go to first slide |
End | Go to last slide |
Number + Return | Go to specific slide |
b / m / f | Toggle blackout / mirrored / fullscreen mode |
c | Clone slideshow |
p | Toggle presenter mode |
t | Restart the presentation timer |
?, h | Toggle this help |
Esc | Back to slideshow |