forked from dynverse/dynmethods
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathREADME.Rmd
89 lines (74 loc) · 4.42 KB
/
README.Rmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
---
output: github_document
editor_options:
chunk_output_type: console
---
<!-- README.md is generated from README.Rmd. Please edit that file -->
```{r, echo = FALSE, message = FALSE, error = FALSE, warning = FALSE}
library(tidyverse)
library(dynmethods)
load("data/methods.rda")
```
<img src="man/figures/logo.png" align="right" /> [![Build status](https://travis-ci.org/dynverse/dynmethods.svg?branch=master)](https://travis-ci.org/dynverse/dynmethods)
# A collection of `r nrow(methods)` trajectory inference methods
This package contains wrappers for all of the trajectory inference (TI) methods included in the [dynverse](https://www.github.com/dynverse/dynverse) review. The output of each method is transformed into a common trajectory model using [dynwrap](https://www.github.com/dynverse/dynwrap). Nearly all methods are integrated within a docker container, avoiding dependency issues. Some methods are also directly wrapped inside of R.
**To run any of these methods, interpret the results and visualise the trajectory, see the [dyno package](https://www.github.com/dynverse/dyno).**
To include your own method, feel free to send us a [pull request](https://github.com/dynverse/dynmethods/pulls) or create an [issue](https://github.com/dynverse/dynmethods/labels/new%20method). The easiest way to add a new method is [through a docker container](https://dynverse.github.io/dynwrap/articles/create_ti_method_docker.html), so that dependencies don't pose any issues for other users, but we also welcome methods [directly wrapped inside of R](https://dynverse.github.io/dynwrap/articles/create_ti_method_r.html). The main benefit of adding your own method is that users can easily compare your method with others and [visualise/interpret the output](https://www.github.com/dynverse/dyno). Moreover, your method will be compared to other methods within [the TI method evaluation](https://doi.org/10.1101/276907).
Currently wrapped are the following methods:
```{r, echo = FALSE, warning = FALSE, error = FALSE, message = FALSE, results='asis'}
df <- methods %>%
arrange(name) %>%
arrange(fct_infreq(type)) %>%
mutate(
code_label = wrapper_location,
code_url = glue::glue("https://github.com/dynverse/dynmethods/blob/master/{wrapper_location}"),
r_wrapper_url = glue::glue("https://github.com/dynverse/dynmethods/blob/master/{r_wrapper_location}"),
docker_url = glue::glue("https://github.com/dynverse/dynmethods/blob/master/{docker_wrapper_location}"),
Wrapper = glue::glue("[{code_label}]({code_url})"),
vignette_label = glue::glue("{method_id}.md"),
vignette_relpath = glue::glue("inst/doc/{vignette_label}"),
vignette_url = glue::glue("https://github.com/dynverse/dynmethods/blob/master/{vignette_relpath}"),
Vignette = ifelse(file.exists(vignette_relpath), glue::glue("[{vignette_label}]({vignette_url})"), ""),
`Method` = map2_chr(name, doi, function(name, doi) {
if (!is.null(doi) && !is.na(doi)) {
glue::glue("{name} <a href='https://doi.org/{doi}'><img src='man/figures/doi_logo.png' height='16'></a>")
} else {
name
}
}),
`R wrapper` = ifelse(
r_wrapped,
glue::glue("✓ ([code]({r_wrapper_url}))"),
""
),
`Docker container` = ifelse(
containerised,
glue::glue("✓ ([code]({docker_url}), [dockerhub]({dockerhub_url}))"),
""
),
`Authors` = map_chr(authors, function(authors) {
map_chr(authors, function(author) {
if (is.null(author$family)) {
author$family <- ""
}
author_text <- glue::glue("{author$given} {author$family}")
if (!is.null(author$ORCID)) {
author_text <- glue::glue("{author_text} <a href='https://orcid.org/{author$ORCID}'><img src='man/figures/orcid_logo.svg' height='16'></a>")
}
if (!is.null(author$github)) {
author_text <- glue::glue("{author_text} <a href='https://github.com/{author$github}'><img src='man/figures/github_logo.png' height='16'></a>")
}
author_text %>% paste0("<sub>", ., "</sub>")
}) %>% glue::collapse("<br>")
})
)
df2 <- df %>%
select(
`Method`,
Wrapper,
`<a href='https://github.com/dynverse/dynmethods/tree/master/R'><img src='man/figures/r_logo.png' height='30'></a>` = `R wrapper`,
`<a href='https://hub.docker.com/u/dynverse/'><img src='man/figures/docker_logo.png' height='30'></a>` = `Docker container`,
`Authors`
)
knitr::kable(df2)
```