Assuming we are working on a LSF platform, we define it using type. Currently we support LSF and Torque (SGE).

qobj <- queue(type = "lsf", queue = "normal")
#> Setting default time to:  72:00 . If this is more than queue max (/improper format), job will fail. You may change this in job()
#> Setting default memory to:  10000 . If this is more than queue max (/improper format), job will fail.

creating a pipeline definition: Style1

job1 <- job(name = "myjob1", cmds = "sleep1", q_obj = qobj)
job2 <- job(name = "myjob2", cmds = "sleep2", q_obj = qobj, previous_job = "myjob1", dependency_type = "serial")
job3 <- job(name = "myjob3", cmds = "sleep3", q_obj = qobj, previous_job = "myjob1", dependency_type = "serial")
fobj <- flow(name = "myflow", jobs = list(job1, job2, job3), desc="description")
#source('/DRIVES/Dropbox2/Dropbox/public/github_flow/R/plot-funcs.R')
plot_flow(fobj)

dat <- flowr:::.create_jobs_mat(fobj)
knitr:::kable(dat)
jobnames prev_jobs dep_type sub_type cpu nodes jobid prev_jobid
myjob1 myjob1 none scatter 1 1 1 NA
myjob2 myjob2 myjob1 serial scatter 1 1 2 1
myjob3 myjob3 myjob1 serial scatter 1 1 3 1

An example of Multiple jobs

Submission types

Dependency types

Serial: one to one relationship

cmds = rep("sleep 5", 10)
jobj1 <- job(q_obj=qobj, cmd = cmds, submission_type = "scatter", name = "job1")
jobj2 <- job(q_obj=qobj, name = "job2", cmd = cmds, submission_type = "scatter", 
             dependency_type = "serial", previous_job = "job1")
fobj <- flow(jobs = list(jobj1, jobj2))
plot_flow(fobj)

Gather: many to one relationship

jobj1 <- job(q_obj=qobj, cmd = cmds, submission_type = "scatter", name = "job1")
jobj2 <- job(q_obj=qobj, name = "job2", cmd = cmds, submission_type = "scatter", 
             dependency_type = "gather", previous_job = "job1")
fobj <- flow(jobs = list(jobj1, jobj2))
plot_flow(fobj)

Burst: one to many relationship

jobj1 <- job(q_obj=qobj, cmd = cmds, submission_type = "serial", name = "job1")
jobj2 <- job(q_obj=qobj, name = "job2", cmd = cmds, submission_type = "scatter", 
             dependency_type = "burst", previous_job = "job1")
fobj <- flow(jobs = list(jobj1, jobj2))
plot_flow(fobj)

For more details look at Building flowr recepies