Implementation#
Overview#
The algorithm is executed in two steps. First, the unique event times are collected from the nodes. Then, the Kaplan-Meier curve is calculated based on the event times and the number of events at each time point.
In this process, four parties are involved: the aggregator, the data stations, the client, and the vantage6 server. In the diagram below, the central part of the algorithm is the aggregator; the partial parts are the data stations; the client is the party that requests the analysis. Note that the vantage6 server is not shown in the diagram, as it merely acts as a communication hub between data station, aggregator and researcher.
Partials#
Partials are the computations that are executed on each node. The partials have access to the data that is stored on the node. The partials are executed in parallel on each node.
get_unique_event_times#
Get the local unique event times. Depending on the privacy guards set in the node, noise
might be added to the unique event times. The exact same noise applied in this step will
also be applied in the get_km_event_table step.
See the privacy guards section for more information.
get_km_event_table#
Calculates death counts, total counts, and at-risk counts at each unique event time.
Central#
The central part is responsible for the orchestration and aggregation of the algorithm.
kaplan_meier_central#
The central part is responsible for:
Creating the partial tasks for the
get_unique_event_timesandget_km_event_tablepartials.Combining the local unique event times to a global list of unique event times.
Combining the local number of events per unique event time to a global list of number of events.