Perseus R Interop

Enables the interoperability between the Perseus platform for omics data analysis (Tyanova et al. 2016) and R. It provides the foundation for developing and running Perseus plugins implemented in R by providing all required input and output handling, including data and parameter parsing as described in Rudolph and Cox 2018 .

Travis-CI Build Status CRAN_Status_Badge

Convenience functions for interop between Perseus and R.

Designed to work with the PluginInterop plugin for the Perseus framework.


If you use PerseusR in your projects, please cite

Rudolph, J D and Cox, J 2018, A network module for the Perseus software for computational proteomics facilitates proteome interaction graph analysis doi:10.1101/447268


Make sure to have R >= 3.5.0 installed. Paste the following lines into an running R session. You can skip the comment lines starting with #.

# installing BioConductor dependencies first
# installing PerseusR


PerseusR provides two functions for reading and writing files from/to Perseus. You can use them to write simple scripts which can be used as MatrixProcessing activities in Perseus. Additionally you can parse Perseus parameters and extract their values.

an example R script that could be called though the Perseus plugin:

# if applicable: read command-line arguments
args = commandArgs(trailingOnly=TRUE)
if (length(args) != 3) {
    stop("Should provide three arguments: parameters inFile outFile", call.=FALSE)
paramFile <- args[1]
inFile <- args[2]
outFile <- args[3]
# extract parameters
parameters <- parseParameters(paramFile)
networkType <- singleChoiceParamValue(parameters, "Network type")
corFnc <- singleChoiceParamValue(parameters, "Correlation function")
power <- intParamValue(parameters, "Power")
# read data
mdata <- read.perseus(inFile)
# if additional matrices are included, the additional information like imputation can be extracted.
imputeMatrix <- imputeData(mdata)
qualityMatrix <- qualityData(mdata)
# run any kind of analysis
net <- blockwiseModules(t(main(mdata)), power = power, corFnc = corFnc, networkType = networkType)
c1 <- net$dendrograms[[1]]
df <-$merge, c1$height))
colnames(df) <- c('left', 'right', 'distance')
# save results to matrixData and write to file
outMdata <- matrixData(main=df)
write.perseus(outMdata, outFile)
# save results to matrixData and write to file with additional matrices
outdata <- matrixData(main = combine, imputeData = imputeMatrix, qualityData = qualityMatrix)
write.perseus(outMdata, outFile)

Licensing and contributions

PerseusR is licensed under the MIT license. Contributions are welcome.



  • read.perseus no longer fails when reading a matrix with no annotation rows. (#7, @jspaezp)

v0.3.3 CRAN release Oct 31, 2018

  • Added examples and improved description according to CRAN reviewer comments.
  • read.perseus no longer fails when the last entry of the #!{Description} line is empty


  • Improved documentation so that devtools::check() runs through without errors.

v0.3.0: Sept 18, 2018

  • Manage additional martices (#4, @Sung-Huan)
  • Parsing boolean parameters (#4, @Sung-Huan)

v0.1.0 - v0.3.0 Initial versions - untagged: Jun 13, 2018

  • Initial release

Reference manual

It appears you don't have a PDF plugin for this browser. You can click here to download the reference manual.


0.3.4 by Jan Rudolph, 5 months ago

Browse source code at

Authors: Jan Rudolph <[email protected]>

Documentation:   PDF Manual  

MIT + file LICENSE license

Imports utils, plyr, methods, XML, Biobase, stringr

Suggests testthat, roxygen2, knitr, rmarkdown

See at CRAN