import(methods)
import(Biostrings)
import(GenomicRanges)
import(Rsamtools)
import(AnnotationDbi)

#importClassesFrom(AnnotationDbi, AnnotationDb)
#importMethodsFrom(AnnotationDbi, cols, keys, select)
importMethodsFrom(AnnotationDbi, as.list)

importClassesFrom(Biobase, ScalarCharacter)
importFrom(Biobase, mkScalar, selectSome)

importClassesFrom(BSgenome, BSgenome)
importClassesFrom(snpStats, SnpMatrix)

importClassesFrom(GenomicFeatures, TranscriptDb)
importMethodsFrom(GenomicFeatures, cdsBy, exons, transcripts,
                  fiveUTRsByTranscript, threeUTRsByTranscript,
                  isActiveSeq, "isActiveSeq<-")
importFrom(GenomicFeatures, extractTranscriptsFromGenome)

importClassesFrom(IRanges, Ranges, RangesList, RangedData)
importMethodsFrom(IRanges, "%in%", append, as.matrix, as.vector,
                  countOverlaps, elementLengths, end, eval,
                  findOverlaps, follow, gsub, lapply, match,
                  "metadata<-", narrow, order, paste, precede,
                  queryHits, rbind, rev, Rle, runValue, sapply, shift,
                  split, start, "start<-", subjectHits, "subseq<-",
                  substring, unique, unlist, values, "values<-", which,
                  width)
importFrom(IRanges, CharacterList, DataFrame, IRanges,
           PartitioningByWidth, successiveViews)

#importClassesFrom(Rsamtools, FaFile, TabixFile, ScanVcfParam)
#importMethodsFrom(Rsamtools, scanBcf, ScanBcfParam, scanFaIndex,
#                  scanTabix, headerTabix, scanVcf, unpackVcf, scanVcfHeader, 
#                  ScanVcfParam)
#importFrom(Rsamtools, bgzip, TabixFile, indexTabix)

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

exportClassPattern("^.*$")

exportMethods(
    predictCoding, getTranscriptSeqs,
    show, c, 
    keys, cols, select)

export(
    locateVariants, 
    getTranscriptSeqs, globalToLocal,
    readVcf, MatrixToSnpMatrix,
    keys, cols, select)

exportPattern("^[^\\.]")
