Literature DB >> 30234197

DataPackageR: Reproducible data preprocessing, standardization and sharing using R/Bioconductor for collaborative data analysis.

Greg Finak1,2,3, Bryan Mayer1,2,3, William Fulp1,2,3, Paul Obrecht1,2,3, Alicia Sato1,2,3, Eva Chung1,2,3, Drienna Holman1,2,3, Raphael Gottardo1,2,3.   

Abstract

A central tenet of reproducible research is that scientific results are published along with the underlying data and software code necessary to reproduce and verify the findings. A host of tools and software have been released that facilitate such work-flows and scientific journals have increasingly demanded that code and primary data be made available with publications. There has been little practical advice on implementing reproducible research work-flows for large 'omics' or systems biology data sets used by teams of analysts working in collaboration. In such instances it is important to ensure all analysts use the same version of a data set for their analyses. Yet, instantiating relational databases and standard operating procedures can be unwieldy, with high "startup" costs and poor adherence to procedures when they deviate substantially from an analyst's usual work-flow. Ideally a reproducible research work-flow should fit naturally into an individual's existing work-flow, with minimal disruption. Here, we provide an overview of how we have leveraged popular open source tools, including Bioconductor, Rmarkdown, git version control, R, and specifically R's package system combined with a new tool DataPackageR, to implement a lightweight reproducible research work-flow for preprocessing large data sets, suitable for sharing among small-to-medium sized teams of computational scientists. Our primary contribution is the DataPackageR tool, which decouples time-consuming data processing from data analysis while leaving a traceable record of how raw data is processed into analysis-ready data sets. The software ensures packaged data objects are properly documented and performs checksum verification of these along with basic package version management, and importantly, leaves a record of data processing code in the form of package vignettes. Our group has implemented this work-flow to manage, analyze and report on pre-clinical immunological trial data from multi-center, multi-assay studies for the past three years.

Entities:  

Keywords:  Assay data; Bioconductor; Collaboration; Data science; Package; Reproducibility; Rmarkdown; Rstats; Version control

Year:  2018        PMID: 30234197      PMCID: PMC6139382          DOI: 10.12688/gatesopenres.12832.2

Source DB:  PubMed          Journal:  Gates Open Res        ISSN: 2572-4754


Introduction

A central idea of reproducible research is that results are published along with underlying data and software code necessary to reproduce and verify the findings. Termed a research compendium, this idea has received significant attention in the literature . Many software tools have since been developed to facilitate reproducible data analytics, and scientific journals have increasingly demanded that code and primary data be made publicly available with scientific publications . Tools like git and Github, figshare, and Rmarkdown are increasingly used by researchers to make code, figures, and data open, accessible and reproducible. Nonetheless, in the life sciences, practicing reproducible research with large data sets and complex processing pipelines continues to be challenging. Data preprocessing, quality control (QC), data standardization, analysis, and reporting are tightly coupled in most discussions of reproducible research, and indeed, literate programming frameworks such as Sweave and Rmarkdown are designed around the idea that code, data, and research results are tightly integrated . Tools like Docker, a software container that virtualizes an operating system environment for distribution, have been used to ensure consistent versions of software and other dependencies are used for reproducible data analysis . The use of R in combination with other publicly available tools has been proposed in the past to build reproducible research compendia . Many existing tools already implement such ideas. The provides mechanisms to turn a data analysis project into a version-controlled, documented, website presenting the results. The drake package is a general purpose work-flow manager that implements analytic "plans", caching of intermediate data objects, and provides scalability, and provides tangible evidence of reproducibility by detecting when code, data and results are in sync. However, tight coupling of preprocessing and analysis can be challenging for teams analyzing and integrating large volumes of diverse data, where different individuals in the team have different areas of expertise and may be responsible for processing different data sets from a larger study. These challenges are compounded when a processing pipeline is split across multiple teams. A primary problem in data science is the programmatic integration of software tools with dynamic data sources. Here, we argue that data processing, QC, and analysis can be treated as modular components in a reproducible research pipeline. For some data types, it is already common practice to factor out the processing and QC from the data analysis. For rnaseq data, for example, it is clearly impractical and time consuming to re-run monolithic code that performs alignment, QC, gene expression quantification, and analysis each time the downstream analysis is changed. Our goal is to ensure that downstream data analysis maintains dependencies on upstream raw data and processing but that the processed data can be efficiently distributed to users in an independent manner and updated when there are changes. Here, we present how the Vaccine Immunology Statistical Center (VISC) at the Fred Hutchinson Cancer Research Center has addressed this problem and implemented a reproducible research work-flow that scales to medium-sized collaborative teams by leveraging free and open source tools, including R, Bioconductor and git .

