UpSet Plot Strategy¶
upset_strategy ¶
UpSet Strategy - Set Intersection Visualizations.
This module implements the UpSetStrategy for creating UpSet plots to visualize set intersections and unique contributions across multiple categorical sources.
Classes:
| Name | Description |
|---|---|
UpSetStrategy | Strategy for creating UpSet plots showing set intersections. |
Notes
- Compares overlap between databases (e.g., BioRemPP, HADEG, KEGG)
- Analyzes distribution across regulatory agencies
- Identifies consensus evidence vs. source-specific coverage
- Uses upsetplot library for publication-quality visualizations
For supported use cases, refer to the official documentation.
Classes¶
UpSetStrategy ¶
Bases: BasePlotStrategy
Strategy for creating UpSet plots showing set intersections.
UpSet plots visualize overlap and uniqueness of elements across multiple categories through three components: set size bars, intersection matrix, and intersection size bars.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
config | Dict[str, Any] | Complete configuration from YAML file. | required |
Attributes:
| Name | Type | Description |
|---|---|---|
entity_column | str | Column name for entities to compare. |
category_column | str | Column name for categories/sources. |
sort_by | str | Sorting method ('cardinality' or 'degree'). |
show_counts | bool | Whether to display counts on bars. |
show_percentages | bool | Whether to display percentages. |
min_subset_size | int | Minimum subset size to display. |
max_subset_rank | Optional[int] | Maximum subset rank limit. |
Methods:
| Name | Description |
|---|---|
generate | Generate UpSet plot from data |
validate_data | Validate input data |
process_data | Process and transform data for visualization |
create_figure | Create Plotly figure from processed data |
Notes
- Uses upsetplot library (matplotlib) converted to Plotly format
- Maintains consistency with application's visualization framework
Initialize strategy with configuration.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
config | Dict[str, Any] | Full configuration dictionary from YAML. | required |
Source code in src/domain/plot_strategies/charts/upset_strategy.py
Functions¶
generate ¶
Generate UpSet plot from data.
Validates data, cleans it, builds category sets, creates UpSet plot, and converts to Plotly format.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
data | DataFrame | DataFrame containing entity and category columns. | required |
Returns:
| Type | Description |
|---|---|
Figure | Plotly figure object containing the UpSet visualization. |
Raises:
| Type | Description |
|---|---|
ValueError | If data is empty or required columns are missing. |
Source code in src/domain/plot_strategies/charts/upset_strategy.py
validate_data ¶
Validate input data (required by BasePlotStrategy).
This method wraps the internal _validate_data method to comply with the abstract base class interface.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
df | DataFrame | Input data to validate. | required |
Raises:
| Type | Description |
|---|---|
ValueError | If validation fails. |
Source code in src/domain/plot_strategies/charts/upset_strategy.py
process_data ¶
Process and transform data for visualization.
This method cleans the data and builds category sets, then returns the cleaned DataFrame ready for visualization.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
df | DataFrame | Input data. | required |
Returns:
| Type | Description |
|---|---|
DataFrame | Processed data ready for visualization. |
Source code in src/domain/plot_strategies/charts/upset_strategy.py
create_figure ¶
Create Plotly figure from processed data.
This method generates the UpSet plot using the previously built category sets.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
processed_df | DataFrame | Processed data (not directly used, category sets are used). | required |
Returns:
| Type | Description |
|---|---|
Figure | Configured Plotly figure with UpSet visualization. |
Source code in src/domain/plot_strategies/charts/upset_strategy.py
apply_filters ¶
Apply filters to data.
This is a common implementation that can be overridden by subclasses if needed.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
df | DataFrame | Data to filter. | required |
filters | Optional[Dict[str, Any]] | Filter specifications. | None |
Returns:
| Type | Description |
|---|---|
DataFrame | Filtered data. |
Source code in src/domain/plot_strategies/base/base_plot_strategy.py
apply_customizations ¶
Apply custom styling to figure.
This is a hook for future customization features (FLEXIVEL and FLEXIVEL2).
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
fig | Figure | Base figure. | required |
customizations | Optional[Any] | Customization specifications. | None |
Returns:
| Type | Description |
|---|---|
Figure | Customized figure. |
Source code in src/domain/plot_strategies/base/base_plot_strategy.py
generate_plot ¶
generate_plot(data: DataFrame, filters: Optional[Dict[str, Any]] = None, customizations: Optional[Any] = None) -> go.Figure
Generate complete plot (Template Method).
This method orchestrates the entire plot generation process: 1. Validate input data 2. Process data 3. Apply filters 4. Create figure 5. Apply customizations
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
data | DataFrame | Input data. | required |
filters | Optional[Dict[str, Any]] | Filters to apply. | None |
customizations | Optional[Any] | Customizations to apply. | None |
Returns:
| Type | Description |
|---|---|
Figure | Complete Plotly figure. |
Raises:
| Type | Description |
|---|---|
ValueError | If validation fails. |