Giter VIP home page Giter VIP logo

dynbenchmark's Introduction

dynverse

dynverse is a collection of R packages aimed at supporting the trajectory inference (TI) community on multiple levels: end-users who want to apply TI on their dataset of interest, and developers who seek to easily quantify the performance of their TI method and compare it to other TI methods.

All of these packages were developed as part of a benchmarking study available on bioRxiv. All source code has been made available in the dynbenchmark repository.

A comparison of single-cell trajectory inference methods: towards more accurate and robust tools
Wouter Saelens* , Robrecht Cannoodt* , Helena Todorov , Yvan Saeys
bioRxiv:276907 doi:10.1101/276907

*: Equal contribution

End-users

The dyno package offers end-users a complete TI pipeline. It features:

Developers

For developers of existing or new TI methods, dyno offers the same features as to end-users. In addition, developers might also want to check out the following packages:

  • dynmethods, which is a repository of wrappers for TI methods. If your method has already been included in dynmethods, an issue will have been created there.
  • dynwrap, the wrapping functions for transforming common trajectory data formats into the common trajectory model supported by dynverse.
  • dynbenchmark, all source code in order to replicate the benchmarking study by Saelens and Cannoodt (10.1101/276907).
  • Check out this overview of all dynverse packages for more information of the functionality of each package.

dynbenchmark's People

Contributors

helena-todd avatar rcannood avatar zouter avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dynbenchmark's Issues

Support for SLURM or Linux Server

I do not have much experience with cluster computing, but I have access to a SLURM cluster.
Is there any straightforward way to execute your pipeline there?

if the previous is not possible, I still would like to make a comprehensive analysis of all the methods and datasets, is there any way to easily handle all datasets/methods dependencies by re-using as much of your code as possible to execute it in a regular Linux Server?

Error: `id` must evaluate to column positions or names, not a function

Hi, thanks again for a great job!

I ran into the following problem, not sure if I'm doing something wrong or it is an actual error. I also have a couple of questions regarding the overall structure of the benchmarking repository and how to execute it.

When running the dynbenchmark/scripts/06-benchmark/1-submit_jobs.R in line 23:

 methods <-
    dynwrap::get_ti_methods(method_ids, evaluate = FALSE) %>%
    mapdf(function(m) {
      l <- m$fun()
      l$fun <- m$fun
      l$type <- "function"
      l
    }) %>%
    list_as_tibble() %>%
    select(id, type, fun, everything())

As I see it after modifying the tibble obtained by dynwrap::get_ti_methods() with the mapdf() there is no column 'id'. Therefore, the following operation select() raises the following error:

Error: `id` must evaluate to column positions or names, not a function

This could be easily fixed by keeping the 'id' info in the mapdf(): l$id <- m$id

  methods <-
    dynwrap::get_ti_methods(method_ids, evaluate = FALSE) %>%
    mapdf(function(m) {
      l <- m$fun()
      l$fun <- m$fun
      l$type <- "function"
      l$id <- m$id
      l
    }) %>%
    list_as_tibble() %>%
    select(id, type, fun, everything())

Is this an actual error and proper fix, or I'm missing something?

  • In general what would be the proper way to try to recreate your results?
    By sequentially executing your scripts, results are stored in the 'derived' folder, but it seems that sometimes the scripts are pointing to the 'results' folder (initially empty) instead of the 'derived'. I solved this by downloading the dynbenchmark_results repository into the 'results' folder. Now, I'm a little confused about how the scripts and the 'derived' and 'results' folder interact with each other. Could you please give a couple of words on that?

Thanks again!!

Error in devtools::install_github("dynverse/dynbenchmark/package")

> devtools::install_github("dynverse/dynbenchmark/package")

Using github PAT from envvar GITHUB_PAT
Downloading GitHub repo dynverse/dynbenchmark@master
'/usr/bin/git' clone --depth 1 --no-hardlinks --recurse-submodules [email protected]:dynverse/dynbenchmark_results.git /tmp/RtmpbRc9jx/remotes2ce925b8666e8/dynverse-dynbenchmark-e16b237/package/../results
Warning: Permanently added the RSA host key for IP address '140.82.118.4' to the list of known hosts.
Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
Error: Failed to install 'dynbenchmark' from GitHub:
  Command failed (128)
