No description, website, or topics provided.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
R
data-raw
data
man
vignettes
.Rbuildignore
.gitignore
DESCRIPTION
LICENSE
LICENSE.md
NAMESPACE
README.md

README.md

LabguruR

The goal of LabguruR is to allow researchers, data scientists, bioniformaticians to directly communicate with Labguru. Currently the package allows you to pull and push datasets and visualizations. The currrent package is under development and you can add tickets and issues;

Installation

You can install LabguruR from github with:

# Install devtools if needed
if (!require(devtools)) install.packages("devtools")

devtools::install_github("BioData/LabguruR")

You require httr and jsonlite to use LabguruR. If these dependencies weren't installed automatically (or you're not sure), run:

if (!require(httr)) install.packages("httr")
if (!require(jsonlite)) install.packages("jsonlite")

Load LabguruR

library(LabguruR)

Authenticate

First get an authentication token using labguru_authenticate.

labguru_authenticate(email    = "my@@email.com",
                     password = "mypassword",
                     server   = "https://jonathan.labguru.com",
                     set_sys  = TRUE)

With set_sys = TRUE your system variables LABGURU_SERVER and LABGURU_TOKEN are automatically set and can be picked up by future function calls conencting to the Labguru API. Check these variables using labguru_sys_variables()

labguru_sys_variables()

Upload data to Labguru

You can now upload a dataset to Labguru using labguru_upload_dataset. There is sample data you can load from the package.

data("compensation")
compensation
# HAS THE API FOR DATASET CHANGED ALREADY? BECAUSE IT SEEMS THIS FUNCTION BROKE.
up_0 <- labguru_upload_dataset(dataset = compensation,
                               name    = paste0("compensation_", gsub("[^[:alnum:]]","", date())))
up_0

List available datasets from labguru

ld <- labguru_list_datasets(page = 1)
head(ld)

Download single dataset

df <- labguru_download_dataset(dataset_id = 1)
head(df)

Upload a R script

up_1 <- labguru_upload_file(file  = "../data-raw/sample_upload_script.R", 
                            title = "My R script")
up_1

Upload an image

up_2 <- labguru_upload_file(file  = "../data-raw/grazing.png", 
                            title = paste0("grazing_", gsub("[^[:alnum:]]","", date())))
up_2

Attach uploaded file to a database

up_3 <- labguru_link_visualization(dataset_id = 5511,
                                   attachment_id = up_2$id,
                                   name = "my_link")
up_3

Upload image with immediate link to database

up_4 <- labguru_upload_visualization(file  = "../data-raw/grazing.png", 
                                     title = paste0("grazing_attached_", gsub("[^[:alnum:]]","", date())),
                                     dataset_id = 61,
                                     name = "my_second_link")
up_4

ic50 Analysis

Only downloading a plate's measure, dilution and control files

Stores measure.txt, control.txt and dilution.txt in a new plate folder. If plate/ directory already exists it only runs if this directory is empty.

labguru_download_plate(plate = 271,
                       dir = "./plate")

ic50 analysis storing plate information and results locally

This function downloads the plate using plate_id and stores those results in outdir_plate. It then looks for the data files in the indir directory and performes the ic50 analysis using plates, inhib, normalize and graphics. It stores results in outdir_results directory. If img_png is true it also stores the images from the dose_response_curves pdf as single png images.

library(ic50) # ic50 library has to be loaded otherwise you get errors with '.lastxx_measure' files

ic50 <- labguru_ic50_analysis(plate_id       = 271, 
                              indir          = ".",
                              outdir_plate   = "./plate",
                              outdir_results = "./results",
                              plates         = 2,
                              inhib          = rep(0.5,7),
                              normalize      = "mean",
                              graphics       = "single",
                              img_png        = TRUE)
ic50

Upload ic50 results to Labguru

up_5 <- labguru_ic50_upload(table       = ic50$result,
                            name        = paste0("data_", gsub("[^[:alnum:]]","", date())),
                            results_dir = ic50$dir,
                            img_pdf     = "img")
up_5

Experiment

Project

List all projects

projects <- labguru_list_projects(get_cols = "all")
dplyr::glimpse(projects)

Download project information

project_1 <- labguru_get_project(project_id = 1)
project_1

Start new project

project_new <- labguru_add_project(title       = "My new project",
                                   description = "This project is an analysis of ...",
                                   return      = "all")
project_new

Folder

List all folders

folders <- labguru_list_folders(project_id = 91, # project_id = NULL for all folders in all projects (default)
                                get_cols   = "all")
dplyr::glimpse(folders)

Download folder information

folder_1 <- labguru_get_folder(folder_id = 31)
folder_1

Start new folder

folder_new <- labguru_add_folder(title       = "My new folder",
                                 project_id  = 91,
                                 description = "This folder is a test from LabguruR",
                                 return      = "all")
folder_new

Experiment

List all experiments

experiments <- labguru_list_experiments(folder_id  = 41,
                                        get_cols   = "limited")
experiments

Download experiment information

experiment_1 <- labguru_get_experiment(experiment_id = 141)
experiment_1[1:4]

Start new experiment

experiment_new <- labguru_add_experiment(title       = "My new experiment 26-7-2018",
                                         project_id  = 91,
                                         folder_id   = 41,
                                         description = "This experiment is a test from LabguruR  26-7-2018",
                                         return      = "all")
experiment_new[1:4]

Experiment procedures

ep_list <- labguru_list_experiment_procedures(experiment_id = 141, get_cols = "all")
dplyr::glimpse(ep_list)
ep_new <- labguru_add_experiment_procedure(name          = "New procedure 26-7-2018",
                                           experiment_id = 141)
ep_new
ep_271 <- labguru_get_experiment_procedure(experiment_procedure_id = 721)
ep_271

Elements

List elements is EMPTY!

el_list <- labguru_list_elements(experiment_id = 141)
el_new <- labguru_add_element(data = "<p>Hello World</p>",
                              experiment_procedure_id = 721)
el_new
el_1341 <- labguru_get_element(element_id = 1341)
el_1341

Upload R script as element

el_rsc  <- labguru_add_element(rscript = "../data-raw/sample_upload_script.R",
                               experiment_procedure_id = 721)
el_rsc

Upload image as element

Use labguru image id (attachments_id)

el_img  <- labguru_add_element(img_id = 1971,
                               experiment_procedure_id = 721)
el_img