## ============================================================
## Import
## ============================================================
## ggplot2
import(methods)
import(BiocGenerics)
import(biovizBase)
import(grid)
import(ggplot2)
import(lattice)
## importFrom(gtable, gtable_add_padding, gtable_add_grob, gtable_add_cols,
##            gtable_add_rows, cbind)
import(gtable)
import(reshape2)
import(scales)
import(plyr)
importFrom(gridExtra, grid.arrange, arrangeGrob, latticeGrob)
importFrom(Hmisc, bezier)
## GenomicRanges
## IRanges
importFrom(IRanges, IRanges,  disjointBins,
           findOverlaps, subsetByOverlaps,
           "elementMetadata", "elementMetadata<-",
           start, width, end,  resize, metadata, "metadata<-",
           "values", "values<-",
           ranges, "ranges<-", 
           isTRUEorFALSE, coverage, slice,
           elementLengths,  
           reduce, punion, pgap, gaps, "%in%")

importMethodsFrom(IRanges,  split, 
                  unlist, psetdiff,
                  range, endoapply,
                  as.data.frame,
                  length, as.list, as.matrix,
                  "[","[<-","[[", "[[<-","$",
                  show)

importClassesFrom(IRanges, Rle, RleList, IRanges, characterORNULL, Views, ViewsList, List)

## ## GenomicRanges

importFrom(GenomicRanges, keepSeqlevels, renameSeqlevels, "seqnames<-",
           seqlevels, "seqlevels<-", genome, "genome<-",
           GRanges, GRangesList, Seqinfo, seqlengths, "seqlengths<-")
importMethodsFrom(GenomicRanges, ranges, "ranges<-",
                  start, end, width, "start<-", "end<-", "width<-",
                  seqnames, seqinfo, show, 
                   "elementMetadata<-", elementMetadata,
                  as.data.frame, sort)


importClassesFrom(GenomicRanges, GRanges, GRangesList, GenomicRangesList)

## ## ## Rsamtools

importFrom(Rsamtools, ScanBamParam, scanBam, scanBamHeader,
           scanBamFlag,BamFile,
           PileupFiles, PileupParam ,
           readGAlignmentsFromBam)
importMethodsFrom(Rsamtools, applyPileups, path)
importClassesFrom(Rsamtools, BamFile)

## ## ## BSgenome
importClassesFrom(BSgenome, BSgenome)

## ## ## GenomicFeatures
importClassesFrom(GenomicFeatures,TranscriptDb)
importFrom(GenomicFeatures,
           transcriptsByOverlaps,
           exonsBy, 
           cdsBy)


## rtracklayer
importMethodsFrom(rtracklayer, import)

## VariantAnnotation
importClassesFrom(VariantAnnotation, VCF)
importMethodsFrom(VariantAnnotation, fixed, "fixed<-", ref, "ref<-",
                  alt, "alt<-", info, "info<-", geno, "geno<-",  readVcf) 


## ============================================================
## Export
## ============================================================
## utils
exportMethods(autoplot, rescale, mold, fixed, "fixed<-", 
              xlim, "xlim<-", reset, backup,
              bgColor, "bgColor<-", labeled, "labeled<-",
              mutable, "mutable<-", height, "height<-",
              hasAxis, "hasAxis<-", ggplot)


export(arrangeGrobByParsingLegend, ggbio, GGbio)

## scale
export(scale_x_sequnit, scale_fill_giemsa, scale_fill_fold_change)

## geom
exportMethods(geom_chevron,
              geom_arch,
              geom_alignment,
              geom_arrow,
              geom_arrowrect,
              geom_rect,
              geom_bar,              
              geom_segment)

## stat
exportMethods(stat_aggregate,
              stat_coverage,
              stat_identity,	
              stat_mismatch, 	
              stat_stepping,
              stat_gene,
              stat_table,
              stat_slice,
              stat_bin,
              stat_reduce)

## layout
exportMethods(layout_karyogram,
              layout_circle)

## export(circle)
## coord
## exportMethods(coord_genome)
export(tracks,
       align.plots,
       alignPlots,
       plotFragLength,        
       plotSpliceSum,       
       plotStackedOverview,
       plotKaryogram,       
       plotSingleChrom,
       plotIdeogram,
       Ideogram,
       plotGrandLinear,
       plotRangesLinkedToData)

export(theme_null, theme_alignment, theme_clear, theme_tracks_sunset,
       theme_pack_panels, theme_noexpand, theme_genome, nolegend)

export(ggsave)
exportMethods(cbind, rbind)

## exportMethods(Grob, Plot, get_gtable, cached, "cached<-",
##               cached_xlim, "cached_xlim<-",
##               cached_ylim, "cached_ylim<-",
##               cached_item, "cached_item<-", addItem, addWhich,
##               cached_which, cbind, rbind)
## export(PlotList, Tracked, Plot, Grob)
