Fixed error in read.gtf() when source file is empty.
Layout computation for browsePlot() is now a drawable.list method, to facilitate custom layouts.
panelSide argument added to browsePlot().
hsFeatures dataset split into hsGenes and hsBands.
Minor fixes suggested by R CMD check.
C code corrections suggested by Tomas Kalibera (rchk).
'customLayout' argument in browsePlot() can now be used to return the default layout.
track.exons.GENCODE() is now referenced in 'Annotation' help page.
Default border color for class track.CNV fixed.
'spacing' argument in draw.boxes() can now be a column name.
'group' argument added to segMerge().
Automatic 'ylim' now handled by draw.hist().
track.exons.GENCODE() function added.
'ylab.horiz' argument added to draw.bg().
draw.density() added.
'normalize.y' argument added to draw.boxes().
'colorVal' / 'colorFun' graphical parameters replaced by 'fillColor'.
'border' graphical parameter can now be a function.
'labelColor' graphical parameter added.
'fg' added to draw.steps().
'fg' now used for group labels and bonds in draw.boxes().
'tkrplot' rendering no longer supported in tk.browse().
'png.height' and vertical scrollbar added to tk.browse().
Better handling of focus and shortcuts in tk.browse().
draw.boxes() no longer crashes when there is space for no label.
Axis control arguments added to draw.bg().
Shifted labelling in draw.boxes() when some are masked fixed.
Calls to unnamed list elements fixed for future R version compatibility.
Fixed the example URL in track.genes.NCBI() man page.
'bg', 'bg.inner' and 'fg' added to control background / foreground colors.
Mixes of tracks with and without panels no longer crash browsePlot() with par(new=TRUE).
drawable class now implements drawPanel(), used by browsePlot().
tk.browse() now only warns about inconsistent chromosome lists.
Page-up and Page-down keys now allows to switch chromosome in tk.browse().
Drag-and-drop zoom in tk.browse() now shows a live rectangle.
'colorFun' fixed for class track.CNV.
'.chromosomes' argument is now handled properly by track.table.GTF().
tk.browse() error message on Windows with R < 3.4.0 fixed.
tk.browse() no longer requires tkrplot with render = 'png'.
draw.hist() now accepts a column name as 'origin'.
Better rendering for plots in tk.browse() for Linux and/or R >= 3.4.0.
Better automatic sizing of the plot in tk.browse().
All reference class manual pages are now up to date.
Non-base package functions are now properly identified, to comply with R CMD check.
External() C entry points are now registered, to comply with R CMD check.
BAM related functions to longer use .Internal(), to comply with R CMD check.
track.bam$crawl() now uses dedidcated environments, to comply with R CMD check.
track.bam$summary() stabilized, unaligned BAM files are no more handled.
track.bam$extract() return objects have now a proper print method.
Welcome message added in tk.browse().
tk.browse() no longer display errors when resizing an empty plot.
No more warning in tk.browse() when 'maxDepth' is reached by some track.
drawable.list$add() compatibility can now be extended to other files and classes.
singlePlot() default output looks nicer.
Vignette styling update.
track.table$groupByPosition() no longer crash when using a factor for grouping.
'fuzzyness' argument corrected to 'fuzziness' in crossable$cross() method.
Usage lines truncation to nicer display in manual pages.
Interactive window grouping fixed for tk.tracks(), tk.memory(), tk.files().
'Add from memory' now handles variable names with special characters.
groupLwd argument added to draw.boxes().
'labelCex' default in draw.boxes() and draw.steps() turned back to 1, to avoid visual errors in tk.browse().
Y axis sub-title scaled back to cex=1, to avoid visual errors in tk.browse().
refTable$setColNames() bug fixed (column bindings were not updated).
track.table$setColNames() overloaded accordingly (keep row ordered).
tk.file(), tk.files(), tk.folder() and handle() are now documented and exported.
Collision in draw.boxes() is now handled by an exported yline() function.
draw.steps() added.
Fixed error in draw.boxes() when labels are vertical and plot area too narrow.
'xgrid' argument added to draw.bg().
'yaxp' argument added to draw.bg().
'las' argument added to draw.bg().
'new' argument added to draw.bg().
singlePlot() rewritten to handle any drawable object.
drawable.list$getChromEnd() method added, now used by browsePlot().
'colorFun' drawing parameter for track.CNV class updated to comply with last DGV release.
segOverlap() performances highly enhanced when factor columns are involved.
track.fasta class added, with corresponding constructors.
draw.seq() function added.
Minor DESCRIPTION file updates to comply with new CRAN policies
Rsamtools dependency replaced by a native R solution.
track.bam$crawl() method and derived depth(), extract() and pileup() methods added.
track.bam$getChromEnd() now relies on BAM header LN tag to return something.
track.bam$coverage() and track.bam$summary() methods added.
findDrawables() function added, tk.tracks() and tk.browse() can now interactively import objects from R memory.
'Find' button in tk.browse() now properly interprets factor levels ('X' was returned as 23, etc).
tk.browse() now returns the reference to the drawable.list objects in use, allowing simultaneous CLI and GUI accesses (see tk.browse() help page).
Fix added in track.table$check(), initialize() and show() to call refTable and drawable inherited methods, not only refTable's ones.
tools:::RdTags call in helpArgument() abandonned as now raising warning during check.
segMerge() and segOverlap() functions and corresponding track.table methods added.
track.table$size() method and corresponding 'sizetrack' slot added to improve crossable$cross(type='count') performances.
readRDT() now systematically rebuild track.table's calls and indexes, for better backward compatibility.
Error while calling drawable$fix.param() in global environment fixed.
draw.points() now relies on points() rather than plot().
'labelOverflow' argument added to draw.boxes().
'labelFamily' argument added to draw.boxes(), handling also Hershey vectorial fonts.
draw.boxes()' labels are now more respectuous of label tag sizes (especially with 'Hershey' and 'mono' families).
draw.boxes()' labels now comply with labelAdj even when labelSrt=90.
Better handling of out-of-sight labels in draw.boxes().
draw.hist() now draws small bars ahead high bars.
'quiet' argument added to cross$crossable().
Vignette's title page and margins edited.
buildGroupSize() and buildGroupPosition() moved from track.exons to track.table classes.
buildGroupSize() and buildGroupPosition() argument defaults for groupSize and groupPosition updated.
track.exons class defaults for groupSize and groupPosition drawing parameters updated.
track.exons.CCDS() output column names for groupSize and groupPosition updated.
draw.boxes() now returns a proper error message if groupSize or groupPosition columns are missing.
Dependency to R 3.0.0 or above highlighted.
'alphaOrder' and 'alphaMin' arguments added to draw.pileup().
'colorFun' no longer uses arguments but inherits the calling environment in draw.points(), draw.hist() and draw.points().
track.table() based constructors no longer hijack 'warn' argument.
draw.boxes() no longer misses boxes at high zoom level.
tk.tracks() relooking.
tk.edit() now prints some help on drawing parameters (extracted from R help pages).
track.bam$slice() arguments are now handled as drawing parameters.
track.bam$slice() argument 'addChr' added (defaults to TRUE, previous behavior).
track.bam now enforces default ylab and ysub drawing parameters.
Version reviewed for Bioinformatics publication.
Reference class help messages reformatted.
Reference class manual pages automatically rebuilt from help messages.
"How-to" vignette expanded with two user cases.
refTable$extract() and track.table$slice() now propose the 'asObject' argument.
"tracks.c" no longer relies on deprecated "Rdefines.h".
track.table$slice() and derivates now properly handle factor 'chrom' arguments.
draw.boxes() no longer bugs with partially displayed groups on the reverse strand.
"ATM.bam" external dataset added.
"Agilent_4x44k_chr21.gtf" external dataset added.
refTable$levels() method added.
refTable$metaFields() method added.
refTable$addColumn() no longer accepts 1D arrays.
track.exons$buildGroupSize() and buildGroupPosition() methods added.
read.gtf() better complies with the GTF specification, using regular expressions.
Error message rephrased in track.table() constructor.
Updated package's DESCRIPTION link.
tkgrid calls moved to avoid missing elements in Windows interfaces.
1x1 size enforced for auto-sized tk.browse plots.
Hot keys added to tk.browse() for the main buttons.
track.lone class renamed into track.table, for better comprehension.
Annotation track constructors renamed for better comprehension.
Error message for NA end in subtrack corrected.
drawable$draw() and sliceable$draw() now handle NA start and end.
'id' column in the track.exons class and track.exons.CCDS() constructor renamed into 'transcript'.
'position' and 'size' columns added to track.exons.CCDS() output for exon numbering.
draw.boxes() no longer hide out-of-range features in groups, relying on 'groupPosition' and 'groupSize' arguments.
draw.boxes() no longer crash when grouping features on a factor column.
show() and getPath() methods added to the track.bam class.
track.bam no longer raise an error when ending position is not provided to draw.
track.bam no longer raise an error when drawing an empty region.
track.bam no longer raise an error when loaded from a previous session.
'name' field added to the drawable class.
drawable$check() and drawable$show() added for consistency.
track.part class removed, as misleading and no more distinct from refTable.
drawable.list class added, to replace tk.tracks() in tk.browse() and browsePlot() input.
drawable.list and drawable can now be edited interactively using their fix.param() methods.
tk.edit() now uses drawable.list objects as input and output.
'drawFun' functions for 'sliceable' objects now require a '...' argument, nothing else.
track.lone$buildIndex() now produces a check-proof index for empty tables.
track.lone$addArms() no longer crashes in already-armed objects.
draw.boxes() argument 'labelAdj' has new default : "center".
draw.boxes() now handles collision when 'labelAdj' is not "left".
draw.boxes() argument 'groupBy' added.
track.CCDS_exons() and track.exons class updated to use new draw.boxes() 'groupBy' argument.
tk.browse() no longer stops on browsePlot() warnings.
drawable$defaultParams() and drawable$getParam() '...' argument added, to handle 'drawFun' default in sliceable.
track.MGC_genes() removed, as track.NCBI_genes() is more reliable for the same purpose.
track.lone$buildIndex() now preserves index names (broken since 0.1.5).
track.lone$majCalls() becomes track.lone$buildCalls() for consistency.
saveRDT() now stores the package version used to generate the file, readRDT() can return this value.
draw.hist(), draw.boxes() and draw.points() 'colorFun' now accept a '...' argument for interoperability.
track.bands 'height' default replaced from "2 cm" to "3 cm".
Right-click on a coordinate field in tk.browse() now empties and selects the field.
drawable$chromosomes() virtual method added (currently implemented by track.lone).
tk.browse() track spinbox replaced by a combobox.
tk.browse() chromosome entry replaced by a combobox.
tk.browse() 'Find' can also be triggered by the 'return' key when the text field is selected.
tk.browse() 'Jump' can also be triggered by the 'return' key when a coordinate field is selected.
draw.boxes() now adds a short space behind box labels.
draw.boxes() default box color changed for a lighter grey.
tk.edit() track spinbox replaced by a combobox.
tk.edit() parameter spinbox replaced by a combobox.
tk.edit() no longer complains about "" parameter.
track.DGV_cnv() now makes use of the '.chromosomes' argument as other annotation functions.
"colorFun" defaults for draw.hist(), draw.points() and draw.boxes() now take arguments.
track.DGV1_cnv() removed, as input files are no more available. track.DGV2_cnv() becomes track.DGV_cnv().
"How-to guide to Rgb" vignette added, and few manual pages updated.
read.gff3() replaced by read.gtf() and track.GTF().
track.genes, track.bands, track.exons and track.CNV classes and constructors added.
"Annotation" functions now rely on classes for custom representations.
All the "Annotation" function arguments are reorganized.
ISMB-ECCB 2013 pre-release.
normalizePath() calls added to track.bam constructor.
initialize() method added to drawable for 'parameters'.
Rsamtools dependency made optional, only required by the track.bam() constructor.
cghRA specifics removed (model, cghRA.array building), waiting a more general implementation.
The 'cghRA.track' package becomes 'Rgb', and stand-alone.
drawable$defaultParams() new method replaces drawable$defParam() and default().
drawable$callParams() method added, to simplify draw method overload.
crossable virtual class added, taking the cross() method from sliceable.
track.bam class and draw.pileup function added.
'drawFun' graphical parameter replaces 'drawMode' and 'additional', allowing multiple function names.
saveRDT() no longer uses the global environment for temporary storage (NOTE in 'R CMD check').
refTable$fill() and refTable$addList() now raise error when classes does not strictly match.
refTable$fill() and refTable$addList() now merge factors with identical levels.
refTable$addEmptyRows() no longer drops factor class and levels.
refTable$coerce() added to replace refTable$fill() misuses.
track.lone$addList() now calls track.lone$rowOrder() to stay a valid object.
track.lone$check() now also checks for consistency between 'chrom' levels and the index.
singlePlot() added.
Show column updates in tk.tracks() are no longer ignored.
The model window should no longer pop afront in tk.browse().
'updateLimit' argument added to tk.browse().
track.lone$buildIndex() now enforces the integer class, for full NA indexes.
track.lone() now warns about chrom turned into NA as not in .chromosomes.
subtrack() and checktrack() now handle empty tables.
browsePlot() and tk.browse() now rely on tk.tracks() for track and design management.
tk.browse() now offers a pop-up window with model.test() results for cghRA.regions objects.
Tk windows names and titles fixed on Gnome 3.
Icons replaced by 16x16 and 32x32 GIF images.
Tk style 'clam' is the new default on unix platforms.
Tk file selection windows become transients.
tk.browse() is now also full window sized on unix platforms.
tk.browse()'s plot area is now filled and auto scaled at launch.
X11 warnings silenced in tk.file() to fix 'X11 BadDrawable'.
draw.hist()'s 'colorFun' now takes 'track' and 'origin' as arguments.
cghRA.copies default drawing parameter 'colorFun' relies now on copies.
Type 'cytoband' added to sliceable$cross method.
'mergeArms' and 'splitArms' renamed into 'eraseArms' and 'addArms' to avoid confusion.
Coordinates inversions in tk.browse() fixed.
Help page of browsePlot() fixed.
Track editing when no track is selected handled by an error message in tk.browse().
drawable$setParam() can now be used to reset a parameter to its default value.
tk.edit() can now reset parameters to their default values.
drawable$setParam() does not allow anymore a parameter to be set to NULL.
'additionnal' and 'colorFun' default values replaced by null functions.
default() called without argument now returns all the parameters, not only their names.
tk.edit() now distincts custom and default values for parameters.
draw.bg() acuraccy problems in y axis resolved (workaround).
tk.browse() acuraccy for zooming/unzooming sequences resolved (workaround).
'origin' argument added to draw.hist().
'temp' argument added to track.lone methods 'mergeArms' and 'splitArms'.
'bty' argument added to draw.bg(), draw.hist(), draw.boxes() and draw.points().
browsePlot() no longer draws the last track when 'xaxt' was 'n'.
browsePlot() no longer uses 'mar' via '...' for the last track.
browsePlot() no longer has side effects when merging arms.
TK file choosing windows now remind last directory browsed.
require() calls turned into library() ones to raise errors.
track.lone$splitArms() now accepts a band track as 'centromeres'.
drawable$getParameters() replaced by drawable$defParam() for simpler default overload.
draw.boxes() time optimization relying on subtrack().
'maxDepth' argument added to draw.boxes().
'maxElements' changed from 300 to 2000 in CNV Annotation tracks.
NA 'border' no longer raise errors in draw.boxes() and draw.hist().
'spacing' argument added to draw.boxes().
'yaxs' argument added to draw.bg().
'getChromEnd' virtual method added to the draw class, implemented by sliceable and track.lone.
browsePlot() now accepts NA 'start' and 'end'.
draw.bg() acuraccy problems in y axis resolved (workaround).
tk.browse() acuraccy for zooming/unzooming sequences resolved (workaround).
track.NCBI_genes() now also extracts the Gene database ID.
'ylab' and 'ysub' added as drawing parameters, replacing 'trackName' and 'assembly'.
getParameters() method added to drawable class, to be overloaded for class-specific defaults.
read.gff3() added.
browsePlot() now accepts '...' arguments, passed throught to the draw methods.
'border' argument for draw.boxes() and draw.hist() now accepts 'color' to use filling color as border too.
track.DGV_cnv() renammed in track.DGV1_cnv().
track.DGV2_cnv() added for the beta version of DGV.
refTable$indexes() error 'Name not found' know lists concerned names.
refTable$rowOrder() know calls buildIndex() to keep it up-to-date.
subtrack() no longer returns data.frames with arbitrary row.names lengths.
subtrack() and lower level code now relies on an index rather than binary search for chromosome ranges.
sliceable$cross() non-virtual method added.
track.lone$isArmed() method added, now checked in splitArms and mergeArms.
refTable methods setRowNames() and colNames() arguments renammed in 'value' for consistency.
refTable methods setRowNames(), setColNames(), addEmptyRows(), addColumn() and fill() now discard value names, to produce proper data.frames.
refTable$colOrder() method added.
.chromosomes, .makeNames and .orderCols arguments added to track.lone constructor.
track.lone$splitArms() and track.lone$mergeArms() methods added.
'...' arguments were not passed from tk.files to tk.file.
browsePlot() now accepts non-drawable objects in trackList, just ignore them.
'Designs' added to tk.browse for better management of cghRA.probes objects.
'blocking' argument added to tk.convert() and tk.browse(), for stand alone version.
tk.convert() and tk.browse() are no longer embeddable.