Plot Types
OmeroScreen Plots provides several specialized plot types for high-content screening data analysis. Each plot type is designed for specific analytical needs.
FeaturePlot
Purpose: Compare any measured feature across conditions using box plots, violin plots, or boxen plots.
Use cases: - Protein expression levels - Cell morphology parameters - Intensity measurements - Any quantitative feature
Basic Usage
from omero_screen_plots.featureplot import FeaturePlot
plot = FeaturePlot(
data_path="sample_plate_data.csv",
y_feature="intensity_mean_p21_nucleus",
conditions=["DMSO", "Nutlin"],
condition_col="condition",
plot_type="box" # Options: "box", "violin", "boxen"
)Key Parameters
- y_feature: The feature to plot on y-axis
- plot_type: Visual representation style
- test_group_pairs: Pairs for statistical comparisons
- grouped: Enable visual grouping of conditions
- show_points: Overlay individual data points
Output
- Box/violin plots with statistical annotations
- Optional scatter overlay
- Automatic or custom statistics
ClassificationPlot
Purpose: Visualize categorical classification results as stacked bars or individual triplicates.
Use cases: - Cell morphology classification - Phenotype distribution analysis - Quality control assessment - Drug toxicity evaluation
Basic Usage
from omero_screen_plots import classification_plot
fig, ax = classification_plot(
df=df,
classes=["normal", "micronuclei", "collapsed"],
conditions=["control", "treatment1", "treatment2"],
class_col="classifier", # Dynamic classification column
display_mode="stacked" # or "triplicates"
)Key Features
- Dynamic class column: Adapt to any categorical classification
- Two display modes: Stacked bars with error bars or individual triplicates
- Flexible grouping: Group conditions for easier comparison
- Custom colors: Apply meaningful color schemes to categories
CellCyclePlot
Purpose: Analyze cell cycle distribution based on DNA content (DAPI) and S-phase marker (EdU).
Use cases: - Cell cycle profiling - Drug effect on proliferation - p21-based cell cycle arrest analysis
Basic Usage
from omero_screen_plots.cellcycleplot import CellCyclePlot
cc_plot = CellCyclePlot(
data_path="sample_plate_data.csv",
conditions=["DMSO", "Nutlin"],
condition_col="condition",
dapi_col="intensity_integrated_dapi_nucleus",
edu_col="intensity_mean_edu_nucleus",
p21_col="intensity_mean_p21_nucleus" # Optional
)Key Parameters
- dapi_col: Column with integrated DAPI intensity
- edu_col: Column with EdU incorporation data
- p21_col: Optional p21 expression for arrest analysis
- plot_type: “standard”, “grouped”, or “stacked”
- normalise: Normalize to percentage or absolute counts
Output
- Cell cycle phase distribution (G1, S, G2)
- Optional p21+ arrested cells
- Statistical comparisons between conditions
CombPlot
Purpose: Combined visualizations showing relationships between features with marginal distributions.
Use cases: - Feature correlation analysis - Scatter plots with histograms - Distribution comparisons - Multi-dimensional data exploration
Plot Types Available
Scatter Plot
plot = CombPlot( data_path="sample_plate_data.csv", plot_type="scatter", x_feature="intensity_integrated_dapi_nucleus", y_feature="intensity_mean_edu_nucleus" )Histogram
plot = CombPlot( data_path="sample_plate_data.csv", plot_type="histogram", x_feature="area_nucleus" )Hexbin Plot
plot = CombPlot( data_path="sample_plate_data.csv", plot_type="hexbin", x_feature="area_nucleus", y_feature="intensity_mean_dapi_nucleus" )
Key Parameters
- x_feature, y_feature: Features for x and y axes
- plot_type: “scatter”, “histogram”, “hexbin”, “kde”
- show_regression: Add regression line to scatter
- marginal_type: Type of marginal plots
CountPlot
Purpose: Analyze and visualize cell counts per well or condition.
Use cases: - Toxicity assessment - Proliferation analysis - Quality control - Well-to-well variation
Basic Usage
from omero_screen_plots.countplot import CountPlot
count_plot = CountPlot(
data_path="sample_plate_data.csv",
conditions=["DMSO", "Nutlin", "Etop", "Noc"],
condition_col="condition"
)Key Parameters
- normalise_to: Normalize counts to specific condition
- show_plate_layout: Display as plate heatmap
- aggregate_by: Group by well, condition, or plate
Output
- Bar plots of cell counts
- Statistical comparisons
- Optional plate layout visualization
Specialized Analysis Functions
Normalise
Purpose: Data normalization utilities for immunofluorescence data.
from omero_screen_plots.normalise import NormalisePlot
norm_plot = NormalisePlot(
data_path="sample_plate_data.csv",
feature="intensity_mean_p21_nucleus",
control_condition="DMSO"
)Features: - Z-score normalization - Percent of control - Robust scaling - Plate-wise normalization
Stats Module
Purpose: Statistical analysis utilities used across all plot types.
from omero_screen_plots.stats import perform_statistical_tests
# Automatic statistical testing
results = perform_statistical_tests(
data,
groups=["DMSO", "Nutlin"],
test_type="auto" # Automatically selects appropriate test
)Choosing the Right Plot Type
| Analysis Goal | Recommended Plot Type |
|---|---|
| Compare single feature across conditions | FeaturePlot |
| Analyze cell cycle distribution | CellCyclePlot |
| Explore feature relationships | CombPlot (scatter) |
| Assess cell viability/counts | CountPlot |
| Examine distributions | CombPlot (histogram) |
| Normalize data | NormalisePlot |
Common Workflow
- Start with CountPlot to check data quality and cell numbers
- Use FeaturePlot to explore individual features
- Apply CellCyclePlot for proliferation analysis
- Explore with CombPlot for feature relationships
- Normalize data when comparing across plates
Tips
- Always check cell counts first to identify problematic wells
- Use violin plots for large datasets to see distribution shapes
- Enable
show_pointsin FeaturePlot for small sample sizes - Use grouped layouts when comparing related conditions
- Save plots in vector format (PDF/SVG) for publications