useDynLib("kebabs", .registration=TRUE)

import(methods)
import(Matrix)
import(e1071)
import(LiblineaR)
importFrom(stats, runif, hclust, dist, as.dendrogram,
           delete.response, fitted, model.extract, model.matrix,
           na.fail, na.omit, napredict, terms, var)
importFrom(graphics, axis, boxplot, frame, hist, layout,
           lines, mtext, par, polygon, text, title)
importFrom(grDevices, col2rgb, dev.flush, dev.hold)
importFrom(utils, data, installed.packages, packageVersion,
           sessionInfo)
importFrom(kernlab, ksvm, predict, kernelMatrix, as.kernelMatrix, kpar,
           vanilladot, polydot, plot, SVindex)
importFrom(apcluster, heatmap)
import(Rcpp)
importFrom(XVector, subseq, width)
importFrom(S4Vectors, DataFrame, metadata, "metadata<-", elementMetadata,
           "elementMetadata<-", mcols, "mcols<-")
import(Biostrings)

export(DNAVector, RNAVector, AAVector, genRandBioSeqs, annotationMetadata,
       "annotationMetadata<-", annotationCharset, positionMetadata,
       "positionMetadata<-", spectrumKernel, mismatchKernel, motifKernel,
       gappyPairKernel, linearKernel, symmetricPairKernel, getKernelMatrix,
       getExRep, getExRepQuadratic,  getFeatureWeights, linWeight, expWeight,
       gaussWeight, swdWeight, getSVMSlotValue, seqKernelAsChar,
       computeROCandAUC, evaluatePrediction, showAnnotatedSeq, kebabsDemo,
       kebabsCollectInfo)

exportClasses("DNAVector", "RNAVector", "AAVector", "SequenceKernel")

exportMethods(kbsvm, predict, show, kernelParameters, as.KernelMatrix,
              getPredictionProfile, plot, profiles, baselines, sequences,
              featureWeights, "featureWeights<-", modelOffset, "modelOffset<-",
              cvResult, "cvResult<-", modelSelResult, "modelSelResult<-",
              svmModel, "svmModel<-", probabilityModel, "probabilityModel<-",
              gridRows, gridColumns, gridErrors, performance, selGridRow,
              selGridCol, fullModel, length, width, names, "names<-", width,
              performCrossValidation, auc, "auc<-", tpr, "tpr<-", fpr,
              "fpr<-", trainSVM, predictSVM, SVindex, heatmap, folds,
              isUserDefined, getFeatureSpaceDimension, getPredProfMixture)