Last data update: 2014.03.03

R: Infer miRNA-mRNA interactions using paired expression data...
roleswitchR Documentation

Infer miRNA-mRNA interactions using paired expression data from a single sample.

Description

Infer Probabilities of MiRNA-mRNA Interaction Signature (ProMISe) using paired expression data from a single sample. Roleswitch operates in two phases by inferring the probabilities of mRNA (miRNA) being the targets ("targets") of miRNA (mRNA), taking into account the expression of all of the mRNAs (miRNAs) due to their potential competition for the same miRNA (mRNA). Due to mRNA transcription and miRNA repression events simultaneously happening in the cell, Roleswitch assumes that the total transcribed mRNA levels are higher than the observed (equilibrium) mRNA levels and iteratively updates the total transcription of each mRNA targets based on the above inference. NB: in the paper, we used ProMISe as both the model name and inferred score name.

Usage

roleswitch(x.o, z.o, c, maxiter = 200, tol = 1e-05,
  eta.z = 0.001, expected.total = 1.3, verbose = TRUE,
  annotation.db, probe2genesymbol=TRUE, ...)

Arguments

x.o

A numeric vector as the observed expression of N mRNAs. NOTE: rownames is required for x.o to map each mRNA to the rownames of the seed match matrix.

z.o

A numeric vector as the observed expression of M miRNAs. NOTE: rownames is required for z.o to map each miRNA to the colnames of the seed match matrix.

c

A numeric N x M matrix of integers representing the seed match matrix between N mRNA and M miRNA. NOTE: dimnames is required for the seed match matrix to map each mRNA and each miRNA to its rownames and colnames, respectively.

maxiter

The maximum number of iterations before terminating roleswitch inference (default: 200).

tol

The threshold on the largest absolute difference between the current and the previous probabilities of miRNA-mRNA interactions (default: 1e-5).

eta.z

A scalar decimal value specifying the amount of update applied to the total transribed mRNA, which is inferred durin the iteration (default: 1e-3).

expected.total

The ratio of total transcription over observed transcription (default: 1.3).

verbose

Display progress at each iteration.

annotation.db

Charater string specifying the name of the annotation package for microarray platform if the input x.o is an eSet or ExpressionSet object. This is optional only if annotation slot in the eSet x.o is defined.

probe2genesymbol

Whether to convert probe id to gene symbol (Default: TRUE). This only applies when x.o is an eSet/ExpressionSet. Probe ID are usually the featureNames, an attribute under the class eSet. If TRUE, conversion from probe id to gene symbol is performed automatically.

...

Arguments passed to getSeedMatrix.

Details

The model assumes total expression of mRNA is unobserved and higher than the observed corresponidng expression due to RNA degradation induced by miRNA-mRNA interaction. The general algorithm is outlined as follows:

(1) Infer mRNA i targeted by miRNA k taking into account the hidden total expression of 1...N mRNA and miRNA k

(2) Estimate total transcription level of mRNA i

(3) Infer miRNA k "targeted" by mRNA i taking into account 1...M miRNA and mRNA i expression

(4) Repeat 1-3 until convergence

User provide roleswitch an N x M seed-match matrix containg the number of target sites for each mRNA i and miRNA k. Otherwise, getSeedMatrix will be used to retrieve seed-match matrix. The output ProMISe is one of the matrices: mRNA competition; miRNA competition; joint competition. We recommand using mRNA competition or joint competition.

Value

An object list (defined class: ProMISe) containing the following items:

x.t:

infered total N x 1 mRNA expression vector

p.x:

infered N x M miRNA-mRNA probability matrix (mRNA competition)

p.z:

infered N x M mRNA-miRNA probability matrix (miRNA competition)

p.xz:

Dot prodct of p.x and p.z (joint competition).

x.o, z.t, c:

The same as the inputs.

delta.p.all

Difference between p.x at two adjacent iterations to monitor the progress of convergence.

Note

Warning may be issued if the input seed matrix contain miRNA or mRNA that have zero seed or seed match for any mRNA or miRNA, respectively. Nonetheless, the outputs ProMISe will conform the original input mRNA and miRNA vector in matching their corresponding IDs.

Author(s)

Yue Li

References

Li, Y., ..., Zhang, Z., Infer probabilistic miRNA-mRNA interaction signatures in cancers: a role-switch approach (in preparation).

See Also

getSeedMatrix

Examples

