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