In addition: Warning message:
In system(full, intern = TRUE, ignore.stderr = quiet) :
  running command ''/usr/bin/git' clone --depth 1 --no-hardlinks --recurse-submodules [email protected]:dynverse/dynbenchmark_results.git /tmp/RtmpbRc9jx/remotes2ce925b8666e8/dynverse-dynbenchmark-e16b237/package/../results' had status 128

definitions of trajectory types

Hi,
can you please help clarify the key difference between the tree trajectory and the multifurcation? I was looking at supplementary fig S2(a) but not quite sure how you define the bifurcation, vs multifurcation vs. tree.
so for a multifurcation, at any node one can split into any number of branches? (0 or more)
for a tree, at any node one can split into??

Thanks a lot

HOW to use "evaluate_ti_method" ??

evaluate_ti_method(dataset, method, parameters, metrics,
give_priors = NULL, output_model = TRUE, seed = function()
random_seed(), map_fun = map, verbose = FALSE)

it is hard to understand how to use.
can you provide more?

Synthetic dataset code

Hi,
It would be very helpful if you could share the code you used to create the synthetic datasets.
Specifically I am interested in creating a dataset with "golden standard" trajectory.
For my understanding, you used Splatter framework in combination with a trajectory backbone.
I can't understand how you were able to specify all of the "from" and "to" nodes by using Splatter path simulation.
Any help / code will be appreciated!

Will you keep updating on new methods?

Thanks for the great work!
There are more single-cell trajectory inference methods published recently and surely in the future. Will you keep adding the new methods into your evaluation? Thanks!

Failed Installation - Error : object ‘get_platform_from_counts’ is not exported by 'namespace:dyngen'

I got the following error when trying to install dynbenchmark:

> devtools::install_github("dynverse/dynbenchmark/package")
Downloading GitHub repo dynverse/dynbenchmark@master
✔  checking for file ‘/tmp/RtmpOkmvRG/remotes29e382fcc140/dynverse-dynbenchmark-74fe868/package/DESCRIPTION’ ...
─  preparing ‘dynbenchmark’:
✔  checking DESCRIPTION meta-information ...
─  checking for LF line-endings in source and make files and shell scripts
─  checking for empty or unneeded directories
─  looking to see if a ‘data/datalist’ file should be added
─  building ‘dynbenchmark_0.0.0.9000.tar.gz’ (766ms)
   
Installing package into ‘/home/pmonteagudo/R/x86_64-redhat-linux-gnu-library/3.5’
(as ‘lib’ is unspecified)
* installing *source* package ‘dynbenchmark’ ...
** R
** data
*** moving datasets to lazyload DB
** inst
** byte-compile and prepare package for lazy loading
Warning: replacing previous import ‘dyneval::calculate_harmonic_mean’ by ‘dynutils::calculate_harmonic_mean’ when loading ‘dynbenchmark’
Warning: replacing previous import ‘dyneval::calculate_geometric_mean’ by ‘dynutils::calculate_geometric_mean’ when loading ‘dynbenchmark’
Warning: replacing previous import ‘dyneval::calculate_arithmetic_mean’ by ‘dynutils::calculate_arithmetic_mean’ when loading ‘dynbenchmark’
Error : object ‘get_platform_from_counts’ is not exported by 'namespace:dyngen'
ERROR: lazy loading failed for package ‘dynbenchmark’
* removing ‘/home/pmonteagudo/R/x86_64-redhat-linux-gnu-library/3.5/dynbenchmark’
Error in i.p(...) : 
  (converted from warning) installation of package ‘/tmp/RtmpOkmvRG/file29e3879a6627c/dynbenchmark_0.0.0.9000.tar.gz’ had non-zero exit status

Any thoughts on that? Thanks in advance

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.