useDynLib(pRoloc)

## Depends
import(MSnbase)
import(methods)
import(Rcpp)
importFrom(BiocParallel, bplapply)

importMethodsFrom(MLInterfaces, MLearn, predScore)
## import(MLInterfaces)

import(lattice)
import(BiocGenerics)
import(mclust)
import(MASS)
import(kernlab) ## previously only imported ksvm
import(knitr)

importFrom(class, knn)
importFrom(FNN, get.knn, get.knnx)
importFrom(RColorBrewer, brewer.pal)
importFrom(stats, rmultinom)
## importFrom(stats4, plot)
importFrom(mvtnorm, rmvnorm)
importFrom(proxy, simil)
importFrom(scales, col2hcl) ##, alpha)
importFrom(caret, createFolds, confusionMatrix, plsda, predict.plsda)
importFrom(sampling, strata)
importFrom(e1071, svm, naiveBayes, cmeans)
importFrom(nnet, nnet)
importFrom(randomForest, randomForest)


exportClasses(GenRegRes)
              # ClustRegRes)

exportMethods(chi2,
              show,
              ## machine learning
              MLearn,
              getWarnings,
              getSeed,
              getF1Scores,
              f1Count,
              levelPlot,
              plot,
              ## clustering
              ## kmeansClustering,
              ## kmeansOptimisation, kmeansOptimization,
              ## distances
              nndist)

export(## MSnSet manipulation
    markerMSnSet, unknownMSnSet,
    sampleMSnSet, testMSnSet,
    getPredictions,
    getMarkers,
    minClassScore,
    testMarkers, 
    minMarkers,
    addMarkers,
    pRolocmarkers,
    empPvalues,
    getStockcol, getStockpch,
    setStockcol, setStockpch,
    getUnknowncol, getUnknownpch,
    setUnknowncol, setUnknownpch,
    ## -- plotting
    plot2D,
    addLegend,
    plotDist,
    highlightOnPlot,
    ## -- machine learning
    plsdaRegularisation, plsdaOptimisation, plsdaOptimization, 
    plsdaPrediction, plsdaClassification,
    svmRegularisation, svmOptimisation, svmOptimization, 
    svmPrediction, svmClassification, 
    ksvmRegularisation, ksvmOptimisation, ksvmOptimization,
    ksvmPrediction, ksvmClassification, 
    knnRegularisation, knnOptimisation, knnOptimization,
    knnPrediction, knnClassification, 
    nbRegularisation, nbOptimisation, nbOptimization,
    nbPrediction, nbClassification, 
    nnetRegularisation, nnetOptimisation, nnetOptimization, 
    nnetPrediction, nnetClassification,
    perTurboOptimisation, perTurboOptimization, perTurboClassification,
    getParams,
    getRegularisedParams, getRegularizedParams,       
    rfRegularisation, rfOptimisation, rfOptimization, 
    rfPrediction, rfClassification, 
    phenoDisco,
    makeNaData, makeNaData2, whichNA,
    ## -- pipelines
    lopims, lopims1, lopims2, lopims3, lopims4, lopims5
)