Methods

Operation

In order to use DataPackageR an R installation (≥3.5.0) is required. Associated dependencies are listed in the package’s DESCRIPTION file and are automatically installed when using the install_github() API from the devtools package. There are no minimum memory, CPU, or storage requirements apart from what is necessary to perform data processing, which varies on a case–by-case basis.

Implementation

Our work-flow is built around the DataPackageR R package, which provides a framework for decoupling data preprocessing from data analysis, while maintaining traceability and data provenance . DataPackageR builds upon the features already provided by the R package system. R packages provide a convenient mechanism for including documentation as part of the built-in help system, as well as long-form vignettes, and version information and distribution of the entire package. Importantly, R packages often include data stored as R objects, and some packages, particularly under BioConductor, are devoted solely to the distribution of data sets . The accepted mechanism for such distribution is to store R objects as rda files in the data directory of the package source tree and to store the source code used to produce those data sets in data-raw. The devtools package provides some mechanisms to process the source code into stored data objects . Data processing code provided by the user (in the form of Rmd files preferably, and R files optionally) is run and the results are automatically included as package vignettes, with output data sets (specified by the user) included as data objects in the package. Additional languages such as bash and python scripts are supported via rmarkdown’s multi-language code chunk support. Notably, this process, while apparently mirroring much of the existing R package build process, is disjointed from it, thereby allowing the decoupling of computationally long or expensive data processing from routine package building and installation. This allows DataPackageR to decouple data munging and tidying from data analysis while maintaining data provenance in the form of a vignette in the final package where the end-user can view and track how individual data sets have been processed. This is particularly useful for large or complex data that involve extensive preprocessing of primary or raw data (e.g. alignment of fastq files for rnaseq or gating of fcm data), and where computation may be prohibitively long or involve software dependencies not immediately available to the end-user. DataPackageR implements these features on top of a variety of tidyverse tools including devtools, roxygen2, rmarkdown, utils, yaml, purrr. The complete list of package dependencies is in the package DESCRIPTION file.

Package structure

To construct a data package using DataPackageR, the user invokes the datapackage.skeleton() API, which behaves like R’s , creating the necessary directory structure with some modifications. A listing of the structure of DataPackageR skeleton package directory, with other associated files is shown below: The datapackage_skeleton API takes several new arguments apart from the package name. First, takes a vector of paths to Rmd or R scripts that perform the data processing. These are moved into the data-raw directory The argument takes a vector of quoted R object names. These are objects that are to be stored in the final package and it is expected that they are created by the code in the R or Rmd files. These can be tidy data tables, or arbitrary R objects and data structures (e.g. S4 objects) that will be consumed by the package end-user. Information about the processing scripts and data objects is stored in a configuration file named datapackager.yml in the package root directory and only used by the package build process. The scripts may read raw data from any location, but generally the package maintainer should place it in inst/extdata if file size is not prohibitive for distribution.

The build_package API

Once code and data are in place, the build_package() API invokes the build process. This API is the only way to invoke the execution of code in data-raw to produce data sets stored in data. It is not invoked through R’s standard R CMD build or R CMD INSTALL APIs, thereby decoupling long and computationally intensive processing from the standard build process invoked by end-users. Upon invocation of build_package() the R and Rmd files specified in datapackager.yml will be compiled into package vignettes and moved into the inst/doc directory, data objects will be created and moved into data, data objects will be version tagged with their checksum and recorded in the DATADIGEST file in the package root, and a roxygen markup skeleton will be created for each data object in the package.

YAML configuration

