Trial visualization: services
FiltersService
Returned by: TrialVisualization.filters
| Member | Kind | Description |
|---|---|---|
list | method | Return all currently configured filter payloads. |
replace | method | Replace the full filter list with raw filter payloads. |
add_numeric | method | Append one numeric descriptor filter to the visualization. |
add_categorical | method | Append one categorical descriptor filter to the visualization. |
add_patient_list | method | Append one patient-list filter to the visualization. |
get | method | Return the current stored payload for this visualization section. |
clear | method | Clear this visualization section from the trial visualization. |
list
list() -> list[dict[str, Any]]
Return all currently configured filter payloads.
Examples:
>>> trial_viz.filters.list()
[{'tag': 'DescriptorFilter', 'contents': [...]}]
replace
replace(
filters: Sequence[dict[str, Any]], *, version: str | dict | None = None
) -> TrialVisualization
Replace the full filter list with raw filter payloads.
Use this when you already know the backend payload shape and want to set all filters in one call.
Examples:
>>> trial_viz.filters.replace([
... {
... 'tag': 'DescriptorFilter',
... 'contents': [
... {'descriptorId': 'Blood.Drug.tend', 'arm': 'identity', 'operator': 'Gte', 'value': 0.0}
... ],
... }
... ])
add_numeric
add_numeric(
descriptor: DescriptorRef,
*,
operator: Literal["Eq", "Neq", "Lt", "Lte", "Gt", "Gte"],
value: float,
arm: str | None = None,
version: str | dict | None = None
) -> TrialVisualization
Append one numeric descriptor filter to the visualization.
Pass either a raw descriptor id string, a descriptor handle from
trial.descriptors, or a dict with id / descriptorId and
optional arm.
Examples:
>>> age = trial.descriptors.scalars.get('Blood.Drug.tend', arm='identity')
>>> trial_viz.filters.add_numeric(age, operator='Gte', value=0.0)
With a raw id:
>>> trial_viz.filters.add_numeric('Blood.Drug.tend', operator='Lte', value=10.0, arm='identity')
add_categorical
add_categorical(
descriptor: DescriptorRef,
*,
levels: Sequence[str],
arm: str | None = None,
version: str | dict | None = None
) -> TrialVisualization
Append one categorical descriptor filter to the visualization.
Pass either a categorical descriptor handle, a raw descriptor id, or a
dict with id / descriptorId and optional arm.
Examples:
>>> sex = trial.descriptors.categoricals.get('sex', arm='identity')
>>> trial_viz.filters.add_categorical(sex, levels=['female'])
add_patient_list
add_patient_list(
patients: Sequence[str], *, version: str | dict | None = None
) -> TrialVisualization
Append one patient-list filter to the visualization.
Examples:
>>> trial_viz.filters.add_patient_list(['patient-001', 'patient-002'])
get
get() -> dict[str, Any] | list[dict[str, Any]] | None
Return the current stored payload for this visualization section.
Examples:
>>> trial_viz.timeseries.get()
{'selectors': ['Blood.Drug'], 'layout': {}, ...}
clear
clear(*, version: str | dict | None = None) -> TrialVisualization
Clear this visualization section from the trial visualization.
Examples:
>>> trial_viz.scatter_plots.clear()
GroupsService
Returned by: TrialVisualization.groups
| Member | Kind | Description |
|---|---|---|
get | method | Return the current grouping configuration. |
replace | method | Replace the full grouping configuration. |
clear | method | Reset grouping to the default behavior: group by arm only. |
set_group_by_arm | method | Enable or disable grouping by arm. |
add_scalar_distinct_grouping | method | Add scalar grouping by distinct values. |
add_scalar_bin_width_grouping | method | Add scalar grouping by fixed bin width. |
add_scalar_bin_count_grouping | method | Add scalar grouping by number of bins. |
add_scalar_quantile_grouping | method | Add scalar grouping by quantiles. |
add_scalar_explicit_grouping | method | Add scalar grouping with explicit cut points. |
add_categorical_grouping | method | Add categorical grouping. |
get
get() -> list[dict[str, Any]]
Return the current grouping configuration.
Examples:
>>> trial_viz.groups.get()
[{'tag': 'Scalar', 'contents': {...}}]
Use this when you want to inspect the exact configured groupings or
make a local copy before editing it and sending it back with
replace.
replace
replace(
groups: Sequence[dict[str, Any]], *, version: str | dict | None = None
) -> TrialVisualization
Replace the full grouping configuration.
This is the advanced editing path for groupings. The intended workflow is:
- read the current configuration with
get - edit that list locally
- write it back with
replace
Examples:
>>> groups = trial_viz.groups.get()
>>> groups.pop(3) # remove the fourth grouping
>>> trial_viz.groups.replace(groups)
groups should be a list of grouping dictionaries in the same shape as
returned by get.
clear
clear(*, version: str | dict | None = None) -> TrialVisualization
Reset grouping to the default behavior: group by arm only.
Examples:
>>> trial_viz.groups.clear()
set_group_by_arm
set_group_by_arm(
enabled: bool, *, version: str | dict | None = None
) -> TrialVisualization
Enable or disable grouping by arm.
This controls the same concept as the web UI's "group by arm" toggle. Enabling it ensures one arm-grouping entry is present. Disabling it removes any existing arm-grouping entries while leaving the other configured groupings unchanged.
Examples:
>>> trial_viz.groups.set_group_by_arm(True)
>>> trial_viz.groups.set_group_by_arm(False)
add_scalar_distinct_grouping
add_scalar_distinct_grouping(
descriptor: DescriptorRef,
*,
reference_arm: ReferenceArmRef = "crossArms",
version: str | dict | None = None
) -> TrialVisualization
Add scalar grouping by distinct values.
Pass either a trial scalar descriptor handle or a raw descriptor id.
reference_arm may be:
- an arm id string
"crossArms""identity"- a protocol-arm handle
Examples:
>>> auc = trial.descriptors.scalars.get('Tumor.Drug.auc', arm='identity')
>>> trial_viz.groups.add_scalar_distinct_grouping(auc, reference_arm='identity')
add_scalar_bin_width_grouping
add_scalar_bin_width_grouping(
descriptor: DescriptorRef,
*,
reference_arm: ReferenceArmRef = "crossArms",
offset: float,
width: float,
version: str | dict | None = None
) -> TrialVisualization
Add scalar grouping by fixed bin width.
offset is the lower bound of the first bin. width is the size of
each bin and must be strictly positive.
Examples:
>>> auc = trial.descriptors.scalars.get('Tumor.Drug.auc', arm='identity')
>>> trial_viz.groups.add_scalar_bin_width_grouping(
... auc,
... reference_arm='identity',
... offset=0.0,
... width=2.5,
... )
add_scalar_bin_count_grouping
add_scalar_bin_count_grouping(
descriptor: DescriptorRef,
*,
reference_arm: ReferenceArmRef = "crossArms",
count: int,
version: str | dict | None = None
) -> TrialVisualization
Add scalar grouping by number of bins.
count is the requested number of bins and must be strictly positive.
Examples:
>>> tend = trial.descriptors.scalars.get('Blood.Drug.tend', arm='identity')
>>> trial_viz.groups.add_scalar_bin_count_grouping(
... tend,
... reference_arm='identity',
... count=3,
... )
add_scalar_quantile_grouping
add_scalar_quantile_grouping(
descriptor: DescriptorRef,
*,
reference_arm: ReferenceArmRef = "crossArms",
count: int,
version: str | dict | None = None
) -> TrialVisualization
Add scalar grouping by quantiles.
count is the requested number of quantile groups and must be strictly
positive.
Examples:
>>> auc = trial.descriptors.scalars.get('Tumor.Drug.auc', arm='identity')
>>> trial_viz.groups.add_scalar_quantile_grouping(
... auc,
... reference_arm='identity',
... count=4,
... )
add_scalar_explicit_grouping
add_scalar_explicit_grouping(
descriptor: DescriptorRef,
*,
reference_arm: ReferenceArmRef = "crossArms",
breaks: Sequence[float],
version: str | dict | None = None
) -> TrialVisualization
Add scalar grouping with explicit cut points.
breaks defines the cut points between groups. Values must be strictly
increasing.
Examples:
>>> tend = trial.descriptors.scalars.get('Blood.Drug.tend', arm='identity')
>>> trial_viz.groups.add_scalar_explicit_grouping(
... tend,
... reference_arm='identity',
... breaks=[0.0, 2.0, 5.0],
... )
add_categorical_grouping
add_categorical_grouping(
descriptor: DescriptorRef,
*,
reference_arm: ReferenceArmRef = "crossArms",
version: str | dict | None = None
) -> TrialVisualization
Add categorical grouping.
Pass either a trial categorical descriptor handle or a raw descriptor
id. reference_arm may be an arm id string, "crossArms",
"identity", or a protocol-arm handle.
Examples:
>>> sex = trial.descriptors.categoricals.get('sex', arm='identity')
>>> trial_viz.groups.add_categorical_grouping(sex, reference_arm='identity')
TimeseriesService
Returned by: TrialVisualization.timeseries
| Member | Kind | Description |
|---|---|---|
set_selectors | method | Set the time-series selector list, preserving existing section options. |
add_selectors | method | Append selectors to the current time-series selection. |
replace | method | Replace this section with the provided raw payload. The intended workflow is: |
get | method | Return the current stored payload for this visualization section. |
clear | method | Clear this visualization section from the trial visualization. |
set_selectors
set_selectors(
selectors: Sequence[DescriptorRef], *, version: str | dict | None = None
) -> TrialVisualization
Set the time-series selector list, preserving existing section options.
Pass raw ids, descriptor handles, or dicts with id / descriptorId.
Examples:
>>> trial_viz.timeseries.set_selectors(['Blood.Drug', 'Tumor.Drug'])
add_selectors
add_selectors(
selectors: Sequence[DescriptorRef], *, version: str | dict | None = None
) -> TrialVisualization
Append selectors to the current time-series selection.
Examples:
>>> trial_viz.timeseries.add_selectors(['Tumor.Drug'])
replace
replace(
payload: dict[str, Any], *, version: str | dict | None = None
) -> TrialVisualization
Replace this section with the provided raw payload. The intended workflow is:
- read the current configuration with
get - edit it locally
- write it back with
replace
Examples:
>>> timeseries=trial_viz.timeseries.get()
>>> timeseries["selectors"].pop(2) # edit timeseries
>>> trial_viz.timeseries.replace(timeseries)
get
get() -> dict[str, Any] | list[dict[str, Any]] | None
Return the current stored payload for this visualization section.
Examples:
>>> trial_viz.timeseries.get()
{'selectors': ['Blood.Drug'], 'layout': {}, ...}
clear
clear(*, version: str | dict | None = None) -> TrialVisualization
Clear this visualization section from the trial visualization.
Examples:
>>> trial_viz.scatter_plots.clear()
ScalarsService
Returned by: TrialVisualization.scalars
| Member | Kind | Description |
|---|---|---|
set_selectors | method | Set the scalar selector list, preserving existing section options. |
add_selectors | method | Append selectors to the current scalar selection. |
replace | method | Replace this section with the provided raw payload. The intended workflow is: |
get | method | Return the current stored payload for this visualization section. |
clear | method | Clear this visualization section from the trial visualization. |
set_selectors
set_selectors(
selectors: Sequence[DescriptorRef], *, version: str | dict | None = None
) -> TrialVisualization
Set the scalar selector list, preserving existing section options.
Examples:
>>> auc = trial.descriptors.scalars.get('Tumor.Drug.auc', arm='identity')
>>> trial_viz.scalars.set_selectors([auc])
add_selectors
add_selectors(
selectors: Sequence[DescriptorRef], *, version: str | dict | None = None
) -> TrialVisualization
Append selectors to the current scalar selection.
Examples:
>>> trial_viz.scalars.add_selectors(['Tumor.Drug.auc'])
replace
replace(
payload: dict[str, Any], *, version: str | dict | None = None
) -> TrialVisualization
Replace this section with the provided raw payload. The intended workflow is:
- read the current configuration with
get - edit it locally
- write it back with
replace
Examples:
>>> timeseries=trial_viz.timeseries.get()
>>> timeseries["selectors"].pop(2) # edit timeseries
>>> trial_viz.timeseries.replace(timeseries)
get
get() -> dict[str, Any] | list[dict[str, Any]] | None
Return the current stored payload for this visualization section.
Examples:
>>> trial_viz.timeseries.get()
{'selectors': ['Blood.Drug'], 'layout': {}, ...}
clear
clear(*, version: str | dict | None = None) -> TrialVisualization
Clear this visualization section from the trial visualization.
Examples:
>>> trial_viz.scatter_plots.clear()
ScatterPlotsService
Returned by: TrialVisualization.scatter_plots
| Member | Kind | Description |
|---|---|---|
set_config | method | Replace the scatter-plot configuration list and optional regression settings. |
add_x_vs_x_plot | method | Append one X-vs-X scatter plot configuration. |
add_x_vs_y_plot | method | Append one X-vs-Y scatter plot configuration. |
set_regression | method | Set scatter-plot regression options. |
replace | method | Replace this section with the provided raw payload. The intended workflow is: |
get | method | Return the current stored payload for this visualization section. |
clear | method | Clear this visualization section from the trial visualization. |
set_config
set_config(
scatter_plot_config: Sequence[dict[str, Any]],
*,
regression: dict[str, Any] | None = None,
version: str | dict | None = None
) -> TrialVisualization
Replace the scatter-plot configuration list and optional regression settings.
scatter_plot_config is currently a raw payload surface because the
backend shape is fairly specific and we do not yet have a richer typed
builder.
Examples:
>>> trial_viz.scatter_plots.set_config([
... {
... 'id': 'auc_vs_cmax',
... 'mode': 'XvsY',
... 'variables': {'x': 'Tumor.Drug.auc', 'y': 'Blood.Drug.max'},
... 'arms': ['identity'],
... 'groupedByArm': True,
... }
... ])
The exact payload contract for every scatter mode is not fully documented beyond OpenAPI/examples and existing UI behavior.
add_x_vs_x_plot
add_x_vs_x_plot(
variable: DescriptorRef,
*,
reference_arm: ReferenceArmRef,
compare_arms: Sequence[ReferenceArmRef],
grouped_by_arm: bool = True,
plot_id: str | None = None,
version: str | dict | None = None
) -> TrialVisualization
Append one X-vs-X scatter plot configuration.
This compares one variable in a reference arm against the same variable in one or more other arms.
Examples:
>>> trial_viz.scatter_plots.add_x_vs_x_plot(
... 'Blood.Drug.tend',
... reference_arm='identity',
... compare_arms=['treated'],
... )
add_x_vs_y_plot
add_x_vs_y_plot(
x_variable: DescriptorRef,
y_variable: DescriptorRef,
*,
arms: Sequence[ReferenceArmRef],
grouped_by_arm: bool = True,
plot_id: str | None = None,
version: str | dict | None = None
) -> TrialVisualization
Append one X-vs-Y scatter plot configuration.
This compares one variable against another over one or more arms.
Examples:
>>> trial_viz.scatter_plots.add_x_vs_y_plot(
... 'Tumor.Drug.auc',
... 'Blood.Drug.max',
... arms=['identity'],
... )
set_regression
set_regression(
*,
show_line_equation: bool,
regression_type: Literal["linear", "quadratic", "cubic"] | None = None,
line_equation_legend: dict[str, Any] | None = None,
version: str | dict | None = None
) -> TrialVisualization
Set scatter-plot regression options.
Examples:
>>> trial_viz.scatter_plots.set_regression(
... show_line_equation=True,
... regression_type='linear',
... )
replace
replace(
payload: dict[str, Any], *, version: str | dict | None = None
) -> TrialVisualization
Replace this section with the provided raw payload. The intended workflow is:
- read the current configuration with
get - edit it locally
- write it back with
replace
Examples:
>>> timeseries=trial_viz.timeseries.get()
>>> timeseries["selectors"].pop(2) # edit timeseries
>>> trial_viz.timeseries.replace(timeseries)
get
get() -> dict[str, Any] | list[dict[str, Any]] | None
Return the current stored payload for this visualization section.
Examples:
>>> trial_viz.timeseries.get()
{'selectors': ['Blood.Drug'], 'layout': {}, ...}
clear
clear(*, version: str | dict | None = None) -> TrialVisualization
Clear this visualization section from the trial visualization.
Examples:
>>> trial_viz.scatter_plots.clear()
SurvivalAnalysisService
Returned by: TrialVisualization.survival_analysis
| Member | Kind | Description |
|---|---|---|
set_selectors | method | Set the survival-analysis selector list, preserving existing section options. |
add_selectors | method | Append selectors to the current survival-analysis selection. |
set_observation_window_from_start_until_end | method | Use the full simulated period as the survival observation window. |
set_observation_window_from_start_until_time | method | Restrict survival analysis to a period ending at period_end. |
set_confidence_interval | method | Show or hide confidence intervals on survival plots. |
replace | method | Replace this section with the provided raw payload. The intended workflow is: |
get | method | Return the current stored payload for this visualization section. |
clear | method | Clear this visualization section from the trial visualization. |
set_selectors
set_selectors(
selectors: Sequence[DescriptorRef], *, version: str | dict | None = None
) -> TrialVisualization
Set the survival-analysis selector list, preserving existing section options.
Examples:
>>> trial_viz.survival_analysis.set_selectors(['TimeToProgression'])
The exact backend expectations for survival-analysis-compatible selectors are not fully documented in this repository. In practice these should be time-to-event-like outputs accepted by the web UI.
add_selectors
add_selectors(
selectors: Sequence[DescriptorRef], *, version: str | dict | None = None
) -> TrialVisualization
Append selectors to the current survival-analysis selection.
Examples:
>>> trial_viz.survival_analysis.add_selectors(['TimeToProgression'])
set_observation_window_from_start_until_end
set_observation_window_from_start_until_end(
*, version: str | dict | None = None
) -> TrialVisualization
Use the full simulated period as the survival observation window.
Examples:
>>> trial_viz.survival_analysis.set_observation_window_from_start_until_end()
set_observation_window_from_start_until_time
set_observation_window_from_start_until_time(
period_end: str, *, version: str | dict | None = None
) -> TrialVisualization
Restrict survival analysis to a period ending at period_end.
period_end should be a valid time measure accepted by the platform,
such as an ISO 8601 duration string.
Examples:
>>> trial_viz.survival_analysis.set_observation_window_from_start_until_time('PT30D')
The exact accepted time formats are only partially documented in this repository.
set_confidence_interval
set_confidence_interval(
enabled: bool, *, version: str | dict | None = None
) -> TrialVisualization
Show or hide confidence intervals on survival plots.
Examples:
>>> trial_viz.survival_analysis.set_confidence_interval(True)
replace
replace(
payload: dict[str, Any], *, version: str | dict | None = None
) -> TrialVisualization
Replace this section with the provided raw payload. The intended workflow is:
- read the current configuration with
get - edit it locally
- write it back with
replace
Examples:
>>> timeseries=trial_viz.timeseries.get()
>>> timeseries["selectors"].pop(2) # edit timeseries
>>> trial_viz.timeseries.replace(timeseries)
get
get() -> dict[str, Any] | list[dict[str, Any]] | None
Return the current stored payload for this visualization section.
Examples:
>>> trial_viz.timeseries.get()
{'selectors': ['Blood.Drug'], 'layout': {}, ...}
clear
clear(*, version: str | dict | None = None) -> TrialVisualization
Clear this visualization section from the trial visualization.
Examples:
>>> trial_viz.scatter_plots.clear()
ContributionAnalysisService
Returned by: TrialVisualization.contribution_analysis
| Member | Kind | Description |
|---|---|---|
set_selectors | method | Set the contribution-analysis selector list, preserving existing section options. |
add_selectors | method | Append selectors to the current contribution-analysis selection. |
set_quantile | method | Set the contribution-analysis quantile. |
set_input_baseline_only | method | Use only input baseline descriptors in contribution analysis. |
set_all_baseline | method | Use all baseline descriptors in contribution analysis. |
set_custom_baseline | method | Use an explicit list of baseline descriptor ids. |
replace | method | Replace this section with the provided raw payload. The intended workflow is: |
get | method | Return the current stored payload for this visualization section. |
clear | method | Clear this visualization section from the trial visualization. |
set_selectors
set_selectors(
selectors: Sequence[DescriptorRef], *, version: str | dict | None = None
) -> TrialVisualization
Set the contribution-analysis selector list, preserving existing section options.
Examples:
>>> auc = trial.descriptors.scalars.get('Tumor.Drug.auc', arm='identity')
>>> trial_viz.contribution_analysis.set_selectors([auc])
add_selectors
add_selectors(
selectors: Sequence[DescriptorRef], *, version: str | dict | None = None
) -> TrialVisualization
Append selectors to the current contribution-analysis selection.
Examples:
>>> trial_viz.contribution_analysis.add_selectors(['Tumor.Drug.auc'])
set_quantile
set_quantile(
quantile: float, *, version: str | dict | None = None
) -> TrialVisualization
Set the contribution-analysis quantile.
quantile should be between 0 and 1.
Examples:
>>> trial_viz.contribution_analysis.set_quantile(0.5)
set_input_baseline_only
set_input_baseline_only(
*, version: str | dict | None = None
) -> TrialVisualization
Use only input baseline descriptors in contribution analysis.
Examples:
>>> trial_viz.contribution_analysis.set_input_baseline_only()
set_all_baseline
set_all_baseline(
*, version: str | dict | None = None
) -> TrialVisualization
Use all baseline descriptors in contribution analysis.
Examples:
>>> trial_viz.contribution_analysis.set_all_baseline()
set_custom_baseline
set_custom_baseline(
descriptors: Sequence[DescriptorRef], *, version: str | dict | None = None
) -> TrialVisualization
Use an explicit list of baseline descriptor ids.
Examples:
>>> trial_viz.contribution_analysis.set_custom_baseline(['WT'])
The exact expected descriptor family for custom baseline selection is not fully documented in this repository.
replace
replace(
payload: dict[str, Any], *, version: str | dict | None = None
) -> TrialVisualization
Replace this section with the provided raw payload. The intended workflow is:
- read the current configuration with
get - edit it locally
- write it back with
replace
Examples:
>>> timeseries=trial_viz.timeseries.get()
>>> timeseries["selectors"].pop(2) # edit timeseries
>>> trial_viz.timeseries.replace(timeseries)
get
get() -> dict[str, Any] | list[dict[str, Any]] | None
Return the current stored payload for this visualization section.
Examples:
>>> trial_viz.timeseries.get()
{'selectors': ['Blood.Drug'], 'layout': {}, ...}
clear
clear(*, version: str | dict | None = None) -> TrialVisualization
Clear this visualization section from the trial visualization.
Examples:
>>> trial_viz.scatter_plots.clear()
DataOverlayService
Returned by: TrialVisualization.data_overlay
| Member | Kind | Description |
|---|---|---|
set_tables | method | Replace the full data-overlay table list. |
set_ranges_enabled | method | Show or hide observed ranges in the data overlay. |
add_table | method | Append one data table to the current data-overlay configuration. |
replace | method | Replace this section with the provided raw payload. The intended workflow is: |
get | method | Return the current stored payload for this visualization section. |
clear | method | Clear this visualization section from the trial visualization. |
set_tables
set_tables(
tables: Sequence[DataOverlayTableInput],
*,
ranges: bool = True,
version: str | dict | None = None
) -> TrialVisualization
Replace the full data-overlay table list.
Each entry may be a DataTable handle or a raw stored-reference dict
with coreItemId and snapshotId.
Examples:
>>> table = client.get_data_table('dt-...')
>>> trial_viz.data_overlay.set_tables([table], ranges=True)
set_ranges_enabled
set_ranges_enabled(
enabled: bool, *, version: str | dict | None = None
) -> TrialVisualization
Show or hide observed ranges in the data overlay.
Examples:
>>> trial_viz.data_overlay.set_ranges_enabled(True)
add_table
add_table(
table: DataOverlayTableInput,
*,
include: bool = True,
label: str | None = None,
time_tolerance: float | None = None,
weight: float | None = None,
log_transform_wide_bounds: Sequence[str] | None = None,
version: str | dict | None = None
) -> TrialVisualization
Append one data table to the current data-overlay configuration.
label, when provided, must use only letters, digits, dash -,
underscore _, or colon :.
Examples:
>>> table = client.get_data_table('dt-...')
>>> trial_viz.data_overlay.add_table(table, label='ObservedData', include=True)
With a raw stored reference:
>>> trial_viz.data_overlay.add_table(
... {'coreItemId': '...', 'snapshotId': '...'},
... label='ObservedData',
... )
The exact semantics of timeTolerance, weight, and
logTransformWideBounds are only partially documented in this
repository. The shapes are taken from OpenAPI and the existing raw
skill script.
replace
replace(
payload: dict[str, Any], *, version: str | dict | None = None
) -> TrialVisualization
Replace this section with the provided raw payload. The intended workflow is:
- read the current configuration with
get - edit it locally
- write it back with
replace
Examples:
>>> timeseries=trial_viz.timeseries.get()
>>> timeseries["selectors"].pop(2) # edit timeseries
>>> trial_viz.timeseries.replace(timeseries)
get
get() -> dict[str, Any] | list[dict[str, Any]] | None
Return the current stored payload for this visualization section.
Examples:
>>> trial_viz.timeseries.get()
{'selectors': ['Blood.Drug'], 'layout': {}, ...}
clear
clear(*, version: str | dict | None = None) -> TrialVisualization
Clear this visualization section from the trial visualization.
Examples:
>>> trial_viz.scatter_plots.clear()
OverlayService
Returned by: TrialVisualization.patients_overlay
| Member | Kind | Description |
|---|---|---|
set | method | Replace the individual-patients overlay configuration. |
add_patients | method | Append patients to the current patient overlay. |
add_descriptors | method | Append descriptors to the current patient overlay. |
replace | method | Replace this section with the provided raw payload. The intended workflow is: |
get | method | Return the current stored payload for this visualization section. |
clear | method | Clear this visualization section from the trial visualization. |
set
set(
*,
patients: Sequence[str],
descriptors: Sequence[DescriptorRef],
version: str | dict | None = None
) -> TrialVisualization
Replace the individual-patients overlay configuration.
descriptors accepts raw ids, descriptor handles, or dicts with an
id key and optional arms list.
Examples:
>>> auc = trial.descriptors.scalars.get('Tumor.Drug.auc', arm='identity')
>>> trial_viz.patients_overlay.set(
... patients=['patient-001'],
... descriptors=[auc],
... )
With explicit arms:
>>> trial_viz.patients_overlay.set(
... patients=['patient-001'],
... descriptors=[{'id': 'Tumor.Drug.auc', 'arms': ['identity']}],
... )
The backend-expected descriptor type for patient overlays is not completely clear from contracts alone. Existing examples suggest descriptor ids plus optional arms are accepted.
add_patients
add_patients(
patients: Sequence[str], *, version: str | dict | None = None
) -> TrialVisualization
Append patients to the current patient overlay.
Examples:
>>> trial_viz.patients_overlay.add_patients(['patient-002'])
add_descriptors
add_descriptors(
descriptors: Sequence[DescriptorRef], *, version: str | dict | None = None
) -> TrialVisualization
Append descriptors to the current patient overlay.
Examples:
>>> trial_viz.patients_overlay.add_descriptors(['Tumor.Drug.auc'])
replace
replace(
payload: dict[str, Any], *, version: str | dict | None = None
) -> TrialVisualization
Replace this section with the provided raw payload. The intended workflow is:
- read the current configuration with
get - edit it locally
- write it back with
replace
Examples:
>>> timeseries=trial_viz.timeseries.get()
>>> timeseries["selectors"].pop(2) # edit timeseries
>>> trial_viz.timeseries.replace(timeseries)
get
get() -> dict[str, Any] | list[dict[str, Any]] | None
Return the current stored payload for this visualization section.
Examples:
>>> trial_viz.timeseries.get()
{'selectors': ['Blood.Drug'], 'layout': {}, ...}
clear
clear(*, version: str | dict | None = None) -> TrialVisualization
Clear this visualization section from the trial visualization.
Examples:
>>> trial_viz.scatter_plots.clear()