Changes in version 0.4.15 ----------------------------------------------------------------------- * low-level graphics functions won't change the index of sector and track. * `colorRamp2()`: add `hcl_palette` argument. * `highlight.sectors()`: argument `padding` supports to wrap the vector with `I()`. * fixed a bug of wrong calculation of label positions in `circos.genomicLabels()`. Changes in version 0.4.14 ----------------------------------------------------------------------- * `circos.genomicTrackPlotRegion()`: add `na.rm = TRUE` when using `range()`. * fixed a bug of `na.col` in `circos.heatmap()`. * improved default order of link end when duplicated rows exist in the data frame. * `circos.heatmap()`: add `cell.border`, `cell.lty` and `cell.lwd` arguments. * add `circos.initializeCircularGenome()`. * `chordDiagram()`: `link.sort` allows to sort links based on the original orders in the input data frame. * label facing is correct now for y-axis when circos.par$xaxis.clock.wise is FALSE. * `rand_color()`: add a new argument `friendly` that generate eye-friendly random colors. * `chordDiagram()`: fixed a bug when a sector have all zero values and after scaling they changed to NA. Changes in version 0.4.13 ----------------------------------------------------------------------- * `circos.link()`: add offset when testing whether the link is out of the sector. Changes in version 0.4.12 ----------------------------------------------------------------------- * `smartAlign()`: improved boxes overlapping * `circos.heatmap()`: automatically convert the input to a matrix if it is a data frame * now validate the regions to check whether the regions are exceeding the chromosomes. * `circos.link()`: add a new `inverse` argument to control whether the link is inversed or not. * `circos.genomicLabels()`: replace `side` argument with `labels.side`. * `circos.points()`, `circos.lines()`, `circos.text()` allow argument `x` to be a two-column matrix. * add `arrange_links_evenly()` function. * add `circos.connect()` function. * `circos.heatmap()`: argument `cluster` can be a clustering object. * `circos.heatmap()`: add `cell_width` to control the relative width of heatmap cells. * add `circos.labels()`. * `chordDiagram()`: bars are drawn according to the visibility of links. Changes in version 0.4.11 ----------------------------------------------------------------------- * `chordDiagram()`: add `link.auto` argument * `chordDiagram()`: add `link.target.prop` and `target.prop.height` arguments * `circos.par()`: add `circle.margin` option * `circos.genomicLabels()`: fixed a bug when `direction = "outside"` * add `xaxis.clock.wise` option in `circos.par()` * `chordDiagram()`: now the scaling is properly applied. * `chordDiagram()`: link positions are optimized so they have minimal intersections. `link.auto` argument is ignored and removed. * `circos.dendrogram()`: support arbitary numbers of branches on each node. * all functions with `factors` with arguments change to `sectors`. Changes in version 0.4.10 ----------------------------------------------------------------------- * `highlight.sector()`: fixed a bug when circos.par("clock.wise" = FALSE) * `circos.genomicLink()`: input data frames can have 2 columns. In this case the start and the end positions of each region are the same. * `circos.circos.trackPlotRegion()`: fixed a bug that sector index was wrongly assigned. * `get.cell.meta.data()`: add `cell.width` and `cell.height` arguments. * `circos.genomicTrackPlotRegion()`: when input is a data frame list and column.index is a vector, reduce the one-column data frame to a vector. * add `add.track.meta.data()` and `add.sector.meta.data()` too add user-defined cell meta data. * add `circos.heatmap()` to draw multi-track heatmaps. * add `circos.barplot()`, `circos.boxplot()` and `circos.violin()`. * sector index are all enforced to be character. * `circos.nested()`: now the graphic parameters are reordered accordingly as the `correspondance`. * add `mm_x()`, `mm_y()`, `mm_h()`, `cm_x()`, `cm_y()`, `cm_h()`, `inches_x()`, `inches_y()`, `inches_h()` functions * `circos.initialize():` if `gap.degree`/`gap.after` is set a named vector, the order of these two options are adjusted to the real sector order. * add `set_track_gap()` function. * `circos.link()`: add `reduce_to_mid_line` argument. * `chordDiagram()`: add `group` argument. Changes in version 0.4.9 ----------------------------------------------------------------------- * `chordDiagram()`: fixed a bug when `link.overlap = TRUE` for sparse matrices. * `circos.rect()`: add `rot` argument. * add `circos.triangle()`. * all examples are included in R source code files * `circos.genomicHeatmap()`: `connection_height` can be set to `NULL` to remove the connection lines. * `genomicDensity()`/`circos.genomicDensity()`: add a new `count_by` argument so that the overlap can be calculated as how many regions overlap to the windows. * `circos.trackPlotRegion()`: cells in all sectors are plotted if `fa` does not provide complete set of categories. * `circos.initialize()`: give warnings if `fa` is in numeric mode. * `circos.track()`/`circos.genomicTrack()`: gives error when the panel function was specified without explicitly by the name `panel.fun`. * `chordDiagram()`: if the input is a data frame, it allows the data frame to have two numeric columns and the link ends are drawn wiht unequal width. Changes in version 0.4.8 ----------------------------------------------------------------------- * add `validate_regions()` to check the end positions and start positions. * `colorRamp2()`: fixed a bug when the color mapping function returns RGB matrix. * `circos.genomicHeatmap()`: add `na_col` argument. * `chordDiagram()`: add `link.overlap` argument. Changes in version 0.4.7 ----------------------------------------------------------------------- * fixed a bug that the vertical line was wrongly put for `circos.yaxis()`. * validate input if it is should be a data frame. * `colorRamp2()`: add HLS colorspace * add `major.at` and `labels` arguments to `circos.genomicAxis()`. * circos.initializeWithIdeogram(): manually select chromosomes for the common species * `chordDiagram()`: fixed a bug that after reducing the matrix/data frame by `reduce`, there might be sectors with zero width. * optimized `circos.nested()` * `colorRamp2()`: check NA values Changes in version 0.4.6 ------------------------------------------------------------------------ * smartAlign(): the order of values won't affect the realignment now. * `circos.rect()`, `circos.segments()`, `circos.points()`, `circos.text()`: x and y are recycled if the length of the variable is 1. * fixed a bug of the position of vertical line in `circos.yaxis()` * add `facing` and `niceFacing` to `circos.genomicLabels()` * `posTransform.text()`: linking lines will not be overlapping anymore. Changes in version 0.4.5 ------------------------------------------------------------------------ * vertical lines added for y-axis. * add `axis.labels.cex` and `labels.cex` in `circos.genomicInitialize()`. * remove `lwd` in `circos.genomicRect()` because `lwd` is not allowed to be vector. * fixed a bug when self.link = 1 in chordDiagram() * add `scale` in chordDiagram() * `circos.initialize()`: convert xlim and x to numeric * `colorRamp2()` is faster now. * add `circos.genomicAxis()`. * add `calc_gap()`. * `chordDiagram()`: consider tibble format as input. Changes in version 0.4.4 ------------------------------------------------------------------------- * update denpendency of GlobalOptions package * `genomicDensity()`: add `chr.len` argument. Changes in version 0.4.3 -------------------------------------------------------------------------- * `circos.trackHist()`: add `area` argument to add filled color under density lines. * `getColorInfo()`: use `ls(envir)` to get the names of variables in the environment. * `circos.arrows`: add instructions of making reverse clockwise arrows. Changes in version 0.4.2 --------------------------------------------------------------------------- * add startup message * add `xmax` argument in `chordDiagram()` * first column is refactorized in `circos.initialize()` * add names for CELL_META * add `labels.pos.adjust` in `circos.axis()` * add `fontsize()` function * `circos.nested()`: check whether sector order in the two circular plots are consistent * `getQuadraticPoints()`: add tiny offset when the curve is actually a straight line Changes in version 0.4.1 --------------------------------------------------------------------------- * add `circos.raster()` * add `circos.arrow()` * re-implement `rand_color()` * support `col` in `circos.axis()` * `circos.genomicLabels()`: regions are automatically sorted in advance Changes in version 0.4.0 ---------------------------------------------------------------------------- * add `link.visible` argument in `chordDiagram()` * add cytoband files and chromInfo files for a list of species locally * add a new vignette "Add legends to circlize" * add a new function `convert_*()` which convert an absolute unit to measurement in different coordinates * enforce asp = 1 when calling plot.default * length of axes ticks are set to 2mm by default * in axis, the first axis label is shifted if it is exceed the axis and so is for the last axis label. * text.vjust accepts strings as "2mm", "-2.1 cm" to represent offsets * `circos.segments()`: graphic parameters can be set as vectors * add `circos.genomicIdeogram()`, `circos.genomicHeatmap()`, `circos.genomicLabels()` * add `circos.nestes()` * vignette has been moved to https://jokergoo.github.io/circlize_book/book/index.html * add `set.current.cell()` * add `h.ratio` argument in `circos.link()` Changes in version 0.3.10 ---------------------------------------------------------------------------- * `chordDiagram()`: fixed a bug when the input matrix is stored as a data frame * `rainfallTransform()`: add "left" and "right" modes, and now the row order of the output data frame is as same as the input one. * `circos.genomicInitialize()`: it can only plot axes now. * `posTransform.text()`: add `extend` option to control the extension of chromsomes to allow to put more labels * `ciros.points()`: add `bg` option to control background color Changes in version 0.3.9 ---------------------------------------------------------------------------- * `chordDiagramFromDataFrame()`: now recognize a `rank` column which defines the order of adding links Changes in version 0.3.8 ---------------------------------------------------------------------------- * chordDiagram(): if not all sectors are specified in grid.col, remaining will be filled by random colors * if `ylim` has same values for upper and lower bound, throw errors. Changes in version 0.3.7 ---------------------------------------------------------------------------- * chordDiagram() now returns a data frame which contains positions of all links * chordDiagram() track.margin is also taken into settings of preAllocateTracks * chordDiagram(): link.sort adds a new option: "overall" which sort links regardless of rows or columns * chordDiagram(): add `link.largest.ontop` which controls the order of adding links Changes in version 0.3.6 ---------------------------------------------------------------------------- * positions of arrows in chordDiagram() have been adjusted. * fixed a bug that negative value was not shown * circos.initialize: if `factors` are unique and is a vector, the order of sectors will be the same as `factors`. * `highlight.sector`: text are now in correct position if sectors are over theta = 0 Changes in version 0.3.5 ---------------------------------------------------------------------------- * `chordDiagram()`: if the corresponding value is zero, nothing happens. * border of links are same as filled by default * explicitely put all arguments in `chordDiagram()` instead of just using `...` * `adj` in `circos.text()` can also adjust text rotations. * 'circos.genomicInitialize()': gap between labels and ideograms is adjusted if there is no axis Changes in version 0.3.4 ---------------------------------------------------------------------------- * `circos.genomicLink()`: ordering is cancled when normalizing the data frames * export `smartAlign()` Changes in version 0.3.3 ---------------------------------------------------------------------------- * `rainfallTransform()` and `genomicDensity()`: can be applied on the bed-format data frame directly. * add `col2rgb()` which transforms back to the original value based on the color mapping function. * add `circos.yaxis()` Changes in version 0.3.2 ----------------------------------------------------------------------------- * `chrodDiagram`: add warning if users use data frame as ajacency matrix * `circos.genomicTrackPlotRegion`: data frame will be sorted Changes in version 0.3.1 ----------------------------------------------------------------------------- * fixed a bug for `chordDiagramFromDataFrame` when there is the third column in the data frame * `colorRamp2`: colors are interpolated linearly in Lab color space * `chordDiagram`: directional, direction.type and diffHeight can also be vector Changes in version 0.3.0 ----------------------------------------------------------------------------- * `chordDiagramFromMatrix`: automatically replace NA to 0 in the input matrix * add `chordDiagramFromMatrix` and `chordDiagramFromDataFrame` * by default there is axis on chord diagram * add `quadratic.bezier.length` that calculates the approximate length of bezier curve * normalize link-related functions to make sure the direction is always from the first argument to the second argument, reverse clockwise. Changes in version 0.2.5 ----------------------------------------------------------------------------- * `circos.rect` and `circos.polygon` are vectorized * `circos.dendrogram`: supports graphical settings for nodes * `circos.link`: support 'big.arrow' mode for links * `circos.text`: graphical settings are subsetted correctly in `niceFacing` is set * add shortcut functions: `circos.track`, `circos.update` and `circos.genomicTrack` * add `normalizeChordDiagramGap` * fixed type in `get.cell.meta.data` Changes in version 0.2.4 ------------------------------------------------------------------------------ * 'chrodDiagram`: If graphic parameters for links are different, the value can be specified as a three-column data frame. * `chordDiagram`: arrows can be used to identify directions * ·circos.link`: arrows can be used to identify directions * `chordDiagram`: width of self-links are not duplicated. * `circos.link`: if two roots for a link overlaps, the link is de-generated as an area with a quadratic curve and an arc. * add `circos.dendrogram` which draw dendrograms (dendrogram can be rendered by `dendextend` package) Changes in version 0.2.3 ------------------------------------------------------------------------------ * add `link.order` argument in `chordDiagram` to control order of links on sectors * add `highlight.sector` * `chromosome.index` can set the order of chromosomes * add `read.chromInfo()` to read chromInfo file from UCSC * if downloading cytoband file failed, try to download chromInfo file * `chromosome.index` can be set in `read.cytoband()` and `read.chromInfo()` Changes in version 0.2.2 ------------------------------------------------------------------------------ * change `.onLoad` to `setLoadActions` * `circos.clear`: __tempdir__ will not be reset Changes in version 0.2.1 ------------------------------------------------------------------------------ * If par("mar") is using default, it will be changed to par(mar = c(1, 1, 1, 1)) internally and will be recovered after calling circos.clear() * `circos.text`: add two options ('bending.inside' which is identical to original 'bending' and 'bending.outside'), both support `niceFacing` * circos.par('__tempdir__') is initialized by `tempdir()` * `.get_color`: there will be no negative value due to 0.000 - 0.000 * `chordDiagram`: `grid.col` is correctly reduced if rownames and colnames overlap * `circos.text`: `font` is passed to `text` function * `colorRamp2`: returned function has an attribute: `breaks` * `chordDiagram`: assign same names for rows and columns if the input matrix is specified symmetric while has no names * `chordDiagram`: also check rownames and colnames if the matrix is specified as symmetric. * don't remove temporary folder * `value` can be scalar or vector in `circos.genomicPoints`, `circos.genomicLines`, ... Changes in version 0.2.0 ------------------------------------------------------------------------------ * `draw.sector` is modified, now accepts an argument `clock.wise` to control the direction of sectors. * `highlight.chromosome` can highlight more than one chromosomes now. * vignettes are rendered by `knitr` * set default transparency to 0.5 in `chordDiagram` * `circlize` returns value when track.index == 0 * fixed a bug when text facing is 'bending', all text are plotted in one cell * different colors for each rows can be set to `circos.genomicLines` if type %in% c("segment", "h") * pre-allocate the matrix in `.get_color` Changes in version 0.1.3 ------------------------------------------------------------------------------ * add `jitter` for adding points under `stack` mode * value in `panel.fun` can be selected by character index * change default temporary dir to `tempdir()` Changes in version 0.1.3 ------------------------------------------------------------------------------ * temporary add dependency of `methods` until bugs in `GlobalOptions` fixed * add `reduce` argument in `chordDiagram` to control whether to remove tiny categories * add `species` argument in `generateRandomBed` * change use of posTransform.text * add names for `chr.len` in `read.cytoband` * cytoband files are cached * `row.col`, `column.col`, `col`, `grid.col` and circos.par('gap.degree') will also be reduced if the matrix is reduced Changes in version 0.1.2 ------------------------------------------------------------------------------ * global options are controlled by `GlobalOptions` package * set `par("lend")` and `par("ljoin")` to their default values. * add more example codes in genomic_plot vignette Changes in version 0.1.1 ------------------------------------------------------------------------------ * fixed the bug that if start position is not zero when calling `circos.genomicIntialize`, ``major.at`` is wrongly calculated. Changes in version 0.1.0 ------------------------------------------------------------------------------ * height(h) and shape(w) can be set for Bezier curve (in `circos.link`) * add examples in man/ * add ``fromRows`` options in `chordDiagram` to control the direction of links * Now the ``major.by`` are the same in all sectors * define ``min.data`` and ``max.data`` in internal variable ``SECTOR.DATA`` * check that sector names cannot be empty strings ("") * check whether circos plot has been initialized when calling `circos.trackPlotRegion` * add ``niceFacing`` in `circos.text` to make the facing more human easy * height of ideogram and annotation track in `circos.initializeWithIdeogram` and `circos.genomicInitialize` can be set * some example code in examples/vignettes has been changed according to changes in the package source code * add `posTransform.text` which can smartly put text on the circle * ``track.margin`` and ``cell.padding`` can be set in `circos.trackPlotRegion` as a local setting Changes in version 0.0.9 ------------------------------------------------------------------------------ * links are now implemented by Bezier curve * baseline can be set when ``type == "h"`` `in circos.lines` * add a new function `chordDiagram` which support chord diagram * add `facing` argument to replace `direction` in `circos.text` * `circos.trackPlotRegion` can be used to update a track without re-setting ylim * move demo to https://jokergoo.github.io/circlize * re-implement `colorRamp2` Changes in version 0.0.8 ------------------------------------------------------------------------------ * axes labels will not draw when setting labels = FALSE * add many functions supporting genomic visualization * add a new vignette to show how to plot genomic circos plot with new functions * add `circos.info` Changes in version 0.0.7 ------------------------------------------------------------------------------ * add an example in demo codes * improved vignettes Change in version 0.0.6 ------------------------------------------------------------------------------ * order will not change in `circos.trackPlotRegion` when not specifying `factors`, bug fixed * add an example in 'draw relation' vignette * add a new vignette focusing on phylogenetic tree * support directly downloading cytoBand file from UCSC Changes in version 0.0.5 ------------------------------------------------------------------------------ * support self-define width of sectors when initializing sectors * add simple functions to read and manuplate cytoband file * add several new figures in the vignettes and vignettes have been improved. * ``cell.padding`` in `circos.par` now using degree as its measurement. * ``track.margin`` in `circos.par` now using percentage of radius as its measurement. Changes in version 0.0.4 ------------------------------------------------------------------------------ * number of points to simulate quadratic curves decreased * labels on axis in `circos.initializeWithIdeogram` is now 'vertical_right' by default * size of the vignettes reduced * add example of drawing heatmap and cluster dendrogram in the main vignette * add example of drawing error area of lines by `circos.polygon` * vignette improved * ``gap.degree`` in `circos.par` can be a vector which means different degrees for gaps can be set * export core function `circlize` now * track.margin now is in correct order * links are optimized (although not so perfect) * no point overflow warnings when drawing axes Changes in version 0.0.3 ------------------------------------------------------------------------------ * vignettes has been improved * ``xplot`` in `get.cell.meta.data` is now corresponding to the data direction in the cell * number of points to draw links decreased. * `get.cell.meta.data` can provide more meta data for a cell * start degree and end degree now consistent with the data axis. * the first sector is drawn first now. * add `draw.sector` Changes in version 0.0.2 ------------------------------------------------------------------------------ * add `draw.sector` so it would be more straightforward to highlight sectors * add ``track.margin``, ``cell.padding``, ``cell.xlim`` and ``cell.ylim`` in `get.cell.meta.data` function * figures in vignettes are all generated automatically * vignettes have been imporved