Tool-class {sevenbridges} | R Documentation

## Class Tool

### Description

codeTool class extends `CommandLineTool` with more seven bridges flabored fields the `SBG` class. `obj$toJSON()`, `obj$toJSON(pretty = TRUE)` or `obj$toYAML()` will convert a `Tool` object into a text JSON/YAML file.

### Value

a Tool object.

### Fields

`context`

  [character] by default: http://www.commonwl.org/draft-2/

`owner`

  [list] a list of owner names.

`contributor`

  [list] a list of contributor names.

### Methods

`copy_obj()`

  this is a hack to make copy of reference cwl object

`get_input(name = NULL, id = NULL)`

  get input objects by names or id

`get_input_port()`

  the inputs node with `sbg:includeInPorts` equals `TRUE`

`get_output(name = NULL, id = NULL)`

  get output objects by names or id

`get_required()`

  return required input fields types, names of them are input id

`input_id(full = FALSE, requiredOnly = FALSE)`

  Get input id from a Tool, when full = TRUE, connect tool id with input id. e.g. If requiredOnly = TRUE, return required field only.

`input_matrix(new.order = c("id", "label", "type", "required", "prefix", "fileTypes"), required = NULL)`

  This return a matrix of input parameters, by default, following the order id, label, type, required, prefix, fileTypes. new.order accept names of column you want to print, but it has to be a field of inputs. When its set to NULL, it prints all fields. When required = TRUE, only print required field.

`input_type()`

  this return a vector of types, names of them are input id

`output_id(full = FALSE)`

  Get output id from a Tool, when full = TRUE, connect tool id with input id.

`output_matrix(new.order = c("id", "label", "type", "fileTypes"))`

  This return a matrix of output parameters, by default, following the order id, label, type, fileTypes. new.order accept names of column you want to print, but it has to be a field of outputs. When its set to NULL, it prints all fields. when required = TRUE, only print required field.

`output_type()`

  this return a vector of types, names of them are output id

`run(run_inputs = list(), engine = c("bunny", "rabix", "cwlrun"))`

  Run this tool with inputs locally. engine supported: bunny, rabix, cwlrun. Inputs accept list or JSON

`set_input_port(ids, include = TRUE)`

  Set inputs ports field `sbg:includeInPorts` to the value of include, default is `TRUE`.

`set_required(ids, required = TRUE)`

  Set an input node required or not required. The first parameter takes single input id or more than one ids. the second parameters `required` is the value you want to set to inputs. `TRUE` means set to required.

### Examples

    t1 = system.file("extdata/app", "tool_star.json", package = "sevenbridges")
    # convert json file into a Tool object
    t1 = convert_app(t1)
    # get input type information
    t1$input_type()
    # get output type information
    t1$output_type()
    # return a input matrix with more informtion
    t1$input_matrix()
    # return only a few fields
    t1$input_matrix(c("id", "type", "required"))
    # return only required
    t1$input_matrix(required = TRUE)
    # return everything
    t1$input_matrix(NULL)
    # return a output matrix with more informtion
    t1$output_matrix()
    # return only a few fields
    t1$output_matrix(c("id", "type"))
    # return everything
    t1$output_matrix(NULL)
    # get input id
    t1$input_id()
    # get full input id with Tool name
    t1$input_id(TRUE)
    # get output id
    t1$output_id()
    # get full output id
    t1$output_id(TRUE)
    # get required input id
    t1$get_required()
    # set input required
    t1$set_required(c("#reads", "winFlankNbins"))
    t1$get_required()
    t1$set_required("reads", FALSE)
    t1$get_required()
    t1$get_input(name = "ins")
    t1$get_input(id = "#winFlankNbins")
    t1$get_output(name = "gene")
    t1$get_output(id = "#aligned_reads")
    # get a tool from a flow
    f1 = system.file("extdata/app", "flow_star.json", package = "sevenbridges")
    # convert json file into a Tool object
    f1 = convert_app(f1)
    t2 = f1$get_tool("STAR$")
    oid = t2$get_input_port()
    oid
    # set new ports
    t2$input_id()
    t2$set_input_port("#chimScoreSeparation")
    t2$get_input_port()
    t2$set_input_port("#chimScoreSeparation", FALSE)
    t2$get_input_port()
    # run the tool locally with example data
    ## Not run:
    t3 = system.file("extdata/app/dna2protein", "translate.cwl.json", package = "sevenbridges")
    t3 = convert_app(t3)
    fl = system.file("extdata/app/dna2protein/data", "input.txt", package = "sevenbridges")
    set_test_env("dind", "tengfei/testenv", "~/mounts")
    t3$input_type()
    t3$run(list(input_file = Files(fl)))  # Not File
    ## End(Not run)

[Package sevenbridges version 1.8.1 Index]