import(methods)
import(Biobase)
import(DBI)
import(RSQLite)
import(gdsfmt)
import(ncdf)
import(GWASExactHW)
importFrom(DNAcopy, getbdry, CNA, smooth.CNA, segment)
importFrom(survival, Surv, coxph) # used in assocTestCPH
importFrom(sandwich, vcovHC) # used in assocTestRegression
importFrom(lmtest, lrtest, lrtest.default) # used in assocTestRegression
importFrom(quantsmooth, paintCytobands, lengthChromosome) # used to plot ideograms

exportClasses(
    SnpAnnotationDataFrame,
    SnpAnnotationSQLite,
    ScanAnnotationDataFrame,
    ScanAnnotationSQLite,
    NcdfReader,
    NcdfGenotypeReader,
    GdsReader,
    GdsGenotypeReader,
    MatrixGenotypeReader,
    NcdfIntensityReader,
    GenotypeData,
    IntensityData
)

export(
    ## Class constructor functions
    SnpAnnotationDataFrame,
    SnpAnnotationSQLite,
    ScanAnnotationDataFrame,
    ScanAnnotationSQLite,
    NcdfReader,
    NcdfGenotypeReader,
    GdsReader,
    GdsGenotypeReader,
    MatrixGenotypeReader,
    NcdfIntensityReader,
    GenotypeData,
    IntensityData,
       
    ## Ordinary functions (i.e. not generic):
    alleleFrequency,
    anomSegmentBAF,
    anomFilterBAF,
    anomDetectBAF,
    anomDetectLOH,
    anomIdentifyLowQuality,
    anomSegStats,
    anomStatsPlot,
    apartSnpSelection,
    asSnpMatrix,
    assocTestCPH,
    assocTestFisherExact,
    assocTestRegression,
    BAFfromClusterMeans,
    BAFfromGenotypes,
    batchChisqTest,
    batchFisherTest,
    checkNcdfGds,
    chromIntensityPlot,
    convertGdsNcdf,
    convertNcdfGds,
    convertVcfGds,
    duplicateDiscordance,
    duplicateDiscordanceAcrossDatasets,
    duplicateDiscordanceProbability,
    findBAFvariance,
    gdsSetMissingGenotypes,
    genoClusterPlot,
    genoClusterPlotByBatch,
    genotypeToCharacter,
    gwasExactHW,
    hetByScanChrom,
    hetBySnpSex,
    ibdAreasDraw,
    ibdAssignRelatedness,
    ibdPlot,
    intensityOutliersPlot,
    manhattanPlot,
    meanIntensityByScanChrom,
    meanSdByChromWindow,
    medianSdOverAutosomes,
    mendelErr,
    mendelList,
    mendelListAsDataFrame,
    minorAlleleDetectionAccuracy,
    missingGenotypeByScanChrom,
    missingGenotypeBySnpSex,
    ncdfAddData,
    ncdfAddIntensity,
    ncdfCheckGenotype,
    ncdfCheckIntensity,
    ncdfCreate,
    ncdfImputedDosage,
    ncdfSetMissingGenotypes,
    ncdfSubset,
    ncdfSubsetCheck,
    pedigreeCheck,
    pedigreeClean,
    pedigreeDeleteDuplicates,
    pedigreeFindDuplicates,
    pedigreeMaxUnrelated,
    pedigreePairwiseRelatedness,
    plinkCheck,
    plinkToNcdf,
    plinkWrite,
    pseudoautoIntensityPlot,
    qqPlot,
    qualityScoreByScan,
    qualityScoreBySnp,
    sdByScanChromWindow,
    simulateGenotypeMatrix,
    simulateIntensityMatrix,
    snpCorrelationPlot,
    allequal,
    getobj,
    saveas,
    readWriteFirst
)
        
       
exportMethods(
    ## Methods associated with the generic functions defined in
    ## this package:
    getAlleleA,
    getAlleleB,
    getAnnotation,
    getAttribute,
    getBAlleleFreq,
    getChromosome,
    getDimension,
    getDimensionNames,
    getGenotype,
    getLogRRatio,
    getMetadata,
    getPosition,
    getQuality,
    getQuery,
    getScanID,
    getScanVariable,
    getScanVariableNames,
    getSex,
    getSnpID,
    getSnpVariable,
    getSnpVariableNames,
    getVariable,
    getVariableNames,
    getX,
    getY,            
    hasBAlleleFreq,
    hasCoordVariable,
    hasLogRRatio,
    hasQuality,
    hasScanAnnotation,
    hasScanVariable,
    hasSex,
    hasSnpAnnotation,
    hasSnpVariable,
    hasVariable,
    hasX,
    hasY,
    nsnp,
    nscan,
    writeAnnotation,
    writeMetadata,
    autosomeCode,
    XchromCode,
    YchromCode,
    XYchromCode,
    MchromCode,
              
    ## Methods associated with generic functions defined somewhere else:
    open, close, show
)
