Skip to contents

This function runs the PUMA algorithm to predict a miRNA-gene regulatory network

Usage

puma(
  motif,
  expr = NULL,
  ppi = NULL,
  alpha = 0.1,
  mir_file,
  hamming = 0.001,
  iter = NA,
  output = c("regulatory", "coexpression", "cooperative"),
  zScale = TRUE,
  progress = FALSE,
  randomize = c("None", "within.gene", "by.gene"),
  cor.method = "pearson",
  scale.by.present = FALSE,
  edgelist = FALSE,
  remove.missing.ppi = FALSE,
  remove.missing.motif = FALSE,
  remove.missing.genes = FALSE,
  mode = "union"
)

Arguments

motif

A miRNA target dataset, a data.frame, matrix or exprSet containing 3 columns. Each row describes the association between a miRNA (column 1) its target gene (column 2) and a score (column 3) for the association from TargetScan or miRanda

expr

An expression dataset, as a genes (rows) by samples (columns) data.frame

ppi

This can be set to 1) NULL which will be encoded as an identity matrix between miRNAs in PUMA for now. Or 2) it can include a set of TF interactions, or 3) a mix of TFs and miRNAs.

alpha

value to be used for update variable, alpha (default=0.1)

mir_file

list of miRNA to filter the PPI matrix and prevent update of miRNA edges.

hamming

value at which to terminate the process based on hamming distance (default 10^-3)

iter

sets the maximum number of iterations PUMA can run before exiting.

output

a vector containing which networks to return. Options include "regulatory", "coregulatory", "cooperative".

zScale

Boolean to indicate use of z-scores in output. False will use [0,1] scale.

progress

Boolean to indicate printing of output for algorithm progress.

randomize

method by which to randomize gene expression matrix. Default "None". Must be one of "None", "within.gene", "by.genes". "within.gene" randomization scrambles each row of the gene expression matrix, "by.gene" scrambles gene labels.

cor.method

Correlation method, default is "pearson".

scale.by.present

Boolean to indicate scaling of correlations by percentage of positive samples.

edgelist

Boolean to indicate if edge lists instead of matrices should be returned.

remove.missing.ppi

Boolean to indicate whether miRNAs in the PPI but not in the motif data should be removed. Only when mode=='legacy'.

remove.missing.motif

Boolean to indicate whether genes targeted in the motif data but not the expression data should be removed. Only when mode=='legacy'.

remove.missing.genes

Boolean to indicate whether genes in the expression data but lacking information from the motif prior should be removed. Only when mode=='legacy'.

mode

The data alignment mode. The mode 'union' takes the union of the genes in the expression matrix and the motif and the union of TFs in the ppi and motif and fills the matrics with zeros for nonintersecting TFs and gens, 'intersection' takes the intersection of genes and TFs and removes nonintersecting sets, 'legacy' is the old behavior with version 1.19.3. #' Parameters remove.missing.ppi, remove.missingmotif, remove.missing.genes work only with mode=='legacy'.

Value

An object of class "panda" containing matrices describing networks achieved by convergence with PUMA algorithm.

"regNet" is the regulatory network

"coregNet" is the coregulatory network

"coopNet" is the cooperative network which is not updated for miRNAs

References

Kuijjer, Marieke L., et al. "PUMA: PANDA using microRNA associations." Bioinformatics 36.18 (2020): 4765-4773.

Examples

data(pandaToyData)
mirs = c("AHR","AR","ARID3A","ARNT","BRCA1","CEBPA","CREB1","DDIT3")
pumaRes <- puma(pandaToyData$motif,
           pandaToyData$expression,NULL,mir_file=mirs,hamming=.1,progress=TRUE)