# define mBison classes and methods setClass("MBnetwork",representation(N="numeric",Names="character",States="numeric",Cpds="matrix",Counts="matrix",Margs="matrix",Pvals="numeric"),prototype=list(N=0,Names=character(),States=integer(),Cpds=matrix(0,2,0),Counts=matrix(0,2,0),Margs=matrix(0,2,0),Pvals=numeric()),sealed=TRUE) setValidity("MBnetwork",validMBnetwork) setClass("MBparams",representation(N="numeric",m="numeric",Names="character",Values="matrix",Sim="list"),prototype=list(N=0,m=0,Names=character(),Values=matrix(0,2,0),Sim=list()),sealed=TRUE) setValidity("MBparams",validMBparams) setClass("MBdataDE",representation(N="numeric",n="numeric",IDs="character",M="matrix",W="matrix",design="matrix",lmMethod="character",prop="numeric"),prototype=list(N=0,n=0,IDs=character(),M=matrix(0,0,0),W=matrix(0,0,0),design=matrix(0,0,0),lmMethod="ls",prop=0.01),sealed=TRUE) setValidity("MBdataDE",validMBdataDE) setClass("MBdataKS",representation(N="numeric",assoc="list",IDs="character",Name="character"),prototype=list(N=0,assoc=list(),IDs=character(),Name=character()),sealed=TRUE) setValidity("MBdataKS",validMBdataKS) setClass("MBgibbsPars",representation(chains="numeric",thresh="numeric",burn="list",slice="list",samp="list",KLrepeat="character",method="character"),prototype=list(chains=1,thresh=.1,burn=list("1"=100),slice=list("1"=0),samp=list("1"=1000),KLrepeat="n",method="d"),sealed=TRUE) setValidity("MBgibbsPars",validMBgibbsPars) setMethod("addData","MBdataDE",addData.MBdataDE,sealed=TRUE) setMethod("addGenes",signature(x="MBdataKS",data="MBdataDE"),addGenes.MBdataKS.MBdataDE,sealed=TRUE) setMethod("addGenes",signature(x="MBdataKS",data="missing"),addGenes.MBdataKS,sealed=TRUE) setMethod("addNodes","MBnetwork",addNodes.MBnetwork,sealed=TRUE) setMethod("addParams","MBparams",addParams.MBparams,sealed=TRUE) setMethod("calcCPDs",signature(x="MBnetwork",data="MBdataDE"),calcCPDs.MBnetwork.MBdataDE,sealed=TRUE) setMethod("calcLods","MBnetwork",calcLods.MBnetwork,sealed=TRUE) setMethod("calcMargs","MBnetwork",calcMargs.MBnetwork,sealed=TRUE) setMethod("calcSim",signature(x="MBparams",meta="missing"),calcSim.MBparams,sealed=TRUE) setMethod("calcSim",signature(x="MBparams",meta="MBdataKS"),calcSim.MBparams.MBdataKS,sealed=TRUE) setMethod("compatObjects",signature(x="MBnetwork",y="MBparams"),compatObjects.MBnetwork.MBparams,sealed=TRUE) setMethod("compatObjects",signature(x="MBparams",y="MBnetwork"),compatObjects.MBparams.MBnetwork,sealed=TRUE) setMethod("compatObjects",signature(x="MBnetwork",y="MBdataDE"),compatObjects.N,sealed=TRUE) setMethod("compatObjects",signature(x="MBparams",y="MBdataDE"),compatObjects.N,sealed=TRUE) setMethod("compatObjects",signature(x="MBdataDE",y="MBnetwork"),compatObjects.N,sealed=TRUE) setMethod("compatObjects",signature(x="MBparams",y="MBdataKS"),compatObjects.N,sealed=TRUE) setMethod("compatObjects",signature(x="MBdataKS",y="MBparams"),compatObjects.N,sealed=TRUE) setMethod("CpermSigGene",signature(params="MBparams",graph="MBnetwork",data="missing",gibbsPars="MBgibbsPars"),CpermSigGene.MBparams.MBnetwork.MBgibbsPars,sealed=TRUE) setMethod("getAssoc","MBdataKS",getAssoc.MBdataKS,sealed=TRUE) setMethod("CgibbsSampler",signature(x="MBnetwork",params="MBparams",gibbsPars="MBgibbsPars"),CgibbsSampler.MBnetwork.MBparams.MBgibbsPars,sealed=TRUE) setMethod("initCounts","MBnetwork",initCounts.MBnetwork,sealed=TRUE) setMethod("randInit",signature(x="MBnetwork",params="missing"),randInit.MBnetwork,sealed=TRUE) setMethod("randInit",signature(x="missing",params="MBparams"),randInit.MBparams,sealed=TRUE) setMethod("CsampleNIter",signature(x="MBnetwork",params="MBparams"),CsampleNIter.MBnetwork.MBparams,sealed=TRUE) setMethod("setValue","MBparams",setValue.MBparams,sealed=TRUE) setMethod("setPrior",signature(x="MBparams",data="MBdataDE"),setPrior.MBparams.MBdataDE,sealed=TRUE) setMethod("drawStory",signature(network="MBnetwork",params="MBparams"),drawStory.MBnetwork.MBparams,sealed=TRUE) # function run upon loading mBison .onLoad <- function(lib, pkg) { if(!require(methods)) stop("methods package required for package mBison") library.dynam("mBison",pkg) } # function run upon unloading mBison .Last.lib <- function(libpath) { library.dynam.unload("mBison",libpath) }