The datapackager.yml configuration file in the package root controls the build process by specifying which R and Rmd files should be processed and which named R objects are expected to be included as data sets in the package. The render_root property points to a directory where R and Rmd files will be processed, allowing multi-script pipelines to share file system artifacts. The datapackage_object_read() API also allows downstream scripts to read data objects created by earlier scripts. The listing below shows the structure of the YAML configuration file used by DataPackageR to control compilation and inclusion of data objects in the package: The API for interacting with the YAML configuration file is outlined in Table 1.
Table 1.

The API for interacting with a YAML config file used by DataPackageR allows the user to add and remove data objects and code files, toggle compilation of files, and read and write the configuration to the data package.

API callPropertyreturn value
yml_add_files() fileconfig object
yml_remove_files() fileconfig object
yml_add_objects() objectsconfig object
yml_remove_objects() objectsconfig object
yml_find() config fileconfig object
yml_write() config filenull
yml_enable_compile() enableconfig object
yml_disable_compile() enableconfig object

Accessing raw data from scripts

Users can access the package root and inst/extdata directories from within R and Rmd scripts in a portable manner using the project_path() and project_extdata_path() APIs. Raw data stored outside the package root should be accessed relative to these locations.

Dataset versioning

During the build, the DATADIGEST file is auto-generated. This file contains an md5 hash of each data object stored in the package as well as an overall data set version string. These hashes are checked when the package is rebuilt; if they do not match, it indicates the format of the processed data has changed (either because the primary data has changed, or because the processing code has changed to update the data set). In these cases, the DATADIGEST for the changed object is updated and the minor version of the DataVersion string in the DESCRIPTION file is automatically incremented. The DataVersion for a package can be checked by the data_version() and assert_data_version() APIs, allowing end-users to produce reports based on the expected version of a data set ( Figure 1).
Figure 1.

A schematic overview of the components in our reproducible data packaging work-flow that decouples data processing from data analysis.

Data documentation

DataPackageR ensures that documentation is available for each data object included in a package by automatically creating a roxygen markup stub for each object that can then be filled in by the user. Undocumented objects are explicitly excluded from the final package. Packages can be readily distributed in source or tarball form (together with the processed data sets under data/ and raw data sets under inst/extdata). Within VISC we leverage git and github to provide version control of data package source code. By leveraging DataPackageR, the data processing is decoupled from the usual build process and does not need to be run by the end-user each time a package is downloaded and installed. Documentation in the form of Rd files, one for each data object in the package, as well as html vignettes describing the data processing, are included in the final package. These describe the data sets as well as how data was transformed, filtered, and otherwise processed from its raw state.

Use cases

DataPackageR was developed as a lightweight alternative to existing reproducible work-flow tools (e.g. Galaxy ), or to fully fledged database solutions that are often beyond the scope of most short-term projects. DataPackageR plugs easily into any existing R-based data analysis work-flow, since existing data processing code needs only to be formatted into Rmarkdown (ideally). It is particularly suited for long-running or complex data processing tasks, or tasks that depend on large data sets that may not be available to the end user (e.g. FASTQ alignment or raw flow cytometry data processing). Such tasks do not fit well into the standard R CMD build paradigm, for example either as vignettes or .R files under /data since these would be invoked each time an end user builds a package from source. We desire, however, to maintain a link between the processed data sets and the processing code that generates them. We note that DataPackageR is distinct from other reproducible research frameworks such as workflowr or drake , in that it is designed to reproducibly prepare data for analysis, using an existing code base, with little additional effort. The product of DataPackageR is nothing more than an R package that can be used by anyone. The resulting data packages are meant to be shared, to serve as the basis for further analysis ( Figure 1) and distributed as part of publications. These downstream analyses may leverage any of the existing work-flow management tools. Our goal is that data sets forming the basis of scientific findings can be confidently shared in their processed form which is often much smaller and easier to distribute. Within the VISC, a team of analysts, statistical programmers, and data managers work collaboratively to analyze pre-clinical data arising from multiple trials. There are multiple assays per trial. The challenges associated with ensuring the entire team works from the same version of a frequently changing and dynamic data set, motivated the development of DataPackageR. The tool is routinely used to process and standardize trial data for submission to The Collaboration for AIDS Vaccine Discovery (CAVD) Data Space. We demonstrate how DataPackageR is used to process and package multiple types of assay data from an animal trial of an experimental HIV vaccine.

