
# conditional import of class ExpressionSet from package Biobase 
if( "Biobase" %in% rownames(utils::installed.packages()) ){
	#do.call('importClassesFrom', list(Biobase, 'ExpressionSet'))
	importClassesFrom(Biobase, ExpressionSet)
	# import method definition
	importMethodsFrom(Biobase, "exprs")
	# import generic definitions
	importFrom("Biobase", "featureNames", "featureNames<-"
						, "sampleNames", "sampleNames<-")
	
	exportMethods(
		"nmeta",
		"metagenes",
	    "metagenes<-",
	    "metaprofiles",
	    "metaprofiles<-"
	)
}

#exportPattern("^[[:alpha:]]+")

export(
	nmfEstimateRank
	, plot.NMF.rank
	, nmfAlgorithm
	, nmfSeed
	, syntheticNMF
	, nmf.options
	, nmf.getOption
	, nmf.options.reset
	, nmf.options.runtime
	, nmf.models
)
exportMethods(
    "algorithm",
    "algorithm<-",
#    "annotate",
    "basis",
    "clusters",
    "coef",
    "coefficients",
    "compare",
#    "computeContrib",
    "connectivity",
#    "contribs",
	cophcor,
    "dim",
    "dispersion",
    "distance",
    "entropy",
    "errorPlot",
    "extra",
    "extractFeatures",
    "featureNames",
    "featureNames<-",
    "featureScore",
    "fit",
    "fit<-",
    fitted, 
#    "hist",
    "initialize",
    "is.empty.nmf",
#    "join",
    "summary",
    "metaHeatmap",
#   "model",
#    "model<-",
#    "name",
#    "name<-",
    "nbasis",
    "newNMF",
    "nmf",
#    "nmfRegister",
#    "nmfRegisterAlgorithm",
#    "nmfRegisterSeed",
	"nrun",
    "objective",
    "objective<-",
    "offset",
#    "plot",
    "purity",
    "random",
#    "report",
	rss,
    "residuals",
    "residuals<-",
#    "run.options",
#    "run.options<-",
#    "run",
    "runtime",
    "sampleNames",
    "sampleNames<-",
#    "seed",
    "seeding",
    "seeding<-",
    "show",
    "smoothing",
    "sparseness" 
    , "summary"
)
exportClasses(
    "NMF",
    "NMFstd",
     "NMFns",
     "NMFOffset",
     "NMFSet"
#     , "NMFStrategy",
#     "NMFStrategyFunction",
#     "NMFStrategyIterative",
#     "NMFStrategyIterativeX" 
)
