useDynLib("kebabs", .registration=TRUE)

import(methods)
import(Matrix)
import(e1071)
import(LiblineaR)
importFrom(stats, heatmap)
importFrom(kernlab, ksvm, predict, kernelMatrix, as.kernelMatrix, kpar, 
           vanilladot, polydot, plot, SVindex)
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)