Data

We demonstrate the use of DataPackageR for processing data from a vaccine study, named MX1, designed to examine the antibody responses to heterologous N7 Env prime-boost immunization in macaques. The study had four treatment groups plus a control arm, with six animals per group. Samples were collected at three time points: t1: baseline, post-prime 2, post-boost 1, t2: post-boost 2, t3: post-boost 3. Six assays were run at each time point, using either serum samples or peripheral blood mononuclear cells (PBMCs). The assays were: 1) enzyme-linked immunosorbent assay (ELISA), an immunological assay that enables detection of antibodies, antigens, proteins and/or glycoproteins (serum); 2) a neutralizing antibody (Ab) assay (serum); 3) a binding antibody multiplex assay (BAMA) to assess antibody response breadth (serum); 4) a BAMA assay to permit epitope mapping (serum); 5) an antibody dependent cellular cytotoxicity (ADCC) assay (serum); and 6) an intracellular cytokine staining assay to assess cellular responses (PBMCs). The raw data and environment to reproduce the processing with DataPackageR are distributed as a Docker image on hub.docker.com as gfinak/datapackager:latest. We have restricted the number of FCS files distributed in the container to limit the size of the image and speed up processing of FCM data for demonstration purposes.

Flow cytometry and other assay data

Flow cytometry (FCM) is a high content, high throughput assay for which VISC leverages specialized data processing and analytics tools. Raw FCS files and manual gate information in the form of FlowJo (FlowJo LLC, Ashland, OR) workspace files are uploaded directly to VISC by the labs. The raw data are processed with open source BioConductor software ( flowWorkspace) to import and reproduce the manual gating, extract cell subpopulation statistics, and access the single-cell event-level data required for downstream modeling of T-cell polyfunctionality and immunogenicity . Tables of extracted cell populations, cell counts, proportions, and fluorescence intensities are included in study packages, together with an Rmarkdown vignette describing the data processing. Due to the size of the raw FCS files, they are imported for processing from a location external to the data package source tree, so that the raw files are not part of the final package, but vignettes outlining the data processing are automatically included. Remaining assay data are of reasonable size and are provided raw data in tabular (csv) form, imported into the package, processed and standardized from the inst/extdata package directory. Users can run and connect to an Rstudio instance in the container, where code and data to build the MX1 data package reside. MX1 is just one study from over 33 prepared by VISC over the past 3 year using the DataPackageR infrastructure. Each study consists of three to seven data types, each with different QC and standardization criteria, each produced by different labs, all on a different time line. For each data type, VISC produces QC reports for the labs, statistical analysis plans for each data type, statistical reports and analyses for each data type, and an integrated analysis for manuscripts and publications. The data generally arrive over a time period of several months, and reports are also generated over several months. Different individuals are responsible for the generation of different reports. It is critical that all reports are based off the same data set, and that they are updated when individual data sets are updated. For the MX1 study above, the data package was updated 29 times between 2015 and 2017. The data set version was incremented from 0.1.0 to 0.2.21 over that time frame. Six data sets were added to the package over two years, 17 commits were associated with corrections or updates to data sets (e.g. additional or corrected annotations). Six follow up reports based on the data package were updated each time there was an addition, or correction to the data. DataPackageR helped ensure consistency between the different reports and the data, something that would have been incredibly difficult without this framework.

Caveats