x.o <- matrix(abs(rnorm(10, mean=3)), 
  dimnames=list(c(1:10),"mRNA")) # mRNA expression
  
z.o <- matrix(abs(rnorm(4, mean=3)),
  dimnames=list(c(1:4),"miRNA"))  # miRNA expression
  
c <- matrix(rpois(40, lambda=3),nrow=nrow(x.o), 
  dimnames=list(c(1:10),c(1:4))) # seed match matrix

rs.pred <- roleswitch(x.o, z.o, c)

rs.pred$p.xz

Results


R version 3.3.1 (2016-06-21) -- "Bug in Your Hair"
Copyright (C) 2016 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)

R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.

R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.

Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.

> library(Roleswitch)
Loading required package: pracma
Loading required package: reshape
Loading required package: plotrix
Loading required package: microRNA
Loading required package: biomaRt
Loading required package: Biostrings
Loading required package: BiocGenerics
Loading required package: parallel

Attaching package: 'BiocGenerics'

The following objects are masked from 'package:parallel':

    clusterApply, clusterApplyLB, clusterCall, clusterEvalQ,
    clusterExport, clusterMap, parApply, parCapply, parLapply,
    parLapplyLB, parRapply, parSapply, parSapplyLB

The following objects are masked from 'package:stats':

    IQR, mad, xtabs

The following objects are masked from 'package:base':

    Filter, Find, Map, Position, Reduce, anyDuplicated, append,
    as.data.frame, cbind, colnames, do.call, duplicated, eval, evalq,
    get, grep, grepl, intersect, is.unsorted, lapply, lengths, mapply,
    match, mget, order, paste, pmax, pmax.int, pmin, pmin.int, rank,
    rbind, rownames, sapply, setdiff, sort, table, tapply, union,
    unique, unsplit

Loading required package: S4Vectors
Loading required package: stats4

Attaching package: 'S4Vectors'

The following objects are masked from 'package:reshape':

    expand, rename

The following objects are masked from 'package:base':

    colMeans, colSums, expand.grid, rowMeans, rowSums

Loading required package: IRanges
Loading required package: XVector
Loading required package: Biobase
Welcome to Bioconductor

    Vignettes contain introductory material; view with
    'browseVignettes()'. To cite Bioconductor, see
    'citation("Biobase")', and for packages 'citation("pkgname")'.

Loading required package: DBI
> png(filename="/home/ddbj/snapshot/RGM3/R_BC/result/Roleswitch/roleswitch.Rd_%03d_medium.png", width=480, height=480)
> ### Name: roleswitch
> ### Title: Infer miRNA-mRNA interactions using paired expression data from
> ###   a single sample.
> ### Aliases: roleswitch
> ### Keywords: roleswitch miRNA microRNA expression
> 
> ### ** Examples
> 
> x.o <- matrix(abs(rnorm(10, mean=3)), 
+   dimnames=list(c(1:10),"mRNA")) # mRNA expression
>   
> z.o <- matrix(abs(rnorm(4, mean=3)),
+   dimnames=list(c(1:4),"miRNA"))  # miRNA expression
>   
> c <- matrix(rpois(40, lambda=3),nrow=nrow(x.o), 
+   dimnames=list(c(1:10),c(1:4))) # seed match matrix
> 
> rs.pred <- roleswitch(x.o, z.o, c)

Start roleswitch with 4 miRNA and 10 mRNA
1: max(p.x-p.x.prev)=0.65108
2: max(p.x-p.x.prev)=0.00016
3: max(p.x-p.x.prev)=0.00005
4: max(p.x-p.x.prev)=0.00000
> 
> rs.pred$p.xz
            1          2          3          4
1  0.13779777 0.03617890 0.08218204 0.08266085
2  0.64447242 0.32965829 0.03877832 0.13147619
3  0.03991243 0.29167160 0.01187002 0.14986455
4  0.03186532 0.00651533 0.03455919 0.03632443
5  0.07662053 0.34660224 0.16924200 0.25678639
6  0.16020888 0.24905453 0.33184136 0.31068559
7  0.16440833 0.08550090 0.18756176 0.11768828
8  0.37197638 0.41667213 0.10903729 0.31406350
9  0.27561296 0.11087400 0.00000000 0.22997724
10 0.01740645 0.19293122 0.21724410 0.21276898
> 
> 
> 
> 
> 
> dev.off()
null device 
          1 
>