import(methods)

importFrom("stats", "median", "pchisq", "qchisq", "runif", "lm", "glm", "family", "binomial")
importFrom("utils", "read.table", "unzip", "write.table", "zip")
importFrom("graphics", "barplot")

useDynLib(LEA, .registration=TRUE, .fixes = "R_") 
#.registration = TRUE, .fixes = "R_")
#R_ancestrymap2geno, R_ancestrymap2lfmm, R_ped2lfmm, R_ped2geno,
#R_vcf2geno, R_createDataSet, R_crossEntropy, R_sNMF, R_LFMM,
#R_tracyWidom, R_lfmm2geno, R_geno2lfmm, R_pca)

# read and write functions
export(read.geno)
export(write.geno)
export(read.lfmm)
export(write.lfmm)
export(read.env)
export(write.env)
export(read.zscore)

# conversion function
export(geno2lfmm)
export(lfmm2geno)
export(ped2geno)
export(ped2lfmm)
export(vcf2geno)
export(vcf2lfmm)
export(ancestrymap2lfmm)
export(ancestrymap2geno)
export(struct2geno)


# classes
#exportClasses(
#pcaProject,
#snmfClass,
#snmfProject,
#lfmmClass,
#lfmmProject,
#lfmm2Class
#)

# main functions
export(create.dataset)
export(snmf)
export(cross.entropy.estimation)
export(pca)
# export(tracyWidom) <-- added as a method in pcaProject
export(lfmm)
export(lfmm2)

# method associated with the classes
exportMethods(
        show,        
        summary,
        load.snmfProject,
        remove.snmfProject,
        import.snmfProject,
        export.snmfProject,
        combine.snmfProject,
        load.lfmmProject,
        remove.lfmmProject,
        import.lfmmProject,
        export.lfmmProject,
        combine.lfmmProject,
        load.pcaProject,
        remove.pcaProject,
        import.pcaProject,
        export.pcaProject,
        Q,
        G,
        plot,
        z.scores,
        lfmm.pvalues,
        lfmm2.test,
        snmf.pvalues,
        cross.entropy,
        tracy.widom,
        impute,
        barchart
)

#export(barplot.Qmatrix)
#S3method(barplot.Qmatrix, "Qmatrix")

#export(.DollarNames.pcaProject)
#export(.DollarNames.snmfClass)
#export(.DollarNames.snmfProject)
#export(.DollarNames.lfmmClass)
#export(.DollarNames.snmfProject)

