useDynLib(VariantAnnotation, .registration=TRUE)

import(methods)

import(BiocGenerics)

import(Rsamtools)

import(GenomicRanges)

import(zlibbioc)

importClassesFrom(Biobase, 
    AssayData
)

importFrom(Biobase,
    sampleNames
)

importClassesFrom(AnnotationDbi, 
    AnnotationDb
)

importMethodsFrom(AnnotationDbi, 
    colnames, cols, exists, keys, ncol, 
    nrow, select
)

importFrom(GenomicFeatures, 
    extractTranscriptsFromGenome
)

importClassesFrom(GenomicFeatures, 
    TranscriptDb
)

importMethodsFrom(GenomicFeatures, 
    cdsBy, exons, transcripts,
    fiveUTRsByTranscript, threeUTRsByTranscript,
    isActiveSeq, "isActiveSeq<-"
)

importFrom(Biostrings,
    AAStringSet, DNAStringSet, DNAStringSetList
)

importMethodsFrom(Biostrings,
    nchar, reverseComplement, subseq, substr, translate
)

importClassesFrom(Biostrings, 
    DNAStringSet, DNAStringSetList
)

importFrom(IRanges, 
    CharacterList, DataFrame, DataFrameList, FilterRules, IntegerList, 
    IRanges, isSingleNumber, isSingleString, isTRUEorFALSE, LogicalList, 
    NumericList, PartitioningByEnd, PartitioningByWidth, seqsplit,
    SimpleList, splitAsList, successiveViews
)

importClassesFrom(IRanges, 
    CharacterList, DataFrame, Ranges, RangesList, RangedData,
    SimpleDataFrameList, SimpleList
)

importMethodsFrom(IRanges, 
    "%in%", append, as.matrix, as.vector,
    countOverlaps, elementLengths, end, eval, findOverlaps, 
    follow, gsub, lapply, match, "metadata<-", narrow, order, 
    precede, queryHits, rev, Rle, runValue, sapply, shift,
    split, start, "start<-", subjectHits, "subseq<-", substring, 
    unlist, values, "values<-", which, width, 
    expand
)

importMethodsFrom(DBI, 
    dbCommit, dbConnect, dbDisconnect, dbExistsTable, 
    dbGetQuery, dbReadTable, dbWriteTable, dbListTables, 
    dbListFields
)

importClassesFrom(BSgenome, 
    BSgenome
)

importFrom(utils, 
    txtProgressBar, setTxtProgressBar
)

exportClassPattern("^.*$")

export(
    VCF, VCFHeader, 
    vcfWhich, "vcfWhich<-", vcfFixed, "vcfFixed<-", vcfInfo, "vcfInfo<-", 
    vcfGeno, "vcfGeno<-", vcfTrimEmpty, "vcfTrimEmpty<-", 
    duplicateRSID, CodingVariants, IntronVariants,
    FiveUTRVariants, ThreeUTRVariants, IntergenicVariants,
    SpliceSiteVariants, PromoterVariants, AllVariants,
    upstream, "upstream<-", downstream, "downstream<-",
    probabilityToSnpMatrix, GLtoGP
)

exportMethods(
    filterVcf, scanVcf, scanVcfHeader, ScanVcfParam,
    readVcf, readVcfLongForm, writeVcf, expand,
    predictCoding, getTranscriptSeqs, refLocsToLocalLocs, 
    MatrixToSnpMatrix, genotypeToSnpMatrix, snpSummary,
    locateVariants, summarizeVariants,

    fixed, "fixed<-", ref, "ref<-", alt, "alt<-", qual, "qual<-",
    filt, "filt<-", info, "info<-", geno, "geno<-", strand, 
    "strand<-", "[", "[<-", cbind, rbind, "mcols<-", 

    genome, seqlevels, renameSeqlevels, keepSeqlevels,

    reference, samples, header, meta,

    keys, cols, select
)
