Calibration of simulated heartbeat curve

A machine learning-based system uses simulated cardiograms and computational models to classify electromagnetic data from the heart, addressing the complexities and invasiveness of current methods for identifying heart disorder sources, achieving accurate and safe source location identification.

JP7682478B2Active Publication Date: 2025-05-26VECTOR MEDICAL INC
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
JP2024000244
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2019-01-14
Filing Date
2024-01-04
Publication Date
2025-05-26
Estimated Expiration
2039-04-25

AI Technical Summary

Technical Problem

Current methods for identifying the source location of heart disorders are complex, costly, and can cause serious complications, such as heart perforation and cardiac tamponade, due to the use of expensive and invasive electrophysiology catheters and body surface vests.

Method used

A machine learning-based system that generates a classifier for classifying electromagnetic data from the heart by using simulated cardiograms and computational models to identify the source configuration of the electromagnetic source, allowing for the identification of arrhythmia sources without invasive procedures.

Benefits of technology

The system effectively identifies the source location of heart disorders with improved accuracy and reduced risk of complications, using machine learning to classify electromagnetic data and simulate various heart conditions, thus guiding targeted treatments.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007682478000001
    Figure 0007682478000001
  • Figure 0007682478000002
    Figure 0007682478000002
  • Figure 0007682478000003
    Figure 0007682478000003
Patent Text Reader

Abstract

