useDynLib(OncoSimulR, .registration=TRUE)

export("oncoSimulPop", "oncoSimulIndiv", "samplePop",
       "plotPoset", "oncoSimulSample", "allFitnessEffects",
       "evalGenotype", "evalAllGenotypes", "simOGraph",
       "plotClonePhylog", "OncoSimulWide2Long",
       "allMutatorEffects", "evalAllGenotypesMut",
       "evalGenotypeMut", "evalGenotypeFitAndMut",
       "evalAllGenotypesFitAndMut",
       "rfitness",
       "plotFitnessLandscape",
       "to_Magellan",
       "sampledGenotypes"
       , "POM", "LOD"
       , "diversityPOM", "diversityLOD"
       )

S3method(plot, oncosimul)
S3method(print, oncosimul)
S3method(summary, oncosimul)
S3method(plot, oncosimulpop)
S3method(summary, oncosimulpop)
S3method(print, oncosimulpop)
S3method(plot, fitnessEffects)
S3method(plot, genotype_fitness_matrix)
S3method(plot, evalAllGenotypes)
S3method(plot, evalAllGenotypesMut)
S3method(print, sampledGenotypes)

S3method(POM, oncosimul2)
S3method(POM, oncosimulpop)
S3method(LOD, oncosimul2)
S3method(LOD, oncosimulpop)


## S3method(summary, oncosimul_lod_list)
## S3method(summary, oncosimul_pom_list)




import(ggplot2)
importFrom("ggrepel", geom_text_repel, geom_label_repel)
importFrom("utils", "read.table", "write.table")
importFrom("stats", "rnorm")
importFrom("data.table", rbindlist, .rbind.data.table) 
importFrom(Rcpp, evalCpp)
importFrom("igraph", igraph.to.graphNEL, graph.data.frame, V, E,
           "V<-", "E<-", plot.igraph, layout.reingold.tilford,
           delete.vertices, neighborhood, get.adjacency)
import(graph)
import(Rgraphviz)
importFrom("parallel", mclapply, detectCores, mcMap)
importFrom("gtools", combinations, permutations, mixedorder)
## importFrom("compare", compare)
importFrom("graphics", "axis", "box", "legend", "matplot", "par", "polygon")
importFrom("methods", "as")
importFrom("stats", "na.omit", "runif", "smooth.spline")
importFrom("utils", "type.convert")
importFrom("RColorBrewer", "brewer.pal")
importFrom("grDevices", "colorRampPalette", "hsv", "rainbow")
importFrom("dplyr", "full_join", "left_join", "right_join", "%>%", "mutate",
           "filter")
importFrom("smatr", "ma") ## for major axis regression in some tests
importFrom("car", "linearHypothesis")
importFrom("nem", "transitive.reduction")
## importFrom("slam", "simple_triplet_zero_matrix", ## "colapply_simple_triplet_matrix",
##            "col_sums")