We note a number of limitations with the existing framework that we hope to address in the future. First, our dependence on git and gtihub to version control data sets means that in the long-term the size of the local copy of a repository will grow with every changed data set. We are exploring approaches to cache older versions of data sets remotely, analogous to approaches taken by BioConductor’s ExperimentHub ( https://doi.org/doi:10.18129/B9.bioc.ExperimentHub), and packages like datastorr ( https://github.com/ropenscilabs/datastorr).

Summary

Reproducibility is increasingly emphasized for scientific publications. We describe a new utility R package, DataPackageR that serves to help automate and track the processing and standardization of diverse data sets into analysis-ready data packages that can be easily distributed for analysis and publication. DataPackageR, when paired with a version control system such as git, decouples data processing from data analysis while tracking changes to data sets, ensuring data objects are documented, and keeping a record of data processing pipelines as vignettes within the data package. The principle behind the tool is that it remains a lightweight and non-intrusive framework that easily plugs into most R-based data analytic work-flows. It places few restrictions on the user code therefore most existing scripts can be ported to use the package. The VISC has been using DataPackageR for a number of years to perform reproducible end-to-end analysis of animal trial data, and the package has been used to publicly share sets for a number of published manuscripts .

Software and data availability

Source code available from: http://github.com/RGLab/DataPackageR Archived source code as at time of publication: https://doi.org/10.5281/zenodo.1292095 Reproducible examples: http://hub.docker.com/r/gfinak/datapackager/ License: MIT license Partial data for the MX1 study to demonstrate processing using DataPackageR are available as a docker container from gfinak/DataPackageR:latest. The processed MX1 data are available on the CAVD DataSpace data sharing and discovery tool at http://dataspace.cavd.org under study identifier, CAVD 451. At the time of publication the complete data set is available to CAVD members only. This is a well-written and clear paper about a very interesting package that helps to raise awareness about the challenges of collaborating on data sets that change over time. The package describes is a useful addition to the toolkit of R-based infrastructure to promote transparent and open research. Previous work includes workflowr and drake. This is a very incomplete list. There are many other R packages that deal specifically with data provenance that would be relevant to note here. And it's not clear specifically what the previous work lacks? The authors say that rerunning rnaseq code is impractical and time consuming, but there are many existing approaches to manage that problem, e.g. the venerable make. It's not clear how this package solves a problem that can't be solved with existing packages. How is their package different to any previous effort? What specific problem does it solve? What makes it notable and a unique contribution? I'm confident the authors can answer these questions, and I think it would make the ms. more useful and impactful if they could do so more directly and specifically. The reader will want to know that this is not just a re-invention of the wheel, or a thin wrapper around something they already use heavily. The detail that it is a lightweight alternative to Galaxy is an important motivation that should be noted to the reader earlier in the paper. This sentence seems to hint at the unique value of this package: "it is designed to reproducibly prepare data for analysis, using an existing code base" but it needs more description and elaboration to more clearly show the reader why this package is necessary. It would also be helpful to hear more about the research context where this package is optimal, you say something about medium-sized organisations. But for researchers who don't do DNA analysis and flow cytometry, a little more detail on the size and structure of the research team and typical research process will help them recognise if this solves a problem they also have. It is a nice touch to prompt documentation of data sets. I wonder about having so many top-level non-standard package files, that will be off-putting to some people who are not used to overloading the package structure that. How do packages made by this package communicate to the user the initial source of the data, and the final location? For example, how does it capture the date, time, instrument, etc where the data came from, and the DOI and repository of where the data has been finally deposited? Is this added in free text in the roxygen documentation, or are there fields especially for this? The system provided by this package seems a bit disconnected from the full pipeline, which might limit its archival value. Seems that it's optimised for work-in-progress data management, with less concern for the long term. Where do the authors recommend the resulting packages go when the work is complete? I don't think GitHub is a good solution for long term archiving. There is a mention of Docker in the 'Use Case' section, but no explanation of whether or not the package no handles this, or not. Also in this section it would be good to have URLs to the packages being discussed so the reader can inspect them in more detail, and see proof of the concept. In the 'caveat' section there is a mention of the size of the data, but no specific details. It would be more helpful to users to know the ballpark sizes that this package is good for. It is up to 5 MB of processed data files? Do the authors have any guidance or rules of thumb such as 10 MB of FCM raw data can typically be stored as 5MB of package data? These would be very helpful for potential users to gauge the usefulness of this tool their own situation. In the console output for DataPackageR::datapackage_skeleton it would be nice to use usethis:::done() for more consistent formatting of the messages. Also, in the example code on the GitHub readme, creating the pkg in a tmp directory makes it quite hard to find to edit the yml file and inspect the contents. I understand that using a tempfile makes it easy to test and knit, but it's not very user-friendly. Perhaps worth noting somewhere that the packages this package creates are not CRAN-ready (I got 1 warning and 1 note with the mtcars20 package). It would be good to have some guidance about how the authors recommend packages created by this method be shared (presumably github?). I have read this submission. I believe that I have an appropriate level of expertise to confirm that it is of an acceptable scientific standard, however I have significant reservations, as outlined above. The authors have designed a package that allows for bundling of multiple data types that can be versioned, along with preprocessing scripts and raw data into an R data package. The main use case for this package seems to be systems biology projects where multiple datatypes (such as RNAseq, DNAseq, flow cytometry, etc.) need to be aggregated together for analysis by multiple groups. As a systems biologist, I believe that `DataPackageR` does fill a useful niche between complete research compendia and storage of results in a database, which may require dedicated data modeling. I have run the docker container example and built the MR1 data package in the vignette. The ability to version aggregated datasets and tie an analysis to a version is a very important one. As the other reviewer did suggest, putting large datasets into GitHub would cause the repo to become very large and I'm glad that the authors have tried to address this. I see `DataPackageR` working well with both workflow tools (such as `drake`) but also potentially data integrity testing tools (such as `assertr`) to guarantee a common version of the data. I believe it serves a useful purpose within data analysis. I have read this submission. I believe that I have an appropriate level of expertise to confirm that it is of an acceptable scientific standard. The authors have addressed my concerns in their responses and revisions. I have read this submission. I believe that I have an appropriate level of expertise to confirm that it is of an acceptable scientific standard. In this article, Finak et al. describe a new package for pre-processing and sharing of data within the R programming language. Their DataPackageR package provides a standardized framework for traceable pre-processing and version control of R data objects, facilitating reproducible research across a diverse team of collaborators. The manuscript is clear and concise, and the function and benefits of the software are clear. Nonetheless, I have some comments (listed below) that the authors might consider to improve both the software and the manuscript. The processed data are stored as RData files in the data/ directory and distributed as part of the constructed data package. These files can become somewhat large (> 100 MB), which in and of itself is not a problem; indeed, having to deal with large data files may not be avoidable in some contexts. However, the text on page 5 and Figure 1 suggest that the user should place the generated data files under version control via Git prior to distribution. With Git, every clone of the package will contain every version of all data files, inflating the size of the repository for download and on disk. This may become prohibitive for practical use (e.g., GitHub forbids uploads of files above a certain size), and feels unnecessary given that only one version of the data will be active at any one time. Perhaps the authors would consider supporting the versioning and acquisition of RData files from a separate location, mimicking the behaviour of (or directly using) Bioconductor's ExperimentHub where large data files are downloaded and cached locally as needed? The YAML header seems to be limited to R scripts or Rmd files for data pre-processing. However, as the authors would appreciate, a lot of pre-processing is performed on the command line, e.g., with aligners and related software. It would be awkward (and involve extra work) to have to wrap these scripts in R/ Rmd files in order for them to be executed by DataPackageR. To provide a concrete example: I would like DataPackageR to directly call my existing Bash scripts for alignment of RNA-seq data, followed by execution of Rmd reports for assigning reads to genes to get a count table that is saved as an RData object. Does the YAML header permit dependencies between scripts? Say I have a long pre-processing pipeline that is split across multiple scripts for convenience. Does the order of files in the header reflected in the order of execution? And are they executed in the same location, so that intermediate files produced by one script (that are not intended to be included in the final package) can be picked up as inputs to the following script? The MX1 use case on pages 6-7 seems under-described - I don't get an intuition as to why DataPackageR was beneficial for this project. It would be demonstrative to have some specific examples of how the version control and change tracking were advantageous in a collaborative environment. For example, how many DataVersion bumps were performed throughout the course of the project, and why? Were there any issues arising from changes to the processed data, and how were these resolved? I have read this submission. I believe that I have an appropriate level of expertise to confirm that it is of an acceptable scientific standard, however I have significant reservations, as outlined above.
  20 in total

1.  Reproducibility in science.

Authors:  Michael B Yaffe
Journal:  Sci Signal       Date:  2015-04-07       Impact factor: 8.192

2.  Reproducible research: a bioinformatics case study.

Authors:  Robert Gentleman
Journal:  Stat Appl Genet Mol Biol       Date:  2005-01-11

3.  What information should be required to support clinical "omics" publications?

Authors:  Keith A Baggerly; Kevin R Coombes
Journal:  Clin Chem       Date:  2011-05       Impact factor: 8.327

4.  Journals unite for reproducibility.

Authors:  Marcia McNutt
Journal:  Science       Date:  2014-11-07       Impact factor: 47.728

5.  The increasing urgency for standards in basic biologic research.

Authors:  Leonard P Freedman; James Inglese
Journal:  Cancer Res       Date:  2014-07-17       Impact factor: 12.701

6.  Bioconductor: open software development for computational biology and bioinformatics.

Authors:  Robert C Gentleman; Vincent J Carey; Douglas M Bates; Ben Bolstad; Marcel Dettling; Sandrine Dudoit; Byron Ellis; Laurent Gautier; Yongchao Ge; Jeff Gentry; Kurt Hornik; Torsten Hothorn; Wolfgang Huber; Stefano Iacus; Rafael Irizarry; Friedrich Leisch; Cheng Li; Martin Maechler; Anthony J Rossini; Gunther Sawitzki; Colin Smith; Gordon Smyth; Luke Tierney; Jean Y H Yang; Jianhua Zhang
Journal:  Genome Biol       Date:  2004-09-15       Impact factor: 13.583

7.  Git can facilitate greater reproducibility and increased transparency in science.

Authors:  Karthik Ram
Journal:  Source Code Biol Med       Date:  2013-02-28

8.  MAST: a flexible statistical framework for assessing transcriptional changes and characterizing heterogeneity in single-cell RNA sequencing data.

Authors:  Greg Finak; Andrew McDavid; Masanao Yajima; Jingyuan Deng; Vivian Gersuk; Alex K Shalek; Chloe K Slichter; Hannah W Miller; M Juliana McElrath; Martin Prlic; Peter S Linsley; Raphael Gottardo
Journal:  Genome Biol       Date:  2015-12-10       Impact factor: 13.583

Review 9.  Comparability and reproducibility of biomedical data.

Authors:  Yunda Huang; Raphael Gottardo
Journal:  Brief Bioinform       Date:  2012-11-27       Impact factor: 11.622

10.  Time to do something about reproducibility.

Authors:  Sean J Morrison
Journal:  Elife       Date:  2014-12-10       Impact factor: 8.140

View more
  5 in total

1.  The Computational article format: Software as a research output.

Authors:  Greg Finak
Journal:  Cytometry A       Date:  2018-12       Impact factor: 4.355

Review 2.  Essential guidelines for computational method benchmarking.

Authors:  Lukas M Weber; Wouter Saelens; Robrecht Cannoodt; Charlotte Soneson; Alexander Hapfelmeier; Paul P Gardner; Anne-Laure Boulesteix; Yvan Saeys; Mark D Robinson
Journal:  Genome Biol       Date:  2019-06-20       Impact factor: 13.583

3.  Datastorr: a workflow and package for delivering successive versions of 'evolving data' directly into R.

Authors:  Daniel S Falster; Richard G FitzJohn; Matthew W Pennell; William K Cornwell
Journal:  Gigascience       Date:  2019-05-01       Impact factor: 6.524

4.  Big data-based identification of methylated genes associated with drug resistance and prognosis in ovarian cancer.

Authors:  Bingbing Yan; Chunqiu Xiong; Feifeng Huang; Mingming Zhang; Yan Mo; Hua Bai
Journal:  Medicine (Baltimore)       Date:  2020-07-02       Impact factor: 1.817

5.  Orchestrating and sharing large multimodal data for transparent and reproducible research.

Authors:  Anthony Mammoliti; Petr Smirnov; Minoru Nakano; Zhaleh Safikhani; Christopher Eeles; Heewon Seo; Sisira Kadambat Nair; Arvind S Mer; Ian Smith; Chantal Ho; Gangesh Beri; Rebecca Kusko; Eva Lin; Yihong Yu; Scott Martin; Marc Hafner; Benjamin Haibe-Kains
Journal:  Nat Commun       Date:  2021-10-04       Impact factor: 14.919

  5 in total

北京卡尤迪生物科技股份有限公司 © 2022-2023.