To provide a system for generating data representing electromagnetic states of a heart for medical, scientific, research, and / or engineering purposes.SOLUTION: The systems generate data based on source configurations such as dimensions of, and scar or fibrosis or pro-arrhythmic substrate location within, a heart and a computational model of the electromagnetic output of the heart. The systems may dynamically generate the source configurations to provide representative source configurations that may be found in a population. For each source configuration of the electromagnetic source, the systems run a simulation of the functioning of the heart to generate modeled electromagnetic output (e.g., an electromagnetic mesh for each simulation step with a voltage at each point of the electromagnetic mesh) for that source configuration. The systems may generate a cardiogram for each source configuration from the modeled electromagnetic output of that source configuration for use in predicting the source location of an arrhythmia.SELECTED DRAWING: Figure 46
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] Cross - reference to Related Applications This application claims the benefit of U.S. Provisional Patent Application No. 62 / 663,049, entitled "MACHINE LEARNING USING SIMULATED CARDIOGRAMS", filed on April 26, 2018 (Attorney Docket No. 129292-8002.US00), claims the benefit of U.S. Provisional Patent Application No. 62 / 760,561, entitled "RECORD ABLATION PROCEDURE RESULTS IN A DISTRIBUTED LEDGER", filed on November 13, 2018 (Attorney Docket No. 129292-8014.US00), and is a continuation-in-part of U.S. Patent Application No. 16 / 042,984, entitled "GENERATING SIMULATED ANATOMIES OF AN ELECTROMAGNETIC SOURCE", filed on July 23, 2018 (Attorney Docket No. 129292-8003.US00), a continuation-in-part of U.S. Patent Application No. 16 / 042,953, entitled "GENERATING A MODEL LIBRARY OF MODELS OF AN ELECTROMAGNETIC SOURCE", filed on July 23, 2018 (Attorney Docket No. 129292-8004.US00), a continuation-in-part of U.S. Patent Application No. 16 / 042,973, entitled "USER INTERFACE FOR PRESENTING SIMULATED ANATOMIES OF AN ELECTROMAGNETIC SOURCE", filed on July 23, 2018 (Attorney Docket No. 129292-8005.US00), a continuation-in-part of U.S. Patent Application No. 16 / 042,993, entitled "CONVERTING A POLYHEDRAL MESH REPRESENTING AN ELECTROMAGNETIC SOURCE", filed on July 23, 2018 (Attorney Docket No. 129292-8006.US00), and a continuation-in-part of U.S. Patent Application No. 16 / 043,011, entitled "GENERATING APPROXIMATIONS OF CARDIOGRAMS FROM DIFFERENT SOURCE CONFIGURATIONS", filed on July 23, 2018 (Attorney Docket No. 129292-8007.This is a continuation-in-part application of U.S. Patent Application No. 16 / 043,022, filed on July 23, 2018, entitled "BOOTSTRAPPING A SIMULATION-BASED ELECTROMAGNETIC OUTPUT OF A DIFFERENT ANATOMY" (Attorney Docket No. 129292-8008.US00); a continuation-in-part application of U.S. Patent Application No. 16 / 043,034, filed on July 23, 2018, entitled "IDENTIFYING AN ATTRIBUTE OF AN ELECTROMAGNETIC SOURCE CONFIGURATION BY MATCHING SIMULATED AND PATIENT DATA" (Attorney Docket No. 129292-8009.US00); a continuation-in-part application of U.S. Patent Application No. 16 / 043,041, filed on July 23, 2018, entitled "MACHINE LEARNING USING CLINICAL AND SIMULATED DATA" (Attorney Docket No. 129292-8010.US00); a continuation-in-part application of U.S. Patent Application No. 16 / 043,050, filed on July 23, 2018, entitled "DISPLAY OF AN ELECTROMAGNETIC SOURCE BASED ON A PATIENT-SPECIFIC MODEL" (Attorney Docket No. 129292-8011.US00); a continuation-in-part application of U.S. Patent Application No. 16 / 043,054, filed on July 23, 2018, entitled "DISPLAY OF AN ELECTRICAL FORCE GENERATED BY AN ELECTRICAL SOURCE WITHIN A BODY" (Attorney Docket No. 129292-8012.US00); a continuation-in-part application of U.S. Patent Application No. 16 / 162,695, filed on October 17, 2018, entitled "MACHINE LEARNING USING SIMULATED CARDIOGRAMS" (Attorney Docket No. 129292-8002.US01); a continuation-in-part application of U.S. Patent Application No. 16 / 206,005, filed on November 30, 2018, entitled "CALIBRATION OF SIMULATED CARDIOGRAMS" (Attorney Docket No. 129292-8015.This is a continuation-in-part of the U.S. patent application Ser. No. 16 / 247,463, filed on Jan. 14, 2019, entitled "IDENTIFY ABLATION PATTERN FOR USE IN AN ABLATION", and the entire contents of each are hereby incorporated by reference.

BACKGROUND ART

[0002] Many cardiac disorders can cause symptoms, pathological conditions (such as fainting or stroke), and death. Common cardiac disorders caused by arrhythmias include inappropriate sinus tachycardia ("IST"), ectopic atrial rhythm, junctional rhythm, ventricular escape rhythm, atrial fibrillation ("AF"), ventricular fibrillation ("VF"), focal atrial tachycardia ("focal AT"), atrial microreentry, ventricular tachycardia ("VT"), atrial flutter ("AFL"), premature ventricular contractions ("PVC"), premature atrial contractions ("PAC"), atrioventricular nodal reentrant tachycardia ("AVNRT"), atrioventricular reentrant tachycardia ("AVRT"), permanent junctional reciprocating tachycardia ("PJRT"), and junctional tachycardia ("JT"). The sources of arrhythmias can include electrical rotors (spiral-shaped swirling excitation waves) (such as ventricular fibrillation), recurrent electrical focal excitation (such as atrial tachycardia), and reentry based on anatomical structures (such as ventricular tachycardia). These sources are powerful drivers of continuous or clinically significant episodes. Arrhythmias can be treated by ablation using various techniques including high-frequency energy ablation, cryoablation, ultrasonic ablation, laser ablation, external radiation sources, and directed gene therapy, by targeting the source of the cardiac disorder. Since the source and location of the cardiac disorder vary from patient to patient, it is necessary to identify the source of the arrhythmia even in the case of common cardiac disorders in order to perform targeted treatment.

[0003] Unfortunately, current methods for reliably identifying the source location of the origin of heart disorders can be complex, cumbersome, and costly. For example, in one method, an electrophysiology catheter having a multi-electrode basket catheter inserted into the heart (e.g., the left ventricle) through a blood vessel is used to collect measurements of the electrical activity of the heart from within the heart, such as during an induced VF episode. The measurements are then analyzed, which can facilitate identification of possible source locations. Currently, electrophysiology catheters are expensive (typically limited to single-use) and can cause serious complications including heart perforation and cardiac tamponade. In another method, an external surface vest equipped with electrodes is used to collect measurements from the patient's body surface, and the measurements are analyzed to facilitate identification of the source location of the arrhythmia. Such body surface vests are expensive, complex to manufacture, and can interfere with the placement of defibrillators required after inducing VF to collect measurements during an arrhythmia. Further, best analysis requires a computed tomography ("CT") scan and cannot sense the ventricular and atrial septa where approximately 20% of the sources of arrhythmias can occur.

[0004] This application includes at least one drawing created in color. Copies of this application with color drawings (s) will be provided by the Patent Office upon request and payment of the required fees.

Brief Description of the Drawings

[0005]

Figure 1

Figure 2

Figure 3

Figure 4

Figure 5

Figure 6

Figure 7

Figure 8

Figure 9

Figure 10

Figure 11

Figure 12

Figure 13

Figure 14

Figure 15

Figure 16

Figure 17

Figure 18

Figure 19

Figure 20

Figure 21

Figure 22

Figure 23

Figure 24

Figure 25

Figure 26

Figure 27

Figure 28

Figure 29

Figure 30

Figure 31

Figure 32

Figure 33

Figure 34

Figure 35

Figure 36

Figure 37

Figure 38

Figure 39

Figure 40

Figure 41

Figure 42

Figure 43

Figure 44

Figure 45

Figure 46

Figure 47

Figure 48

Figure 49

Figure 50

Figure 51

Figure 52

Figure 53

Figure 54

Figure 55

Figure 56

Figure 57

Figure 58

Figure 59

Figure 60

Figure 61

Figure 62

Figure 63

Figure 64

Figure 65

Figure 66

Embodiments for Carrying Out the Invention

[0006] For various purposes such as medical, scientific, research, and engineering purposes, a method and system are provided for generating data representing the electromagnetic state (e.g., normal sinus rhythm and ventricular fibrillation) of an electromagnetic source (e.g., the heart) within the body. The system generates data based on the source configuration of the electromagnetic source (e.g., the dimensions of the heart and the location of scars or fibrosis or arrhythmogenic substrate within the heart) and a computational model of the electromagnetic output of the electromagnetic source. The system may dynamically generate the source configuration to provide a representative source configuration that may be found in a population. For each source configuration of the electromagnetic source, the system executes a simulation of the operation of the electromagnetic source to generate a modeled electromagnetic output of that source configuration. The system generates derived electromagnetic data (e.g., vector electrocardiogram) for each source configuration from the modeled electromagnetic output of each source configuration. The system may then use the modeled electromagnetic output for various purposes such as identifying the location of a disorder within the electromagnetic source of a patient's body, guiding a treatment to repair (e.g., directed gene therapy) or correct (e.g., ablate) the electromagnetic source, predicting the outcome of a treatment for the electromagnetic source, and analyzing genetic defects. The system may include a modeled output-based machine learning system and a model library generation system, which are described below.

[0007] Modeled output-based machine learning system A method and system are provided for generating a classifier for classifying electromagnetic data derived from an electromagnetic source within a body. The body can be, for example, a human body, and the electromagnetic source can be the heart, brain, liver, lungs, kidneys, or another part of the body that generates an electromagnetic field that can be measured from outside or inside the body. The electromagnetic field can be measured, for example, by one or more (e.g., 12) leads attached to or adjacent to electrodes attached to the patient's body (e.g., via a smartwatch device), a body surface vest worn by the patient, an in-source device (e.g., a basket catheter), and various measurement devices (e.g., an electrocardiograph and an electroencephalograph) such as a cap worn by the patient. The measurements can be represented by, for example, a heartbeat curve such as an electrocardiogram ("ECG") and a vector electrocardiogram ("VCG"), and an electroencephalogram ("EEG"). In some embodiments, an electromagnetic output of an electromagnetic source with various source configurations is modeled, and a classifier is generated by using machine learning to train the classifier using the derived electromagnetic data obtained from the modeled electromagnetic output as training data, providing a modeled output-based machine learning ("MLMO") system. An MLMO system that mainly generates a classifier for cardiac electromagnetic data is described below.

[0008] In some embodiments, the MLMO system uses a computational model of the electromagnetic source to generate training data for training a classifier. The computational model models the electromagnetic output of the electromagnetic source over time based on the source configuration of the electromagnetic source. The electromagnetic output can represent, for example, electric potential, current, and magnetic field. When the electromagnetic ("EM") source is the heart, the source configuration includes information regarding the shape and muscle fibers of the heart, torso anatomy, normal and abnormal heart anatomy, normal and abnormal heart tissue, scars, fibrosis, inflammation, edema, accessory conduction pathways, congenital heart disease, malignancies, previous ablation sites, previous surgical sites, external radiotherapy sites, pacing leads, implantable defibrillator leads, cardiac resynchronization therapy leads, pacemaker pulse generator locations, implantable defibrillator pulse generator locations, subcutaneous defibrillator lead locations, subcutaneous defibrillator pulse generator locations, leadless pacemaker locations, other implanted hardware (e.g., right ventricular assist device or left ventricular assist device), external defibrillation electrodes, surface ECG leads, surface mapping leads, mapping vests, and any subset of the group consisting of other normal and pathophysiological feature distributions, and the EM output is a set of electric potentials over time at various heart locations. To generate the EM output, a simulation can be performed for simulation steps of a step size (e.g., 1 millisecond) to generate an EM mesh for that step. The EM mesh can be a finite element mesh that stores the value of the electric potential at each heart location for that step. For example, the left ventricle can be defined as having approximately 70,000 heart locations, and the EM mesh stores the electromagnetic values for each heart location. In this case, performing a 3-second simulation with a step size of 1 millisecond results in 3,000 EM meshes, each containing 70,000 values. The set of EM meshes is the EM output of the simulation.The computational model is described in "Patient-specific modeling of ventricular activation pattern using surface ECG-derived vectorcardiogram in bundle branch block" by C.T. Villongco, D.E. Krummen, P. Stark, J.H. Omens, and A.D. McCulloch, Progress in Biophysics and Molecular Biology, Vol. 115, Nos. 2 - 3, August 2014, pp. 305 - 313, which is hereby incorporated by reference herein. In some embodiments, the MLMO system can generate values of points between vertices as a mesh, not just vertices. For example, the MLMO system can calculate such point values using Gaussian quadrature.

[0009] In some embodiments, the MLMO system generates training data by performing a number of simulations respectively based on different source configurations, and the different source configurations are different sets of values of the configuration parameters of the computational model. For example, the configuration parameters of the heart can be the heart shape, rotor position, location of the focal excitation source, ventricular orientation within the chest, ventricular myocardial fiber orientation, and intracellular potential generation and propagation in myocardial cells, etc. For each configuration parameter, there can be a set or range of possible values. For example, the rotor position can be 78 sets of possible parameters corresponding to different positions within the ventricle. Since the MLMO system can perform simulations for each combination of possible values, the number of simulations can be in the millions.

[0010] In some embodiments, the MLMO system trains a classifier that performs classification based on EM data collected from a patient using the EM output of the simulation. The MLMO system may generate derived EM data for each EM output of the simulation. The derived EM data corresponds to EM data generated based on measurements collected by an EM measurement device, such as, for example, twelve leads for generating an ECG or VCG, a body surface vest, and an in electromagnetic source device. The ECG and VCG are equivalent source representations of the EM output. The MLMO then generates a label(s) for each derived EM data to specify the classification to which each derived EM data corresponds. For example, the MLMO system may generate a label that is the value of a configuration parameter (such as rotor position) used when generating the EM output from which the EM data was derived. The set of derived EM data corresponding to the feature vectors, and their labels, constitute training data for training the classifier. The MLMO system then trains the classifier. The classifier can be any of a variety of classifiers or combinations of classifiers, including neural networks such as fully connected, convolutional, recurrent, autoencoders, or restricted Boltzmann machines, support vector machines, and Bayesian classifiers. When the classifier is a deep neural network, training generates a set of weights for the activation function of the deep neural network. The classifier can be selected based on the type of disorder to be identified. For example, a particular type of neural network may be able to be effectively trained based on a focus excitation source rather than a rotor source.

[0011] In some embodiments, the MLMO system may augment the training data with additional features of the source configuration used to generate the training data. For example, the MLMO system may generate additional features representing heart shape, heart orientation, the location(s) of scar or fibrosis or arrhythmogenic substrate, ablation location, and ablation shape. The MLMO system may input these additional features along with the output generated by a layer before the fully connected layer of a convolutional neural network (“CNN”) described below into the fully connected layer. The output of the layer before the fully connected layer (e.g., a pooling layer) may be “flattened” into a one-dimensional array, and the MLMO system may add the additional features as further elements of the one-dimensional array. The output of the fully connected layer may provide the probability for each label used in the training data. Thus, the probability is based on a combination of the derived EM data and the additional features. The classifier can output different probabilities even when the derived EM data is the same or similar, for example, to reflect that the same or similar EM data may be generated for patients with different heart shapes and different locations of scar or fibrosis or arrhythmogenic substrate. Alternatively, the MLMO system may use an additional classifier that (1) inputs the probabilities generated by the CNN based only on the derived EM data, (2) inputs the additional features, and then outputs the final probability for each classification incorporating the additional features. The additional classifier may be, for example, a support vector machine. The CNN and the additional classifier may be trained in parallel.

[0012] In some embodiments, the MLMO system normalizes the VCG of each cycle of the training data on both the potential axis and the time axis. A cycle can be defined as a time interval (e.g., from start time to end time) that defines a single unit or heartbeat of the regular and irregular electrical activities between normal and abnormal rhythms. The cycle facilitates the heartbeat unit analysis of the temporal development of the source configuration, and enables the subsequent normalization of potential and time in each cycle. The normalization retains the prominent features of the potential-time dynamics and improves the generalization ability of the training data to variations in the source configuration parameters (e.g., torso conductivity, lead placement and resistance, myocardial conduction velocity, action potential dynamics, overall heart dimensions, etc.) expected in an actual patient. The MLMO system can normalize the potential to the range of -1 to 1 and the time to a fixed range of 0 to 1 in millisecond or percentage increments. To normalize the potential of a cycle, the MLMO system can identify the maximum magnitude of the vector across the axis. The MLMO system divides each potential by the maximum magnitude. To normalize the time axis, the MLMO system performs interpolation from the number of points in the VCG, which can be more or less than 1000, to 1000 points of the normalized cycle.

[0013] In some embodiments, after the classifier is trained, the MLMO system is ready to generate a classification based on the EM and other routinely available clinical data collected from the patient. For example, an ECG can be collected from the patient and a VCG can be generated from the ECG. The VCG is input to the classifier and a classification indicating, for example, the rotor position of the patient is generated. As a result, even if the shape of the patient's heart is unknown or no simulation is based on the same shape as the patient's heart, a classification can be generated using the MLMO system. If other patient measurements are available, such as the dimensions or orientation of the heart, scar or fibrosis or the composition of the arrhythmogenic substrate, these other patient measurements can be included as inputs together with the EM data to improve accuracy. This allows the classifier to effectively learn complex hidden features in various clinical data that are not directly represented by the training data.

[0014] In some embodiments, the MLMO system can classify the stability of the source of origin (i.e., the consistency between heartbeats of the dominant arrhythmia source identified in a specific region within the heart) by generating training data based on sequences of consecutive cycles with similar EM features. Techniques for determining the stability of the arrhythmia source are described in Krummen, D., et al., "Rotor Stability Seperates Sustained Ventricular Fibrillation from Self-Terminating Episodes in Humans," Journal of American College of Cardiology, Vol. 63, No. 23, 2014, which is hereby incorporated by reference in its entirety. This reference demonstrates the effectiveness of targeted ablation at stable source sites to prevent recurrent arrhythmia episodes. For example, given a VCG, the MLMO system can identify cycles and then identify sequences of two consecutive cycles, three consecutive cycles, four consecutive cycles, etc., where all the VCG cycles within the sequence are in a similar form to each other. Each identified sequence can be labeled based on the values of the parameters of the source configuration used to generate the VCG. The MLMO system can then train separate classifiers using the training data of sequences of that sequence length (e.g., 2, 3, 4, etc.) for each sequence length. For example, the MLMO system can train a classifier for sequences of two cycles and a separate classifier for sequences of three cycles. To generate a classification for a patient, the MLMO system can identify sequences of similar cycles of various sequence lengths in the patient's VCG and input these sequences into classifiers of the appropriate sequence length. The MLMO system can then combine the classifications from all the classifiers to arrive at a final classification or simply output all the classifications.

[0015] The classifier can be trained using the ECG or VCG of an actual patient and the corresponding intracardiac basket catheter measurements of the source location. Although the costs associated with the collection, preparation, and labeling of a sufficient amount of data may be significantly reduced by technological advancements, they can currently be very high. Also, while advancements in the collection and storage of medical records may make the use of actual patient data more effective, training data based on actual patients is currently too sparse and noisy to be particularly effective for training classifiers for large populations. In some embodiments, the MLMO system can be trained using a combination of the VCG of an actual patient and the VCG derived from simulations. Training data collected from actual patients can be collected using various devices such as flexible electronics (e.g., epidermal electronic systems) and smart clothing.

[0016] In some embodiments, the MLMO system can be trained using a combination of the VCG of an actual patient and the VCG derived from simulations.

[0017] Figure 1 is a block diagram showing the overall processing of an MLMO system in some embodiments. The MLMO system includes a classifier generation component 110 and a classification component 120. The cardiac computational model is a cardiac model that may include data and code stored in the cardiac model data store 111. The simulation generation component 112 inputs a cardiac model and a set of parameters for the simulation. The set of parameters, also referred to as the source configuration, may include a set of parameter values for each combination of possible parameter values, or may specify a method for generating the set of parameters (e.g., via computer code). For example, the computer code for the rotor position parameter may include a list of possible rotor positions, and the computer code for the ventricular orientation parameter may dynamically generate values from its base orientation axis, along with the code, to generate possible tilt angles from the base orientation, such as increments along the x and y axes. The output of the simulation generation component is stored in the potential solution data store 113 where the potential solution is the EM output. The potential solution is an example of an EM mesh. The VCG generation component 114 generates a VCG from the potential solution and stores the VCG in the VCG data store 115. The VCG generation component may generate an ECG from the potential solution and then generate a VCG from the ECG. The generation of the VCG from the ECG is described in "Reconstruction of the Frank vectorcariogram from standard electrocardiographic leads: diagnostic comparison of different methods" by J.A. Kors, G. Van Herpen, A.C. Sittig, and J.H. Van Bemmel, published in the European Heart Journal, Volume 11, Number 12, December 1, 1990, pages 1083 - 1092, which is hereby incorporated by reference. The training data generation component 116 inputs the VCG, labels each VCG with one or more labels that may be derived from the set of parameters, and stores the training data in the training data store 117.The label can be, for example, the value of a parameter in a set of parameters used to generate the EM output from which the VCG was derived. The classifier training component 118 inputs training data, trains a classifier, and stores weights (e.g., the weights of the activation functions of a convolutional neural network) in the classifier weight data store 119. To generate a classification, the ECG collection component 121 inputs an ECG collected from a patient. The VCG generation component 122 generates a VCG from the ECG. The classification component 123 inputs the VCG and uses the classification weights of the trained classifier to generate a classification.

[0018] A computing system (e.g., a network node or a collection of network nodes) on which an MLMO system and other described systems can be implemented may include a central processing unit, an input device, an output device (e.g., a display device and a speaker), a storage device (e.g., a memory and a disk drive), a network interface, a graphics processing unit, a cellular wireless link interface, and a global positioning system device, etc. The input device may include a keyboard, a pointing device, a touch screen, a gesture recognition device (e.g., for air gestures), a head and eye tracking device, and a microphone for voice recognition, etc. The computing system may include a high-performance computing system, a cloud-based server, a desktop computer, a laptop, a tablet, an e-book reader, a personal digital assistant, a smartphone, a game device, and a server, etc. For example, simulation and training may be performed using a high-performance computing system, and classification may be performed by a tablet. The computing system may access a computer-readable medium including a computer-readable storage medium and a data transmission medium. The computer-readable storage medium is a tangible storage means that does not include a temporary radio signal. Examples of the computer-readable storage medium include memories such as primary memory, cache memory, and secondary memory (e.g., DVD), and other storage. The computer-readable storage medium may have recorded thereon, or may be encoded with, computer-executable instructions or logic for implementing the MLMO system and other described systems. The data transmission medium is used to transmit data through a wired or wireless connection via a temporary propagation signal or a carrier wave (e.g., electromagnetic). The computing system may include a secure cryptographic processor as part of the central processing unit for generating and securely storing keys and for encrypting and decrypting data using the keys.

[0019] The MLMO system and other described systems may be described in the general context of computer-executable instructions, such as program modules and components executed by one or more computers, processors, or other devices. Generally, a program module or component includes routines, programs, objects, and data structures, among others, that perform tasks or implement data types of the MLMO system and other described systems. Usually, the functions of the program modules may be combined or distributed as required in various examples. Aspects of the MLMO system and other described systems may be implemented in hardware using, for example, application-specific integrated circuits ("ASICs") or field-programmable gate arrays ("FPGAs").

[0020] Figure 2 is a flowchart showing the overall process of generating a classifier by the MLMO system in some embodiments. The classifier generation component 200 is executed to generate a classifier. At block 201, the component accesses a computational model used to perform a simulation. At block 202, the component selects the next source configuration (i.e., parameter set) used in the simulation. At decision block 203, if all source configurations have already been selected, the component proceeds to block 205; otherwise, the component proceeds to block 204. At block 204, the component performs a simulation using the selected source configuration to generate an EM output of the simulation, then loops back to block 202 to select the next source configuration. At block 205, the component selects the next EM output generated by the simulation. At decision block 206, if all EM outputs have already been selected, the component proceeds to block 210; otherwise, the component proceeds to block 207. At block 207, the component derives EM data from the EM output. For example, the EM output can be a set of EM meshes, and the EM data can be an ECG or VCG derived from the electromagnetic values of the EM meshes. In some embodiments, the component can further identify a period (regular interval of arrhythmic activity) within the ECG or VCG. The period can be delimited by a continuous crossing from a negative potential to a positive potential ("orthogonal crossing") or from a positive potential to a negative potential ("negative crossing") with respect to a spatial direction or set of directions including a reference frame or set of reference frames. The reference frame can coincide with an anatomical structure axis (e.g., left - right x - axis, up - down y - axis, front - back z - axis), an imaging axis (e.g., CT, MR, or x - ray coordinate frame), a body surface lead vector, a principal axis calculated by principal component analysis of the measured or simulated EM source configuration and output, or a user - defined direction of interest. For example, a 3 - second VCG can have three periods, and each period can be delimited at the time of an orthogonal crossing along the x - axis. Alternatively, the period can be delimited by a crossing along the y - axis or z - axis.Furthermore, the period can be defined by negative crossings. Thus, in some embodiments, a component can generate training data from a single VCG based on various period definitions, where the various period definitions are all the periods of the axes defined by crossings on one of the x, y, and z axes, or various combinations of positive and negative crossings with the periods defined respectively by crossings on that axis. Further, the training data can include the identified periods based on all possible period definitions or a subset of period definitions. For example, the training data can include the periods defined by the positive crossing of the x-axis, the negative crossing of the y-axis, and the positive crossing of that axis itself, for each axis. The period definition can also be defined by the timing of electrical events derived from values stored in the EM mesh. For example, a point or set of points in the mesh can periodically exceed a potential threshold indicating electrical activation and deactivation. Thus, the period can be defined by the activation-deactivation corresponding to a point or set of points in the mesh, or the intervals between successive activation-activation or deactivation-deactivation. The resulting timing of these intervals can be co-localized with the ECG or VCG, enabling period identification. At block 208, the component labels the EM data based on the source configuration (e.g., source location). Once the periods are identified, the component can label each period with the same label. For example, the component can label the identified periods with the same rotor position. At block 209, the component adds the EM data with the labels to the training data and then loops back to block 205 to select the next EM output. At block 210, the component trains a classifier using the training data and then completes.

[0021] Figure 3 is a block diagram showing training and classification using a convolutional neural network in some embodiments. The convolutional neural network can be one-dimensional in the sense that it takes as input an image that is a single row of pixels where each pixel has red, green, and blue ("RGB") values. The MLMO system sets the pixel values based on the VCG potential of the training data. The image has the same number of pixels as the VCG vector of the training data. The MLMO system sets the red, green, and blue values of the pixels of the image to the x, y, and z values of the corresponding vector of the VCG. For example, if the VCG has a period of 1 second in length and the VCG has a vector every millisecond, the image will be 1 x 1000 pixels. The one-dimensional convolutional neural network ("1D CNN") trainer 310 learns the weights of the activation function of the convolutional neural network using the training data 301. To generate a classification of the patient, the MLMO system provides the patient's VCG 302 as a one-dimensional image. Next, the 1D CNN 320 classifies the VCG based on the weights and outputs a classification such as the rotor position.

[0022] A CNN is a type of neural network that was specifically developed to process images. A CNN can be used to take an entire image as input and output a classification of the image. For example, a CNN can be used to automatically determine whether a patient scan indicates the presence of an abnormality (e.g., a tumor). The MLMO system treats the derived EM data as a one-dimensional image. A CNN has a plurality of layers such as a convolutional layer, a rectified linear unit ("ReLU") layer, a pooling layer, and a fully connected ("FC") layer. Some more complex CNNs can have multiple convolutional layers, ReLU layers, pooling layers, and FC layers.

[0023] The convolutional layer may include a plurality of filters (also referred to as kernels or activation functions). The filter inputs a convolutional window of an image, applies weights to each pixel of the convolutional window, and outputs an activation value of the convolutional window. For example, when the image is 256x256 pixels, the convolutional window may be 8x8 pixels. The filter may apply different weights to each of the 64 pixels within the convolutional window to generate an activation value, also referred to as a feature value. The convolutional layer may include nodes (also referred to as neurons) for each pixel of the image, assuming a stride of 1 and suitable padding for each filter. Each node outputs a feature value based on a set of weights of the filter learned during the training phase of that node. Continuing with the example, the convolutional layer may have 65,566 (256x256) nodes for each filter. The feature values generated by the nodes of the filter may be considered to form a convolutional feature map with a height and width of 256. If the feature values calculated for a convolutional window at a certain position are assumed to be useful for identifying features at another position (e.g., edges), all the nodes of the filter may share the same set of weights. By sharing the weights, both the training time and storage requirements can be significantly reduced. If each pixel of the image is represented by multiple colors, the convolutional layer may include another dimension representing each individual color. Also, if the image is a 3D image, the convolutional layer may include yet another dimension for each image within the 3D image. In such cases, the filter may input a 3D convolutional window.

[0024] The ReLU layer may have nodes that generate feature values for each node of the convolutional layer. The generated feature values form a ReLU feature map. The ReLU layer applies a filter to each feature value of the convolutional feature map to generate the feature values of the ReLU feature map. For example, using a filter such as max(0, activation value), it can be ensured that the feature values of the ReLU feature map are not negative.

[0025] The pooling layer can be used to form a pooling feature map by downsizing the size of the ReLU feature map by downsampling the ReLU feature map. The pooling layer includes a pooling function that inputs a group of feature values of the ReLU feature map and outputs the feature values. For example, the pooling function can generate a feature value that is the average of a 2x2 group of feature values of the ReLU feature map. Continuing with the above example, the pooling layer has a 128x128 pooling feature map for each filter.

[0026] The FC layer includes a certain number of nodes that are each connected to all the feature values of the pooling feature map. For example, if an image needs to be classified as being a cat, dog, bird, mouse, or ferret, the FC layer can include five nodes that have feature values that provide scores indicating the likelihood that one of the animals is included in the image. Each node is equipped with a filter that has a unique set of weights adapted to the type of animal detected by the filter.

[0027] Below, the MLMO system is described with reference to the following data structures. Parentheses indicate an array. For example, VCG[2].V[5].x represents the potential on the x-axis at the fifth time interval in the second VCG. The data structures are further described below when first referenced. VCG data structure VCG[] Size V[] x y z nVCG V[] x y z Periodic data structure #C C[] Start End Training data structure #TD TD[] nVCG[] Label(s)

[0028] Figure 4 is a flowchart showing the detailed processing of the classifier generation component of the MLMO system in some embodiments. The classifier generation component 400 is called to generate a classifier. At block 401, the component calls the simulated VCG generation component to simulate the VCG (VCG[]) with various parameter sets. At blocks 402-405, the component loops to generate the training data for each simulation. At block 402, the component sets the index i to 1 to perform indexing through the parameter set. At decision block 403, if the index i is equal to the number of parameter sets, all the training data has been generated and the component proceeds to block 406; otherwise, the component proceeds to block 404. At block 404, the component calls the training data generation component and passes the instruction of the indexed parameter set. At block 405, the component increments the index i and then loops back to block 403. At block 406, the component calls the classifier training component to train the classifier based on the generated training data and then completes.

[0029] FIG. 5 is a flowchart showing the processing of the simulated VCG generation component of the MLMO system in some embodiments. The simulated VCG generation component 500 is called to generate the simulated VCG for each parameter set. At block 501, the component sets index i to 1 to index through the parameter set. At decision block 502, if index i is greater than the number of parameter sets, the component is done; otherwise, the component continues to block 503. At block 503, the component sets index j to 1 to index through the simulation steps. At decision block 504, if index j is greater than the number of simulation steps, the simulation of the indexed parameter set is complete and the component continues to block 507; otherwise, the component continues to block 505. At block 505, the component applies a computational model based on the indexed parameter set and the indexed simulation step to generate the potential solution (VS[j]) for the indexed simulation step. At block 506, the component increments index j and then loops to block 504 to process the next simulation step. At block 507, the component generates the VCG (VCG[i]) for the indexed parameter set from the potential solutions (VS[]) calculated for the parameter set. At block 508, the component increments index i and then loops to block 502 to process the next parameter set.

[0030] Figure 6 is a flowchart showing the processing of a training data generation component for the period of an MLMO system in some embodiments. The training data generation component 600 is called and passed an index i that indexes the VCG generated with a parameter set, and generates training data from the VCG. At block 601, the component calls the period identification component, passes an indication of the indexed VCG (VCG[i]), and receives the normalized VCG (nVCG[]) for each period along with the count of the identified periods (#C). At block 602, the component sets an index k to 1 for indexing through the periods. At decision block 603, if the index k is greater than the count of the periods, then the training data for all the periods of the indexed VCG has been generated and the component is complete; otherwise, the component continues to block 604. At block 604, the component increments the execution count (#TD) of the training data (TD) that is used as an index for the training data. At block 605, the component sets the normalized nVCG of the indexed training data (TD[#TD].nVCG) to the portion of the VCG specified by the indexed period. The component extracts the portion defined by the start and end points of the period from the x-axis, y-axis, and z-axis. At block 606, the component sets the label(s) of the indexed training data based on a function of the indexed parameter set (e.g., rotor position). At block 607, the component increments the index k to index to the next period and then loops to block 603 to process the next period.

[0031] FIG. 7 is a flowchart showing the processing of the period identification component of the MLMO system in some embodiments. The period identification component 700 is called to identify the periods within the VCG and provides the normalized VCG of the periods (nVCG[]). At block 701, the component initializes index j to 2 for indexing through the VCG and sets index k to 0 for indexing through the identified periods. At decision block 702, if index j is greater than the size of the VCG, the component has identified all the periods, the component is completed and provides the normalized nVCG, otherwise, the component continues to block 703. At block 703, if the potential start of a period is identified (i.e., the potential start of a period is identified when the potential before the x-axis potential of the VCG (VCG.V[j - 1].x) is greater than or equal to zero and the x-axis indexed potential of the VCG (VCG.V[j].x) is less than zero), the component continues to block 704 to identify the period, otherwise, the component continues to block 709. At block 704, the component sets the start of the indexed period (C[k].start) equal to index j. At decision block 705, if at least one period has already been identified, since the end of the previous period is known, the component increments index k and continues to block 706, otherwise, the component increments index k and continues to block 709. At block 706, the component sets the end of the previous period to index j - 1. At block 707, the component extracts the VCG (eVCG) of the previously indexed period delimited by the start and end of the previous period. At block 708, the component calls the period normalization component, passes the indication of the extracted VCG (eVCG), and receives the normalized period (nVCG). At block 709, the component increments index j for indexing through the VCG and loops back to block 702.

[0032] FIG. 8 is a flowchart showing the processing of the periodic normalization component of the MLMO system in some embodiments. The periodic normalization component 800 is called and passed an indication of the VCG of the period to normalize the period. At block 801, the component identifies the magnitude V' of the maximum vector of the vectors within the period. For example, the vector magnitude of a vector can be calculated by taking the square root of the sum of the square of the x value, the square of the y value, and the square of the z value of the vector. At block 802, the component sets an index i to index the next axis of the VCG. At decision block 803, if all axes have already been selected, the component is complete and provides the normalized VCG, otherwise the component continues to block 804. At block 804, the component initializes an index j to 1 to index through the vectors of the normalized period. At decision block 805, if the index j is greater than the number of vectors of the normalized period, the component loops to block 802 to select the next axis, otherwise the component continues to block 806. At block 806, the component sets the normalized VCG of the indexed vector of the indexed axis to an interpolation of the passed VCG, the indexed vector, and the maximum vector magnitude V'. The interpolation effectively compresses or expands the VCG to the number of vectors within the normalized VCG and divides the x, y, and z values of the vector by the maximum vector magnitude V'. At block 807, the component increments the index j and then loops to block 805.

[0033] FIG. 9 is a flow diagram showing the processing of a training data generation component for similar periodic sequences of an MLMO system in some embodiments. A training data generation component 900 for similar periodic sequences is called and identifies two consecutive similar periodic sequences of the VCG indexed by the passed index i, and generates training data based on the identified similar periodic sequences. The periods within the sequence are similar according to a similarity score that reflects the stability of the period. At block 901, the component calls a period identification component to identify the periods (nVCG[]) of the VCG. At block 902, the component sets index j to 2 for indexing through the identified periods. At decision block 903, if index j is greater than the number of identified periods, then all periods have been indexed and the component is complete; otherwise, the component continues to block 904. At block 904, the component generates a similarity score for the periods indexed by j - 1 and j. The similarity score can be based on, for example, cosine similarity and Pearson correlation. At decision block 905, if the similarity score exceeds a threshold (T) indicating a similar period, then a sequence of similar periods has been identified and the component continues to block 906; otherwise, the component continues to block 909. At block 906, the component increments the execution count (#TD) of the training data. At block 907, the component sets the training data to the sequence of similar periods. At block 908, the component sets the label of the training data to a label derived from the parameter set (PS[i]) used to generate the VCG, and then continues to block 909. At block 909, the component increments index i to select the next periodic sequence and loops back to block 903.

[0034] FIG. 10 is a flowchart showing the processing of the classification component of the MLMO system in some embodiments. The classification component 1000 is called, passed the VCG derived from the patient, and outputs a classification. At block 1001, the component calls the period identification component, passes the VCG instruction, and receives the normalized VCG of the period and the count of the periods. At block 1002, the component sets the index k to 1 to perform indexing through the periods. At decision block 1003, if the index k is greater than the number of periods, the component completes the classification; otherwise, the component continues to block 1004. At block 1004, the component applies the classifier to the indexed period to generate a classification. At block 1005, the component increments the index and then loops to block 1003 to process the next period. For each period, different classifications (e.g., different rotor positions) can be generated. In such cases, the overall classification can be derived from a combination of the different classifications (e.g., the average of the rotor positions).

[0035] Model Library Generation System A method and system are provided for generating a model library of models of EM sources in the body. In some embodiments, a model library generation ("MLG") system generates a model based on a source configuration having configuration parameters including anatomical structure parameters and electrophysiological parameters of the EM source. The anatomical structure parameters specify the dimensions or overall shape of the EM source. When the EM source is the heart, the model can be an arrhythmia model based on anatomical structure parameters that can include any subset of the group consisting of the thickness of the heart wall (e.g., the thickness of the endocardium, myocardium, and epicardium), the dimensions of the heart chambers, the diameter, the ventricular orientation in the chest, the body's anatomical structure, the fiber structure, the location(s) of scars and fibrosis and arrhythmogenic substrate, and the shape of the scars. The shape of the heart can be measured when the heart chamber volume is maximum, the wall thickness is minimum, and when excited. In the sinoatrial node, excitation occurs at the end-diastolic part of the beat. In arrhythmias, excitation can occur at different times during the beat. Thus, in the MLG system, it may be possible to specify the shape at times other than the end-diastolic part. The body's anatomical structure can be used to adjust the EM output based on, for example, the size, shape, and composition of the body. The electrophysiological parameters are non-anatomical structure parameters that can include any subset of the group consisting of inflammation, edema, accessory conduction pathways, congenital heart disease, malignant tumors, previous ablation sites, previous surgical sites, external radiotherapy sites, pacing leads, implantable defibrillator leads, cardiac resynchronization therapy leads, pacemaker pulse generator location, implantable defibrillator pulse generator location, subcutaneous defibrillator lead location, subcutaneous defibrillator pulse generator location, leadless pacemaker location, other implantable hardware (e.g., right ventricular assist device or left ventricular assist device), external defibrillation electrodes, surface ECG leads, surface mapping leads, mapping vests, and other normal distribution and pathophysiological feature distributions, action potential dynamics, conductivity, and arrhythmia source location. The configuration parameters selected for simulation can be based on the machine learning algorithm employed. For example, fiber structure parameters can be selected for a convolutional neural network but not for other types of networks. The MLG system generates a source configuration from which an arrhythmia model is then generated.For each source configuration, the MLG system generates an arrhythmia model that includes a mesh and model parameters such as variable weights of the arrhythmia model. The MLG system generates the mesh based on anatomical structure parameters. After the computational mesh is generated, MLG generates the model parameters of the arrhythmia model at points within the mesh based on the electrophysiological parameters of the source configuration. The electrophysiological parameters control, for example, the modeling of electromagnetic propagation at that point based on the electrophysiological parameters. The set of arrhythmia models forms an arrhythmia model library. Next, the MLMO system can generate a modeled EM output for each arrhythmia model and use the modeled EM output to train a classifier. The arrhythmia model library may be used for other purposes, such as studying the effectiveness of various types of ablation.

[0036] In some embodiments, the MLG system generates a set of cardiac anatomical structure parameters, where each set has values (e.g., scalar, vector, or tensor) for each anatomical structure parameter. The set of anatomical structure parameters identifies the cardiac anatomical structure. The MLG system generates a simulated anatomical structure based on a set of seed anatomical structures (specifying values for dimensions of the EM sources) and a set of weights including the weight for each seed anatomical structure. The seed anatomical structures can also include values of features derived from specified values such as mass, volume, length-to-width ratio, and sphericity of the cardiac chambers. The seed anatomical structures can represent extreme anatomical structures seen in patients. For example, the seed anatomical structures can be generated from ultrasound, computed tomography, and magnetic resonance imaging scans of patients with extreme cardiac conditions such as an enlarged right ventricle and a very thick or thin endocardium. The MLG system generates a simulated anatomical structure for each set of weights. Each weight within the set of weights indicates the contribution of the anatomical structure parameters of the seed anatomical structure to the simulated anatomical structure. For example, if four seed anatomical structures are specified, the weights can be 0.4, 0.3, 0.2, and 0.1. The MLG system sets the value of each anatomical structure parameter of the anatomical structure simulated with the set of weights to the weighted average of the values of each anatomical structure parameter of the seed anatomical structures. The MLG system can generate the set of weights using various techniques such as defining a fixed interval (e.g., 0.001), randomly selecting weights added to 1.0, and using a design of experiments method. The MLG system can also validate the simulated anatomical structure based on a comparison between the anatomical structure parameters and the actual anatomical structure parameters of an actual patient. For example, if a combination of height, width, and depth of a cardiac chamber results in a volume not seen in an actual patient (e.g., not found in the patient population), the MLG system can discard the simulated anatomical structure as being unlikely to occur in an actual patient.

[0037] In some embodiments, the MLG system may use a bootstrap technique to speed up the generation of modeled EM output based on the arrhythmia model. Since the left ventricle mesh can have 70,000 vertices, in a simulation to generate the modeled EM output of the left ventricle arrhythmia model, it is necessary to calculate 70,000 values for each EM mesh. If the simulation is 3 seconds with a step size of 1 millisecond, then 70x10 6 values need to be calculated for the vertices. If the arrhythmia model library contains one million arrhythmia models, the number of values that need to be calculated is 70x10 12This results in a certain number. Furthermore, the calculation of a single value can involve many mathematical operations, and multiple values can be calculated for each vertex. To assist in reducing the number of values that need to be calculated, the MLG system effectively shares some of the values of the EM mesh generated for a certain simulation based on a certain arrhythmia model with another simulation based on another arrhythmia model. For example, when starting a simulation, some of the values of the EM mesh may take about 1 second to have a significant impact on the values. For example, at the 1-second point of the simulation, the EM meshes of simulations based on arrhythmia models with the same source configuration except for the position of scars or fibrosis or arrhythmogenic substrates may have very similar values. To reduce the number of values that need to be calculated, the MLG system groups arrhythmia models with the same or nearly the same source configuration except for the position of scars or fibrosis or arrhythmogenic substrates. Grouping may also not need to consider the parameters of conduction velocity and action potential. Next, the MLG system executes a simulation of a representative arrhythmia model of the group (for example, an arrhythmia model without the position of scars or fibrosis or arrhythmogenic substrates). To execute the simulations of other arrhythmia models, the MLG system sets the values of the initial EM mesh to the values of the EM mesh at the 1-second point of the simulation of the representative arrhythmia model. Next, the MLG system starts with the values of the initial EM mesh and executes other simulations for 2 seconds. The modeled EM output for each other arrhythmia model includes the first 1-second EM mesh of the representative arrhythmia model and the 2-second EM mesh of the corresponding other arrhythmia model. In this way, the MLG system can significantly reduce (for example, by about one-third) the number of values that need to be calculated during some of the simulations, thereby significantly accelerating the generation of the model EM output or potential solution for the arrhythmia model library.

[0038] In some embodiments, the MLG system may use other bootstrap techniques to speed up the generation of the modeled EM output. One bootstrap technique may enable the rapid generation of different configuration parameters, such as different shapes, different action potentials, and parameters of different conductivities. For example, for a given nested excitation location or rotor origin location, and a set of other configuration parameters, the simulation may be run for 2 seconds. Next, the EM mesh from that simulation is changed based on different shapes, or the parameters of the model are adjusted based on different action potential or conductivity parameters. Then, the simulation continues. Based on different configuration parameters, it may take about 1 second for the activation potential to stabilize. Another bootstrap technique speeds up the generation of rotors tethered to different scar locations. For example, for a given tethered scar location, the simulation may be run for 2 seconds. After the first second, the rotor may be tethered to the scar location and stabilized. During that second, enough modeled EM output is simulated to generate a heartbeat curve. Next, the EM mesh from that simulation is changed to move closer to the tethered scar location and optionally changed based on different shapes. Then, the simulation continues. The simulation enables the rotor to be detached from the previous tethered scar location and attached to a new tethered scar location. Once attached, an ECG or VCG may be generated using the modeled EM output for the next about 1 second. Also, instead of changing the tethered scar location, the shape and pattern of ablation may be added to the EM mesh to simulate the effect of that ablation, or the configuration of the tethered scar may be changed so that the effect of that configuration is quickly simulated.

[0039] In some embodiments, the MLG system can speed up the generation of derived EM data derived from the modeled EM output generated for the arrhythmia models in the arrhythmia model library. The derived EM data can be a VCG (or other cardiac cycle curve) generated from the modeled EM output (e.g., 3,000 EM meshes). The MLG system can group arrhythmia models with source configurations having similar electrophysiological parameters. Thus, each arrhythmia model within the group has similar electrophysiological parameters and different anatomical structure parameters. Next, the MLG system executes a simulation of a representative arrhythmia model of the group. However, the MLG system does not need to execute simulations of other arrhythmia models within the group. To generate a VCG for one of the other arrhythmia models, the MLG system inputs the modeled EM output of the representative arrhythmia model and the anatomical structure parameters of the other arrhythmia model. Next, the MLG system calculates the VCG values of the other arrhythmia models based on the values of the modeled EM output while making adjustments based on the differences in the anatomical structure parameters between the representative arrhythmia model and the other source configurations. In this way, the MLG system avoids executing any simulations except for the representative arrhythmia models of each group of arrhythmia models.

[0040] In some embodiments, the MLG system converts an arrhythmia model based on one polyhedron model to an arrhythmia model based on another polyhedron model. Different finite mesh problem solvers can be based on different polyhedron models. For example, one polyhedron model can be a hexahedron model, and another polyhedron model can be a tetrahedron model. In the hexahedron model, the mesh is filled with hexahedrons. In the tetrahedron model, the mesh is filled with tetrahedrons. If an arrhythmia model library is generated based on the hexahedron model, it cannot be input into a tetrahedron problem solver. A separate arrhythmia model library based on the tetrahedron model can be generated based on the source configuration, but the computational cost is high. To reduce this computational cost of generating a tetrahedron arrhythmia model library, the MLG system converts the hexahedron arrhythmia model to a tetrahedron arrhythmia model. To convert to a tetrahedron arrhythmia model, the MLG system generates a surface representation of the tetrahedron arrhythmia model, for example, based on the surface of the mesh of the hexahedron arrhythmia model. Next, the MLG system places tetrahedrons in the volume formed by the surface representation to generate a tetrahedron mesh. Next, the MLG system generates the value of each vertex of the tetrahedron mesh by interpolating the values of the vertices of the hexahedron mesh adjacent to that vertex of the tetrahedron mesh. In this way, the MLG system can use an arrhythmia model library of one type of polyhedron to generate an arrhythmia model library of another type of polyhedron and prevent the occurrence of the computational cost of generating an arrhythmia model library of another type of polyhedron from the source configuration. The MLG system can also convert an arrhythmia model from one polyhedron model to another polyhedron model to display an electromagnetic source. For example, the MLG system can perform a simulation using a hexahedron ventricular mesh and then convert it to a surface triangular ventricular mesh for display to provide a more realistic appearance display of the ventricle.

[0041] FIG. 11 is a block diagram showing components of an MLG system in some embodiments. The MLG system 1100 includes a model library generation component 1101, a simulated anatomical structure(s) generation component 1102, a simulated anatomical structure generation component 1103, a source configuration generation component 1104, a model generation component 1105, a simulated anatomical structure display component 1106, a representative potential solution generation component 1107, a group potential solution generation component 1108, a VCG estimation component 1109, and a polyhedron model conversion component 1110. The MLG system also includes a model library 1111 that stores arrhythmia models, a seed anatomical structure library 1112 that stores seed anatomical structures (e.g., a seed anatomical structure of the heart), and a simulated anatomical structure library 1113 that stores simulated anatomical structures (e.g., a simulated anatomical structure of the heart). The model generation library component controls the overall generation of the model library. The simulated anatomical structure(s) generation component generates simulated anatomical structures for various weight sets by calling the simulated anatomical structure generation component for each weight set. The source configuration generation component generates various source configurations based on the simulated anatomical structures and possible values of electrophysiological parameters. The model generation component generates a model based on the source configuration. The simulated anatomical structure display component may specify a weight set and provide an application programming interface or user experience for viewing the seed anatomical structure and the simulated anatomical structure. The representative potential solution generation component generates a potential solution for a representative source configuration of a group. The group potential solution generation component generates a potential solution for the source configuration in the group based on a bootstrap using the potential solution of the representative source configuration. The VCG estimation component generates an estimated VCG based on potential solutions of source configurations that have different anatomical structure parameters but are similar. The polyhedron model conversion component converts a hexahedron model into a tetrahedron model.

[0042] FIG. 12 is a block diagram showing generation of a simulated anatomical structure from a seed anatomical structure. In this example, using seed anatomical structures 1201-1206, a simulated anatomical structure 1210 is generated. Each seed anatomical structure has an associated weight that specifies the contribution of the seed anatomical structure to the simulated anatomical structure. The weights can total 1.0. In some embodiments, the MLG system can use weights for each anatomical parameter of the seed shape rather than a single weight for each seed anatomical structure. For example, the weights can include weights for dimensions of the cardiac chambers and weights for thicknesses of the heart walls. The weights for the anatomical parameters of the seed anatomical structure can total 1.0. For example, with respect to dimensions of the left ventricle, the weights of seed anatomical structures 1201-1206 can be 0.1, 0.1, 0.1, 0.1, 0.3, and 0.3, respectively, and with respect to thicknesses of the endocardium, myocardium, and epicardium, the weights of seed anatomical structures 1201-1206 can be 0.2, 0.2, 0.2, 0.2, 0.1, and 0.1, respectively. Alternatively, the weights of the seed anatomical structures, or the weights for the anatomical parameters of the seed anatomical structures, need not total 1.0.

[0043] FIG. 13 is a display page showing a user experience of viewing a simulated anatomical structure in some embodiments. The display page 1300 includes a graphic area 1310, a weight area 1320, and an option area 1330. The graphic area displays the graphics and weights of each seed anatomical structure of the heart, along with the graphic of the simulated anatomical structure of the heart based on these weights. The user can use the weight area to specify the weights of each seed anatomical structure. The user can use the option area to add additional seed anatomical structures, delete seed anatomical structures, and specify weight rules based on the user interface (not shown) of each option. The MLG system may specify a data structure for storing the anatomical structure parameters of the seed anatomical structures. The user can upload the data structure when adding a new seed anatomical structure. The MLG system may also enable the user to create a library of seed anatomical structures that can be used to generate simulated anatomical structures. The weight rules specify how to generate a set of weights for the library of simulated anatomical structures. For example, the weight rules may specify to generate all combinations of a set of unnormalized weights in increments of 0.2 in the range of 0.0 to 1.0, and then normalize the weights so that the sum of the weights of each set of weights is 1.0. Considering this weight rule and six seed anatomical structures, 5x10 6 sets of weights are specified. The graphics can be generated using a 3D computer graphics software toolset such as Blender.

[0044] FIG. 14 is a flowchart showing the processing of the model library generation component of the MLG system in some embodiments. The model library generation component 1400 is called, and based on an electrophysiological parameter specification that specifies a range of values for each electrophysiological parameter, a seed anatomical structure for generating anatomical structure parameters, and a set of weights for each model with respect to the seed anatomical structure of the model, a model library such as an arrhythmia model library is generated. The component generates a source configuration from a combination of anatomical structure parameters and electrophysiological parameters. In block 1401, the component calls a simulated anatomical structure(s) generation component to generate a simulated anatomical structure from the seed anatomical structure. In block 1402, the component calls a source configuration generation component to generate a source configuration based on the anatomical structure parameters of the simulated anatomical structure and the electrophysiological parameter specification. In blocks 1403 - 1406, the component loops to generate a model for each source configuration. In block 1403, the component selects the next source configuration i. In decision block 1404, if all source configurations have already been selected, the component is complete; otherwise, the component proceeds to block 1405. In block 1405, the component calls a model generation component, passes an instruction for source configuration i, and generates a model (model[i]) for that source configuration. In block 1406, the component adds the generated model to the model library and then loops back to block 1403 to select the next source configuration.

[0045] FIG. 15 is a flowchart showing the processing of a simulated anatomical structure generation component of an MLG system in some embodiments. The simulated anatomical structure generation component 1500 is called to generate a simulated anatomical structure based on a seed anatomical structure and an associated set of weights. At block 1501, the component selects the next set of weights i. At decision block 1502, if all sets of weights have already been selected, the component is complete; otherwise, the component proceeds to block 1503. At block 1503, the component calls the simulated anatomical structure generation component, passes an indication of the selected set of weights i, and receives an indication of the anatomical structure parameters of the simulated anatomical structure. At block 1504, the component stores the anatomical structure parameters and then loops back to block 1501 to select the next set of weights.

[0046] FIG. 16 is a flowchart showing the processing of a simulated anatomical structure generation component of an MLG system in some embodiments. The simulated anatomical structure generation component 1600 is called and given an indication of a set of weights, and generates a simulated anatomical structure based on that set of weights. At block 1601, the component selects the next anatomical structure parameter i. At decision block 1602, if all anatomical structure parameters have already been selected, the component returns an indication of the anatomical structure parameters of the simulated anatomical structure; otherwise, the component proceeds to block 1603. At block 1603, the component initializes the selected anatomical structure parameter i. At blocks 1604-1606, the component loops and adjusts the selected anatomical structure parameter based on the weight and the value of that anatomical structure parameter of each seed anatomical structure. At block 1604, the component selects the next seed anatomical structure j. At decision block 1605, if all seed anatomical structures have already been selected, the component loops to block 1601 to select the next anatomical structure parameter; otherwise, the component proceeds to block 1606. At block 1606, the component sets the selected anatomical structure parameter i to the sum of the selected anatomical structure parameter i and the value of the selected anatomical structure parameter i of the selected seed anatomical structure j divided by the weight of the selected seed anatomical structure. The component then loops to block 1604 to select the next seed anatomical structure.

[0047] Figure 17 is a flowchart showing the processing of the source configuration generation component of the MLG system in some embodiments. The source configuration generation component 1700 is called to generate a source configuration used when generating a model library. The source configuration is specified by a combination of a simulated anatomical structure and values of anatomical structure parameters. At block 1701, the component selects the next simulated anatomical structure. At decision block 1702, if all simulated anatomical structures have already been selected, the component is complete; otherwise, the component proceeds to block 1703. At blocks 1703 - 1707, the component loops to select a set of anatomical structure parameters for the selected simulated anatomical structure. At block 1703, the component selects the next value of the anatomical structure parameters of the fiber structure. At decision block 1704, if all values of the anatomical structure parameters of the fiber structure have already been selected for the selected simulated anatomical structure, then since all source configurations for the selected simulated anatomical structure have been generated, the component loops to block 1701 to select the next simulated anatomical structure; otherwise, the component continues to select values for each of the other anatomical structure parameters, as indicated by the ellipsis. At block 1705, the component selects the next source location for the selected simulated anatomical structure and the set of values of the other anatomical structure parameters. At decision block 1706, if all source locations have already been selected for the selected simulated anatomical structure and the set of values of the other anatomical structure parameters, the component loops to block 1705 to select a new set of values. At block 1707, the component stores the indication of the selected simulated anatomical structure and the selected set of values of the anatomical structure parameters as a source configuration, and then loops to block 1705 to select the next source location.

[0048] FIG. 18 is a flowchart showing the processing of the model generation component of the MLG system in some embodiments. The model generation component 1800 is called, passed an indication of the source configuration i, and generates a model. The model includes one or more model parameters for each vertex of a mesh representing the simulated anatomical structure of the source configuration. At block 1801, the component generates a mesh based on the anatomical structure parameters. The mesh can be represented by a data structure that explicitly or implicitly includes a reference indication to its adjacent vertices, along with the value of one or more model parameters used, for example, to generate the potential of that vertex, for each vertex. At block 1802, the component selects the next vertex j. At decision block 1803, if all vertices have already been selected, the component is complete; otherwise, the component proceeds to block 1804. At block 1804, the component selects the next model parameter k of the computational model for the selected vertex. At decision block 1805, if all model parameters have already been selected, the component loops back to block 1802 to select the next vertex; otherwise, the component proceeds to block 1806. At block 1806, the component calculates the selected model parameter k for the selected vertex j based on the source configuration i, and then loops back to block 1804 to select the next model parameter.

[0049] Figure 19 is a flowchart showing the processing of the simulated anatomical structure display component of the MLG system in some embodiments. The simulated anatomical structure display component 1900 is called to display the simulated anatomical structure generated based on the seed anatomical structure. At block 1901, the component displays a simulated representation of the simulated anatomical structure, such as graphic 1311. At blocks 1902-1906, the component loops to display the seed representation of each seed anatomical structure. At block 1902, the component selects the next seed anatomical structure used to generate the simulated anatomical structure. At decision block 1903, if all seed anatomical structures have already been selected, the component proceeds to block 1907; otherwise, the component proceeds to block 1904. At block 1904, the component displays the seed representation of the selected seed anatomical structure, such as graphics 1301-1306. At block 1905, the component displays an arrow from the seed representation to the simulated representation. At block 1906, the component displays the weight associated with the seed anatomical structure next to the arrow and then loops back to block 1902 to select the next seed anatomical structure. At decision block 1907, if the user instructs a weight change, the component proceeds to block 1908; otherwise, the component completes. At block 1908, the component displays a new simulated representation of the simulated anatomical structure based on the changed weight. The component may call a simulated anatomical structure generation component that generates the simulated anatomical structure and a component that generates the graphics of the simulated anatomical structure. At block 1909, the component displays the changed weight near the arrow from the seed representation of the seed anatomical structure whose weight has been changed and then completes.

[0050] FIG. 20 is a block diagram showing a process of bootstrapping a simulation based on an EM mesh of a previous simulation with similar anatomical structure parameters. The simulation can be bootstrapped based on a previous simulation based on an arrhythmia model with the same source configuration except for the location of different scars or fibrosis or arrhythmogenic substrates. To generate an initial EM mesh, the simulation generation component 2020 inputs an arrhythmia model 2010 having a location of a first scar or fibrosis or arrhythmogenic substrate and outputs a potential solution 2030. The simulation generation component 2020 includes a mesh default initialization component 2021 and a simulation execution component 2022. The EM mesh initialization component initializes the EM mesh with default values of the vertex potentials. The simulation execution component 2022 executes a simulation (e.g., for 3 seconds) based on the initialized EM mesh and the arrhythmia model 2010 to generate a potential solution (e.g., 3,000 EM meshes) and outputs the potential solution 2030. To bootstrap the simulation, the simulation generation component 2060 inputs an arrhythmia model 2050 having a location of a second scar or fibrosis or arrhythmogenic substrate and outputs a potential solution 2070. The simulation generation component 2060 includes a potential solution-based EM mesh initialization component 2061 and a simulation execution component 2062. The potential solution-based EM mesh initialization component 2061 inputs the potential solution 2030 and initializes the EM mesh to, for example, the EM mesh corresponding to the 1-second time point of the potential solution 2030. The simulation execution component 2062 executes a simulation based on the initialized EM mesh. For example, if the simulation is 3 seconds and the initialized EM mesh is based on the EM mesh at the 1-second time point, the simulation execution component 2062 executes the simulation for an additional 2 seconds. The simulation execution component 2062 stores the potential solution in the potential solution store 2070.

[0051] FIG. 21 is a flowchart showing the processing of a potential solution generation component for a representative arrhythmia model within a group of MLG systems in some embodiments. The representative potential solution generation component 2100 generates a potential solution for arrhythmia model i. At block 2101, the component initializes an index j to track the number of simulation steps. At decision block 2102, if the index j is greater than the number of simulation steps, the component is complete and indicates the potential solution; otherwise, the component proceeds to block 2103. At block 2103, the component applies a computational model based on the arrhythmia model and the selected simulation step to generate a potential solution for the selected simulation step. At block 2104, the component increments to the next simulation step and loops back to block 2102.

[0052] Figure 22 is a flowchart showing the processing of a potential solution generation component for an arrhythmia model group based on representative potentials of an MLG system in some embodiments. The group potential solution generation component 2200 is passed an indication of a representative potential solution and a set of arrhythmia models. At block 2201, the component selects the next arrhythmia model i. At decision block 2202, if all arrhythmia models have already been selected, the component is complete; otherwise, the component proceeds to block 2203. At block 2203, the component initializes the potential solution of the selected arrhythmia model to the representative potential solution for the first 1000 simulation steps. At blocks 2204 - 2206, the component loops to execute a simulation starting at simulation step 1001 and continuing to the end of the simulation. At block 2204, the component selects the next simulation step j starting from simulation step 1001. At decision block 2205, if the current simulation step is greater than the number of simulation steps, the component loops to block 2201 to select the next arrhythmia model; otherwise, the component proceeds to block 2206. At block 2206, the component applies the arrhythmia model based on the simulation step to generate the potential solution for the simulation step, then loops to block 2204 to select the next simulation step.

[0053] FIG. 23 is a block diagram showing a process for estimating a vector electrocardiogram based on the potential solution of an arrhythmia model with different anatomical structure parameters. To generate the potential solution of arrhythmia model 2301 based on the first set of anatomical structure parameters, simulation generation component 2302 inputs the arrhythmia model and outputs potential solution 2303. Next, VCG generation component 2304 generates a VCG from the potential solution and stores it in VCG store 2305. To estimate the VCG of an arrhythmia model having different anatomical structure parameters but based on a similar source configuration, VCG estimation component 2314 inputs arrhythmia model 2311, generates an estimated VCG, and outputs VCG 2315.

[0054] Figure 24 is a flowchart showing the processing of the VCG estimation component of the MLG system in some embodiments. The VCG estimation component 2400 takes as input a potential solution ("VS1") generated based on a first arrhythmia model with first anatomical structure parameters and estimates the VCG of a second arrhythmia model with second anatomical structure parameters. At block 2401, the component sets an index i to perform indexing through the simulation steps. At decision block 2402, if the index i is greater than the number of simulation steps, the component proceeds to block 2408; otherwise, the component proceeds to block 2403. At block 2403, the component sets an index j to perform indexing through the points of the arrhythmia model mesh (e.g., vertices or Gauss points). At decision block 2404, if the index j is greater than the number of points, the component proceeds to block 2407; otherwise, the component proceeds to block 2405. At block 2405, the component sets the value of the potential solution ("VS2") of the second arrhythmia model at the indexed simulation step and point to the corresponding value of the potential solution of the first arrhythmia model. At block 2406, the component increments the index j and loops back to block 2404. At block 2407, the component increments the index i and loops back to block 2402. At block 2408, the component generates the VCG of the second arrhythmia model based on the generated potential solution VS2 and completes.

[0055] FIG. 25 is a block diagram showing a process of converting an arrhythmia model based on a first polyhedron into an arrhythmia model based on a second polyhedron in some embodiments. The first polyhedron arrhythmia model of the first polyhedron arrhythmia model 2501 is input to a surface extraction component 2502. The surface extraction component extracts the surface of the mesh of the arrhythmia model. A second polyhedron placement component 2303 inputs the surface and places a second type of polyhedron in the volume within the surface. A model parameter interpolation component 2504 inputs the second polyhedron mesh and the first polyhedron model, generates model parameters of the second polyhedron model, and outputs a second polyhedron model 2505.

[0056] FIG. 26 is a flowchart showing the processing of a polyhedron model conversion component of an MLG system in some embodiments. A polyhedron model conversion component 2600 is called to convert a hexahedron model into a tetrahedron model. At block 2601, the component extracts the surface from the hexahedron model. At block 2602, the component generates a tetrahedron mesh based on the surface of the hexahedron model. At block 2603, the component maps the vertices of the tetrahedron mesh to the space of the hexahedron mesh of the hexahedron model, for example, by setting the positions of the vertices with respect to the same origin. At block 2604, the component selects the next vertex j of the tetrahedron mesh. At decision block 2605, if all such vertices have already been selected, the component is complete; otherwise, the component continues to 2606. At block 2606, the component selects the next model parameter k. At decision block 2607, if all model parameters have already been selected for the selected vertex, the component loops to block 2604 to select the next vertex; otherwise, the component continues to block 2608. At block 2608, the component sets the selected model parameter based on interpolation of the values of the selected model parameters of the adjacent vertices within the hexahedron model. Next, the component loops to block 2606 to select the next model parameter.

[0057] Patient matching system A method and system for identifying the attributes or classification of EM sources in the body are provided based on patient matching that matches the patient source composition to the model source composition of the EM source. In some embodiments, a patient matching ("PM") system uses the matching model source composition to speed up the process of identifying patient attributes or uses a classifier to provide a more accurate classification of the patient. To identify patient attributes (e.g., arrhythmia source location), the PM system generates a mapping between each model source composition used to generate the simulated (or modeled) EM output and the derived EM data derived from the simulated EM output generated based on that model source composition. Each derived (or modeled) EM data is also mapped to the attributes associated with the EM source having the model source composition. For example, if the EM source is the heart, the model source composition includes compositional parameters such as anatomical structure parameters and electrophysiological parameters. The compositional parameters can include, for example, the arrhythmia source location, the type of rotor, and the type of disorder or condition. One of the compositional parameters, such as the arrhythmia source location, can be designated as an attribute parameter representing an attribute that needs to be identified for the patient. The PM system generates a mapping between the model source composition and the modeled VCG, and generates a mapping between the modeled VCG and their corresponding arrhythmia source locations. The mapping between the modeled VCG and the source location can be generated using the attributes corresponding to the labels in a manner similar to the way the training data is generated by the MLMO system. In some embodiments, the mapping between the derived electromagnetic data and the source composition and attributes can be based on data collected from actual patients rather than data input into and generated by the simulation.

[0058] In some embodiments, the PM system uses mapping to identify a patient's attributes based on a combination of the patient's patient source configuration and the patient's patient VCG. The attributes can be identified by comparing the patient VCG with each modeled VCG to identify the most similar modeled VCG and specifying the attributes of the most similar modeled VCG as the patient's patient attributes. However, since the number of modeled VCGs can be in the millions, comparing the patient VCG with the modeled VCGs can be very computationally costly. The PM system can employ various techniques to reduce the computational cost. In one technique, the PM system uses the patient source configuration to reduce the number of modeled VCGs with which the patient VCG needs to be compared. The PM system can enable the user to provide the patient's patient source configuration. It is preferable if the values of each configuration parameter of the patient source configuration can be provided. However, in practice, for a patient, only the values of certain configuration parameters may be known. In such cases, the PM system performs the comparison based on the known values of the configuration parameters rather than all the configuration parameters. The patient's anatomical structure parameters can be calculated based on imaging scans. The action potential can be calculated based on the output of a basket catheter inserted into the patient's heart, or the patient's history of anti-arrhythmic drugs or gene therapy, and the conductivity can be calculated based on the analysis of the patient's ECG. The configuration parameters can also include electrophysiological parameters indicating whether the action potential and / or conductivity represents a diseased state. In such cases, if the patient's action potential or conductivity is not available, the configuration parameters indicate whether the action potential or conductivity represents a diseased state. The PM system can use various techniques to evaluate the similarity between the patient source configuration and the model source configuration, such as similarity based on the least squares method and cosine similarity. The PM system can generate a similarity score for each model source configuration and identify the model source configuration having a similarity score exceeding a matching threshold as the matching model source configuration.

[0059] In some embodiments, after the matching model source configuration is identified, the PM system compares the patient VCG with the modeled VCG to which the matching model source configuration is mapped. The PM system generates a similarity score for each modeled VCG (e.g., using the Pearson correlation technique), and can identify the modeled VCG whose similarity score exceeds the threshold similarity as the matching modeled VCG. Next, the PM system identifies the patient attribute(s) based on the attributes of the matching modeled VCG. For example, if the attribute is the origin location of the arrhythmia, the PM system can generate the average of the weighted origin locations based on the similarity scores of the matching modeled VCG. In this way, the PM system prevents the occurrence of the computational cost of comparing the patient VCG with all the modeled VCGs.

[0060] In some embodiments, the PM system may adopt other techniques to reduce the computational cost of comparing the patient VCG with all the modeled VCGs. For example, the PM system can identify features of the VCG such as area and maximum dimension. Next, the PM system can generate an index that maps the feature values to the modeled VCGs having these values. To identify the modeled VCG that matches the patient VCG, the PM system identifies the features of the patient VCG and uses the index to identify the matching modeled VCG. For example, the PM system can identify, for each feature, the set of modeled VCGs that match the features of the patient VCG. Next, the PM system can identify the modeled VCG that is common to (e.g., the intersection of) each set or most common to the sets as the matching modeled VCG. Next, the PM system can compare these matching modeled VCGs with the patient VCG as described above for attribute identification.

[0061] In some embodiments, the PM system may use patient matching to improve the classification of VCGs based on a trained classifier. The PM system may use various clustering techniques to generate clusters of similar model source configurations. Clustering techniques may include centroid-based clustering techniques (e.g., k-means clustering), and supervised or unsupervised learning clustering techniques (e.g., using neural networks). In centroid-based clustering techniques, the PM system generates clusters by continuously adding each model source configuration to the current cluster of the most similar model source configurations. The PM system may dynamically combine and split clusters based on, for example, the number of model source configurations within each cluster and the similarity of model source configurations between one cluster and another. After the clusters are identified, the PM system may use components of the MLMO system to generate a classifier for each cluster. The PM system trains the classifier for the cluster, which is performed based on the modeled VCG of the model source configurations of that cluster as training data for the classifier.

[0062] In some embodiments, to generate a patient classification, the PM system identifies a cluster having a model source configuration that most closely matches the patient source configuration. For example, the PM system may generate a similarity score for each cluster based on the similarity between the representative model source configuration of the cluster (e.g., having the average value of the cluster) and the patient source configuration. Next, the PM system selects the classifier of the cluster with the highest similarity score and applies that classifier to the patient VCG to generate a patient classification. Since each classifier is trained based on a cluster of similar model source configurations, each classifier is adapted to generate a classification based on only minor differences in these similar model source configurations. In contrast, a classifier trained based on all model source configurations may not be able to account for minor differences between similar model source configurations. Thus, a classifier trained based on a cluster of similar model source configurations may provide a more accurate classification than a classifier trained based on all model source configurations.

[0063] In some embodiments, the PM system may generate a modeled EM output of the model source configuration assuming a standard orientation of the heart. However, if the orientation of the patient's heart is somewhat different, the matching modeled VCG may not have attributes or classifications to apply to the patient due to the different orientation. In such cases, the PM system may perform a VCG rotation before comparing the patient VCG to the modeled VCG. The PM system may rotate either each modeled VCG or the patient VCG. The PM system may generate a rotation matrix based on the difference in orientation. Next, the PM system performs a matrix multiplication with each point of the VCG (e.g., x value, y value, and z value) and the rotation matrix (e.g., a 3x3 matrix) to generate the rotated points of the rotated VCG. The MLMO system may also rotate the VCG based on the difference in orientation.

[0064] Figures 27 to 30 are flowcharts showing the processing of components of the PM system in some embodiments. Figure 27 is a flowchart showing the processing of the attribute identification component of the PM system in some embodiments. The attribute identification component 2700 identifies the patient attributes of a patient based on the patient source composition and the patient heartbeat curve (e.g., VCG). In block 2701, the component calls the simulated VCG generation component of the MLMO system to generate modeled VCGs, and then maps them to the model source composition from which they are generated. In block 2702, the component acquires the patient source composition and the patient VCG. In block 2703, the component calls the matching VCG identification component, passes the instructions of the patient source composition and the patient VCG, and identifies the patient attributes based on the matching VCG. In block 2704, the component presents the patient attributes to notify the patient's treatment method and then completes.

[0065] FIG. 28 is a flowchart showing the processing of the matching VCG identification component of the PM system in some embodiments. The matching VCG identification component 2800 is passed the patient source configuration and the patient VCG and identifies patient attributes. At block 2801, the component selects the next mapping of the model source configuration and the modeled VCG. At decision block 2802, if all mappings have already been selected, the component indicates the patient attributes and completes, otherwise the component continues to block 2803. At decision block 2803, if the selected model source configuration matches the patient source configuration, the component continues to block 2804, otherwise the component loops to block 2801 to select the next mapping. At decision block 2804, if the modeled VCG of the selected mapping matches the patient VCG, the component continues to block 2805, otherwise the component loops to block 2801 to select the next mapping. At block 2805, the component adds the attributes of the selected modeled VCG to the patient attributes and then loops to block 2801 to select the next mapping. In some embodiments, the PM system may include components that identify other types of matching measurements, such as EEG and measurements corresponding to those collected by body surface vests, basket catheters, and patient-worn caps, etc.

[0066] Figure 29 is a flowchart showing the processing of the clustering-based classification and identification component of the PM system in some embodiments. The clustering-based classification and identification component 2900 identifies the classification of a patient based on a classifier trained using clusters of similar model source configurations. At block 2901, the component calls a cluster classifier generation component to generate a classifier for a cluster of similar model source configurations. At block 2902, the component receives a patient source configuration and a patient VCG. At blocks 2903-2908, the component loops through the selection of clusters to identify the cluster having the model source configuration most similar to the patient source configuration. At block 2903, the component initializes a variable to track the maximum similarity calculated so far. At block 2904, the component selects the next cluster. At decision block 2905, if all clusters have already been selected, the component proceeds to block 2909; otherwise, the component proceeds to block 2906. At block 2906, the component calls a similarity calculation component to calculate the similarity between the model source configuration of the selected cluster and the patient source configuration. At decision block 2907, if the similarity is greater than the maximum similarity calculated so far, the component proceeds to block 2908; otherwise, the component loops back to block 2904 to select the next cluster. At block 2908, the component sets the maximum similarity to the similarity calculated for the selected cluster and sets the variable to indicate the index of the cluster having the maximum similarity calculated so far. Next, the component loops back to block 2904 to select the next cluster. At block 2909, the component calls a cluster-based classification component to identify the classification of the patient VCG based on the cluster having the maximum similarity. The cluster-based classification component may correspond to the classification component of the MLMO system adapted to input the classifier to be used. Next, the component indicates completion of the classification.

[0067] Figure 30 is a flowchart showing the processing of the cluster classifier generation component of the PM system in some embodiments. The cluster classifier generation component 3000 is called to cluster the model source configurations and generate a classifier based on each cluster. At block 3001, the component generates clusters of the model source configurations. At block 3002, the component selects the next cluster. At decision block 3003, if all clusters have already been selected, the component indicates completion with the classifier, and otherwise, the component proceeds to block 3004. At block 3004, the component calls the classifier generation component of the MLMO system, passes an indication of the model source configurations of the selected cluster, and generates a classifier for that cluster. Next, the component loops back to block 3002 to select the next cluster.

[0068] Machine learning based on clinical data A method and system are provided for adapting an MLMO system to generate a classifier based on actual patient data. In some embodiments, a clinical database machine learning ("MLCD") system is provided that (1) uses transfer of weights of a model classifier to generate a patient classifier based on patient training data associated with an actual patient, and (2) generates a patient-specific model classifier based on model training data selected based on similarity to the patient. The patient classifier is generated by the patient classifier system of the MLCD system, and the patient-specific model classifier is generated by the patient-specific model classifier system. The term "patient classifier" refers to a classifier generated based on patient training data generated based on data of a patient, and the term "model classifier" refers to a classifier generated based on model training data generated based on a computational model of an EM source.

[0069] Patient classifier system In some embodiments, a patient classifier (“PC”) system generates a patient classifier for classifying derived EM data derived from the EM output of an EM source in the body. For example, the patient classifier classifies a VCG derived from an ECG. The PC system accesses a model classifier, such as a model classifier generated using an MLMO system. The model classifier is generated using model training data generated using a computational model of the EM source. The model classifier includes the weights of the model classifier that are learned when the model classifier is trained, such as the weights of the activation function of a CNN. The PC system also accesses patient training data, which includes, for each patient, patient-derived EM data (e.g., VCG) and the patient classification of that patient, such as rotor position and previous ablation treatment results. An example of a previous ablation treatment result may be that the patient had no arrhythmia for a specific period after being ablated at a specific location with a specific ablation pattern. To train the patient classifier, the PC system initializes the patient classifier weights based on the model classifier weights of the model classifier, and then trains the patient classifier with the patient training data and the initialized patient classifier weights. Typically, the weights of the classifier are initialized to default values, such as all being a specific value (e.g., 0.0, 0.5, or 1.0) or random values. Thus, learning the weights of the classifier is considered to be done “from scratch”. The process of initializing the weight values based on previously learned weights is called “transfer” of knowledge. The knowledge obtained from the previous training of the previous classifier is introduced into the training of the new classifier. The goal of transfer is both to speed up the training of the new classifier and to improve the accuracy of the new classifier.

[0070] In some embodiments, the PC system uses a patient classifier to classify patients. For example, if the EM source is the heart, the PC system may receive a patient's heartbeat curve (e.g., ECG or VCG) and apply the patient classifier to that heartbeat curve. Depending on the patients selected to train the patient classifier, the patient classifier can be a more accurate classifier than a model classifier trained with model training data generated using a computational model. Further, if the patient is similar to the patients used to train the patient classifier, the accuracy of the classifier can be even higher. The PC system can also identify clusters of similar patients and train a separate patient classifier for each cluster, referred to as a cluster patient classifier. Patient similarity can be identified in various ways, such as based on a comparison of various characteristics, such as derived EM data (e.g., heartbeat curve) collected from the patient, the patient's patient source configuration (e.g., anatomical structure parameters, electrodynamic characteristics), and patient demographic information. The cluster patient classifier for each cluster can be trained based on the VCGs and corresponding labels of the patients within that cluster. When classifying a target patient, the PC system identifies the cluster of patients to which the target patient is most similar. The PC system then applies the cluster patient classifier of the identified cluster to the VCG of the target patient.

[0071] Patient-specific model classifier system In some embodiments, a patient-specific model classifier (“PSMC”) system generates a patient-specific model classifier for classifying derived EM data of an EM source within the body. The PSMC system identifies a model similar to the patient. The PSMC system identifies a similar model based on patient-model similarity. Patient-model similarity can be based on similarity between the model's modeled source configuration and the patient's patient source configuration, and / or similarity between the model's modeled derived EM data (e.g., VCG) and the patient's corresponding patient-derived EM data. For example, the PSMC system can operate based on similarities such as anatomical structure parameters (e.g., dimensions of the right ventricle), and certain electrophysiological parameters. Next, the PSMC system can use the MLMO system to generate a patient-specific model classifier using the modeled source configuration of the similar model. The PSMC system can generate a patient-specific model classifier by first applying a computational model of the EM source to generate a modeled EM output of the EM source based on the modeled source configuration of the similar model. Next, the PSMC system generates model training data including modeled derived EM data (e.g., VCG) from the generated modeled EM output and the labels of the model. Alternatively, if model training data has already been generated for a similar model, the PSMC system need not regenerate the model training data. Next, the PSMC system trains a patient-specific model classifier based on the model training data.

[0072] In some embodiments, after a patient-specific model classifier is generated, the PSMC system applies the patient-specific model classifier to the patient's derived EM data (e.g., VCG) to generate a classification of the patient. Since the patient-specific model classifier is trained using model training data selected based on the patient, the patient-specific model classifier provides a more accurate classification than the classification provided by a model classifier trained based on a set of model training data that is not specific to the patient.

[0073] In some embodiments, the PSMC system may generate a cluster-specific model classifier for a cluster of target patients. To generate the cluster-specific model classifier, the PSMC system identifies a model that is globally similar to the target patients of the cluster and then trains the cluster-specific model classifier based on the similar model. Thereafter, the PSMC system may apply the cluster-specific model classifier to generate a classification of the target patients of the cluster. The PSMC system may also generate clusters of target patients and generate a cluster-specific model classifier for each cluster. Next, the PSMC system may use the cluster-specific model classifier of the cluster to which the target patient is a member to generate a classification of each target patient. The PSMC system may further use the cluster-specific model classifier to generate a classification of a new target patient. The PSMC system identifies the cluster to which the new target patient is most similar and applies the cluster-specific model classifier of the identified cluster to the patient-derived EM data of the new target patient to generate a classification of the new target patient.

[0074] FIG. 31 is a block diagram showing the overall processing of a patient classifier system of an MLCD system in some embodiments. The classifier component 3110 (i.e., components 3111-3119) is similar to the classifier component 110 of FIG. 1. The term "model" is inserted into various components to emphasize that the components are used to generate a classifier based on a model represented by a simulated source configuration or a set of parameters. Component 3120 includes a patient data store 3121, a patient training data generation component 3122, a patient training data store 3123, a patient classifier training component 3124, and a patient classifier weight store 3125. The patient data store may include an ECG collected from a patient and corresponding labels such as the location of a heart disorder. The patient training data generation component generates patient training data from patient data, for example, by generating a VCG from an ECG, labeling the VCG, and storing the training data in the patient training data store. The patient classifier training component inputs model classifier weights from the model classifier weight store 3119 as a transfer of knowledge from the model classifier and trains a patient classifier based on the patient training data. Next, the patient classifier training component stores the patient classifier weights in the patient classifier weight store.

[0075] FIG. 32 is a flowchart showing the processing of a patient classifier generation component of a patient classifier system in some embodiments. The patient classifier generation component 3200 generates a patient classifier for a set of patients using knowledge transfer from a model classifier. At block 3201, if the model classifier has not yet been generated, the component calls a classifier generation component to generate a model classifier based on model training data. The classifier generation component generates model classifier weights of the model classifier. At block 3202, the component extracts the model classifier weights of the model classifier. At block 3203, the component generates patient training data, for example, by generating and labeling a VCG. At block 3204, the component initializes the patient classifier weights of the patient classifier to the model classifier weights. At block 3205, the component calls a classifier training component to train the patient classifier based on the patient training data and the initialized patient classifier weights. The component then completes.

[0076] Figure 33 is a flowchart showing the processing of the cluster patient classifier generation component of the patient classifier system in some embodiments. The cluster patient classifier generation component 3300 generates a cluster patient classifier for a cluster of patients. At block 3301, the component generates a cluster of patients based on, for example, the clinical characteristics of the patients, the source composition, or the VCG similarity. At block 3302, the component selects the next cluster. At decision block 3303, if all clusters have already been selected, the component is complete; otherwise, the component proceeds to block 3304. At block 3304, the component calls the patient classifier generation component, passes an indication of the selected cluster, generates a cluster patient classifier for the patients within the selected cluster, and then loops back to block 3302 to select the next cluster. When the patient classifier generation component is called, since the patient classifier generation component can reuse the same model classifier weights for each call, it is not necessary to generate a model classifier for each call.

[0077] FIG. 34 is a block diagram showing the components of a patient-specific model classifier system of an MLCD system in some embodiments. The PSMC system includes components 3410 (components 3411-3419) similar to component 110 of FIG. 1. The PSMC system also includes a similar heart configuration identification component 3430 and a similar VCG identification component 3440, which represent two different embodiments of the PSMC system. In the first embodiment, the similar heart configuration identification component inputs the patient heart configuration and the model heart configuration and identifies the model heart configuration similar to the patient heart configuration. Next, the similar model heart configuration is input into the simulation generation component, a potential solution is generated, and finally the patient-specific model classifier is trained. In the second embodiment, the similar VCG identification component inputs the patient VCG and the training data and identifies the VCG of the training data similar to the patient VCG. The similar VCG training data is input into the PSMC classifier training component 3418, and the patient-specific model classifier is trained. Although not shown, the PSMC classifier training component may initialize the PSMC classifier weights using transfer. Also, both the first and second embodiments may be used to generate training data based on similar heart configurations and then select similar VCGs for training.

[0078] FIG. 35 is a flow diagram showing the processing of a patient-specific model classifier generation component of a PSMC system in some embodiments. The patient-specific model classifier generation component 3500 generates a patient-specific model classifier for a target patient. At block 3501, the component calls a similar model identification component, passes an instruction for the target patient, and identifies a similar model. At block 3502, the component generates model training data based on the identified similar model. The component may generate training data based on the model heart configuration of the identified similar model using an MLMO system, or may obtain training data based on a similar VCG if it has already been generated. At block 3503, the component calls a classifier training component, trains a patient-specific model classifier based on the model training data of the similar models, and then completes.

[0079] FIG. 36 is a flow diagram showing the processing of a similar model identification component of a PSMC system in some embodiments. The similar model identification component 3600 identifies a model similar to a patient. At block 3601, the component selects the next model. At decision block 3602, if all models have already been selected, the component indicates a similar model and completes; otherwise, the component proceeds to block 3603. At block 3603, the component generates a similarity score between the selected model and the patient. The patient-model similarity score may be based on heart configuration, heart rate curve, or both. At decision block 3604, if the similarity score exceeds a similarity threshold, the component proceeds to block 3605; otherwise, the component loops back to block 3601 to select the next model. At block 3605, the component designates the model as similar to the patient and loops back to block 3601 to select the next model.

[0080] Patient-specific model display A method and system are provided for adapting an MLMO system to assist in generating and displaying a representation of a patient's EM source based on the modeled EM output of a model similar to the patient. In some embodiments, a patient-specific model display ("PSMD") system identifies a model of an EM source that is considered similar to the patient's EM source. Next, the PSMD system generates a graphic representation of the patient's EM source based on the patient's clinical parameters such as infarct and medical history. For example, if the EM source is the heart, the PSMD system may generate a map representing the anatomical structure model of the patient's heart. Next, the PSMD system inputs display values derived from the modeled EM output of the similar model into the map. For example, the PSMD system may select the EM mesh of the modeled EM output and set the value of each vertex of the map based on the corresponding potential of the EM mesh. The PSMD system may also map the modeled EM output from the polyhedral mesh used in the simulation to another polyhedral mesh to generate a more realistic overview display such as from a hexahedral mesh to a surface triangular mesh. The PSMD system may set values corresponding to high potentials to various intensities of red (or shades of gray scale) and values corresponding to low potentials to various intensities of green. As another example, the PSMD system may select the period of the model EM output and set the value based on the difference or delta between the potential of the first EM mesh in the period and the potential of the last EM mesh in the period. The PSMD system may also set the value based on the cumulative delta across consecutive EM meshes in the period, where the cumulative may be weighted. Next, the PSMD system displays the map (e.g., using a rasterization technique) as a representation of the activity of the patient's EM source. The PSMD system may also display an image with the outline of the heart drawn based on the patient's anatomical structure parameters. The contour image may indicate the boundary of the heart cavity.

[0081] In some embodiments, the PSMD system may identify a model similar to a patient by comparing a model source configuration and modeled-derived EM data with a patient source configuration and patient-derived EM data. The comparison may be based on a process represented by the processing of the matching VCG identification component shown in FIG. 28. However, this component may be adapted to generate a similarity score for each matching VCG so that the PSMD system can select the VCG, and thus the model, that is most similar to the patient. Alternatively, the PSMD system may generate the value of a pixel of a map based on a weighted combination (e.g., an average) of the values of the EM meshes of all matching models. The PSMD system may also weight the values based on the similarity scores of the matching models.

[0082] In some embodiments, the PSMD system may generate a sequence of maps for display as a visual representation of the activation of a patient's EM source over time. For example, the PSMD system may divide a cycle into 30 display intervals and generate a map for each display interval based on the value of the EM mesh corresponding to that display interval. The PSMD system may then display the 30 maps in sequence over the time of the cycle to provide a video, or display them in sequence over a time longer than the cycle to provide a slow-motion effect. The PSMD system may also achieve a slow-motion effect by generating more maps per second of simulation time than the maximum frame rate for display. For example, if the maximum frame rate is 60 frames per second, generating 120 maps per second of simulation will result in one second of simulation time being displayed over two seconds. Generating maps from the potential solution for each simulation time may result in the slowest and smoothest slow-motion effect.

[0083] FIG. 37 is a block diagram showing the overall processing of a patient-specific model display system in some embodiments. Component 3710 (i.e., components 3711 - 3715) is similar to components 111 - 115 in FIG. 1. Component 3720 includes an ECG collection component 3721, a VCG generation component 3722, a similar VCG identification component 3723, a display representation generation component 3724, and a display device 3725. The ECG collection component receives an ECG of a patient whose heart is represented by the output of the PSMD system. The VCG generation component receives the patient's ECG and generates the patient's VCG. The similar VCG identification component compares the patient VCG with the modeled VCGs in the VCG store to identify a modeled VCG similar to the patient VCG. The similar VCG can be identified based on a comparison of the periods of the VCGs. Thus, the similar VCG identification component can call a period identification component to identify the period of each VCG. The display representation generation component inputs the similar modeled VCG and generates a display representation of the patient's heart based on the potential solution from which the similar modeled VCG was derived. Next, the display representation generation component outputs the display representation to the display device.

[0084] Figure 38 is a flowchart showing the processing of the patient heart display generation component of the PSMD system in some embodiments. The patient heart display generation component 3800 is provided with the patient VCG and the patient heart configuration and generates an output representation of the patient's heart. At block 3801, the component calls the matching VCG identification component of the patient matching system, passes the instructions of the patient VCG and the patient heart configuration, and identifies one or more matching VCGs. At block 3802, the component identifies the closest VCG match. At block 3803, the component identifies the cycles within the closest matching VCG. At block 3804, the component calls the display value calculation component, passes the instructions of the identified cycle, and generates the display values of the map. At block 3805, the component generates the display representation by storing the display values in the map. At block 3806, the component displays the values in the map based on the anatomical structure parameters of the patient to represent the contour of the patient's heart. At block 3807, the component outputs the map and completes.

[0085] FIG. 39 is a flow diagram showing the processing of the display value calculation component of the PSMD system in some embodiments. The display value calculation component 3900 is passed an indication of a period and generates a display value based on the EM mesh of that period. At block 3901, the component selects the first potential solution of the period. At block 3902, the component selects another potential solution of the period, such as the last potential solution. At block 3903, the component selects the next value of the potential solution. At decision block 3904, if all values have already been selected, the component proceeds to block 3906; otherwise, the component proceeds to block 3905. At block 3905, the component sets the delta value of the selected value to the difference between the value of the first potential solution of the period and the value of the last potential solution of the period. Alternatively, the delta value can be a weighted accumulation of the differences over the entire period. Next, the component loops back to block 3903 to select the next value of the potential solution. At block 3906, the component selects the next display value of the map. At decision block 3907, if all display values have already been selected, the component completes by showing the display value; otherwise, the component proceeds to block 3908. At block 3908, the component identifies the adjacent delta value closest to the display value. At block 3909, the component sets the display value to a function of the adjacent delta values and then loops back to block 3906 to select the next display value. The function can take, for example, the average of the adjacent delta values and a weighted average based on the distance between the position of the potential solution and the position of the patient's heart represented by the display value.

[0086] Display of electromagnetic force A method and system are provided for generating a visual representation of electromagnetic forces generated by an electromagnetic source within a body. In some embodiments, an electromagnetic force display (“EFD”) system generates a “surface representation” of the electromagnetic force from a sequence of vectors representing the magnitude and direction of the electromagnetic force over time. For example, if the electromagnetic force is the heart, the sequence of vectors can be a vector electrocardiogram. The vectors are correlated to an origin that can be located within the electromagnetic source. To generate the surface representation, the EFD system identifies regions based on the origin and pairs of vectors for temporally adjacent vector pairs. For example, if the values of the x, y, and z coordinates of a vector are (1.0, 2.0, 2.0) and the values of the adjacent vector are (1.1, 2.0, 2.0), the region is the region enclosed by a triangle with vertices at (0.0, 0.0, 0.0), (1.0, 2.0, 2.0), and (1.1, 2.0, 2.0). Next, the EFD system displays the representation of each region to form the surface representation of the electromagnetic force. Since it is unlikely that the regions exist in one plane, the EFD system can provide shading or coloring to assist in indicating that the regions exist in different planes. The EFD system can also display a representation of the electromagnetic source such that the surface representation visually emanates from the electromagnetic source. For example, the EFD system can display the heart based on the anatomical structure parameters of the patient from whom the VCG was collected. If the electromagnetic force has a period, the regions of the period form the surface representation of that period. The EFD system can display the surface representations of multiple periods simultaneously. For example, if the electromagnetic source is the heart, the periods can be based on arrhythmias. The EFD system can also display the surface representation of each period in sequence (e.g., centered at the same position on the display) to show the change in the electromagnetic force over time. The EFD system can display each region of the surface representation in sequence to show the time associated with the vectors. The EFD system can be used to display a simulated VCG or a VCG collected from a patient.

[0087] Figure 40 shows various surface representations of a vector electrocardiogram. Image 4010 shows a display of the surface representation of a vector electrocardiogram based on a perspective view. Image 4020 shows a display of the surface representation of a vector electrocardiogram shown as emanating from the heart. Images 4031 - 4034 show displays of the surface representation over time, indicating changes in electromagnetic force.

[0088] In some embodiments, the EFD system may employ various video techniques to assist a user in analyzing the VCG. For example, the EFD system may animate the display of the surface representation by sequentially displaying each region at the same timing as the actual timing of the VCG. When the period is 1000 milliseconds, the EFD system sequentially displays the regions over 1000 milliseconds. When sequentially displaying the surface representations of multiple periods and the next region to be displayed overlaps with the previously displayed region, the EFD system may first remove the overlapping region and then display the next region. The EFD system may also enable a user to specify that only a portion of the surface representation of a period is to be displayed. For example, the user may specify to display the portion corresponding to 250 milliseconds of the surface representation. In such a case, the EFD system may animate the display of the portion by deleting the tail region when adding the head region. The EFD system may also enable a user to accelerate or decelerate the display of the surface representation.

[0089] Figure 41 is a flowchart showing the processing of the VCG visualization component of the EFD system in some embodiments. The VCG visualization component 4100 is passed the VCG and generates the surface representation of each part (e.g., period) of the VCG. At block 4101, the component displays the representation of the heart. At block 4102, the component selects the next period of the VCG. At decision block 4103, if all periods have already been selected, the component is complete; otherwise, the component continues to block 4104. At block 4104, the component calls the VCG surface representation display component to display the surface representation of the selected period and then loops back to block 4102 to select the next period.

[0090] Figure 42 is a flowchart showing the processing of the VCG surface representation display component of the EFD system in some embodiments. The VCG surface representation display component 4200 is passed a vector electrocardiogram and generates a surface display representation of the VCG. At block 4201, the component sets index t to 2 to index through the time intervals of the VCG. At decision block 4202, if index t is greater than the number of time intervals, the component is complete; otherwise, the component proceeds to block 4203. At block 4203, the component generates a VCG triangle based on the origin, the indexed interval t, and the previous interval t-1. At block 4204, the component fills the VCG triangle with a shading that can vary based on the plane of the triangle. At block 4205, the component displays the filled VCG triangle. At block 4206, the component increments index t. At decision block 4207, if index t is greater than the display span t span +1, the component proceeds to block 4208; otherwise, the component loops back to block 4202. At block 4208, the component deletes from the display the VCG triangle at the start of the currently displayed span and loops back to block 4202.

[0091] Simulation Calibration A method and system are provided for a computing system to generate a calibrated set of simulated heartbeat curves, also referred to as model heartbeat curves, based on morphological similarities such as orientation similarity and / or electrophysiological similarity with a patient's heartbeat curve. The morphological similarity can be identified based on the analysis of "raw trace" data (e.g., potential vs. time) representing the patient's ECG data and / or VCG data. The calibrated set can be further generated based on the similarity between the additional configuration parameters used to generate the simulated heartbeat curves and the patient's configuration parameters. In some embodiments, a simulated heartbeat curve calibration ("CSC") system generates the calibrated set. Since the CSC system generates the calibrated set based on similarity to the patient's heartbeat curve, the calibrated set represents a patient-specific set of simulated heartbeat curves. Using the simulated heartbeat curves of the calibrated set, a patient-specific model classifier can be trained with each simulated heartbeat curve labeled with the configuration parameters used to generate that simulated heartbeat curve. The simulated heartbeat curves can be labeled with configuration parameters not collected from the patient, such as the source location of the rotator. Next, the patient's configuration parameters can be identified using the patient-specific model classifier. The CSC system generates a patient-specific model classifier in a similar manner to the PSMC system, but uses various similarity measures such as morphological similarity.

[0092] In some embodiments, the CSC system inputs a simulated heartbeat curve and the simulated configuration parameters used in generating each simulated heartbeat curve. The simulated heartbeat curve can be generated by the MLMO system, as shown by the simulation generation component 112 and the VCG generation component of FIG. 1. The CSC system also inputs a patient heartbeat curve and patient configuration parameters. The CSC system identifies a pacing-similar simulated heartbeat curve having a simulated pacing similar to the patient pacing(s) used when collecting the patient heartbeat curve. To collect the patient heartbeat curve, an electrophysiologist (or other healthcare provider) can place a catheter within the patient's heart at various locations, such as near the coronary sinus. At each location, the patient's heart is paced, for example, at 1 Hz for 10 beats, followed by an extrasystolic beat after a certain delay. Next, the same pacing process at 1 Hz is repeated multiple times with extrasystolic beats at different delays. Next, the same pacing process is repeated at different pacing rates (e.g., 2 Hz and 4 Hz). As a result, a set of patient electrocardiograms collected based on different locations, pacing rates, and extrasystolic delays is obtained. An electrocardiogram of normal sinus rhythm beats can also be collected.

[0093] In some embodiments, the pacing locations include at least two locations that can be distant sites within the target heart chamber that is the target of pacing or clinical treatment. For example, if the target heart chamber is the ventricle, the pacing locations can include one pacing location in the posterior right ventricle and one pacing location in the lateral left ventricle. Such pacing locations are well accessed and can be easily accessed with a catheter. However, other pacing locations can also be used. For example, if the only target heart chamber is the left ventricle, the pacing locations can include one pacing location on the lateral left ventricular wall near the base of the heart (at the level of the heart valve) and one pacing location on the left ventricular septum near the apex. As another example, if the target heart chamber is the atrium, only one pacing location such as a pacing location in the coronary sinus of the left atrium can be used. This pacing location can be combined with the normal P wave located at the sinoatrial node of the right atrium. Generally, the effectiveness of calibration improves as the number of pacing locations increases and when the pacing locations are distant from each other.

[0094] The CSC system identifies a simulated heartbeat curve that is morphologically similar to the patient's heartbeat curve. The morphological similarity includes both orientation similarity and electrophysiological similarity, and the electrophysiological similarity includes both action potential similarity and conduction velocity similarity. The CSC system identifies an orientation-similar simulated heartbeat curve of a simulated heart having a simulated orientation similar to the patient orientation of the patient's heart from the pacing-similar heartbeat curves. To identify the orientation similarity, the CSC system generates the QRS complex and T-wave vectors of the patient's ventricular beats, and the P-wave vector of the patient's atrial beats. The vector may represent the average spatial orientation of all electrical dipoles at that cycle phase of the cardiac cycle (e.g., QRS complex). Alternatively, the CSC system may use a time-series vector, i.e., the raw VCG signal, instead of the average vector. The CSC system labels each vector with its pacing (e.g., pacing position and pacing rate) and cycle phase. The CSC system generates corresponding simulated vectors from the simulated heartbeat curves of the pacing-similar simulated set. Next, the CSC system calculates the orientation difference between the patient vector and each simulated vector of the same pacing and cycle phase. For example, the CSC system may calculate the inner product of the vectors of the left ventricular ("LV") apex, LV side wall, LV posterior wall, and LV anterior wall between the QRS complex and the T wave. Next, the CSC system identifies a set of simulated heartbeat curves for which the total orientation difference (e.g., weighted average of the inner products) is minimized. To calculate the orientation difference, the CSC system generates a rotation matrix representing the orientation difference between the patient orientation and each of the simulated orientations of the identified set. To generate the rotation matrix, the CSC system may apply the least squares fit of the patient vector to the simulated vectors of the set. The CSC system selects a simulated heartbeat curve having the minimum simulated orientation difference indicated by the rotation matrix as the orientation-similar simulated heartbeat curve. In some embodiments, the CSC system may identify the orientation similarity based on features of raw trace data (e.g., potential vs. time) other than vectors derived from the QRS complex, T wave, and P wave of the ECG or VCG.

[0095] The CSC system identifies an action potential similar simulated heartbeat curve that represents an action potential similar to the action potential represented by the patient's heartbeat curve from a morphological similar simulated heartbeat curve. To identify the action potential similarity, the CSC system normalizes the ECG of the simulated heartbeat curve and the ECG of the patient's heartbeat curve in both time and magnitude. For example, each ECG can be normalized to 1 second and a specific peak signal of the QRS complex or P wave. The CSC system estimates action potential parameters that control the duration of the activated myocardial tissue (action potential duration), which changes the relative duration of the cycle phase of the ECG and / or VCG. Action potential characteristics are non-uniform throughout the anatomical structure and may depend on various attributes of the heart tissue (e.g., position within the anatomical structure, type of heart cell, and health / disease classification). The duration of the cardiac cycle in the ECG and / or VCG represents the overall effect of the local distribution of action potential parameters on the entire cardiac dipole. The CSC system can compare the patient's VCG with the simulated VCG at the same pacing rate and pacing position. Action potentials are considered similar based on the similarity of the relative magnitudes and deviations between the X, Y, and Z values of the QRS complex, T wave, and P wave, even if the absolute timing of the cycle is different. The relative timing indicates the shape and duration of the electromagnetic wave within the myocardium (excitation wave front, excitation wave rear, and excitation wave length). The CSC system can adjust the time of the simulated VCG based on one or more of: 1) selecting a shape that better matches the patient, 2) adjusting the bulk myocardial conductivity parameter, and 3) adjusting the parameter (i.e., time constant) in the ion model that controls the duration of the action potential. The latter two parameters can be changed such that the error between the absolute and relative timings is less than a threshold (e.g., 10 milliseconds or 5%). Next, the CSC system calculates the action potential similarity between each simulated heartbeat curve and each patient's heartbeat curve (e.g., using Pearson correlation). Next, the CSC system selects the most similar simulated heartbeat curve (e.g., where the action potential similarity exceeds the threshold) as the action potential similar simulated heartbeat curve.

[0096] The CSC system identifies a conduction velocity similar simulated heartbeat curve that represents a conduction velocity similar to the conduction velocity represented by the patient's heartbeat curve from the action potential similar simulated heartbeat curve. The CSC system identifies the conduction velocity similar simulated heartbeat curve in a manner similar to the method of identifying the action potential similar simulated heartbeat curve, except that the heartbeat curve is normalized by magnitude and not normalized by time.

[0097] The CSC system may also identify simulated heartbeat curves based on heart shape similarity and disease substrate similarity. Heart shape similarity may be based on structural disease similarity based on the degree of structural disease in a particular heart chamber (e.g., severe cardiomyopathy within the ventricle), and measurement value similarity based on comparison of the patient's heart measurements (e.g., measurements collected by CT or ultrasound) with the constituent parameters of the simulated heartbeat curve. The disease substrate may be based on the location and size of the patient's myocardial scar. The size and location of the patient's scar may be identified by a person who designates the scar portion of the patient's heart on the shape representation of the patient's heart (based on the potential map). Disease substrate similarity is based on the degree of overlap of the patient's scar with the scar of the simulated heartbeat curve.

[0098] The CSC system may specify heart shape similarity (e.g., structural disease similarity and measurement value similarity), orientation similarity, electrophysiological similarity (e.g., action potential similarity and conduction velocity similarity), and disease substrate similarity in any order. Specifically, in a given similarity specification order, the CSC system may specify the similarity by effectively and continuously filtering the set of simulated heartbeat curves based on the set of simulated heartbeat curves identified as similar based on the previous similarity specification. The CSC system may also identify the set most similar for each similarity metric from the set of simulated heartbeat curves, and then identify the most similar simulated heartbeat curve from these sets. For example, the CSC system may use a weighted average to combine the similarity scores to obtain the final similarity score for each simulated heartbeat curve.

[0099] The CSC system can also identify a calibration set of simulated heartbeat curves using various machine learning ("ML") techniques such as linear regression techniques and neural networks. To generate the ML calibration set, the CSC system identifies a training set of simulated heartbeat curves that match the patient's heartbeat curve based on the similarity between the configuration parameters (e.g., morphological parameters) and the corresponding patient parameters, and based on the similarity of the pacing positions. For example, for each pacing position of the patient's heartbeat curve, the CSC identifies a set of simulated heartbeat curves having configuration parameters similar to the patient parameters from those simulated heartbeat curves having that pacing position.

[0100] Next, the CSC system trains a mapping function that maps the simulated heartbeat curve to the patient's heartbeat curve. For example, the mapping function can be a neural network having weights learned based on the training set. The weights represent a non-linear transformation from the simulated heartbeat curve to the patient's heartbeat curve, which tends to minimize the difference between the configuration parameters and the patient parameters. To train the mapping function, the CSC system can derive various features from the simulated heartbeat curve and use these features as training data. The features can be based on, for example, the magnitude of the potential of the heart segment and the timing of the heart segment. Once the mapping function is trained, the CSC system applies the mapping function to the set of simulated heartbeat curves that match the patient's heartbeat curve to generate an ML-transformed simulated heartbeat curve. The ML-transformed simulated heartbeat curves form the ML calibration set of the simulated heartbeat curves.

[0101] Next, a patient-specific model classifier can be generated using the ML calibration set. To identify the simulated heartbeat curves that match the patient's heartbeat curve, the mapping function can be used in combination with the various techniques described above. For example, the matching simulated heartbeat curves can be identified based on orientation similarity and electrophysiological similarity.

[0102] In some embodiments, the CSC system may also generate a calibrated set of simulated heartbeat curves based on patient-specific source configurations (e.g., shape, disease substrate or scar, action potential). To identify the calibrated set, the CSC system identifies simulations based on source configurations and / or heartbeat curves such as VCGs that are similar to the patient's VCG. The CSC system then employs a bootstrap technique similar to the aforementioned bootstrap technique used to speed up the generation of the model library. For each identified simulation, the CSC system bootstraps the patient-specific simulation using the values of the EM mesh at a point in time of the simulation. The CSC system then continues the simulation using the patient's patient-specific source configuration rather than the source configuration of the identified simulation. For example, if the simulation is 4 seconds long, the CSC system may initialize the patient-specific simulation with the values at the 3-second mark and run the patient-specific simulation for 1 second. The CSC system then generates a patient-specific simulated VCG from the patient-specific simulation. The CSC system identifies the patient-specific simulation with the corresponding source configuration as the calibrated set and the patient-specific VCG as the calibrated set of simulated heartbeat curves. The calibrated set can be used as training data for a patient-specific classifier or for other purposes such as directly using the source configuration of the simulations within the set to identify the source location.

[0103] In some embodiments, the CSC system may also identify a calibration set of simulated heartbeat curves based on patient-specific simulated heartbeat curves such as VCGs. To identify the calibration set, the CSC system identifies simulations based on a source configuration similar to the patient's source configuration. For example, the similarity may be based on shape and scar location. Next, the CSC system uses the EM data or EM output of each identified simulation and the shape of the patient's heart to generate a patient-specific VCG for that simulation. To generate the VCG, the CSC system efficiently infers that the EM data or EM output was generated using a shape that matches the patient's shape when generating the patient-specific VCG. Next, the CSC system identifies the simulation with the VCG that most closely matches the patient-specific VCG as the calibration set of simulated heartbeat curves. The calibration set may be used as training data for a patient-specific classifier or for other purposes such as directly using the source configuration of the simulations within the set to identify the source location.

[0104] In some embodiments, the CSC system may perform further calibration based on the identified simulated VCG that most closely matches the patient-specific VCG via a linear or non-linear transformation of a pair of the simulated VCG and the patient-specific VCG. The pair of the simulated VCG and the patient-specific VCG includes two VCGs having similar source configurations (e.g., shape, scar location, electrophysiological properties, source location, etc.) and electromagnetic data (e.g., heartbeat curve morphology). The CSC system may calculate a linear transformation from a least squares fit of at least one pair of the simulated VCG and the patient-specific VCG such that the similarity score with the patient-specific VCG is increased by the transformation applied to the simulated VCG. The CSC system may also apply a non-linear transformation using a neural network trained on a pair of the simulated VCG and the patient-specific VCG, or other machine learning techniques, to transform the simulated VCG to better match the patient-specific VCG.

[0105] FIG. 43 is a flowchart showing the processing of the simulated heartbeat curve identification component of the CSC system in some embodiments. The simulated heartbeat curve identification component 4300 is passed a patient heartbeat curve and a simulated heartbeat curve, and identifies a simulated heartbeat curve similar to each patient heartbeat curve. At block 4301, the component identifies the cardiac shape similarity (e.g., structural disease similarity and / or measurement value similarity) between each patient heartbeat curve and each simulated heartbeat curve. At block 4302, the component identifies the pacing similarity between each patient heartbeat curve and each simulated heartbeat curve. The pacing similarity can be based on how close the pacing position and pacing rate of the simulated heartbeat curve are to the pacing position and pacing rate of the patient heartbeat curve. At block 4303, the component identifies the orientation similarity between each patient heartbeat curve and each simulated heartbeat curve. At block 4304, the component identifies the electrophysiological similarity between each patient heartbeat curve and each simulated heartbeat curve. At block 4305, the component identifies the simulated heartbeat curve as a calibrated simulated heartbeat curve based on the identified similarities and then completes. Although not shown, the component can also identify disease substrate similarity to identify similar simulated heartbeat curves. The configuration parameters used to generate the simulated heartbeat curves are considered to be those associated with these heartbeat curves. For example, the heartbeat curves can be considered to have the pacing position and disease substrate used when generating the simulated heartbeat curves or the patient heartbeat curves.

[0106] FIG. 44 is a block diagram showing components of a CSC system in some embodiments. The CSC system 4400 includes a simulated heartbeat curve calibration component 4401. The CSC system includes an orientation calibration component, which includes a vector generation component 4402 and a morphological similarity identification component 4410 having an orientation similarity identification component 4411 and an electrophysiological similarity identification component 4412. The CSC system includes an orientation calibration component 4403 and an electrophysiological calibration component, and the electrophysiological calibration component includes an action potential calibration component 4404 and a conduction velocity calibration component 4405. The CSC system includes a heart shape component, which includes a structural disease calibration component 4406 and a measurement calibration component 4407. The CSC system includes a disease substrate calibration component 4408 and a pacing calibration component 4409. The CSC system accesses a simulation store 4420 and outputs a calibrated simulated heartbeat curve. The simulated heartbeat curve calibration component calls the orientation calibration component, the electrophysiological calibration component, the heart shape component, the disease substrate calibration component, and the pacing calibration component to identify a calibrated simulated heartbeat curve. The orientation calibration component, the action potential calibration component, and the heart shape calibration component are described in the flow diagrams.

[0107] Figure 45 is a flowchart showing the process performed by an electrophysiologist (``EP'') to collect patient data. At block 4501, the EP selects the next pacing position. At decision block 4502, if all pacing positions have already been selected, the process is complete; otherwise, the process continues to block 4503. At block 4503, the EP places the catheter at the pacing position. At block 4504, the EP selects the next pacing rate. At decision block 4505, if all pacing rates for the selected pacing position have already been selected, the process loops to block 4501 to select the next pacing position; otherwise, the process continues to block 4506. At block 4506, the EP selects the next premature stimulation interval. At decision block 4507, if all premature stimulation intervals for the selected pacing position and pacing rate have already been selected, the process loops to block 4504 to select the next pacing rate; otherwise, the process continues to block 4508. At block 4508, the EP delivers a stimulus at the selected pacing rate. At block 4509, a stimulus is delivered at the premature stimulation interval, and the process loops to block 4506 to select the next premature stimulation interval.

[0108] FIG. 46 is a flowchart showing the processing of the simulated heartbeat curve calibration component of the CSC system in some embodiments. The simulated heartbeat curve calibration component 4600 is passed an indication of the patient heartbeat curve and the simulated heartbeat curve, and identifies a simulated heartbeat curve that is similar to the patient heartbeat curve. At block 4601, the component calls the vector generation component, passes an indication of the patient heartbeat curve, and generates a patient vector for each patient heartbeat curve. At block 4602, the component calls the orientation-similar simulated heartbeat curve identification component, passes an indication of the simulated heartbeat curve and the measured vectors of each patient heartbeat curve, and receives, as a return, an indication of the orientation-similar simulated heartbeat curve. Blocks 4601 and 4602 represent the processing for identifying the orientation-similar simulated heartbeat curve. At block 4603, the component calls the action potential calibration component, passes an indication of the orientation-similar simulated heartbeat curve and the patient heartbeat curve, and receives, as a return, an indication of the action potential-similar simulated heartbeat curve. At block 4604, the component calls the conduction velocity calibration component, passes an indication of the action potential-similar simulated heartbeat curve and the patient heartbeat curve, and receives, as a return, an indication of the conduction velocity-similar simulated heartbeat curve. Blocks 4603 and 4604 represent the processing for identifying electrophysiological similarity.

[0109] FIG. 47 is a flowchart showing the processing of the vector generation component of the CSC system in some embodiments. The vector generation component is called to generate vectors for each of the passed heartbeat curves. Although not shown, the processing of blocks 4701-4708 is performed for each heartbeat curve. At block 4701, the component selects the next cardiac cycle of the heartbeat curve. At decision block 4702, if all cardiac cycles have already been selected, the component is complete; otherwise, the component continues to block 4703. At block 4703, the component selects the next cardiac cycle phase of the selected cardiac cycle. At decision block 4704, if all cardiac cycle phases have already been selected, the component loops to block 4701 to select the next cardiac cycle; otherwise, the component continues to block 4705. At block 4705, the component selects the next heart position. At decision block 4706, if all heart positions have already been selected, the component continues to block 4703 to select the next cardiac cycle phase; otherwise, the component continues to block 4707. At block 4707, the component calculates a vector from the heartbeat curve at the heart position in the cardiac cycle phase. At block 4708, the component labels the vector with the cardiac cycle phase and heart position, and then loops to block 4705 to select the next heart position.

[0110] FIG. 48 is a flowchart showing the processing of the orientation similarity identification component of the CSC system in some embodiments. The orientation similarity identification component 4800 is called and passed the indication of the simulated heartbeat curve and the patient vectors of each patient's heartbeat curve. Although not shown, blocks 4801-4807 are executed for each patient's heartbeat curve. At block 4801, the component selects the next simulated heartbeat curve. At decision block 4802, if all simulated heartbeat curves have already been selected, the component proceeds to block 4808; otherwise, the component proceeds to block 4803. At block 4803, the component calls the vector generation component, passes the indication of the simulated heartbeat curve, and receives, as a return, the simulated vector. At block 4804, the component selects the next simulated vector. At decision block 4805, if all simulated vectors have already been selected, the component proceeds to block 4807; otherwise, the component proceeds to block 4806. At block 4806, the component calculates the orientation difference between the selected simulated vector and the corresponding patient vector, loops to block 4804, and selects the next simulated vector. At block 4807, the component calculates the orientation similarity of the selected simulated heartbeat curve, then loops to block 4801 and selects the next simulated heartbeat curve. At block 4808, the component identifies and returns the simulated heartbeat curve with the highest orientation similarity, and then completes.

[0111] Figure 49 is a flowchart showing the processing of the heart shape calibration component of the CSC system in some embodiments. The heart shape calibration component 4900 is called to identify a simulated heartbeat curve whose heart shape is similar to the patient's heartbeat curve. At block 4901, the component receives an assessment of the patient's structural disease. At block 4902, the component identifies a simulated heartbeat curve having a similar structural disease. At block 4903, the component receives the patient's shape measurements. At block 4904, the component selects the next identified simulated heartbeat curve. At decision block 4905, if all simulated heartbeat curves have already been selected, the component proceeds to block 4907; otherwise, the component proceeds to block 4906. At block 4906, the component calculates the shape score between the selected simulated heartbeat curve and the patient's heartbeat curve, and then loops back to block 4904 to select the next identified simulated heartbeat curve. At block 4907, the component selects and reports the most matching simulated heartbeat curve as the heart shape similar simulated heartbeat curve based on the shape score.

[0112] FIG. 50 is a flowchart showing the processing of the action potential calibration component of the CSC system in some embodiments. The action potential calibration component 5000 identifies a simulated heartbeat curve having an action potential similar to the action potential of the patient's heartbeat curve. Although not shown, the processing of blocks 5001-5006 is performed for each patient heartbeat curve. At block 5001, the component generates a normalized ECG of the patient's heartbeat curve. At block 5002, the component selects the next simulated heartbeat curve. At decision block 5003, if all simulated heartbeat curves have already been selected, the component proceeds to block 5006; otherwise, the component proceeds to block 5004. At block 5004, the component generates a normalized simulated ECG of the selected simulated heartbeat curve. At block 5005, the component calculates the action potential similarity between the normalized patient ECG and the simulated ECG, and then loops back to block 5002 to select the next simulated heartbeat curve. At block 5006, the component selects and reports the simulated heartbeat curve with the highest action potential similarity.

[0113] FIG. 51 is a flowchart showing the processing of the mapping function generation component of the CSC system in some embodiments. The mapping function generation component 5100 identifies a set of simulated heartbeat curves that match the patient heartbeat curve used as training data, and then trains the mapping function. At block 5101, the component selects the next pacing position of the patient heartbeat curve. At decision block 5102, if all pacing positions have already been selected, the component proceeds to block 5107; otherwise, the component proceeds to block 5103. At block 5103, the component selects the next simulated heartbeat curve having that pacing position. At decision block 5104, if all such simulated heartbeat curves have already been selected, the component loops to block 5101 to select the next pacing position; otherwise, the component proceeds to block 5105. At decision block 5105, if the configuration parameters of the simulated heartbeat curve match the patient configuration parameters, the component proceeds to block 5106; otherwise, the component loops to block 5103 to select the next simulated heartbeat curve. At block 5106, the component adds the simulated heartbeat curve to the training data and loops to block 5106 to select the next simulated heartbeat curve. At block 5107, the component trains the mapping function to map the simulated heartbeat curves of the training data to the patient heartbeat curve and then completes.

[0114] FIG. 52 is a flowchart showing the processing of the simulated heartbeat curve conversion component of the CSC system in some embodiments. The simulated heartbeat curve conversion component 5200 applies a mapping function to the simulated heartbeat curve to generate an ML calibration set of the simulated heartbeat curve. At block 5201, the component selects the next pacing position of the patient's heartbeat curve. At decision block 5202, if all pacing positions have already been selected, the component is complete; otherwise, the component proceeds to block 5203. At block 5203, the component selects the next simulated heartbeat curve having that pacing position. At decision block 5204, if all such simulated heartbeat curves have already been selected, the component loops to block 5201 to select the next pacing position; otherwise, the component proceeds to block 5205. At decision block 5205, if the configuration parameters of the simulated heartbeat curve match the patient configuration parameters, the component proceeds to block 5206; otherwise, the component loops to block 5203 to select the next simulated heartbeat curve. At block 5206, the component applies a mapping function to the simulated heartbeat curve to generate an ML-converted simulated heartbeat curve. At block 5207, the component adds the ML-converted simulated heartbeat curve to the ML calibration set and loops to block 5203 to select the next simulated heartbeat curve.

[0115] Although described primarily in terms of an electromagnetic source that is a heart, the CSC system may be used to calibrate the simulated electromagnetic output of other electromagnetic sources within the body. The CSC system and other systems described herein may be used, for example, when the body is a human body or the body of another animal, and the electromagnetic source is the heart, brain, liver, lungs, kidneys, muscles, or another part of the body that generates an electromagnetic field measurable from outside or inside the body. Also, patient pacing may be performed using an invasive pacing device that delivers an electromagnetic pulse from inside an electromagnetic source such as a catheter. Patient pacing may be performed using a non-invasive pacing device that delivers an electromagnetic pulse from outside an electromagnetic source such as a magnetic resonance scanner. The non-invasive pacing device may generate an electromagnetic field to pace the patient's electromagnetic source.

[0116] User interface for calibrating orientation In some embodiments, the user interface calibration (“UIC”) system of the CSC system provides a user interface for manually calibrating the orientation of the patient VCG to the simulated VCG. During normal sinus rhythm and / or based on pacing at various pacing positions that can be identified based on research imaging data (such as a chest X-ray or imaging data from a catheter system positioning system), access the collected patient ECG. Next, the UIC system extracts segments from the ECG for which the excitation source location is known, and then performs noise removal on those segments. Next, the UIC system generates a VCG from the segments. Next, the UIC system selects a simulated heartbeat curve having a source location similar to the source location of the accessed patient ECG.

[0117] FIG. 53 shows a user interface for manually calibrating the orientation. The display 5300 includes a patient representation 5310 and a simulated representation 5320. To generate the patient representation, the UIC system renders the patient VCGs 5311 and 5312 of the patient source positions as three-dimensional (“3D”) surfaces. To provide an anatomical structure reference frame such as a coronal plane and / or an orthogonal plane, the patient VCG can be overlaid on the torso model at 5315, which can be rotated in 3D. To generate the simulated representation, the UIC system renders simulated VCGs 5321 and 5322 from selected simulated heartbeat curves having simulated source positions similar to the patient source positions, and these can also be overlaid on the torso model 5325. The UIC system can also overlay a representation of the heart 5326 based on the heart shape of the simulated heartbeat curve. Next, the user can rotate the heart shape with the simulated VCG, rotate the simulated VCG with the heart shape, and align the position of the simulated VCG with the position of the patient VCG (based on visual comparison). To assist with the alignment, the UIC system can also generate an alignment score (e.g., based on least squares fitting) indicating the proximity of the alignment of the rotated simulated VCG to the patient VCG. When the user determines that the positions of the VCGs are aligned, the UIC system then generates a rotation matrix based on the amount of rotation of the heart shape required to align the simulated VCG with the patient VCG. The CSC system can use the rotation matrix to identify orientation-similar heartbeat curves.

[0118] Identifying an ablation pattern A method for identifying an ablation pattern, a computing system, and a method for treating a patient based on the identified ablation pattern are provided. In some embodiments, an ablation pattern identification (“API”) system identifies an ablation pattern for treating a patient's EM source. The API system accesses the patient EM output of the EM source (e.g., the heart or brain). The API system identifies non-ablation pattern information of a non-ablation pattern simulation based on a simulated source configuration, rather than based on the ablation pattern. For example, the non-ablation pattern information can be a simulated EM output (e.g., a simulated ECG) generated from the non-ablation pattern simulation. The API system identifies the non-ablation pattern information based on the similarity between the simulated EM output of the non-ablation pattern simulation and the patient EM output. The API system then identifies the ablation pattern based on the identified non-ablation pattern information and the ablation pattern information associated with the ablation pattern simulation. For example, the ablation pattern can be identified based on the mapping between the simulated EM output and the ablation pattern used in the ablation pattern simulation. Each ablation pattern simulation is generated based on a simulated source configuration and an ablation pattern. The API system then outputs an indication of the identified ablation pattern as a possible ablation pattern of the patient's EM source.

[0119] In some embodiments, the API system accesses a model library for non-ablation pattern simulation and simulated derived EM data generated from the simulated EM output of the model library. The model library can be generated by the MLMO system. This model library is referred to as the "non-ablation pattern model library", and since the simulation is based on a simulated source configuration that does not include an ablation pattern, the simulation is referred to as a "non-ablation pattern simulation". For example, if the EM source is the heart, the non-ablation pattern simulation can be based on the simulated source location of the arrhythmia without assuming an ablation pattern, and the simulated derived EM data can be VCG. The API system can also generate an ablation pattern model library that can include one or more ablation pattern simulations for each simulated source configuration used to generate the non-ablation pattern model library. For each simulated source configuration, the API system executes an ablation pattern simulation for each set of ablation patterns. Using each ablation pattern simulation, the result when that ablation pattern is applied to the simulated source location of the simulated source configuration is identified. If an arrhythmia does not occur during the ablation pattern simulation, the ablation pattern is identified as having successfully stopped the arrhythmia of the simulated source configuration. Otherwise, it is identified as a failure. For example, if a set of ablation patterns contains 10 ablation patterns, the API system generates 10 ablation pattern simulations for each simulated source configuration. The number of successful ablation patterns for a simulated source configuration can vary from 0 to 10. For example, one of the simulated source configurations can have 2 successful ablation patterns, and another simulated source configuration can have 7 successful ablation patterns.

[0120] In some embodiments, the API system identifies one or more possible ablation patterns of a patient by comparing the patient EM output (or patient-derived EM data) with the simulated EM output (or simulated-derived EM data) to identify the matching simulated EM output. The API system selects the simulated source configuration used in the non-ablation pattern simulation in which the matching simulated EM output was generated. Next, the API system identifies the ablation pattern simulation based on the selected simulated source configuration. The API system selects the successful ablation patterns of these ablation pattern simulations as the possible ablation patterns. For example, if the EM source is the patient's heart and the patient-derived data is VCG, the API system uses the patient VCG to select the simulated source configuration of the non-ablation pattern simulation used to generate the most matching simulated VCG. Next, the API system identifies the ablation pattern simulation that results in a successful ablation pattern based on the selected simulated source configuration. Next, the API system outputs the successful ablation pattern as a possible ablation pattern of the patient.

[0121] In some embodiments, the API system is used to assist in a method of treating a patient, such as a patient having an arrhythmia (or more generally a tachycardia). An ablation assist (“AA”) system is used to assist a physician in treating a patient. A patient's VCG collected during an arrhythmia is input into the AA system. The AA system then provides the patient VCG to the API system. In response, the API system may output an indication of one or more possible ablation patterns for the ablation and output one or more target sites for the ablation. The physician then selects the possible ablation pattern and target site. To assist in the selection, the AA system may superimpose the ablation pattern on the target site on a representation of the patient's heart. The representation displayed may be based on the anatomical characteristics of the patient's heart. When using a stereotactic body radiotherapy (“SBRT”) device, the anatomical characteristics of the patient may be identified from an image (e.g., a “scout” image) collected as part of the therapy. The AA system may provide the selected ablation pattern and the source location to an ablation device (e.g., an SBRT device) for automatic placement. Alternatively, the physician may manually place an ablation device (e.g., a catheter). When the patient is ready for ablation, energy is activated and ablation is performed based on the selected ablation pattern. The ablation device may be an SBRT device, an ablation catheter, a cryoablation catheter, an implantable pulse generator, etc.

[0122] FIG. 54 is a flowchart showing the overall processing of an API system in some embodiments. An ablation pattern identification component 5400 identifies an ablation pattern based on patient-derived EM data. At block 5401, the component accesses the derived EM data (e.g., VCG). At block 5402, the component identifies a non-ablation pattern simulation of the model library based on the simulated derived EM data that most closely matches the patient-derived EM data. At block 5403, the component obtains the simulated source configuration used to generate the identified non-ablation pattern simulation. At block 5404, the component identifies the ablation pattern simulation executed using the obtained simulated source configuration. At block 5405, the component obtains the ablation pattern associated with the identified ablation simulation. At block 5406, the component outputs an indication of the obtained ablation pattern and then completes.

[0123] FIG. 55 is a flowchart showing the process of generating a mapping function of an API system in some embodiments. The mapping function generation component 5500 generates a mapping function that can be used to identify possible source locations and possible ablation patterns. At block 5501, the component accesses an ablation pattern simulation. At block 5502, the component selects the next ablation pattern simulation. At decision block 5503, if all ablation pattern simulations have already been selected, the component proceeds to block 5506; otherwise, the component proceeds to block 5504. At block 5504, the component generates a feature vector based on the simulated source configuration of the selected ablation pattern simulation. The features of the vector can include all simulated source configurations, or subsets of the simulated source configurations, that are particularly relevant to identifying the source location and ablation pattern, along with other information such as simulated EM data generated from non-ablation pattern simulations using the simulated source configuration. At block 5505, the component labels the feature vector based on the simulated source location and the ablation pattern of the selected ablation pattern simulation, and then loops back to block 5502 to select the next ablation pattern simulation. At block 5506, the component trains the mapping function using the feature vectors and labels, and then completes.

[0124] FIG. 56 is a flow diagram showing the processing of a method for treating a patient during ablation in some embodiments. Method 5600 accesses patient-derived EM data (e.g., VCG) as the first step of the process. At step 5601, the method identifies the source location to be used and the ablation pattern. This identification can be performed by generating a feature vector based on features derived from the patient's patient source configuration and the patient-derived EM data, and then applying a mapping function trained by an API system. Alternatively, the identification can be performed by identifying a non-ablation pattern simulation having simulated EM data that most closely matches the patient EM data, and then using the simulated source configuration to identify an ablation pattern simulation generated using that simulated source configuration. At step 5602, the method places or directs (i.e., aims) an ablation device (e.g., a neuromodulation device) based on the identified source location. At step 5603, the method applies or directs energy to a target site derived from the identified source location using the ablation device (e.g., a neuromodulation device) based on the identified ablation pattern.

[0125] FIG. 57 is a block diagram showing components of an API system in some embodiments. The ablation pattern simulation generation component 5702 inputs the EM source model 5701 and a set of parameters of the source configuration, and uses the heart model to execute a simulation based on the source configuration. Next, the ablation pattern simulation generation component stores the mapping between the source configuration and the ablation pattern in the source configuration / ablation pattern mapping store 5703. The ablation instruction component 5704 inputs the patient source configuration and the patient-derived EM data, accesses the derived EM data / source mapping store 5707 and the source configuration / ablation pattern mapping store to identify the source location and the ablation pattern, and controls the execution of ablation. The instruction transmission component 5705 inputs the source location and the ablation pattern and transmits an instruction to the ablation device 5706.

[0126] Figure 58 is a flowchart showing the processing of an ablation pattern simulation generation component of an API system in some embodiments. The ablation pattern simulation generation component 5800 inputs a source configuration and maps the source configuration to a successful ablation pattern. The component is called for each source configuration. At block 5801, the component accesses the ablation pattern to be used in the ablation pattern simulation. The API system may use the same ablation pattern for each source configuration. Alternatively, since different ablation patterns may be more effective at different source locations, the API system may select an ablation pattern based on the source location. At block 5802, the component selects the next ablation pattern and sets the variable i to the selected ablation pattern. At decision block 5803, if all ablation patterns have already been selected, the component proceeds to block 5810; otherwise, the component proceeds to block 5804. At block 5804, the component initializes the variable j to zero and tracks each step of the ablation pattern simulation. At decision block 5805, the component increments the variable j and determines whether the variable j is greater than the number of simulation steps, i.e., whether the ablation pattern simulation is complete. If complete, the component proceeds to block 5809; otherwise, the component proceeds to block 5806 to execute the next step of the simulation. At block 5806, the component applies the model of the next step of the ablation pattern simulation to the selected ablation pattern. At decision block 5807, if the ablation pattern simulation indicates that the arrhythmia has stopped, the component proceeds to block 5808; otherwise, the component loops back to block 5805 to execute the next step of the simulation.At block 5808, the component marks the ablation pattern as successful and loops back to block 5802 to select the next ablation pattern. At block 5809, since the ablation simulation is complete but the arrhythmia has not stopped, the component marks the ablation pattern as failed. Next, the component loops back to block 5802 to select the next ablation pattern. At block 5810, the component maps the source configuration to the successful ablation pattern and completes.

[0127] Figure 59 is a flowchart showing the processing of an ablation instruction component of an API system in some embodiments. The ablation instruction component 5900 is called to instruct ablation of a patient. At block 5901, the component receives an image of the patient's EM source. At block 5902, the component generates a patient source configuration based on the image and other information provided regarding the patient, such as scar location, previous ablation, and current drug treatment. At block 5903, the component receives patient-derived EM data (e.g., VCG). At block 5904, the component calls a possible ablation pattern identification component. At block 5905, the component calls an actual ablation pattern selection component to select an ablation pattern to use in the ablation. At block 5906, the component outputs an ablation instruction generated based on the actual ablation pattern. The ablation instruction can be provided directly to the ablation device or displayed to the physician. Thereafter, the component completes.

[0128] FIG. 60 is a flowchart showing the processing of a possible ablation pattern identification component of an API system in some embodiments. The possible ablation pattern identification component 6000 is called to identify possible ablation patterns for ablation. At block 6001, the component receives a patient source configuration and patient-derived EM data. At block 6002, the component identifies one or more ablation pattern simulations based on the patient source configuration and patient-derived EM data. At block 6003, the component selects the next matching ablation pattern simulation. At decision block 6004, if all matching ablation pattern simulations have already been selected, the component is complete; otherwise, the component proceeds to block 6005. At block 6005, the component adds the source locations of the matching ablation pattern and the selected matching ablation pattern simulation to the instruction set. The component may also add a target volume to the ablation instruction. The target volume may be a parameter of the source configuration used to generate a non-ablation pattern simulation. Next, the component loops back to block 6003 to select the next matching ablation pattern.

[0129] FIG. 61 is a flowchart showing the processing of an actual ablation pattern selection component of an API system in some embodiments. The actual ablation pattern selection component 6100 is called and passed instructions on patient anatomical structure characteristics, possible ablation patterns, and corresponding source locations. The component identifies the actual ablation pattern to be used in the ablation. At block 6101, the component displays a 3D representation of the patient EM source based on the patient anatomical structure characteristics. At block 6102, the component displays a list of possible ablation patterns and corresponding source locations. At block 6103, the component receives a selection of a possible ablation pattern. At block 6104, the component superimposes the selected possible ablation pattern and source location onto the 3D representation. At decision block 6105, if the physician indicates to use the selected possible ablation pattern as the actual ablation pattern, the component is complete; otherwise, the component loops back to block 6103 to display another possible ablation pattern.

[0130] Remote collection of EM data In some embodiments, a remote EM data collection (“REMDC”) system can receive EM data from EM sources collected from patients not in a clinical environment. For example, a patient may visit a clinic to wear a portable EM data collection (“PEMDC”) device (e.g., a Holter monitor) that collects EM data (e.g., ECG). Additionally, an unregulated PEMDC device (e.g., a wearable device such as a smartwatch, an external mobile device equipped with an electromagnetic sensor, an electromagnetic sensor embedded in the epidermis, dermis, or subcutaneous tissue, smart clothing with an embedded electromagnetic sensor) may be used. After the patient leaves the clinic, the PEMDC device can collect the patient's EM data periodically or continuously. The PEMDC device enables the collected EM data to be transmitted to the REMDC system when the patient is remote from the clinic. For example, the PEMDC device can include a wireless interface that uses WiFi, cellular Bluetooth®, or other connections to transmit the collected EM data. When using a WiFi connection, the PEMDC device can transmit the collected EM data directly to the REMDC system whenever it can connect to a WiFi network with Internet access. When using a cellular connection (e.g., a cellular transmitter / receiver embedded in the PEMDC device), the PEMDC device can transmit the collected EM data directly to the REMDC system whenever it is within the cellular network range. When using a Bluetooth® connection (e.g., a Bluetooth® transmitter / receiver embedded in the PEMDC device), the PEMDC device can transmit the collected EM data to a smartphone, smartwatch, desktop computer, or other Bluetooth®-compatible device. The PEMDC device can also have a wired interface that transmits the collected EM data to a computing device (e.g., a laptop) via a wire (e.g., a universal serial bus (USB) cable), and the computing device transfers the collected EM data to the REMDC system.The PEMDC device can transmit the collected data based on several other criteria, such as on a schedule (e.g., once an hour), as soon as it is collected, when requested by the REMDC system, or based on the analysis of the collected EM data performed by a program installed on the PEMDC.

[0131] When the REMDC system receives the collected EM data, the collected EM data can be processed by any of the systems described herein. For example, if the EM data is an ECG, the REMDC system can use a classifier generated by the MLMO system to identify the source location based on the collected ECG. As another example, the REMDC system can use the PSMC system to generate a patient-specific model classifier, which can be used to identify the source location. As another example, the REMDC system can use the CSC system to generate a calibrated set of simulations.

[0132] Since the REMDC system can process the collected EM data before the patient returns to the clinic, the healthcare provider can analyze the outputs of various systems to identify treatment strategies (e.g., treatment, ablation, and recommended ablation patterns) before the patient returns. In such cases, the delays associated with the various systems that collect EM data while the patient is at the clinic and then process the EM data can be avoided. Further, if the EM data is collected before the patient returns to the clinic, the cost of the computing resources required to process the EM data can be much less. Also, before the patient returns to the clinic, the healthcare provider can carefully consider the outputs of the various systems and, based on that consideration, request that the patient return earlier or later than scheduled. Finally, the healthcare provider can use the results of the collected EM data to more appropriately allocate and execute the time and other healthcare resources required for optimal patient care.

[0133] Recording of patient study results in a distributed ledger A method and system are provided for storing the research results of treatments performed on patients in a distributed ledger. In some embodiments, a distributed ledger for research results (DLSR) system stores the research results (or treatment results) of treatments performed on a patient's electromagnetic source. Using a computational targeting procedure, the treatment target of a treatment can be identified based on the mapping between the electromagnetic data derived from the electromagnetic source and the treatment target. The computational targeting procedure can be a classifier trained using the mapping generated to identify the treatment target. Such a classifier can be generated using an MLMO system. Alternatively, the computational targeting procedure can identify the electromagnetic data of the mapping that is most similar to the patient's electromagnetic data and identify the treatment target of that mapping for use in the treatment. The electromagnetic data of the mapping can be simulated data or actual patient data. Below, embodiments of the computational targeting procedure are described using a classifier that identifies treatment targets.

[0134] In some embodiments, the electromagnetic source can be the heart and the treatment can be an ablation treatment performed by a physician based on ablation targets identified using a classifier. The DLSR system can apply a classifier to identify ablation targets of the heart based on an electrocardiogram of a patient. Each classifier can be trained using training data generated from modeled electrocardiograms of a plurality of heart configurations. The modeled electrocardiograms can be generated using a computational model of the heart that models the electromagnetic output of the heart over time based on the heart configuration. The DLSR system selects a classifier based on an electrocardiogram of the patient that matches the modeled electrocardiogram. The DLSR system receives the result of an ablation treatment performed on a patient based on the identified ablation target. For each ablation treatment, the DLSR system generates an ablation treatment record of the result of the ablation treatment. The ablation treatment record identifies the patient and any other stakeholders (e.g., physician, insurance company, regulatory authority, and healthcare provider) in the ablation treatment and includes a reference indication to the result of the ablation treatment. The DLSR system issues each ablation treatment record and records it in a distributed ledger so that authorized stakeholders can access it.

[0135] In some embodiments, the distributed ledger is a blockchain. The distributed ledger, particularly the blockchain, is described below. References to the results of ablation procedures and the patient's electronic medical records can be stored by stakeholders. The stakeholder storing the results of the ablation procedure can control access to the results by the parties involved. Based on the amount and quality of ablation procedure records stored by the parties involved in the blockchain, the parties involved can be provided access to a classifier trained using training data generated from modeled electrocardiograms. The ablation procedure can be one of several ablation procedures performed on a patient during an ablation study, and the patient's ablation procedure record can be stored in the same block of the distributed ledger. Each block of the distributed ledger can store an ablation procedure record for only one patient. The computing resources required to maintain the distributed ledger can be provided by the miner of the distributed ledger. The miner can be provided access to a classifier trained using training data generated from modeled electrocardiograms of multiple heart configurations based on the mining performed by the miner. The miner mining the block can be selected based on a proof-of-stake consensus algorithm.

[0136] FIG. 62 is a block diagram showing the components of a DLSR system in some embodiments. The DLSR system includes an MLMO system 6210, an electrophysiology ("EP") data collection component 6230, a research system 6240, a transaction generator system 6250, stakeholder systems 6261-6264, a miner system 6270, a distributed ledger access system 6280, and a distributed ledger 6290. In some embodiments, the MLMO system generates a heart configuration, applies a computational modeling of the heart to simulate the function of the heart, and generates an electrocardiogram based on the simulated function. The MLMO system stores the results in an MLMO store 6211. The MLMO store can store a mapping of the modeled electrocardiogram and the source location.

[0137] In some embodiments, the MLMO system may define tasks related to the support of the MLMO system, such as running simulations and mining a distributed ledger. The tasks may be implemented as containers deployed and organized by a container-based system, such as a system based on Amazon Web Services (“AWS”) Elastic Container Repository or AWS Batch. The MLMO system may enable miners or other contributors to execute tasks on the servers of the MLMO system. For example, a miner may execute a mining task. A report may be generated that identifies each contributor executing a task and the computing resources used to execute the task. Contributors may be charged for the computing resources (e.g., CPU, storage) used and may be granted task tokens as an incentive to execute tasks. For example, a miner who executes a mining task to mine a block, or a contributor who executes a simulation task, may be granted one or more task tokens recorded in the distributed ledger based on the computing resources used to execute the task. Next, the owner of the task token may exchange the task token for access to various resources tracked within the distributed ledger. For example, the task token may be exchanged for access to the results of a particular study. The number of task tokens granted to a miner may also be used in a proof-of-stake consensus algorithm to select the miner that mines a block. (In a similar manner, a party submitting a treatment record for recording on the blockchain may be granted a record token, which can be exchanged for access to resources.) To assist in running simulations, the MLMO system may maintain a queue of simulation tasks that it can execute or complete. When executing a simulation task, the code of the container removes the simulation task from the front of the queue and executes the simulation task. For example, if a simulation has not yet completed, the queue includes simulation tasks to complete that simulation.Whenever a simulation is not completed by a simulation task (e.g., because the contributor has contracted to use a certain amount of computing resources that are not sufficient for the contributor to complete the simulation task), the container that executed the simulation task adds a new simulation task to the queue (e.g., at the head of the queue, more specifically a double-ended queue or deque) to continue the simulation. In addition to the simulation task, the MLMO system may add pre-simulation tasks and post-simulation tasks to the queue. Pre-simulation tasks may be related to building the model or initializing the simulation. Post-simulation tasks may be related to training the classifier (or other machine learning), validating the simulation results, and making inferences based on the simulation.

[0138] The patient store 6220 stores the electronic medical records of patients. Although illustrated as a single database, the electronic medical records of a patient may be stored by various entities such as hospitals, doctors, and research institutes. Further, the electronic medical records may be accessible via a distributed ledger system that complies with various regulations such as the law on healthcare insurance interoperability and accountability ( "HIPPA"), either a permitted distributed ledger system or a public distributed ledger system. The EP data collection system 6230 collects the electrophysiological data of patients and stores the electrophysiological data in the EP research store 6231. The research system 6240 inputs the electrophysiological data for the patient's EP research and information from the patient's electronic medical record, selects a classifier from the MLMO store, applies the classifier to the patient data to identify ablation targets, and stores the research information in the research store 6241.

[0139] The transaction generator system 6250 accesses a research store and generates records (e.g., transactions) to be stored in a distributed ledger. The transaction generator system may also receive information from an insurance system 6261, a regulatory authority system 6262, a healthcare provider system 6263, and a physician system 6264. Once a record is generated, a stakeholder may sign the record using their private key. In such a case, the transaction generator system may send the record to the insurance system, the regulatory authority system, the healthcare provider system, and / or the physician system for signing. Next, the transaction generator system publishes the record to a miner system 6270. The miner system may identify a miner system that implements a proof-of-stake consensus algorithm or some other consensus algorithm to generate blocks that store the distributed ledger 6290. The distributed ledger includes blocks 6291, each of which may represent the research of a single patient and includes the transactions of each treatment performed as part of that research. A distributed ledger access system 6280 can access the distributed ledger based on permission. For example, a particular class of the distributed ledger access system may be composed of a private key for accessing a particular record encrypted with a public key. Alternatively, the distributed ledger access system may access a front-end system to the distributed ledger that controls access to the blockchain distributed ledger.

[0140] Figure 63 is a block diagram showing the structure of a block and records within the block in some embodiments. Block 6310 includes block header 6211 and transaction 6212. The block header may include a block hash, which is a hash of the block's data that includes the previous block hash of the previous block in the blockchain and the hash of the root node of the Merkle tree of the hashes of the transactions. The structure of the blockchain is described in detail below. Transaction 6320 may include a timestamp when the transaction was generated, a research identifier, a treatment identifier, a patient identifier, a physician identifier, a healthcare provider identifier, an insurance company identifier, and a regulatory authority identifier. The transaction may also include signatures of various stakeholders that verify the transaction. The transaction may also include various pointers to information related to the research, such as a pointer to the research store, as well as pointers to summary information generated from the research store, the patient store, and the EP research store.

[0141] Figure 64 is a flowchart showing the processing of a research system in some embodiments. Research system component 6400 is passed a patient's instructions and coordinates the execution of treatment on the patient by the physician. At block 6401, the component accesses the patient store and the EP research store to obtain information related to the patient. At block 6402, the component selects a classifier from the MLMO store based on the matching of patient data and electrophysiology data. At block 6403, the component applies the classifier to the patient's electrocardiogram. At block 6404, the component presents the target ablation target to the physician. At block 6405, the component receives the ablation result of the treatment. At block 6406, the component stores the result in the research store and then completes.

[0142] FIG. 65 is a flowchart showing the processing of a transaction generator system in some embodiments. The transaction generator system component 6500 may operate periodically to generate transactions to be stored in a distributed ledger. In block 6501, the component obtains a reference instruction from the research store to the result of the treatment. In block 6502, the component identifies the stakeholders of the treatment based on the patient identified in the result. In block 6503, the component may generate a timestamp. In 6504, the component generates a transaction that identifies the stakeholder, the timestamp, and the reference instruction to the result stored in the research store. In block 6505, the component may obtain a signature from the stakeholder. Permission from the stakeholder may be required to record the transaction in the distributed ledger. In block 6506, the component publishes the transaction to the miner system and then completes.

[0143] Figure 66 is a flowchart showing the processing of a miner system in some embodiments. A miner component 6600 may be periodically invoked to generate blocks (s) of procedures for storing in a distributed ledger. At block 6601, the component executes a proof-of-stake consensus algorithm to determine whether the miner system has been selected to generate the next block. At decision block 6602, if selected, the component proceeds to block 6603; otherwise, the component terminates. At block 6603, the component adds research transactions to the block. At block 6604, the component generates a Merkle tree and adds it to the block. At block 6605, the component adds the hash of the previous block to the block. At block 6606, the component adds the miner's address to the block. At block 6607, the component adds the hash of the entire block to the block. At block 6608, the component adds the miner's signature to the block. At block 6609, the component publishes the block and then terminates. The component may also add a creation timestamp for the block, which can be used when other miner systems verify that the block was generated by the miner identified by the proof-of-stake algorithm.

[0144] distributed ledger Distributed ledgers are currently used in a wide variety of business applications. The Bitcoin system is an example of a distributed ledger. The Bitcoin system was developed to enable the direct transfer of electronic cash from one party to another without going through a financial institution, as described in the white paper titled "Bitcoin: A Peer-to-Peer Electronic Cash System" by Satoshi Nakamoto. Bitcoin (such as digital currency) is represented by a series of transactions that transfer ownership from one party to another. To transfer the ownership of Bitcoin, a new transaction is generated and added to the stack of transactions within a block. The new transaction containing the public key of the new owner is digitally signed by the owner with the owner's private key to transfer the ownership to the new owner represented by the public key of the new owner. The signature by the owner of Bitcoin is the owner's approval to transfer the ownership of Bitcoin to the new owner through the new transaction. When a block is full, the block is "capped" with a block header that is the hash digest of all the transaction identifiers within the block. The block header is recorded as the first transaction in the next block in the chain, creating a mathematical hierarchy called the "blockchain". To verify the current owner, the transaction blockchain can be traced, and each transaction from the first transaction to the last transaction can be verified. The new owner only needs to have the private key that matches the public key of the transaction that transferred the Bitcoin. The blockchain creates a mathematical proof of ownership in an entity represented by a security identifier (such as a public key), which is pseudonymous in the case of the Bitcoin system.

[0145] To ensure that the previous owner of a Bitcoin does not double-spend the Bitcoin (i.e., transfer ownership of the same Bitcoin to two parties), the Bitcoin system maintains a decentralized ledger of transactions. With the decentralized ledger, the ledger of all Bitcoin transactions is redundantly stored on multiple nodes (i.e., computers) of the blockchain network. The ledger of each node is stored as a blockchain. In the blockchain, transactions are stored in the order in which the nodes receive them. Each node of the blockchain network has a complete copy of the entire blockchain. The Bitcoin system also implements techniques to ensure that each node stores the same blockchain, even if the nodes may receive transactions in a different order. To verify that the transactions in the ledger stored on a node are correct, the blocks in the blockchain are accessed from the oldest to the newest, a new hash of the block is generated, and the new hash can be compared with the hash generated when the block was created. If the hashes are the same, the transactions in the block are verified. The Bitcoin system also implements techniques that use computationally expensive techniques to generate the nonce added to a block when the block is created, making it virtually impossible to change a transaction and regenerate the blockchain. The Bitcoin ledger is sometimes referred to as the unspent transaction output (「UTXO」) set because it tracks the outputs of all transactions that have not yet been spent.

[0146] The Bitcoin system is very successful, but is limited to transactions in Bitcoin or other cryptocurrencies. The blockchain has been developed to accommodate all types of transactions, such as those related to the sale of vehicles, the sale of financial derivatives, the sale of stocks, and the payment of contracts. Such transactions use identification tokens to uniquely identify what can be owned or what can own other things. The identification tokens for physical or digital assets are generated using the cryptographic one-way hash of the information that uniquely identifies the asset. The tokens also have an owner who uses an additional public key / secret key pair. The owner public key or the hash of the owner public key is set as the token owner identification, and when an action is performed on the token, the ownership proof is established by providing a signature generated by the owner secret key and authenticated against the public key or the hash of the public key listed as the owner of the token. An individual can be uniquely identified using, for example, a combination of a username, a social security number, and biometric authentication (e.g., fingerprint). By creating identification tokens for assets in the blockchain, proof of the asset is established, and the identification tokens are used in transactions (e.g., purchases, sales, insurance contracts) involving the assets stored in the blockchain, creating a complete audit trail of the transactions.

[0147] To enable transactions that are more complex than those supported by Bitcoin, some systems use "smart contracts." A smart contract is a decentralized computer program that includes code and state. Smart contracts can virtually execute all kinds of processes such as sending money and accessing external databases and services (such as oracles). Smart contracts can be executed on a secure platform (such as the Ethereum platform that provides virtual machines) that assists in recording transactions on the blockchain. The smart contract code itself can be recorded as a transaction within the blockchain using an identification token that is a hash of the smart contract code so that it can be authenticated. Once deployed, the constructor of the smart contract is executed and the smart contract and its state are initialized. In Ethereum, smart contracts are associated with contract accounts. Ethereum has two types of accounts: externally owned accounts ("EOAs") controlled by private keys and contract accounts controlled by computer code. An account includes fields for balance, code (if it exists), and storage (which is empty by default). The code of a smart contract is stored as code in a contract account, the state of the smart contract is stored in the storage of the contract account, and the code can read from and write to the storage of the contract account. Since an EOA has no code and does not require storage, these two fields are empty for an EOA. An account has a state. The state of an EOA includes only the balance, while the state of a contract account includes both the balance and storage. The state of all accounts is the state of the Ethereum network, which is updated block by block, and for the update, the network needs to reach a consensus. An EOA can send a transaction to another account by signing the transaction with the private key of the EOA account.A transaction is a signed data package that contains a message sent from an EOA to a receiving account identified within the transaction. Similar to an EOA, a contract account can also send messages to other accounts under the control of its code. However, a contract account can only send messages in response to received transactions. Therefore, all actions within the Ethereum blockchain are triggered by transactions sent from an EOA. Since a contract account is not controlled by a private key, the messages sent by a contract account are different from the transactions sent by an EOA in that they do not contain an cryptographic signature. When a contract account receives a message, all mining nodes that maintain a copy of the blockchain execute the code of the contract account as part of the block verification process. Therefore, when a transaction is added to a block, all nodes that verify the block execute the code that triggers code execution for that transaction. The execution of computer code at each node helps to ensure the authenticity of the blockchain, but such redundant execution of computer code requires a large amount of computer resources to accommodate.

[0148] While a blockchain can effectively store transactions, the large amount of computer resources, such as storage and computing power, required to maintain all replicas of the blockchain can be a problem. To overcome this problem, some systems for storing transactions have each party to the transaction maintain its own replica of the transaction, rather than using a blockchain. One such system is the Corda system developed by R3, Ltd., which provides a decentralized ledger platform with nodes (e.g., computer systems) where each participant in the platform maintains its own portion of the distributed ledger. When a party agrees to the terms of a transaction, the party submits the transaction to a notary, which is a trusted node, for notarization. The notary maintains a UTXO database of unspent transaction outputs. When a transaction is received, the notary checks the inputs to the transaction against the UTXO database to confirm that the outputs queried by the inputs have not been used. If the inputs have not been used, the notary updates the UTXO database to indicate that the queried outputs have been used, notarizes the transaction (e.g., by signing the transaction or transaction identifier with the notary's public key), and sends the notarization to the party that submitted the transaction for notarization. When a party receives the notarization, the party stores the notarization and provides the notarization to the counterparty.

[0149] The following paragraphs describe various embodiments of aspects of the MLMO system and other systems. Implementations of the system may employ any combination of the embodiments. The processes described below may be executed by a computing system having a processor that executes computer-executable instructions stored on a computer-readable storage medium that implements the system.

[0150] In some embodiments, a method is provided that is executed by one or more computing systems to generate a classifier that classifies electromagnetic data derived from an electromagnetic source within a body. The method accesses a computational model of the electromagnetic source, which is used to model the electromagnetic output of the electromagnetic source over time based on the source configuration of the electromagnetic source. For each of a plurality of source configurations, the method uses the computational model to generate a modeled electromagnetic output of the electromagnetic source for that source configuration. The method derives electromagnetic data of the modeled electromagnetic output for each modeled electromagnetic output and generates a label for the derived electromagnetic data based on the source configuration of the modeled electromagnetic data. The method trains a classifier with the derived electromagnetic data and then labels the derived electromagnetic data as training data. In some embodiments, the modeled electromagnetic output of the source configuration includes an electromagnetic mesh having modeled electromagnetic values for each of a plurality of positions of the electromagnetic source for each of a plurality of time intervals. In some embodiments, the derived electromagnetic data for a time interval is an equivalent source representation of the electromagnetic output. In some embodiments, the equivalent source representation is generated using principal component analysis. In some embodiments, the method further identifies a period within the derived electromagnetic data of the modeled electromagnetic output. In some embodiments, the same label is generated for each period. In some embodiments, the method further identifies a sequence of similar periods and the same label is generated for each sequence. In some embodiments, the derivation of the electromagnetic data of the modeled electromagnetic output includes normalizing the modeled electromagnetic output for each period. In some embodiments, the classifier is a convolutional neural network. In some embodiments, the convolutional neural network inputs a one-dimensional image. In some embodiments, the classifier is a recurrent neural network, an autoencoder, a restricted Boltzmann machine, or another type of neural network. In some embodiments, the classifier is a support vector machine. In some embodiments, the classifier is a Bayesian classifier. In some embodiments, the electromagnetic source is the heart, the source configuration represents the source location and other characteristics of a heart disorder, the modeled electromagnetic output represents the activation of the heart, and the electromagnetic data is based on body surface measurements such as an electrocardiogram.In some embodiments, the cardiac disorder is selected from the set consisting of inappropriate sinus tachycardia ("IST"), ectopic atrial rhythm, junctional rhythm, ventricular escape rhythm, atrial fibrillation ("AF"), ventricular fibrillation ("VF"), focal atrial tachycardia ("focal AT"), atrial microreentry, ventricular tachycardia ("VT"), atrial flutter ("AFL"), premature ventricular contractions ("PVC"), premature atrial contractions ("PAC"), atrioventricular nodal reentrant tachycardia ("AVNRT"), atrioventricular reentrant tachycardia ("AVRT"), permanent junctional reciprocating tachycardia ("PJRT"), and junctional tachycardia ("JT").

[0151] In some embodiments, a method is provided that is executed by a computing system to classify electromagnetic output collected from a target that is an electromagnetic source within the body. The method accesses a classifier to generate a classification of the electromagnetic output of the electromagnetic source. The classifier is trained using training data generated from modeled electromagnetic output of a plurality of source configurations of the electromagnetic source. The modeled electromagnetic output is generated using a computational model of the electromagnetic source that models the electromagnetic output of the electromagnetic source over time based on the source configuration. The method collects target electromagnetic output from the target. The method applies the classifier to the target electromagnetic output to generate a classification of the target. In some embodiments, the training data is generated by performing simulations for each of the source configurations, and the simulations generate an electromagnetic mesh for each of a plurality of simulation intervals, with each electromagnetic mesh having electromagnetic values for a plurality of positions of the electromagnetic source. In some embodiments, the electromagnetic source is the heart, the source configuration represents the source location of a cardiac disorder, the modeled electromagnetic output represents the activation of the heart, and the classifier is trained using electromagnetic data derived from an electrocardiogram representation of the electromagnetic output.

[0152] In some embodiments, one or more computing systems are provided for generating a classifier that classifies electromagnetic output of an electromagnetic source. The one or more computing systems include one or more computer-readable storage media and one or more processors for executing computer-executable instructions stored on the one or more computer-readable storage media. The one or more computer-readable storage media store a computational model of the electromagnetic source. The computational model models the electromagnetic output of the electromagnetic source over time based on the source configuration of the electromagnetic source. The one or more computer-readable storage media store computer-executable instructions that control the one or more computing systems to generate training data from the electromagnetic output of the computational model based on the source configuration for each of a plurality of source configurations and to use the training data to train a classifier. In some embodiments, the computer-executable instructions for generating training data for the source configuration further control the one or more computing systems to generate derived electromagnetic data from the electromagnetic output of the source configuration and to generate a label for the electromagnetic data based on the source configuration.

[0153] In some embodiments, a method executed by a computing system is provided for generating a simulated anatomical structure of an electromagnetic source within the body. The method accesses a seed anatomical structure of the electromagnetic source. Each seed anatomical structure has a seed value for each of a plurality of anatomical structure parameters of the electromagnetic source. The method accesses a set of weights including the weight of each seed anatomical structure. For each of the anatomical structure parameters, the method generates a simulated value of the anatomical structure parameter by combining the seed value of the anatomical structure parameter and incorporating the weight of the seed anatomical structure into the calculation. In some embodiments, the method validates the simulated anatomical structure based on a comparison with values of the anatomical structure parameters found in a population. In some embodiments, the anatomical structure parameters include dimensions of the electromagnetic source, and the simulated value of the dimension is deemed valid if a patient within the population has a value that is approximately the same as the simulated value for that dimension. In some embodiments, the anatomical structure parameters of the seed anatomical structure are collected by scanning an actual electromagnetic source within the body. In some embodiments, the electromagnetic source is the heart. In some embodiments, the method generates the simulated value of the anatomical structure parameter based on a weighted average of the seed value of the anatomical structure parameter. In some embodiments, the method further generates a plurality of simulated anatomical structures, each simulated anatomical structure based on a different set of weights.

[0154] In some embodiments, a computing system is provided for generating a simulated anatomical structure of a heart. The computing system comprises one or more computer-readable storage media storing a seed anatomical structure of the heart, each seed anatomical structure having a seed value for each of a plurality of anatomical structure parameters of the heart. The one or more computer-readable storage media also store a set of weights, each set of weights including a weight for each seed anatomical structure. The one or more computer-readable storage media store computer-executable instructions that control the computing system to generate a simulated value of an anatomical structure parameter by combining the seed value of the anatomical structure parameter for each set of weights and its respective anatomical structure parameter and incorporating the weight of the seed anatomical structure into the calculation. The computing system further comprises one or more processors for executing the computer-executable instructions stored on the one or more computer-readable storage media. In some embodiments, the instructions further control the computing system to verify each simulated anatomical structure based on a comparison with the value of the anatomical structure parameter found in the population. In some embodiments, the anatomical structure parameters include the thickness of the walls of the heart and the dimensions of the heart chambers. In some embodiments, a simulated value of a dimension is considered valid if a patient within the population has a value that is approximately the same as the simulated value for that dimension. In some embodiments, the seed anatomical structure represents an extreme heart found in the population. In some embodiments, the anatomical structure parameters of the seed anatomical structure are collected by scanning the heart. In some embodiments, the generation of the simulated value of the anatomical structure parameter is based on a weighted average of the seed values of the anatomical structure parameter. In some embodiments, a method is provided that is executed by a computing system for generating an arrhythmia model library for modeling a heart. The method accesses a simulated anatomical structure of an anatomical structure parameter of the heart. The simulated anatomical structure is generated based on a seed anatomical structure of the anatomical structure parameter of the heart and a set of weights including the weight of each seed anatomical structure.The method accesses configuration parameters, which include one or more of body anatomical structures, normal and abnormal heart anatomical structures, normal and abnormal heart tissues, scars, fibrosis, inflammation, edema, accessory conduction pathways, congenital heart diseases, malignant tumors, previous ablation sites, previous surgical sites, external radiotherapy sites, pacing leads, implantable defibrillator leads, cardiac resynchronization therapy leads, pacemaker pulse generator positions, implantable defibrillator pulse generator positions, subcutaneous defibrillator lead positions, subcutaneous defibrillator pulse generator positions, leadless pacemaker positions, other implantable hardware (such as right ventricular assist devices or left ventricular assist devices), external defibrillation electrodes, surface ECG leads, surface mapping leads, mapping vests, and other normal distributions and pathophysiological feature distributions within the heart, cardiac action potential dynamics, cardiac conductivity sets, and arrhythmia origin positions within the heart. The method establishes source configurations, each source configuration being based on a combination of a simulated anatomical structure and electrophysiological parameters. For each of the plurality of source configurations, the method generates a mesh having vertices based on the simulated anatomical structure of that source configuration, and for each vertex of the mesh, generates model parameters of a computational model of the heart based on the combination of electrophysiological parameters of that source configuration. The computational model that models electromagnetic propagation at that vertex is based on the electrophysiological parameters of that source configuration. In some embodiments, the method is to generate a simulated anatomical structure by accessing a seed anatomical structure of the heart, each seed anatomical structure having a seed value for each anatomical structure parameter of the heart, said generating, accessing a set of weights including the weights of each seed anatomical structure, and for each of the anatomical structure parameters, generating a simulated value of that anatomical structure parameter by combining the seed values of that anatomical structure parameter and incorporating the weights of the seed anatomical structure into the calculation. In some embodiments, the simulated anatomical structure is verified based on comparison with values of anatomical structure parameters found in a population. In some embodiments, the anatomical structure parameters of the seed anatomical structure are collected by scanning an actual heart.In some embodiments, for each of a plurality of source configurations, the method uses a computational model of the heart to generate a modeled electromagnetic output of the heart for that source configuration. In some embodiments, for each source configuration, the method generates training data for the modeled electromagnetic output based on that source configuration and uses the training data to train a classifier for classifying the electromagnetic output of the heart.

[0155] In some embodiments, a computing system is provided for generating a model library of models of electromagnetic sources within a body. The computing system includes one or more computer-readable storage media storing computer-executable instructions, and one or more processors for executing the computer-executable instructions stored on the one or more computer-readable storage media. The instructions cause the computing system to be controlled to generate a simulated anatomy of the anatomical structure parameters of the electromagnetic source from a seed anatomy structure, and to generate a source configuration based on each combination of the simulated anatomy structure and the configuration parameters. The instructions cause the computing system to be controlled to, for each of a plurality of source configurations, generate a mesh having vertices based on the simulated anatomy structure of that source configuration, and for each vertex of the mesh, generate model parameters of a computational model of the electromagnetic source based on the combination of the configuration parameters of that source configuration. In some embodiments, the computational model that models electromagnetic propagation at the vertices is based on the configuration parameters of the source configuration. In some embodiments, the simulated anatomy structure is generated based on the anatomical structure parameters of the seed anatomy structure and a set of weights including the weights of each seed anatomy structure. In some embodiments, the electromagnetic source is the heart, and the configuration parameters include the torso anatomy structure, normal and abnormal heart anatomy structures, normal and abnormal heart tissues, scars, fibrosis, inflammation, edema, accessory conduction pathways, congenital heart diseases, malignant tumors, previous ablation sites, previous surgical sites, external radiotherapy sites, pacing leads, implantable defibrillator leads, cardiac resynchronization therapy leads, pacemaker pulse generator positions, implantable defibrillator pulse generator positions, subcutaneous defibrillator lead positions, subcutaneous defibrillator pulse generator positions, leadless pacemaker positions, other implantable hardware (e.g., right ventricular assist device or left ventricular assist device), external defibrillation electrodes, surface ECG leads, surface mapping leads, mapping vests, and other normal distributions and pathophysiological feature distributions within the heart, the active potential dynamics of the heart, the set of conductivities of the heart, and the locations of arrhythmia sources within the heart, one or more of which are included.In some embodiments, the simulated anatomical structure is verified based on comparison with values of anatomical structure parameters found in the population. In some embodiments, the anatomical structure parameters of the seed anatomical structure are collected by scanning an actual electromagnetic source. In some embodiments, the computer-executable instructions further cause the computing system to generate, for each of a plurality of source configurations, a modeled electromagnetic output of the electromagnetic source of that source configuration using a computational model of the electromagnetic source. In some embodiments, the computer-executable instructions further cause the computing system to generate, for each source configuration, training data of the modeled electromagnetic output based on that source configuration and to train a classifier for classifying the electromagnetic output of the electromagnetic source using the training data.

[0156] In some embodiments, a method executed by a computing system is provided for generating a model library of models of electromagnetic sources in the body. The method accesses a simulated anatomy of anatomical parameters of the electromagnetic source. The method generates source configurations, each source configuration based on a combination of the simulated anatomy and configuration parameters. For each of the plurality of source configurations, the method generates a model based on the simulated anatomy of that source configuration, the combination of the configuration parameters of that source configuration, and a computational model of the electromagnetic source. In some embodiments, generating the model includes generating a mesh based on the simulated anatomy of that source configuration and, for each vertex of the mesh, generating model parameters of the computational model of the electromagnetic source based on the combination of the configuration parameters of that source configuration. In some embodiments, the computational model is for modeling electromagnetic propagation at vertices based on the configuration parameters of the source configuration. In some embodiments, the electromagnetic source is the heart and the model is an arrhythmia model. In some embodiments, the method further generates the simulated anatomy based on the anatomical parameters of a seed anatomy and a set of weights including the weight of each seed anatomy. In some embodiments, the electromagnetic source is the heart and the configuration parameters include one or more of a human torso, normal and abnormal heart anatomies, normal and abnormal heart tissues, scars, fibrosis, inflammation, edema, accessory conduction pathways, congenital heart diseases, malignant tumors, previous ablation sites, previous surgical sites, external radiotherapy sites, pacing leads, implantable defibrillator leads, cardiac resynchronization therapy leads, pacemaker pulse generator locations, implantable defibrillator pulse generator locations, subcutaneous defibrillator lead locations, subcutaneous defibrillator pulse generator locations, leadless pacemaker locations, other implantable hardware (e.g., right ventricular assist device or left ventricular assist device), external defibrillation electrodes, surface ECG leads, surface mapping leads, mapping vests, and other normal and pathophysiological feature distributions within the heart, cardiac action potential dynamics, cardiac conductivity sets, and arrhythmia source locations within the heart.

[0157] In some embodiments, a method executed by a computing system is provided to present the weights of the simulated anatomical structures of a body part. The method accesses the seed anatomical structures of the body part. Each seed anatomical structure has a seed value for each of a plurality of anatomical structure parameters of the body part. For each of the plurality of seed anatomical structures of the body part, the method displays a seed representation of the body part based on the seed values of the anatomical structure parameters of that seed anatomical structure. The method accesses a set of weights that includes the weight of each seed anatomical structure. For each anatomical structure parameter, the method combines the seed values of the seed anatomical structure of that anatomical structure parameter and incorporates the weight of the seed anatomical structure into the calculation to display a simulated representation of the body part based on the simulated values of each anatomical structure parameter. In some embodiments, the seed representation is displayed in a circular arrangement along with the simulated representation displayed in a circular arrangement. In some embodiments, the method further displays an indication of the weight associated with that seed anatomical structure for each displayed seed representation of the seed anatomical structure. In some embodiments, the method further displays a line between each displayed seed representation and the displayed simulated representation, and the display indication of the weight of the seed anatomical structure is displayed in association with the display line between the displayed seed representation and the displayed simulated representation of that seed anatomical structure. In some embodiments, the method further provides a user interface element for specifying the weight of each seed anatomical structure. In some embodiments, the method provides a user interface element for specifying a plurality of sets of weights, each set including the weight of each seed anatomical structure. In some embodiments, the plurality of sets of weights are specified by providing a range and increment of weights. In some embodiments, the body part is the heart. In some embodiments, the body part is the lung. In some embodiments, the body part is the body surface.

[0158] In some embodiments, a computing system is provided for presenting a simulated anatomical structure of a body part. The computing system includes one or more computer-readable storage media storing computer-executable instructions, and one or more processors for executing the computer-executable instructions stored on the one or more computer-readable storage media. The instructions control the computing system to display a seed representation of the body part for each of a plurality of seed anatomical structures of the body part based on a seed value of an anatomical parameter of the seed anatomical structure, and to display a simulated representation of the body part based on a simulated anatomical structure having a simulated value of the anatomical parameter derived from a weighted combination of the seed values of the seed anatomical structure of the anatomical parameter. In some embodiments, the computer-executable instructions further control the computing system to generate a simulated anatomical structure by combining the seed values of the seed anatomical structure of each anatomical parameter and incorporating the weight of the seed anatomical structure into the calculation to generate a simulated value of the anatomical parameter. In some embodiments, the seed representation is displayed in a circular arrangement along with the simulated representation displayed in a circular arrangement. In some embodiments, the computer-executable instructions further control the computing system to display an indication of the weight associated with the seed anatomical structure for each displayed seed representation of the seed anatomical structure. In some embodiments, the computer-executable instructions further control the computing system to provide a user interface for specifying a plurality of weight sets, each weight set including the weight of each seed anatomical structure. In some embodiments, the plurality of weight sets are specified by a range and increment of the weights.

[0159] In some embodiments, a method executed by a computing system is provided for presenting a simulated anatomical structure of a heart. For each of a plurality of seed anatomical structures of the heart, the method displays a seed representation of the heart based on a seed value of an anatomical parameter of the seed anatomical structure. The method displays a simulated representation of the heart based on a simulated anatomical structure derived from a simulated value of the anatomical parameter generated from a weighted combination of the seed values of the seed anatomical structure of the anatomical parameter for each anatomical parameter. In some embodiments, the seed representation is displayed in a circular (e.g., concentric circle) arrangement along with the simulated representation displayed in a circular arrangement. In some embodiments, the method further displays an indication of a weight associated with the seed anatomical structure with each displayed seed representation of the seed anatomical structure.

[0160] In some embodiments, a method is provided that is executed by a computing system to transform a first polyhedral model into a second polyhedral model. The first polyhedral model has a first polyhedral mesh of a volume that includes a first polyhedron. Each vertex of the first polyhedron has model parameters. The method generates a representation of the surface of the first polyhedral model from the first polyhedron. The method generates a second polyhedral mesh of the second polyhedral model by placing a surface by a second polyhedron that is different from the first polyhedron within the volume. For each of a plurality of vertices of the second polyhedron of the second polyhedral mesh, the method interpolates the model parameters of that vertex based on the parameters of the vertices of the first polyhedron that are proximate to that vertex. In some embodiments, the first polyhedron is a hexahedron and the second polyhedron is a tetrahedron. In some embodiments, the polyhedral mesh represents a body part. In some embodiments, the body part is the heart. In some embodiments, the first polyhedral mesh has an origin, and the method further includes mapping the second polyhedral mesh to the same origin before interpolating the model parameters. In some embodiments, each vertex of the first polyhedron has a plurality of parameters, and each model parameter is interpolated. In some embodiments, the first polyhedral model and the second polyhedral model represent a computational model of an electromagnetic source within the body, and the method further uses a problem solver adapted to act on the mesh of the second polyhedron to generate a modeled electromagnetic output of the electromagnetic source based on the second polyhedral model. In some embodiments, the electromagnetic source is the heart, and the method further generates a vector electrocardiogram from the modeled electromagnetic output. In some embodiments, the first polyhedral model and the second polyhedral model are shape models (e.g., of a heart anatomy or a torso anatomy). In some embodiments, the first polyhedral model and the second polyhedral model represent a model of an electromagnetic source within the body, and the method further transforms a plurality of first polyhedral models representing different source configurations.In some embodiments, the electromagnetic source is the heart, and the source configuration specifies one or more of a fibrous structure, a torso anatomical structure, a normal heart anatomical structure and an abnormal heart anatomical structure, normal heart tissue and abnormal heart tissue, scarring, fibrosis, inflammation, edema, accessory conduction pathways, congenital heart disease, malignant tumors, previous ablation sites, previous surgical sites, external beam radiation therapy sites, pacing leads, implantable defibrillator leads, cardiac resynchronization therapy leads, pacemaker pulse generator locations, implantable defibrillator pulse generator locations, subcutaneous defibrillator lead locations, subcutaneous defibrillator pulse generator locations, leadless pacemaker locations, other implantable hardware (e.g., right ventricular assist device or left ventricular assist device), external defibrillation electrodes, surface ECG leads, surface mapping leads, mapping vests, and other normal distributions and pathophysiological feature distributions, action potential dynamics, conductivities, and arrhythmia source locations (s) within the heart.

[0161] In some embodiments, a computing system is provided for converting a first polyhedral model of a body part into a second polyhedral model of the body part. The computing system includes one or more computer-readable storage media storing computer-executable instructions, and one or more processors for executing the computer-executable instructions stored on the one or more computer-readable storage media. The instructions cause the computing system to generate a representation of the surface of the first polyhedral model. The first polyhedral model has a first polyhedral mesh based on a first polyhedron. The instructions cause the computing system to generate a second polyhedral mesh of the second polyhedral model by placing a surface based on a second polyhedron, different from the first polyhedron, within a volume. The instructions cause the computing system to interpolate the model parameters of each of the plurality of vertices of the second polyhedron of the second polyhedral mesh based on the parameters of the vertices of the first polyhedron of the first polyhedral mesh proximate to that vertex. In some embodiments, the first polyhedron is a hexahedron and the second polyhedron is a tetrahedron. In some embodiments, the first polyhedral mesh has an origin, and the computer-executable instructions further cause the computing system to map the second polyhedral mesh to the same origin before interpolating the model parameters. In some embodiments, the first polyhedral model and the second polyhedral model represent a computational model of the heart, and the computer-executable instructions further cause the computing system to generate a modeled electromagnetic output of the electromagnetic heart based on the second polyhedral model using a problem solver adapted to act on the mesh of the second polyhedron. In some embodiments, the computer-executable instructions further cause the computing system to generate a vector electrocardiogram from the modeled electromagnetic output. In some embodiments, the first polyhedral model and the second polyhedral model are shape models (e.g., of a heart anatomy or a torso anatomy).

[0162] In some embodiments, a method executed by a computing system is provided for converting a first polyhedral model into a second model. The first polyhedral model has a first polyhedral mesh of a volume that includes a first polyhedron. Each vertex of the first polyhedron has model parameters. The method generates a representation of the surface of the first polyhedral model from the first polyhedron. For each of a plurality of points of the second model, the method interpolates the model parameters of the point based on the parameters of the vertices of the first polyhedron that are considered to be close to the vertex. In some embodiments, the second model is a second polyhedral model and the points are the vertices of the second polyhedral model. In some embodiments, the second model is represented by equally spaced grid points and the points are grid points.

[0163] In some embodiments, a method executed by a computing system is provided for generating derived electromagnetic data of an electromagnetic source within a body. The method accesses a modeled electromagnetic output over time of a first model of the electromagnetic source. The first model is based on a first source configuration that specifies a first anatomical structure. The modeled electromagnetic output is generated using a computational model of the electromagnetic source. The computational model is for generating a modeled electromagnetic output over time of the electromagnetic source based on a model based on the source configuration. The method accesses a second model of the electromagnetic source based on a second source configuration that specifies a second anatomical structure. The method generates derived electromagnetic data of the second model of the electromagnetic source based on the modeled electromagnetic output of the first model of the electromagnetic source, taking into account the difference between the first anatomical structure and the second anatomical structure. In some embodiments, the electromagnetic source is the heart and the derived electromagnetic data is a heartbeat curve. In some embodiments, the heartbeat curve is a vector electrocardiogram. In some embodiments, the heartbeat curve is an electrocardiogram. In some embodiments, the modeled electromagnetic output of the model includes an electromagnetic mesh having modeled electromagnetic values at each of a plurality of vertices of the electromagnetic mesh for each of a plurality of time intervals. In some embodiments, the modeled electromagnetic output is a set of potential solutions.

[0164] In some embodiments, a computing system for generating a cardiac electrocardiogram curve is provided. The computing system includes one or more computer-readable storage media for storing a modeled electromagnetic output over time of a first cardiac arrhythmia model. The first arrhythmia model is based on a first anatomical structure. The modeled electromagnetic output is generated using a computational model of the heart that generates a modeled electromagnetic output of the heart over time based on the arrhythmia model. The one or more computer-readable storage media store a second arrhythmia model based on a second anatomical structure. The one or more computer-readable storage media store computer-executable instructions that control the computing system to generate an electrocardiogram curve of the second arrhythmia model based on the modeled electromagnetic output of the first arrhythmia model, taking into account the differences between the first anatomical structure and the second anatomical structure. The computing system includes one or more processors for executing the computer-executable instructions stored in the one or more computer-readable storage media. In some embodiments, the electrocardiogram curve is a vector electrocardiogram. In some embodiments, the electrocardiogram curve is an electrocardiogram. In some embodiments, the modeled electromagnetic output of the arrhythmia model includes an electromagnetic mesh having modeled electromagnetic values at each of a plurality of vertices of the electromagnetic mesh for each of a plurality of time intervals. In some embodiments, the modeled electromagnetic output is a set of potential solutions.

[0165] In some embodiments, a method executed by a computing system is provided to bootstrap the generation of modeled electromagnetic output of an electromagnetic source in a body. The method accesses a first modeled electromagnetic output of a first model having a first source configuration of the electromagnetic source at a first simulation interval. The first modeled electromagnetic output is generated using a computational model of the electromagnetic source. The method initializes a second modeled electromagnetic output of a second model having a second source configuration of the electromagnetic source to the first modeled electromagnetic output at one of the intervals of the first simulation interval. For each of a plurality of second simulation intervals, the method generates a second modeled electromagnetic output of a second model of the electromagnetic source based on the initialized second modeled electromagnetic output using the computational model. In some embodiments, the electromagnetic source is the heart, and the second source configuration is different from the first source configuration based on the location of a scar or fibrosis or arrhythmogenic substrate within the heart. In some embodiments, the electromagnetic source is the heart, and the first model and the second model are arrhythmia models. In some embodiments, the modeled electromagnetic output of the model includes an electromagnetic mesh having modeled electromagnetic values at each of a plurality of vertices of the electromagnetic mesh for each of a plurality of time intervals. In some embodiments, the method further generates a first modeled electromagnetic output of the first model using the computational model for each of a plurality of first simulation intervals. In some embodiments, the method initializes the second modeled electromagnetic output to the first modeled electromagnetic output at the first simulation interval after the first modeled electromagnetic output at the first simulation interval has stabilized. In some embodiments, the electromagnetic source is the heart, and the first modeled electromagnetic output has a stabilized rhythm.

[0166] In some embodiments, a computing system is provided for bootstrapping the generation of modeled electromagnetic output of the heart. The computing system includes one or more computer-readable storage media for storing a first modeled electromagnetic output of a first arrhythmia model of the heart at a first simulation interval, the first modeled electromagnetic output being generated using a computational model of the heart. The one or more computer-readable storage media also store computer-executable instructions that control the computing system to initialize a second modeled electromagnetic output of a second arrhythmia model of the heart to the first modeled electromagnetic output of one of the intervals of the first simulation interval and to simulate the second modeled electromagnetic output of the second arrhythmia model based on the initialized second modeled electromagnetic output using the computational model. The computing system also includes one or more processors for executing the computer-executable instructions stored on the one or more computer-readable storage media. In some embodiments, the first arrhythmia model and the second arrhythmia model are based on different scar or fibrosis or arrhythmogenic substrate locations within the heart. In some embodiments, the modeled electromagnetic output of the arrhythmia model includes an electromagnetic mesh having modeled electromagnetic values at each of a plurality of vertices of the electromagnetic mesh for each of a plurality of time intervals. In some embodiments, the computer-executable instructions further control the computing system to generate the first modeled electromagnetic output of the first arrhythmia model using the computational model for each of a plurality of first simulation intervals. In some embodiments, the computer-executable instructions control the computing system to initialize the second modeled electromagnetic output to the first modeled electromagnetic output of the first simulation interval after the first modeled electromagnetic output of the first simulation interval has stabilized. In some embodiments, the first modeled electromagnetic output has a stabilized rhythm.

[0167] In some embodiments, a method is provided that is performed by a computing system to identify derived electromagnetic data that matches electromagnetic data collected from a patient. The electromagnetic data represents electromagnetic output from an electromagnetic source within the body. The method accesses, for each of a plurality of modeled source configurations of the electromagnetic source, a mapping between that modeled source configuration and electromagnetic data derived based on that modeled source configuration. The method accesses a patient source configuration that represents a source configuration of the electromagnetic source within the patient. The method identifies a modeled source configuration that matches the patient source configuration. The method identifies, from the derived electromagnetic data to which the identified modeled source configuration is mapped, derived electromagnetic data that matches the patient electromagnetic data. In some embodiments, the derived electromagnetic data is derived from modeled electromagnetic output generated based on the modeled source configuration using a computational model of the electromagnetic source. In some embodiments, the modeled electromagnetic data of the modeled source configuration includes an electromagnetic mesh having modeled electromagnetic values for each of a plurality of positions of the electromagnetic source for each of a plurality of time intervals. In some embodiments, if the value of an anatomical structure parameter of the identified modeled source configuration does not match the value of that anatomical structure parameter of the patient source configuration, the method further generates adjusted derived electromagnetic data based on the modeled electromagnetic output of that modeled source configuration and the difference in values. In some embodiments, the source configuration includes configuration parameters including anatomical structure parameters and electrophysiological parameters. In some embodiments, the electromagnetic source is the heart and the configuration parameters include the location of scarring or fibrosis or arrhythmogenic substrate within the heart, the action potential of the heart, the conductivity of the heart, and the location of arrhythmias. In some embodiments, the electromagnetic source is the heart and the anatomical structure parameters include the dimensions of the heart chambers, the thickness of the heart walls, and the orientation of the heart. In some embodiments, the electromagnetic source is the heart and the derived electromagnetic data is an electrocardiogram. In some embodiments, the modeled source configuration includes a disorder parameter related to an attribute of the electromagnetic source, and thus the derived electromagnetic data of the modeled source configuration is based on that attribute. In some embodiments, the electromagnetic source is the heart and the attribute is based on arrhythmia.In some embodiments, the identification of the derived electromagnetic data that matches the patient electromagnetic data is based on, for example, the Pearson correlation coefficient and the root mean square error. In some embodiments, the identification of the derived electromagnetic data that matches the patient electromagnetic data is based on the root mean square error. In some embodiments, the source configuration includes configuration parameters, the model source configuration includes the values of each configuration parameter, and the patient source configuration includes only the values of a proper subset of the configuration parameters. In some embodiments, the derived electromagnetic data is based on the model orientation of the electromagnetic source, and when the patient orientation of the patient's electromagnetic source is different from the model orientation, the identification of the derived electromagnetic data takes into account the difference between the model orientation and the patient orientation. In some embodiments, the electromagnetic source is the heart, the electromagnetic data is the vector electrocardiogram, and the identification of the derived electromagnetic data includes generating a rotation matrix based on the difference between the model orientation and the patient orientation and rotating the vector electrocardiogram based on the rotation matrix.

[0168] In some embodiments, a method executed by a computing system is provided to generate a classification of a patient based on patient electromagnetic data representing the electromagnetic output of an electromagnetic source within the patient. The method accesses, for each of a plurality of clusters (e.g., groups) of the model source configurations of the electromagnetic source, a classifier of that cluster trained based on the model source configuration of that cluster to generate a classification of the derived electromagnetic data. The method accesses a patient source configuration representing the source configuration of the electromagnetic source within the patient. The method identifies a cluster having a model source configuration that matches the patient source configuration. The method applies the classifier of the identified cluster to the patient electromagnetic data to generate a classification of the patient. In some embodiments, the derived electromagnetic data is derived from modeled electromagnetic output generated based on the model source configuration using a computational model of the electromagnetic source. In some embodiments, the source configuration includes configuration parameters including anatomical structure parameters and electrophysiological parameters. In some embodiments, the electromagnetic source is the heart, and the configuration parameters include the location of scar or fibrosis or arrhythmogenic substrate within the heart, the action potential of the heart, and the conductivity of the heart. In some embodiments, the electromagnetic source is the heart, and the anatomical structure parameters include the dimensions of the heart chambers and the thickness of the heart walls. In some embodiments, the electromagnetic source is the heart, and the derived electromagnetic data is an electrocardiogram. In some embodiments, the electrocardiogram is a vector electrocardiogram. In some embodiments, the model source configuration matches the patient source configuration based on cosine similarity. In some embodiments, the method further generates clusters of the model source configurations, and for each of the clusters, for each of the model source configurations of that cluster, generates a simulated electromagnetic output of the electromagnetic source based on that model source configuration, and generates derived electromagnetic data of that model source configuration from the simulated electromagnetic output based on that model source configuration. In some embodiments, the source configuration includes configuration parameters, the model source configuration includes the values of each configuration parameter, and the patient source configuration includes only the values of a proper subset of the configuration parameters.In some embodiments, the derived electromagnetic data is based on a model orientation of the electromagnetic source, and the method further adjusts the patient electromagnetic data based on a difference between the model orientation and the patient orientation of the patient's electromagnetic source when the patient orientation of the electromagnetic source of the patient differs from the model orientation. In some embodiments, the electromagnetic source is the heart, and the classification is based on the location of the origin of the arrhythmia.

[0169] In some embodiments, a computing system is provided for identifying a modeled heart rate curve that matches a patient heart rate curve collected from a patient. The computing system includes one or more computer-readable storage media that store, for each of a plurality of modeled source configurations of the heart, a modeled heart rate curve of the modeled source configuration, a patient source configuration representing the patient's heart, and computer-executable instructions that, when executed, control the computing system to identify a modeled source configuration that matches the patient source configuration and to identify, from the modeled heart rate curve of the identified modeled source configuration, a modeled heart rate curve that matches the patient heart rate curve. The computing system includes one or more processors for executing the computer-executable instructions stored on the one or more computer-readable storage media. In some embodiments, the modeled heart rate curve is generated from a modeled electromagnetic output of a heart having a modeled source configuration using a computational model of the heart. In some embodiments, the heart rate curve is adjusted based on differences in the values of the anatomical structure parameters of the modeled source configuration and the patient source configuration. In some embodiments, the modeled source configuration includes the location of scars or fibrosis or arrhythmogenic substrate within the heart, the action potential of the heart, the conductivity of the heart, and the location of arrhythmias. In some embodiments, the modeled source configuration includes the dimensions of the heart chambers, the thickness of the heart walls, and the orientation of the heart. In some embodiments, the source configuration includes configuration parameters, the modeled source configuration includes the values of each configuration parameter, and the patient source configuration includes the values of only a proper subset of the configuration parameters. In some embodiments, the modeled heart rate curve is based on a modeled orientation of the heart, and when the patient orientation of the heart differs from the modeled orientation, the identification of the modeled heart rate curve takes into account the difference between the modeled orientation and the patient orientation.

[0170] In some embodiments, a method is provided that is executed by one or more computing systems to generate a patient classifier that classifies electromagnetic data derived from the electromagnetic output of an electromagnetic source within the body. The method accesses a model classifier for generating a classification of the electromagnetic output of the electromagnetic source. The model classifier has model classifier weights that have been learned based on training data that includes modeled derived electromagnetic data and model classifications. The modeled derived electromagnetic data is derived from modeled electromagnetic output generated using a computational model of the electromagnetic source that models the electromagnetic output of the electromagnetic source over time based on a source configuration. The method accesses patient training data that includes patient-derived electromagnetic data and a patient classification for each of a plurality of patients. The method initializes the patient classification weights of the patient classifier based on the model classification weights. The method trains the patient classifier with the patient training data and the initialized patient classification weights. In some embodiments, the classifier is a convolutional neural network. In some embodiments, the convolutional neural network inputs a one-dimensional image. In some embodiments, the model classifier is trained using training data that includes modeled derived electromagnetic data derived from modeled electromagnetic output generated based on a source configuration identified as being similar to the source configuration of the patient. In some embodiments, the electromagnetic source is the heart, the source configuration represents cardiac anatomical and electrophysiological parameters, the modeled electromagnetic output represents cardiac activation, and the derived electromagnetic data is based on body surface measurements. In some embodiments, the electrophysiological parameters are based on a cardiac disorder, and the cardiac disorder is selected from the group consisting of, but not limited to, sinus rhythm, inappropriate sinus tachycardia, ectopic atrial rhythm, junctional rhythm, ventricular escape rhythm, atrial fibrillation, ventricular fibrillation, focal atrial tachycardia, atrial microreentry, ventricular tachycardia, atrial flutter, ventricular premature contractions, atrial premature contractions, atrioventricular nodal reentrant tachycardia, atrioventricular reentrant tachycardia, permanent junctional reciprocating tachycardia, and junctional tachycardia. In some embodiments, the electromagnetic data is an electrocardiogram. In some embodiments, the classification is a source location. In some embodiments, the patient-derived electromagnetic data of the patient is derived from the patient electromagnetic output of the electromagnetic source of that patient.In some embodiments, the method further comprises receiving subject patient-derived electromagnetic data of a subject patient and applying a patient classifier to the subject patient-derived electromagnetic data to generate a classification of the subject patient.

[0171] In some embodiments, a method is provided that is performed by one or more computing systems to classify subject patient-derived electromagnetic data. The subject patient-derived electromagnetic data is derived from the patient electromagnetic output of an electromagnetic source within the patient. The method comprises accessing a patient classifier to generate a classification of the subject patient-derived electromagnetic data of the electromagnetic source. The classifier is trained using weights of a model classifier and patient training data, and the model classifier is trained using modeled-derived electromagnetic data and model classifications. The modeled-derived electromagnetic data is generated from a modeled electromagnetic output. The modeled electromagnetic output is generated for a plurality of source configurations using a computational model of the electromagnetic source. The patient training data includes subject patient-derived electromagnetic data and patient classifications. The method comprises receiving subject patient-derived electromagnetic data of a subject patient and applying a patient classifier to the received subject patient-derived electromagnetic data to generate a patient classification of the subject patient. In some embodiments, the electromagnetic source is the heart, the source configuration represents cardiac anatomical and electrophysiological parameters, the modeled electromagnetic output represents cardiac activation, and the derived electromagnetic data is based on body surface measurements.

[0172] In some embodiments, a computing system is provided for generating a patient classifier that classifies heartbeat curves. The computing system includes one or more computer-readable storage media storing computer-executable instructions, and one or more processors for executing the computer-executable instructions stored on the one or more computer-readable storage media. The instructions cause the computing system to execute to initialize the patient classifier weights of the patient classifier to the model classifier weights of a model classifier. The model classifier is trained based on a modeled heartbeat curve generated based on a computational model of the heart applied to a model heart configuration. The instructions cause the computing system to execute to train the patient classifier with patient training data and the initialized patient classifier weights, where the patient training data includes, for each of a plurality of patients, the patient's patient heartbeat curve and patient classification. In some embodiments, the model classifier and the patient classifier are convolutional neural networks. In some embodiments, the convolutional neural network inputs a one-dimensional image. In some embodiments, the model classifier and the patient classifier are neural networks. In some embodiments, the model classifier is trained using a modeled heartbeat curve generated based on a model heart configuration similar to the patient's patient heart configuration. In some embodiments, the computer-executable instructions further cause the computing system to execute to train a cluster patient classifier based on patient training data including, for each of a plurality of similar patient clusters, the heartbeat curves and patient classifications of the patients within that cluster. In some embodiments, the computer-executable instructions further cause the computing system to execute to identify similar patients based on a comparison of the patient's patient heart configurations. In some embodiments, the computer-executable instructions further cause the computing system to execute to identify similar patients based on a comparison of the patient's heartbeat curves.In some embodiments, the computer-executable instructions further cause the computing system to control to identify a cluster of similar patients similar to a target patient, and apply a cluster patient classifier of the identified cluster to a target patient cardiac curve of the target patient to generate a target patient classification of the target patient.

[0173] In some embodiments, a method performed by a computing system is provided for generating a classification of a target patient based on a target cardiac curve of the target patient. The method generates a patient classifier based on patient training data including cardiac curves of patients and a transfer from a model classifier generated based on model training data including modeled cardiac curves. The modeled cardiac curves are generated based on a computational model of the heart and a modeled heart configuration. The method applies the patient classifier to the target cardiac curve to generate a target classification of the target patient.

[0174] In some embodiments, a method is provided that is performed by one or more computing systems to generate a patient-specific model classifier that classifies derived electromagnetic data derived from the electromagnetic output of an electromagnetic source within the body. The method identifies a model similar to the target patient. For each identified model, the method applies a computational model of the electromagnetic source to generate a modeled electromagnetic output of the electromagnetic source based on the modeled source configuration of that model, derives modeled derived electromagnetic data from the modeled electromagnetic output generated for that model, and generates a label for that model. The method trains a patient-specific model classifier using the modeled derived electromagnetic data and the generated labels as training data. In some embodiments, the classifier is a convolutional neural network that inputs a one-dimensional image. In some embodiments, the similarity between the model and the target patient is based on the source configuration. In some embodiments, the similarity between the model and the target patient is based on the derived electromagnetic data. In some embodiments, the electromagnetic source is the heart, the source configuration represents the anatomical and electrophysiological parameters of the heart, the modeled electromagnetic output represents the activation of the heart, and the derived electromagnetic data is based on body surface measurements. In some embodiments, the electromagnetic data is a heartbeat curve. In some embodiments, the label represents the location of the source of the electromagnetic source disorder. In some embodiments, the training is based on transfer from a model classifier generated based on model training data, which includes a computational model of the electromagnetic source and modeled derived electromagnetic data generated based on the modeled source configuration. In some embodiments, the method further trains a cluster-specific model classifier for each of a plurality of similar target patient clusters based on the derived electromagnetic data of the models similar to the target patients in that cluster. In some embodiments, the method further identifies a cluster that includes a target patient similar to another target patient and applies the cluster-specific model classifier of the identified cluster to the target patient-derived electromagnetic data of the other target patient to generate a target patient label for the other target patient. In some embodiments, the method further identifies a cluster of the target patient based on a comparison of the patient source configuration of the target patient.In some embodiments, the method further identifies a cluster of the subject patient based on a comparison of patient-derived electromagnetic data of the subject patient.

[0175] In some embodiments, a computing system is provided for generating a patient-specific model classifier that classifies the heartbeat curve of a target patient. The computing system includes one or more computer-readable storage media storing computer-executable instructions, and one or more processors for executing the computer-executable instructions stored on the one or more computer-readable storage media. The instructions cause the computing system to be controlled to identify a model similar to the target patient and train a patient-specific model classifier based on training data including the modeled heartbeat curve and model classification of the identified model. The modeled heartbeat curve is generated using a computational model of the heart based on the modeled heart configuration of the identified model. In some embodiments, the model classification represents the location of the origin of the heart disorder. In some embodiments, the training of the patient-specific model classifier is based on transfer from a model classifier generated based on model training data including the modeled heartbeat curve. In some embodiments, the computer-executable instructions further cause the computing system to be controlled to train a cluster-specific model classifier for each of a plurality of similar target patient clusters based on training data including the modeled heartbeat curve and model classification of a model similar to the target patient of that cluster. In some embodiments, the computer-executable instructions further cause the computing system to be controlled to identify a cluster including target patients similar to another target patient, and apply the cluster-specific model classifier of the identified cluster to the target patient heartbeat curve of the another target patient to generate a target patient classification of the another target patient. In some embodiments, the computer-executable instructions cause the computing system to be controlled to identify a cluster of similar target patients based on a comparison of the patient heart configuration of the target patient. In some embodiments, the computer-executable instructions cause the computing system to be controlled to identify a cluster of similar target patients based on a comparison of the target patient heartbeat curve of the target patient.

[0176] In some embodiments, a method is provided that is executed by a computing system to generate a representation of an electromagnetic source. The method identifies modeled derived electromagnetic data that matches patient-derived electromagnetic data of a patient. The modeled derived electromagnetic data is derived from modeled electromagnetic output of the electromagnetic source generated using a computational model of the electromagnetic source. The modeled electromagnetic output has electromagnetic values at the location of the electromagnetic source for each of a plurality of time intervals. The method identifies a period within the modeled electromagnetic output from which the matching modeled derived electromagnetic data was derived. For each of a plurality of display positions of the electromagnetic source, the method generates a display electromagnetic value for that display position based on the electromagnetic values of the modeled electromagnetic output of the identified period. The method generates a display representation of the electromagnetic source that includes a visual representation of the display electromagnetic value for each of the plurality of display positions. In some embodiments, the display representation has a shape based on anatomical structure parameters of the electromagnetic source of the patient. In some embodiments, the visual representation of the display electromagnetic value is a shading based on the magnitude of the display electromagnetic value. In some embodiments, the visual representation of the display electromagnetic value is a color selected based on the magnitude of the display electromagnetic value. In some embodiments, the visual representation of the display electromagnetic value is an intensity of a color based on the magnitude of the display electromagnetic value. In some embodiments, the display electromagnetic value is based on a difference between the electromagnetic value at the start of the period and the electromagnetic value at the end of the period. In some embodiments, the method further generates and outputs a display representation for each of a plurality of display intervals of the identified period. In some embodiments, the display representations are output in order to show the activation of the electromagnetic source over time. In some embodiments, when multiple instances of the derived electromagnetic data match the patient-derived electromagnetic data, the generation of the display electromagnetic value for a display position is based on a combination of the electromagnetic values of the modeled electromagnetic output from which the matching instance of the modeled derived electromagnetic data was derived. In some embodiments, the combination is a weighted average based on the closeness of the match. In some embodiments, the electromagnetic source is the heart.

[0177] In some embodiments, a method executed by a computing system is provided for generating a representation of a heart. The method identifies a modeled heartbeat curve that is similar to the patient's heartbeat curve. For each of a plurality of display positions of the heart, the method generates a display electromagnetic value for that display position based on the electromagnetic values of the modeled electromagnetic output of the heart from which the modeled heartbeat curve was derived. The modeled electromagnetic output is generated using a computational model of the heart. The method generates a display representation of the heart that includes a visual representation of the display electromagnetic value for each of the plurality of display positions. In some embodiments, the display representation has a shape based on the anatomical structure parameters of the patient's heart. In some embodiments, the visual representation of the display electromagnetic value is the intensity of a color based on the magnitude of the display electromagnetic value. In some embodiments, the display electromagnetic value is based on the difference between the electromagnetic value at the start of a model period and the electromagnetic value at the end of the model period within the modeled electromagnetic output. In some embodiments, the model period is selected based on its similarity to the patient period within the heartbeat curve. In some embodiments, the method further generates and outputs a display representation for each of a plurality of display intervals of the modeled electromagnetic output. In some embodiments, the display representations are output in sequence to show the activation of the electromagnetic source over time.

[0178] In some embodiments, a computing system is provided for displaying a representation of the electrical activation of a patient's heart. The computing system includes one or more computer-readable storage media storing computer-executable instructions, and one or more processors for executing the computer-executable instructions stored on the one or more computer-readable storage media. The instructions cause the computing system to identify a modeled heartbeat curve that is similar to the patient's heartbeat curve. The instructions cause the computing system to generate a display representation of the heart that includes a visual representation of the display value for each of a plurality of display positions of the heart, where the display value is based on a modeled electromagnetic output of the heart from which the modeled heartbeat curve was derived, and where the modeled electromagnetic output is generated using a computational model of the heart. The instructions cause the computing system to display the display representation. In some embodiments, the display representation has a shape based on the anatomical structure parameters of the patient's heart.

[0179] In some embodiments, a method is provided that is performed by a computing system to generate a surface representation of an electromagnetic force generated by an electromagnetic source within a body. The method accesses a sequence of vectors representing the magnitude and direction of the electromagnetic force over time, where the vectors are correlated to an origin. For each pair of adjacent vectors, the method identifies a region based on the origin and the pair of vectors, generates a region representation of the region, and displays the generated region representation of the region. In some embodiments, the method displays a representation of the electromagnetic source such that the displayed region representations visually emanate from the electromagnetic source. In some embodiments, the origin is within the electromagnetic source. In some embodiments, the electromagnetic source is the heart and the sequence of vectors is a vector electrocardiogram. In some embodiments, the electromagnetic force has a period and the region representations of the period form the surface representation of the period, and the method further displays the surface representations of a plurality of periods simultaneously. In some embodiments, the generated region representations are displayed in sequence to show the change in the electromagnetic force over time.

[0180] In some embodiments, a computing system is provided for displaying a representation of a vector electrocardiogram. The computing system includes one or more computer-readable storage media storing computer-executable instructions, and one or more processors for executing the computer-executable instructions stored on the one or more computer-readable storage media. The instructions cause the computing system to generate a surface representation of a portion of the vector electrocardiogram bounded by points representing the x, y, and z values of some of the vectors of the vector electrocardiogram and to display the generated surface representation. In some embodiments, the computer-executable instructions further cause the computing system to display a representation of the heart from which the vector electrocardiogram was derived such that the displayed surface representation visually emanates from the representation of the heart. In some embodiments, the vectors correlate to an origin within the heart. In some embodiments, the vector electrocardiogram has a period, and the computer-executable instructions further cause the computing system to display surface representations of multiple periods simultaneously. In some embodiments, the generated surface representation is displayed incrementally to show changes in the vector electrocardiogram over time. In some embodiments, the surface representation is displayed region by region.

[0181] In some embodiments, a method executed by a computing system is provided for identifying a simulated heartbeat curve similar to a patient's heartbeat curve. The simulated heartbeat curve is generated based on simulated pacing, and the patient's heartbeat curve is generated based on the patient's pacing. The method identifies a first simulated heartbeat curve having simulated pacing similar to the patient's pacing. The method identifies, from the first simulated heartbeat curve, a second simulated heartbeat curve generated based on a simulated heart having a simulated orientation similar to the patient orientation of the patient's heart. The method identifies, from the second simulated heartbeat curve, a third simulated heartbeat curve representing an action potential similar to the action potential represented by the patient's heartbeat curve. The method identifies, from the third simulated heartbeat curve, a calibrated simulated heartbeat curve representing a conduction speed similar to the conduction speed represented by the patient's heartbeat curve. In some embodiments, the method labels each calibrated simulated heartbeat curve with the configuration parameters used when generating that calibrated simulated heartbeat curve. The method uses the calibrated simulated heartbeat curves and labels as training data to train a classifier. In some embodiments, the method applies the trained classifier to the patient's heartbeat curve to identify the patient's configuration parameters. In some embodiments, the heartbeat curve is an electrocardiogram. In some embodiments, the heartbeat curve is a vector electrocardiogram. In some embodiments, the pacing includes a pacing position and a pacing rate. In some embodiments, the action potential similarity is based on a heartbeat curve normalized in magnitude and duration. In some embodiments, the conduction speed similarity is based on a heartbeat curve normalized in magnitude. In some embodiments, the simulated heartbeat curve is identified from a set of simulated heartbeat curves generated based on a simulated structural disease similar to the patient's patient structural disease. In some embodiments, the simulated heartbeat curve is identified from a set of simulated heartbeat curves based on the similarity of the heart shape of the simulated heartbeat curve to the patient's patient heart shape.In some embodiments, the orientation similarity is based on a simulated cardiac vector that is similar to the patient's cardiac vector with respect to the cardiac cycle phase at the cardiac position. In some embodiments, the simulated heartbeat curve is identified from a set of simulated heartbeat curves generated based on a simulated disease substrate that is similar to the patient's patient disease substrate.

[0182] In some embodiments, a method performed by a computing system is provided for identifying a simulated heartbeat curve that is similar to a patient heartbeat curve. The method identifies a morphological similarity of the simulated heartbeat curve to the patient heartbeat curve based on morphology. The method identifies a similar simulated heartbeat curve based on the morphological similarity. In some embodiments, the identification of the morphological similarity includes identifying an orientation similarity of the simulated heartbeat curve to the patient heartbeat curve based on orientation and identifying an electrophysiological similarity of the simulated heartbeat curve to the patient heartbeat curve. In some embodiments, the method identifies a pacing similarity of the simulated heartbeat curve to the patient heartbeat curve, and the identification is further based on the pacing similarity. In some embodiments, the electrophysiological similarity is based on action potential similarity and conduction velocity similarity. In some embodiments, the method trains a classifier using training data that includes the identified similar simulated heartbeat curves with labels of configuration parameters. In some embodiments, the method identifies a cardiac shape similarity of the simulated heartbeat curve to the patient heartbeat curve, and the identification is further based on the cardiac shape similarity. In some embodiments, the cardiac shape similarity is based on structural disease similarity and measurement similarity. In some embodiments, the method identifies a disease substrate similarity of the simulated heartbeat curve to the patient heartbeat curve, and the identification is further based on the disease substrate similarity.

[0183] In some embodiments, one or more computing systems are provided for identifying a simulated heartbeat curve similar to a patient heartbeat curve. The one or more computing systems include one or more computer-readable storage media for storing computer-executable instructions and one or more processors for executing the computer-executable instructions stored on the one or more computer-readable storage media. The instructions cause the one or more computing systems to identify the orientation similarity of the simulated heartbeat curve to the patient heartbeat curve based on orientation, identify the electrophysiological similarity of the simulated heartbeat curve to the patient heartbeat curve, and identify a similar simulated heartbeat curve based on the orientation similarity and the electrophysiological similarity. In some embodiments, the computer-executable instructions further cause the one or more computing systems to identify the disease substrate similarity of the simulated heartbeat curve to the patient heartbeat curve, and identifying a similar simulated heartbeat curve is further based on the disease substrate similarity. In some embodiments, the computer-executable instructions further cause the one or more computing systems to identify the pacing similarity of the simulated heartbeat curve to the patient heartbeat curve, and identifying a similar simulated heartbeat curve is further based on the pacing similarity. In some embodiments, the electrophysiological similarity is based on action potential similarity and conduction velocity similarity. In some embodiments, the action potential similari...

Claims

1. 1. A method of operation of an apparatus for identifying potential ablation patterns in a patient's heart, comprising: an ablation prescription component accessing a patient heart curve of the patient; a possible ablation pattern identification component identifying non-ablative pattern information of a non-ablative pattern simulation of the heart, the non-ablative pattern simulation not based on an ablation pattern, the non-ablative pattern information including a non-ablative pattern source configuration of the non-ablative pattern simulation, the non-ablative pattern source configuration including a source location of an arrhythmia, the non-ablative pattern information being identified based on a similarity between a simulated heartbeat curve generated based on the non-ablative pattern simulation and a patient heartbeat curve of the patient; a possible ablation pattern identification component identifying an ablation pattern that was successful in terminating the occurrence of the arrhythmia based on a similarity between the identified non-ablative pattern source configuration and an ablation pattern source configuration of ablation pattern information associated with an ablation pattern simulation, the ablation pattern simulation being based on the identified ablation pattern; an actual ablation pattern selection component outputting an indication of the identified ablation pattern as the potential ablation pattern for the patient's heart; The method comprising:

2. The method of claim 1 , wherein the potential ablation patterns are for treating arrhythmia in the patient.

3. The method of claim 1 , wherein the similarity of non-ablative pattern information is based on a mapping of mapping information associated with the non-ablative pattern simulation to the identified ablation pattern.

4. The method of claim 3 , wherein the mapping information includes the simulated heart beat curve.

5. The method of claim 1 , wherein the non-ablative pattern information includes a non-ablative pattern source configuration of the non-ablative pattern simulation, and the ablation pattern information includes an ablation pattern source configuration of the ablation pattern simulation.

6. The method of claim 1 , wherein the indication of the identified ablation pattern is output to an ablation device.

7. The method of claim 6 , wherein the ablation device is a stereotactic radiotherapy device.

8. The method of claim 1 , wherein the indication of the identified ablation pattern is displayed.

9. The method of claim 8 , wherein the identified ablation pattern is overlaid on an image of the heart.

10. The method of claim 9 , wherein the images are based on anatomical parameters collected as part of an ablation procedure.

11. The method of claim 1 , further comprising identifying the non-ablative pattern simulation from a calibration set of simulations.

12. 1. A method of operating an apparatus for identifying potential ablation patterns in a patient's heart, comprising: an ablation prescription component accessing a patient electromagnetic (EM) output of the heart of the patient; a possible ablation pattern identification component identifying non-ablative pattern information of a non-ablative pattern simulation, the non-ablative pattern simulation being not based on an ablation pattern, the non-ablative pattern information including a non-ablative pattern source configuration of the non-ablative pattern simulation, the non-ablative pattern source configuration including a source location of an arrhythmia, the non-ablative pattern information being identified based on a similarity between a simulated EM output of the non-ablative pattern simulation and the patient EM output; a possible ablation pattern identification component identifying an ablation pattern that was successful in terminating the occurrence of the arrhythmia based on a similarity between the identified non-ablative pattern source configuration and an ablation pattern source configuration of ablation pattern information associated with an ablation pattern simulation, the ablation pattern simulation being based on the identified ablation pattern; an actual ablation pattern selection component outputting an indication of the identified ablation pattern as the potential ablation pattern for the patient's heart; The method comprising:

13. The method of claim 12 , wherein the potential ablation patterns are for treating arrhythmia in the patient.

14. The method of claim 12 , wherein the similarity of the non-ablative pattern information is based on a mapping of mapping information associated with the non-ablative pattern simulation to the identified ablation pattern.

15. The method of claim 14 , wherein the mapping information includes the simulated EM output.

16. The method of claim 12 , wherein the non-ablative pattern information includes a non-ablative pattern source configuration of the non-ablative pattern simulation, and the ablation pattern information includes an ablation pattern source configuration of the ablation pattern simulation.

17. The method of claim 12 , wherein the indication of the identified ablation pattern is output to an ablation device.

18. The method of claim 12 , wherein the identified ablation pattern is overlaid on an image of the heart.

19. One or more computing systems for identifying potential ablation patterns for a patient's heart, the computing systems comprising: one or more computer readable storage media; and one or more processors; The one or more computer-readable storage media store computer-executable instructions that control the one or more computing systems to: identifying non-ablative pattern information of a non-ablative pattern simulation, the non-ablative pattern simulation not based on an ablation pattern, the non-ablative pattern information including a non-ablative pattern source configuration of the non-ablative pattern simulation, the non-ablative pattern source configuration including a source location of an arrhythmia, the non-ablative pattern information being identified based on a similarity between a simulated EM output of the non-ablative pattern simulation and a patient electromagnetic (EM) output of the patient's heart; identifying an ablation pattern that was successful in terminating the occurrence of the arrhythmia based on a similarity between the identified non-ablative pattern source configuration and an ablation pattern source configuration of ablation pattern information associated with an ablation pattern simulation, the ablation pattern simulation being based on the identified ablation pattern; outputting an indication of the identified ablation pattern as the potential ablation pattern for the patient's heart; Run the command, the one or more processors execute the computer-executable instructions stored on the one or more computer-readable storage media. the one or more computing systems.

20. 20. The one or more computing systems of claim 19, wherein the potential ablation patterns are for treating arrhythmia in the patient.

21. 20. The one or more computing systems of claim 19, wherein the similarity of the non-ablative pattern information is based on a mapping of mapping information associated with the non-ablative pattern simulation to the identified ablation pattern.

22. 22. The one or more computing systems of claim 21, wherein the mapping information includes the simulated EM output.

23. 20. The one or more computing systems of claim 19, wherein the non-ablative pattern information includes a non-ablative pattern source configuration of the non-ablative pattern simulation, and the ablation pattern information includes an ablation pattern source configuration of the ablation pattern simulation.

24. The one or more computing systems of claim 19 , wherein the indication of the identified ablation pattern is output to an ablation device.

25. The one or more computing systems of claim 19 , wherein the identified ablation pattern is overlaid on an image of the heart.

26. 20. The one or more computing systems of claim 19, wherein the computer executable instructions include instructions for accessing the patient EM output and transmitting the indication of the identified ablation pattern to an ablation device.

27. One or more computing systems for identifying potential ablation patterns for a patient's heart, the computing systems comprising: one or more computer readable storage media; and one or more processors; The one or more computer-readable storage media store computer-executable instructions that control the one or more computing systems to: identifying non-ablative pattern information of a non-ablative pattern simulation of the heart, the non-ablative pattern simulation not based on an ablation pattern, the non-ablative pattern information including a non-ablative pattern source configuration of the non-ablative pattern simulation, the non-ablative pattern source configuration including a source location of an arrhythmia, the non-ablative pattern information being identified based on a similarity between a simulated heartbeat curve generated based on the non-ablative pattern simulation and a patient heartbeat curve of the patient; identifying an ablation pattern that was successful in terminating the occurrence of the arrhythmia based on a similarity between the identified non-ablative pattern source configuration and an ablation pattern source configuration of ablation pattern information associated with an ablation pattern simulation, the ablation pattern simulation being based on the identified ablation pattern; outputting an indication of the identified ablation pattern as the potential ablation pattern for the patient's heart; Run the command, the one or more processors execute the computer-executable instructions stored on the one or more computer-readable storage media. the one or more computing systems.

28. 30. The one or more computing systems of claim 27, wherein the potential ablation patterns are for treating arrhythmia in the patient.

29. 30. The one or more computing systems of claim 27, wherein the similarity of non-ablative pattern information is based on a mapping of mapping information associated with the non-ablative pattern simulation to the identified ablation pattern.

30. 30. The one or more computing systems of claim 29, wherein the mapping information includes the simulated heart beat curve.

31. 28. The one or more computing systems of claim 27, wherein the non-ablative pattern information includes a non-ablative pattern source configuration of the non-ablative pattern simulation, and the ablation pattern information includes an ablation pattern source configuration of the ablation pattern simulation.

32. 30. The one or more computing systems of claim 27, wherein the indication of the identified ablation pattern is output to an ablation device.

33. The one or more computing systems of claim 32 , wherein the ablation device is a stereotactic radiotherapy device.

34. The one or more computing systems of claim 27 , wherein the indication of the identified ablation pattern is displayed.

35. The one or more computing systems of claim 34 , wherein the identified ablation pattern is overlaid on an image of the heart.

36. 36. The one or more computing systems of claim 35, wherein the images are based on anatomical parameters collected as part of an ablation procedure.

37. The one or more computing systems of claim 27 , further comprising identifying the non-ablative pattern simulation from a calibration set of simulations.

Citation Information

Patent Citations

  • An MRI-guided intervention system capable of tracking flexible internal devices in near real-time and generating dynamic visualizations.

    JP2012529352A

  • Systems, catheters, and related methods for mapping, minimizing, and treating cardiac fibrillation.

    JP2016504117A

  • Pulmonary vein isolation gap finder

    JP2017094066A

  • System and Method for Patient-Specific Image-Based Simulation of Artial Electrophysiology

    US20160058520A1

  • Combined Electrophysiological Mapping and Cardiac Ablation Methods, Systems, Components and Devices

    US20160331262A1