Releases: krassowski/complex-upset
Releases · krassowski/complex-upset
v1.0.2
v1.0.1
This is a bug-fix only release. All users on 1.0.0 are recommended to upgrade to this version.
Bug fixes:
- Filtering by degree when using non-default mode and
intersections='all'
now correctly accounts for all observations (#89) - Empty sets/groups are now correctly removed when filtering with a non-default mode (#90)
- Missing values are now converted to FALSE and a warning is issued to the user rather than causing an undefined behavior (#88)
v1.0.0
Changes:
- Lists with computed sizes are now returned in a single list called
sizes
byupset_data()
- Set sizes are now not filtered by default when selecting intersections by
min_*
ormax_*
criteria. Passfilter_intersections=TRUE
toupset_set_sizes()
to restore the previous behavior - Union sizes are now calculated before data trimming which provides more accurate ratio estimates
- Added examples for Venn diagrams which are now covered by automated tests to protect against regressions
- Removed
upset_data()
intersected
member to avoid needless duplication of the data frames; accesswith_sizes
instead aest
argument ofintersection_size()
and related functions was renamed tomapping
and is now the first positional argumentmin_max_early
argument is no longer required and was removed
New features:
- Annotations can now access data for any of the available modes by adding
upset_mode()
layer. By default the annotations are given data corresponding to the same mode as the mode of the passed in theupset()
call. - It is now possible to display all intersections, even if those are not present in the data by passing
intersections='all'
toupset()
; this is only feasible for <20 sets, but filtering by degree can allow to explore a subset of all intersections when there are many more sets; this is only useful for modes different from the default exclusive intersection. - If filtering leads to no intersections, an informative error is shown (#80)
Bug fixes:
- Modes passed to
upset()
are now also used for sorting and trimming - Size calculation for modes was optimized for better performance
- User-added layers are now shown on top of
intersection_size()
andintersection_union()
- Column names are no longer modified when supplying to
ggplot2
allowing to easily use them in annotations (#82)
v0.9.0
New features:
- Intersection modes were formalized with the default remaining
exclusive_intersection
(aliasdistinct
); additional modes are:inclusive_intersection
(aliasintersect
),inclusive_union
andexclusive_union
; please read the relevant part of the documentation for details (#78).
- Simple Venn diagrams (for two or three sets) can now be constructed using same input (binary presence data frame) using pseudo geoms:
geom_venn_circle()
,geom_venn_label_region()
,geom_venn_label_set()
,geom_venn_region()
and scalesscale_color_venn_mix()
andscale_fill_venn_mix()
; while developed mostly for the documentation needs, it provides unique capability of highlighting relevant regions of the Venn diagram and placing observations within appropriate regions (which allows to demonstrate their attributes with appropriate aesthetics mapping).
Changes:
- Breaking: union size for "empty" intersection is now equal to its size
Bug fixes:
- Layers added to
upset_set_size()
andintersection_matrix()
will now always go on top (avoiding geoms being hidden underneath) - Declare layer in NAMESPACE to allow basic usage without loading
ggplot2
upset_query()
will now throw an informative error when the user forgets to pass any aesthetics (#79)
v0.8.0
New features:
- Breaking:
geom
ofupset_set_size()
now accepts geom object (e.g.geom_bar()
) rather than a function (e.g.geom_bar
) - Breaking:
upset_set_size()
no longer accepts variadic arguments (...
); please modify thegeom
instead - Data available for
upset_set_size()
now includes all metadata of the original data frame, enabling to annotate the bars, e.g.:upset_set_size(geom=geom_bar(aes(fill=mpaa, x=group)))
- Intersections can now be sorted by multiple criteria, e.g. first by degree and then by cardinality:
sort_intersections_by=c('degree', 'cardinality')
(#47) - Breaking:
dot_size
argument was removed. Usematrix=intersection_matrix(geom=geom_point(size=5))
instead - Intersection matrix can now be customized, including the points (e.g. changing shape to squares), segments (e.g. using dotted line) and outlines (changing color) allowing to create Example 5.4:
Bug fixes:
- Additional geoms added to
upset_set_size()
are now added on top of stripes, thus properly visible
v0.7.4
v0.7.3
v0.4.0
v0.3.0
v0.2.0
Release 0.2.0