## IMPORTS
import(rjson, GenomicRanges, GenomicFeatures, SummarizedExperiment, Rsamtools, 
       Biostrings, ShortRead, ggplot2, limma, edgeR, GOstats, GO.db, annotate,
       pheatmap, batchtools, methods, VariantAnnotation)
importFrom("assertthat", "assert_that")
importFrom("assertthat", "is.count")
importFrom("assertthat", "is.writeable")
importFrom("assertthat", "not_empty")
importFrom("crayon", "bgBlue", "bgMagenta")
importFrom("DOT", "dot")
importFrom("graphics", "boxplot")
importFrom("graphics", "close.screen")
importFrom("graphics", "screen")
importFrom("graphics", "split.screen")
importFrom("graphics", "symbols")
importFrom("graphics", "text")
importFrom("grDevices", "dev.off")
importFrom("grDevices", "pdf")
importFrom("grid", "grid.layout")
importFrom("grid", "grid.newpage")
importFrom("grid", "pushViewport")
importFrom("grid", "viewport")
importFrom("IRanges", "IRanges")
importFrom("IRanges", "subsetByOverlaps")
importFrom("magrittr", "%>%")
importFrom("rsvg", "rsvg_png")
importFrom("rsvg", "rsvg_svg")
importFrom("stats", "aggregate")
importFrom("stats", "model.matrix")
importFrom("stats", "na.omit")
importFrom("stats", "phyper")
importFrom("stats", "setNames")
importFrom("stringr", "str_extract")
importFrom("stringr", "str_remove_all")
importFrom("stringr", "str_remove")
importFrom("stringr", "str_replace_all")
importFrom("stringr", "str_replace")
importFrom("stringr", "str_split")
importFrom("stringr", "str_which")
importFrom("S4Vectors", "DataFrame")
importFrom("utils", "capture.output")
importFrom("utils", "combn")
importFrom("utils", "packageVersion")
importFrom("utils", "read.delim")
importFrom("utils", "write.table")
importFrom("yaml", "as.yaml")
importFrom("yaml", "read_yaml")
importFrom("yaml", "write_yaml")
importFrom("yaml", "yaml.load")

## S4 Classes
exportClasses(
    "SYSargs", "catDB", "VENNset", "INTERSECTset", "SYSargs2", "SYSargsList"
)

## Methods
exportMethods(
    "targetsin", "targetsout", "targetsheader", "modules", "software", "cores", 
    "other", "reference", "results", "infile1", "infile2", "outfile1", "SampleName", 
    "sysargs", "outpaths", "show", "names", "length", "[", "catmap", "catlist", "idconv",
    "setlist", "intersectmatrix", "complexitylevels", "vennlist", "intersectlist",
    "as.list", "[[", "[[<-", "$", "clt", "cmdlist", "cwlfiles", "input", "inputvars", "output",
    "sysargs2", "targets", "wf", "yamlinput", "cmdToCwl", "baseCommand", 
    "yamlinput<-",
    "sprconfig", "stepsWF", "statusWF", "dependency",
    "projectWF", "targetsWF", "SEobj", "outfiles", "sysargslist", "appendStep<-",
    "replaceStep<-", "renameStep<-"
)

## Functions
# exportPattern("^[[:alpha:]]+")
export(
    ## Data sets
    ## Import/exports
    "readComp", "writeTargetsout", "writeTargetsRef", "mergeBamByFactor",
    ## Utilities
    "alignStats", "getQsubargs", "qsubRun", "clusterRun", "returnRPKM", 
    "runCommandline", "systemArgs", "symLink2bam", "moduleload", 
    "modulelist", "moduleAvail", "moduleClear", "moduleInit", "moduleUnload", 
    "module", "run_edgeR", "run_DESeq2", "filterDEGs", "seeFastq", "seeFastqPlot",
    "GOHyperGAll", "GOHyperGAll_Subset", "GOHyperGAll_Simplify", "GOCluster_Report",
    "makeCATdb", "goBarplot", "overLapper", "vennPlot", "olBarplot",
    "preprocessReads", "filterVars", "variantReport", "combineVarReports", 
    "varSummary", "countRangeset", "runDiff", "genFeatures", "featuretypeCounts", 
    "plotfeaturetypeCounts", "featureCoverage", "plotfeatureCoverage", "predORF",
    "scaleRanges", "loadWorkflow", "loadWF", "renderWF", "subsetWF", "output_update", 
    "targets.as.df", "olRanges", "evalCode", "tryPath",
    "tryCL", "SPRproject", "initProject", "initWF", "configWF", "config.param", 
    "plotWF", "runWF", "renderReport", "check.output", "createParamFiles", "writeParamFiles", 
    "printParam", "subsetParam", "replaceParam", "renameParam", "appendParam", 
    "SYSargsList"
)  
