knitr::opts_chunk$set( collapse = TRUE, comment = "#>" )
The parallelization supported by the function daeqtl_mapping() hinges on the
packages of the Futureverse, namely {future}
and {future.apply}.
Here's an example that performs DAEQTL mapping in parallel across 3 cores. The
data table snp_pairs is split into 3 chunks (argument .n_chunks) so that
each worker ("forked process") runs on one of those chunks.
library(daeqtlr) n_workers <- 3L future::plan(future::multisession, workers = n_workers) snp_pairs <- read_snp_pairs(file = daeqtlr_example("snp_pairs.csv")) zygosity <- read_snp_zygosity(file = daeqtlr_example("zygosity.csv")) ae <- read_ae_ratios(file = daeqtlr_example("ae.csv")) mapping_dt <- daeqtl_mapping( snp_pairs = snp_pairs, zygosity = zygosity, ae = ae ) # This is not mandatory but it's a good practice to reset the parallelization # setup to sequential. future::plan("sequential")
This example applies to a situation where you'd want to run on two remote
computers, e.g. rey and r2d2.
For the following code to work you need the following setup:
rey and r2d2.{daeqtlr} on those machines.library(daeqtlr) workers <- c(rep("rey", times = 64L), rep("r2d2", times = 40L)) # `future::plan` may take one or two minutes to complete. plan <- future::plan(future::cluster, workers = workers, homogeneous = FALSE) snp_pairs <- read_snp_pairs(file = daeqtlr_example("snp_pairs.csv")) zygosity <- read_snp_zygosity(file = daeqtlr_example("zygosity.csv")) ae <- read_ae_ratios(file = daeqtlr_example("ae.csv")) mapping_dt <- daeqtl_mapping( snp_pairs = snp_pairs, zygosity = zygosity, ae = ae ) # This is not mandatory but it's a good practice to reset the parallelization # setup to sequential. future::plan("sequential")
If you want to run this code from one of those machines, then change the
hostname of that computer to "localhost", e.g., if you intended to run the
code above from rey, then you would do:
library(daeqtlr) workers <- c(rep("localhost", times = 64L), rep("r2d2", times = 40L)) # `future::plan` may take one or two minutes to complete. plan <- future::plan(future::cluster, workers = workers, homogeneous = FALSE) snp_pairs <- read_snp_pairs(file = daeqtlr_example("snp_pairs.csv")) zygosity <- read_snp_zygosity(file = daeqtlr_example("zygosity.csv")) ae <- read_ae_ratios(file = daeqtlr_example("ae.csv")) mapping_dt <- daeqtl_mapping( snp_pairs = snp_pairs, zygosity = zygosity, ae = ae ) # This is not mandatory but it's a good practice to reset the parallelization # setup to sequential. future::plan("sequential")
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.