The present invention relates to simulation devices, programs for the same and the like, for simulating the viscera or organs, for example, of an organism.
The simulation device known as E-Cell is one example of a conventional simulation device that can perform a simulation of organism functions (see Non-Patent Document 1). E-Cell could be called a so-called cell model construction framework.
[Non-Patent Document 1]
M. Tomita, K. Hashimoto, K. Takahashi, T. Shimizu, Y Matsuzaki, F. Miyoshi, K. Saito, S. Tanida, K. Yugi, J. C. Venter, and C. A. Hutchinson III, “E-CELL: software environment for whole-cell simulation” in Bioinformatics, vol. 15, no. 1, pp. 72-84, 1999
However, the simulation device of Non-Patent Document 1 assumes that only cells will be simulated, and thus has the problem that it cannot perform simulations on the level of tissue, organs, or individual organisms, in which there is a collection of cells. Further, in a case where advances in medicine lead to examination of the behavior of an organism's structural elements, that is, the elements making up an organism, such as molecules, cell organelles, cells, tissue, and organs, and simulator parts for performing a simulation of each behavior are constructed, then the device also has the problem that it cannot provide an environment in which more comprehensive, precise organism simulation can be performed.
The invention was arrived at to solve these conventional problems, and it is an object thereof to provide an organism simulation device that can easily perform simulations on the level of tissues, organs, and individual organisms, in which there is a collection of cells. A further object is to provide an environment in which new tissue, organs, or individual organisms, for example, can be simulated by adding simple data definitions (authoring). A yet further object is to easily provide an environment in which it is possible to simulate organisms more comprehensively and precisely in a case where advances in medicine lead to examination of the behavior of an organism's structural elements, that is, the elements making up an organism, such as molecules, cell organelles, cells, tissue, and organs, and simulator parts for simulating each behavior are constructed. As a result, it is an object to enable highly accurate simulations that reflect actual conditions, and by doing so facilitate future medical research and advances.
An organism simulation device according to a first aspect of the invention is an organism simulation device that is provided with two or more different simulator parts that calculate the behavior of an organism's structural elements, which are the elements making up the organism, such as molecules, cell organelles, cells, tissue, and organs, a data output part that outputs simulation results, and a simulation controller that controls the transfer of data between the two or more different simulator parts and the data output part. The two or more simulator parts include an input data reception unit for receiving data from a user and/or the simulation controller, a calculation unit for performing predetermined calculations on the data received by the input data reception unit to create output data, and an output data output unit for transferring the output data to the simulation controller. The data output part includes an output data reception unit for receiving output data from the simulation controller, and an output unit for outputting the output data received by the output data reception unit. The simulation controller includes a simulation scenario information storage unit storing simulation scenario information, which is information on the flow of data between the two or more simulator parts and the data output part, and the operation sequence, a data reception unit for receiving data from the two or more simulator parts, an input data transfer unit for transferring the data received by the data reception unit to the simulator parts based on the simulation scenario information, and an output data transfer unit for transferring the data that have been received from the two or more simulator parts to the data output part based on the simulation scenario information.
With this configuration, it is easy to perform a simulation on a tissue, organ, or individual organism level, in which there is a collection of cells. It is also possible to easily provide an environment in which simulation of an organism can be performed more comprehensively and with higher precision. For example, looking at the heart as a whole, the excitation that occurs in the sinoatrial node is transmitted to the entire heart through the heart's conducting system. This process is one type of electrical phenomenon and can be simulated by electric field analysis, for example. The entire heart contracts due to the contraction force that is generated by the cells, and this is a mechanical phenomenon that can be calculated using a finite element method, for example. Further, the contraction of the heart increases pressure within the heart and leads to the ejection of blood. This can be understood as a hydrodynamic phenomenon. Many other phenomena are related to a heartbeat, including the oxygen concentration gradient in cardiac muscle due to the coronary arteries. There also is interaction between the cells and the organ. For example, mechanical stress on the myocardial cells due to mechanical deformation of the heart affects the electrophysiological phenomena of the cells through excitation-contraction coupling. Thus, it is necessary to take into account numerous phenomena and the interactions between these phenomena when looking at even a single heartbeat. Further, many different phenomena and interactions between these phenomena are related to different organism functions, such as drug absorption at the small intestine. These phenomena take on various forms, such as those common among a plurality of organism functions, those that can be calculated by the same method, and those that are unique to a particular organism function. With this embodiment, it is possible to provide a generalized simulation platform for organism functions by combining the above simulator parts, which can perform simulations individually.
An organism simulation device according to a second aspect of the invention is the organism simulation device of the first aspect of the invention, in which the data output part further includes an input data obtaining unit for obtaining input data to be input to the simulator parts, the output unit saves the output data received by the output data reception unit and the input data obtained by the input data obtaining unit as a pair, and the organism simulation device further includes an output data reception portion that receives an input of output data, an input data retrieve portion that retrieves input data that pair with the output data that are received by the output data reception portion, or with output data that approximate the output data that are received by the output data reception portion, and an input data output portion that outputs the input data that have been retrieved by the input data retrieve portion.
This configuration allows conditions to be deduced from the results and thus can be adopted to analyze the cause of disease states or to search for drug discovery targets, and for example allows a patient's condition to be known in a manner in which surgery or tests that place a heavy stress on the patient can be avoided.
The invention allows various organism functions to be simulated combining simulator parts that correspond to functional elements that constitute an organism function, such as individual organisms, viscera/organs, cells/tissue, cell organelles, and molecules.
Embodiments of the organism simulation device, etc. are described below in reference to the drawings. It should be noted that in the embodiments, structural elements that have been assigned identical reference numerals perform similar operations, and repeated description thereof may be omitted.
This embodiment describes an organism simulation device, etc. that can perform complicated organism simulations using at least two organism element simulator parts. The organism simulation device is provided with at least two different organism element simulator parts, a data output part, and a simulation controller. The two organism element simulator parts are simulator parts that receive input and output a simulation result. The data output part is for visualizing the results of the simulation. The simulation controller converts the output of a simulator part into the input of another simulator part and transfers the converted data to the other simulator part, and also transfers the output of the simulator parts to the data output part as is or after converting the output.
That is, the simulator parts simulate the microscale behavior of each organism structural element, that is, the elements making up the organism, such as molecules, cell organelles, cells, tissue, and organs. The simulation controller allows behavior on a microscale level, that is, the interactions between organism structural elements, to be simulated. The data output part allows the interactions between the organism's structural elements and the external environment to be simulated.
The organism simulation device according to this embodiment of the invention is described below using the drawings.
The simulator parts 101 are provided with an input data reception unit 1011, a computation unit 1012, and an output data output unit 1013.
The data output part 102 is provided with an output data reception unit 1021 and an output unit 1022.
The simulation controller 103 is provided with a simulation scenario information storage unit 1031, a data reception unit 1032, an input data transfer unit 1033, an output data transfer unit 1034, an input reception unit 1035, and an information save unit 1036.
The input data reception unit 1011 receives data from the user and/or the simulation controller 103. Data are received from the user through a graphical user interface (GUI), for example. The input unit in this case can be any one of a number pad, keyboard, mouse, or menu-screen, etc. through which input is made. With respect to the reception of data from the simulation controller 103, examples include receipt of a message (if equipped by object-oriented programming), transfer by function arguments, and the reception of data. If the data are received, then the simulation controller 103 and the simulator parts 101 are provided in different devices. The input data reception unit 1011 can be achieved by the device driver of the input unit such as a number pad or a keyboard, or through the control software for a menu screen, for example.
The computation unit 1012 performs predetermined computations on the data received by the input data reception unit 1011 to create output data. That is, the computation unit 1012 is the core element for calculating the behavior of the organism's structural elements, that is, the elements making up an organism, such as molecules, cell organelles, cells, tissue, and organs. The computation unit 1012 ordinarily can be achieved by an MPU or a memory, for example. The processing procedure of the computation unit 1012 ordinarily is achieved by software, and that software is recorded on recording media such as a ROM. However, it is also possible for the computation unit 1012 to be achieved by hardware (dedicated circuit).
The output data output unit 1013 transfers the output data that are produced by the computation unit 1012 to the simulation controller 103. Examples of the method for sending the output data to the simulation controller 103 include transmitting a message (if equipped by object-oriented programming), transfer by function arguments, and the transmission of data. The output data output unit 1013 ordinarily can be achieved by an MPU or a memory, for example. The processing procedure of the output data output unit 1013 ordinarily is achieved by software, and that software is recorded on recording media such as a ROM. However, it is also possible for the output data output unit 1013 to be achieved by hardware (dedicated circuit). It should be noted that if the method for transferring output data to the simulation controller 103 is the transmission of data, then the output data output unit 1013 ordinarily can be achieved by a wireless or wired communication unit or broadcasting unit. If the output data are sent to the simulation controller 103 by way of data transmission, then the simulation controller 103 and the simulator parts 101 are provided in different devices.
The output data reception unit 1021 receives output data from the simulation controller 103. The methods by which it receives output data includes methods by issuing an event, transfer by function arguments, and the reception of data. The output data reception unit 1021 ordinarily can be achieved by an MPU or a memory, for example. The processing procedure of the output data reception unit 1021 ordinarily is achieved by software, and that software is recorded on recording media such as a ROM. However, it is also possible for the output data reception unit 1021 to be achieved by hardware (dedicated circuit). If the methods for receiving output data is achieved by the reception of data, then the simulation controller 103 and the data output part 102 are provided in different devices.
The output unit 1022 is for outputting the output data received by the output data reception unit 1021. Here, the concept of outputting is inclusive of displaying on a display, printing on a printer, sound output, saving on a recording medium, and transmitting to an external device, for example. The output unit 1022 can for example be achieved by a display and the driver software for that display.
The simulation scenario information storage unit 1031 stores simulation scenario information, which is information on the flow of data between the at least two simulator parts 101 and the data output part 102, and the operation sequence controlling the operations of the at least two simulator parts 101 and the data output part 102. The simulation scenario information storage unit 1031 is ideally a nonvolatile recording medium, but it also can be achieved by a volatile recording medium.
The data reception unit 1032 is for receiving data from the two or more simulator parts 101. The data reception unit 1032 also receives information (data) that has been saved by the information save unit 1036. The data that are received by the data reception unit 1032 are the data of the results of the simulation by the simulator parts 101 or data that have been input. The methods through which the data reception unit 1032 receives data includes, as mentioned above, via messages or issuing an event, transfer by function arguments, and the reception of data. The data reception unit 1032 ordinarily can be achieved by an MPU or a memory, for example. The processing procedure of the data reception unit 1032 ordinarily is achieved by software, and that software is recorded on a recording medium such as a ROM. However, it is also possible for the data reception unit 1032 to be achieved by hardware (dedicated circuit).
The input data transfer unit 1033 transfers the data that have been received by the data reception unit 1032 to the simulator parts 101 based on the simulation scenario information stored in the simulation scenario information storage unit 1031. The input data transfer unit 1033 can transfer the data that it receives from one simulator part to another simulator part as is, or process the data in some manner and then transfer those processed data to another simulator part. The input data transfer unit 1033 ordinarily can be achieved by an MPU or a memory, for example. The processing procedure of the input data transfer unit 1033 ordinarily is achieved by software, and that software is recorded on a recording medium such as a ROM. However, it is also possible for the input data transfer unit 1033 to be achieved by hardware (dedicated circuit).
The output data transfer unit 1034 transfers the data that have been received from the at least two simulator parts 101 to the data output part 102 based on the simulation scenario information stored in the simulation scenario information storage unit 1031. The methods by which the output data transfer unit 1034 transfers data includes, as mentioned above, through messages or issuing an event, transfer by function arguments, and the reception of data. The output data transfer unit 1034 ordinarily can be achieved by an MPU or a memory, for example. The processing procedure of the output data transfer unit 1034 ordinarily is achieved by software, and that software is recorded on a recording medium such as a ROM. However, it is also possible for the output data transfer unit 1034 to be achieved by hardware (dedicated circuit).
The input reception unit 1035 urges the user to input information, and receives the information that is input, based on the simulation scenario information stored in the simulation scenario information storage unit 1031. This information is used in the simulation. The input reception unit 1035 can be achieved by software, for example, that outputs GUI screen defined information, which is input, and a screen from the GUI screen defined information, and through this receives input.
The information save unit 1036 temporarily saves the information received by the input reception unit 1035. That information is saved on a predetermined recording medium (ordinarily, a volatile recording medium). The information save unit 1036 ordinarily can be achieved by an MPU or a memory, for example. The processing procedure by which the information save unit 1036 saves information ordinarily is achieved by software, and that software is recorded on a recording medium such as a ROM. However, it is also possible for the information save unit 1036 to be achieved by hardware (dedicated circuit).
The simulation scenario information input reception portion 104 receives the input of simulation scenario information. The simulation scenario information input reception portion 104 receives the new input of simulation scenario information, and the input of corrections for customizing the simulation scenario information. The unit by which the simulation scenario information is input can be any of a number pad, a keyboard, a mouse, or a menu screen, for example. The simulation scenario information input reception portion 104 can for example be achieved by the device driver for the input unit such as a number pad or a keyboard, or by the control software of a menu screen.
The simulation scenario information save portion 105 saves the simulation scenario information that is received by the simulation scenario information input reception portion 104 on the simulation scenario information storage unit 1031. The simulation scenario information save portion 105 ordinarily can be achieved by an MPU or a memory, for example. The processing procedure by which the simulation scenario information save portion 105 saves information ordinarily is achieved by software, and that software is recorded on a recording medium such as a ROM. However, it is also possible for the information save unit 1036 to be achieved by hardware (dedicated circuit).
Next, the operation of this organism simulation device is described using the flowchart in
(Step S201) The simulation controller 103 reads the simulation scenario information stored on the simulation scenario information storage unit 1031.
(Step S202) A 1 is assigned to the counter i.
(Step S203) The input reception unit 1035 determines whether or not the information of the i-th row (i-th information) of the simulation scenario information is a data input command that orders the input of data. If it is a data input command, then the procedure is advanced to step S204, and if it is not a data input command, then the procedure jumps to step S208.
(S204) The input reception unit 1035 creates an input screen that urges the user to input data, based on the information of the i-th row of the simulation scenario information, and displays this input screen. The information for creating the input screen (which for example is described in a program language such as HTML or JAVA©) has been saved in advance. The technology of creating and displaying an input screen is technology in the public realm, and thus will not be described in detail.
(Step S205) The input reception unit 1035 determines whether or not data have been received from the user. If data have been received, then the procedure advances to step S206, and if data have not been received, then the procedure returns to step S205.
(Step S206) The information save unit 1036 temporarily saves the data received in step S205.
(Step S207) The counter i is increased by an increment. The procedure returns to step S203.
(Step S208) The input reception unit 1035 determines whether or not the information of the i-th row (i-th information) of the simulation scenario information is an input data transfer command that orders data to be transferred to the simulator part 101. If it is an input data transfer command, then the procedure advances to step S209, and if it is not an input data transfer command, then the procedure jumps to step S213.
(Step S209) The input data transfer unit 1033 creates input data to transfer to the simulator part 101 based on the information of the i-th row of the simulation scenario information.
(Step S210) The input data transfer unit 1033 transfers the input data that it has created in step S209 to the simulator part 101 specified by the information of the i-th row.
(Step S211) The input data reception unit 1011 of the simulator part 101 receives data.
(Step S212) The input data reception unit 1011 of the simulator part 101 temporarily saves the data that are received in step S211. The procedure moves to step S207.
(Step S213) The output data transfer unit 1034 determines whether or not the information of the i-th row (i-th information) of the simulation scenario information is an output data transfer command, which is a command for receiving data from the simulator part 101. If it is an output data transfer command, then the procedure advances to step S214, and if it is not an output data transfer command, then the procedure jumps to step S218.
(Step S214) The output data transfer unit 1034 requests the data (output data of the simulator part 101), that is, the result of the simulation, from the simulator part 101 indicated by the information of the i-th row of the simulation scenario information.
(Step S215) The computation unit 1012 of the simulator part 101 performs computations based on the request made in step S214. That computation is performed using the data that have been stored temporarily and/or the data included in the request of step S214.
(Step S216) The output data output unit 1013 outputs the data of the result of the computation in step S215 to the simulation controller 103.
(Step S217) The data reception unit 1032 of the simulation controller 103 obtains and temporarily saves the data that are output in step S216. The procedure moves to step S207.
(Step S218) The output data transfer unit 1034 determines whether or not the information of the i-th row (i-th information) of the simulation scenario information is an output command for transferring the data to the data output part 102 and outputting the data. If it is an output command, then the procedure advances to step S219, and if it is not an output command, then the procedure moves to step S207.
(Step S219) The output data transfer unit 1034 creates output data based on the information of the i-th row of the simulation scenario information.
(Step S220) The output data transfer unit 1034 sends the output data that it has created in step S219 to the data output part 102.
(Step S221) The output data reception unit 1021 receives the output data. Then, the output unit 1022 outputs those output data. If that output is a display, then the output is simulated.
It should be noted that
(Step S301) The output data transfer unit 1034 determines whether or not data have been obtained from the simulator part 101. If data have been obtained, then the procedure advances to step S302, and if data have not been obtained, then the procedure returns to step S301.
(Step S302) The output data transfer unit 1034 temporarily saves the data that are obtained in step S301. The procedure moves to step S207.
Next, the specific operation of the organism simulation device of this embodiment is described. The simulation scenario information shown in
First, the simulation scenario information of
Also, “[SimulationController->CellSimulator]” indicates that the data or command is sent from the simulation controller 103 to the simulator part 101 known as the “CellSimulator” for performing a simulation of the cell.
Next, the specific operation of the organism simulation device using the simulation scenario information of
First, the simulation controller 103 reads the information of the first row of the simulation scenario information of
Next, the simulation controller 103 reads the information of the second row of the simulation scenario information of
Next, the simulation controller 103 reads the information of the third row of the simulation scenario information of
Next, the simulation controller 103 reads the information of the fourth row of the simulation scenario information of
Next, the simulation controller 103 reads the information of the fifth row of the simulation scenario information of
Next, the simulation controller 103 reads the information of the sixth row of the simulation scenario information of
Next, the simulation controller 103 reads the information of the seventh row of the simulation scenario information of
Next, the simulation controller 103 reads the information of the eighth row of the simulation scenario information of
Next, the simulation controller 103 reads the information of the ninth row of the simulation scenario information of
Next, the simulation controller 103 reads the information of the tenth row of the simulation scenario information of
Next, the simulation controller 103 reads the information of the eleventh row of the simulation scenario information of
Next, the simulation controller 103 reads the information of the twelfth row of the simulation scenario information of
Next, the simulation controller 103 reads the information of the thirteenth row of the simulation scenario information of
“setOrganDeformation(OrganDeformation)” is an output command for transferring the data of the calculation result by the finite element module regarding the organ deformation to the data output part 102 and then visualizing those data. Due to this command, the simulation result data of the finite element module are sent to the data output part 102. Next, the data output part 102 receives those data and visually outputs them. Due to this output, the deformation of the organ is visually displayed in a graphical manner.
Next, the simulation controller 103 reads the information of the fourteenth row of the simulation scenario information of
Next, the simulation controller 103 reads the information of the fifteenth row of the simulation scenario information of
It should be noted that the cell simulator, is for example, achieved by a cell simulator that calculates a single myocardial cell model. The finite element module can be achieved by a finite element method solver (for example, the commercial software (Marc)) that calculates the mechanical deformation. The data output part 102 can be achieved by a commercial visualization tool kit (AVS). That is, the above organism simulation device operates as follows based on the simulation scenario information. First, the selected myocardial cell model is simulated by the cell simulator. Next, the simulation controller 103 obtains data on the contraction force over time, that is, the results of that simulation. Next, the data on the contraction force over time, the selected cell arrangement model and the shape data are transferred to the finite element module, and the finite element model is activated. The finite element model then outputs data on the change in shape over time. Next, the simulation controller 103 obtains the data on the change in shape over time and transfers the data to the data output part 102. The data output part 102 performs a simulation of the heartbeat based on the data of the shape change over time. This simulation is displayed as a three-dimensional animation, for example.
Thus, with this embodiment, it is possible to simulate various organism functions by combining simulator parts corresponding to functional elements that constitute organism functions, such as individual organisms, viscera/organs, cells/tissue, cell organelles, and molecules. Various research is being conducted in the field of medicine, and in many cases the aim is to uncover the functional elements that constitute an organism function. One can say this due to the degree of difficulty of the research. Also, for example, the behavior of various components such as cells influences other behaviors and determines the behavior of the individual organism or organ. The organism simulation device of this embodiment takes into account the characteristics of the medical field, and makes it possible to achieve highly precise simulation in which the simulator parts for simulating the various organism components (e.g. myocardial cells) are structurally separated from the region (simulation controller) that controls the organism components, and in which the incorporation of new simulator parts does not affect other parts. That is, with this embodiment, it is easy to combine simulator parts being scrutinized to permit precise organism simulation that reflects the current state of medicine, and thus facilitates future research and advances in medicine. It is also very easy to expand the simulation functions in conjunction with medical advances. Here, functional element is used to refer to the electrophysiological behavior of myocardial cells mentioned above, the behavior of the metabolic aspects of the cell, or the change in shape of the organ. That is, the simulator parts can be achieved by software that simulates the electrophysiological behavior of myocardial cells, software that simulates the shape of an organ, or software that simulates the metabolic behavior of the cell. The same applies to the other embodiments as well.
For example, looking at the heart as a whole, the excitation that occurs in the sinoatrial node is transmitted to the entire heart through the heart's conducting system. This process is a form of electrical phenomena and can be simulated through electric field analysis, for example. The entire heart contracts due to the contraction force that is generated by the cells, and this is a mechanical phenomenon that can be calculated using a finite element method, for example. Further, the pressure within the heart rises due to contraction of the heart and leads to the ejection of blood. This can be understood as a hydrodynamic phenomenon. Many other phenomena are related to a heartbeat, including the oxygen concentration gradient in cardiac muscle produced by the coronary arteries. There also is interaction between the cells and the organ. For example, mechanical stress on the myocardial cells due to mechanical deformation of the heart affects the electrophysiological phenomena of the cells through excitation-contraction coupling. Thus, it is necessary to take into account numerous phenomena and the interactions between these phenomena when looking at even a single heartbeat. Further, many different phenomena and the interactions between those phenomena are related to different organism functions, such as drug absorption at the small intestine. These phenomena take on various forms, such as those common to a plurality of organism functions, those that can be calculated by the same method, and those that are unique to a particular organism function. With this embodiment, it is possible to provide a generalized simulation platform for organism functions. The same applies in the other embodiments as well.
Also, as discussed above, organism functions and the functional elements of the organism function are not yet fully understood. It is anticipated that these will come to be understood in the future through medical research. The structure of the organism simulation device of this embodiment is a favorable structure for a case in which more detailed, precise simulation is to be performed by incorporating simulator parts that have been constructed according to the organism functions or functional elements that will likely come to be understood over time. In other words, it is provided with a structure that is very well suited for simulation of an organism, in that it allows simulation functions to be expanded very easily in response to medical advances. The same applies in the other embodiments as well.
It should be noted that this embodiment did not sufficiently describe a configuration for customizing the simulation scenario information, but it is of course also possible for the simulation scenario information to be customizable. In this case, in addition to the configuration of the above organism simulation device, the organism simulation device is further provided with a simulation scenario information input reception portion for receiving the input of the simulation scenario information, and a simulation scenario information save portion for saving the simulation scenario information that is received by the simulation scenario information input reception portion on the simulation scenario information storage unit. The same applies in the other embodiments as well.
Also, in this embodiment the simulator parts are of course not limited to the simulator parts illustratively shown above. That is, one of the simulator parts of the two or more different simulator parts shown as an example is a simulator part that performs a simulation of a single myocardial cell, and the other simulator part is a simulator part (finite element module) that calculates the deformation of an organ, but these could well have been other simulator parts as well. The same also applies in the other embodiments as well.
Also, in this embodiment, the format or the structure of the data and the information are not important. The same applies in the other embodiments as well.
In this embodiment, the output unit of the data output part displays the output data received by the output data reception unit, but it is also possible for the output unit to save or to transmit the output data. The same applies in the other embodiments as well.
Further, the processing in this embodiment also can be achieved by software. This software can be distributed by software download, for example. It is also possible for the software to be recorded on and distributed as a recording medium such as a CD-ROM. It should be noted that the same applies in the other embodiments of this specification as well. It should also be noted that the software for achieving the organism simulation device of this embodiment is a program such as the following. That is, the program is an organism simulation program that is provided with two or more different simulator programs, which perform a simulation, that cause a computer to calculate the behavior of an organism's structural elements, that is, the elements making up the organism, such as molecules, cell organelles, cells, tissue, and organs, a data output program that causes a computer to output the simulation results, and a simulation control program that causes a computer to control the transfer of data between the two or more different simulator programs and the data output program. The two or more simulator programs include an input data reception step of receiving data from a user and/or the simulation control program, a calculation step of performing predetermined calculations on the data received in the input data reception step to create output data, and an output data output step of transferring the output data to the simulation control program. The data output program includes an output data reception step of receiving output data from the simulation control program, and an output step of outputting the output data that the output data reception unit has received. The simulation control program includes a data reception step of receiving data from the two or more simulator programs, an input data transfer step of transferring the data received by the data reception unit to the simulator programs based on the simulation scenario information this is stored, and an output data transfer step of transferring the data that are received from the two or more simulator programs to the data output program based on the simulation scenario information.
In the output step of the data output program, it is also possible to display the output data that are received in the output data reception step.
This embodiment describes, among others, an organism simulation device that uses two or more organism element simulator parts and can perform complex organism simulations. In this embodiment, the organism simulation device saves the data of the results of the simulation and uses the data at a later time.
The organism simulation device is provided with two or more different organism element simulator parts, a data output part, and a simulation controller. The two or more different organism element simulator parts receive input and output simulation results. The data output part is for saving the results of the simulation. The simulation controller converts the output of one simulator part into the input for another simulator part and transfers those converted data to the other simulator part, and also transfers the output of the simulator parts as is, or after converting it, to the data output part. The simulator parts simulate behavior on a microscale level, that is, the behavior of each organism structural element, that is, the elements making up the organism, such as molecules, cell organelles, cells, tissue, and organs. The simulation controller allows behavior on a microscale level, that is, the interactions between the organism structural elements, to be simulated. The data output part allows the interactions between the organism's structural elements and the outside environment to be simulated.
The organism simulation device according to this embodiment of the invention is described below using the drawings.
The data output part 802 is provided with an output data reception unit 1021, an input data obtaining unit 8021, and an output unit 8022.
The input data obtaining unit 8021 obtains data to be input to one or more simulator parts 101. The input data obtaining unit 8021 can directly obtain the input data from the simulator parts 101 or can obtain the input data through the simulation controller 103. It should be noted that in the block diagram in
The output unit 8022 saves the output data received by the output data reception unit 1021 and the input data that are obtained by the input data obtaining unit 8021 as a pair. The recording medium on which the output unit 8022 saves information ideally is a nonvolatile recording medium. It should be noted that this recording medium can be provided in or attached to the outside of the organism simulation device. The output unit 8022 ordinarily can be achieved by an MPU or a memory, for example. The processing procedure of the output unit 8022 ordinarily is achieved by software, and that software is recorded on a recording medium such as a ROM. However, it is also possible for the output unit 8022 to be achieved by hardware (dedicated circuit).
The output data reception portion 106 receives the input of output data. Here, output data are simulation data showing the result of a simulation. Illustrative examples of an input unit for inputting the output data include a number pad, a keyboard, a mouse, or a menu screen. The output data reception portion 106 can be achieved by the device driver of the input unit such as a number pad or a keyboard, or through control software for the menu screen, for example.
The input data retrieve portion 107 retrieves input data that pairs with the output data received by the output data reception portion 106 or with output data that approximate the output data received by the output data reception portion 106. The technology of comparing two output data to determine whether or not they approximate one another is in the public domain, and thus here will not be described in detail. The input data retrieve portion 107 ordinarily can be achieved by an MPU or a memory, for example. The processing procedure of the input data retrieve portion 107 ordinarily is achieved by software, and that software is recorded on a recording medium such as a ROM. However, it is also possible for the input data retrieve portion 107 to be achieved by hardware (dedicated circuit).
The input data output portion 108 outputs the input data that have been retrieved by the input data retrieve portion 107. Output ordinarily means to display on a display, but it conceptually also includes printing on a printer, sound output, and transmitting to an external device. The input data output portion 108 can be regarded as including, or as not including, an output device such as a display or a speaker. The input data output portion 108 can be achieved by driver software for an output device or by driver software for an output device and that output device, for example.
The operation of the organism simulation device is described below. Compared to the simulation device described in Embodiment 1, in this organism simulation device the display of the simulation result has been changed to an operation of saving the output data that are received by the output data reception unit 1021 and the input data that are obtained by the input data obtaining unit 8021 as a pair. Also, when the output data reception portion 106 receives an input of the output data, the input data retrieve portion 107 retrieves input data that pair with the output data received by the output data reception portion 106 or that pair with output data that approximate the output data received by the output data reception portion 106. Next, the input data output portion 108 outputs the input data that have been retrieved by the input data retrieve portion 107. Due to this process, the input data can be retrieved based on the data of an actual patient (output data), and the conditions within the patient's body can be understood.
Next, the specific operation of the organism simulation device of this embodiment is described. The simulation scenario information shown in
Next, the output data reception unit 106 receives an input of actual patient data (output data). The input data retrieve portion 107 then obtains, from the database that is constructed in the above process, the input data that pair with the output data that match or approximate the output data that have been received. The input data output portion 108 then outputs the input data that have been obtained.
Thus, with this embodiment, it is possible to save and use the simulation results. As for the method of using the simulation results, patient data (output data) that can be viewed externally are input, and by obtaining input data to supply to the simulator parts, it is possible to obtain the conditions within a patient's body. Thus, by using the organism simulation device it is possible to learn about a patient's condition in a manner in which patient surgery or tests that place a heavy stress on the patient can be avoided.
It should also be noted that the software for achieving the organism simulation device of this embodiment is a program such as the following. That is, the program is an organism simulation program that is provided with two or more different simulator programs that cause a computer to perform a simulation to calculate the behavior of an organism's structural elements, that is, the elements making up the organism, such as molecules, cell organelles, cells, tissue, and organs, a data output program that causes a computer to output the simulation results, and a simulation control program that causes a computer to control the transfer of data between the two or more different simulator programs and the data output program, wherein the two or more different simulator programs include an input data reception step of receiving data from a user and/or the simulation control program, a calculation step of performing predetermined calculations on the data received in the input data reception step to create output data, and an output data output step of sending the output data to the simulation control program, the data output program includes an output data reception step of receiving output data from the simulation control program, an input data obtaining step of obtaining the data to be input to the simulator parts, and an output step of storing the output data received in the output data reception step and the input data obtained in the input data obtaining step as a pair, and the simulation control program includes a data reception step of receiving data from the two or more simulator parts, an input data transfer step of sending the data received by the data reception step to the simulator programs based on the simulation scenario information this is saved, and an output data transfer step of transferring the data that are received from the two or more simulator programs to the data output program based on the simulation scenario information. The program also causes the computer to execute an output data reception step of receiving the input of output data, an input data retrieve step of retrieving input data that pair with the output data received in the output data reception step or with output data that approximate the output data received in the output data reception step, and an input data output step of outputting the input data retrieved in the input data retrieve step.
In the specific examples, etc., of the embodiments described above, there was an exchange of unidirectional data (i.e. messages) between the simulator part 101 serving as the finite element module (“FEMSimulator”) and the simulator part 101 that performs a simulation of the cell (“CellSimulator”) (see
In this embodiment, the following specific example is described. That is, first the contraction force calculated by the simulator part 101 (“CellSimulator”) is converted to the element contraction force and input to the simulator part 101 (“FEMSimulator”). Next, the change in shape is converted to the change in half sarcomere length and input to the simulator part 101 (“CellSimulator”). That is, in the specific example discussed in this embodiment, the interaction between the contraction force and the muscle length can be simulated. That is to say, the simulation is a Bi-directional coupled simulation (see
The organism simulation device according to this embodiment of the invention is described below.
The specific operation of the organism simulation device in this embodiment is described below. The simulation scenario information shown in
First, the simulation scenario information of
First, the simulation controller 103 sequentially reads the information of the first row to the eighth row of the simulation scenario information of
Next, the simulation controller 103 reads and executes the information of the ninth row of the simulation scenario information of
Next, the simulation controller 103 reads and executes the information of the tenth row of the simulation scenario information of
Next, the simulation controller 103 reads and executes the information of the eleventh row of the simulation scenario information of
Next, the simulation controller 103 reads and executes the information of the twelfth row of the simulation scenario information of
Next, the simulation controller 103 reads and executes the information of the thirteenth row of the simulation scenario information of
Next, the simulation controller 103 reads and executes the information of the fourteenth row of the simulation scenario information of
Next, the simulation controller 103 reads and executes the information of the fifteenth row of the simulation scenario information of
Next, the simulation controller 103 reads and executes the information of the sixteenth row of the simulation scenario information of
Next, the simulation controller 103 reads and executes the information of the seventeenth row of the simulation scenario information of
Next, the simulation controller 103 reads and executes the information of the eighteenth row of the simulation scenario information of
As illustrated above, the processing of this specific example is a Bi-directional coupled simulation that simulates the interaction between the contraction force and the muscle length.
The experiment shown in
From the graph of
Thus, with this embodiment, it is possible to achieve highly precise simulation with ease simply by changing the simulation scenario information, for example. That is, various research is being conducted in the field of medicine, and in many cases the aim is to elucidate the functional elements that make up an organism function. One can say this due to the degree of difficulty of the research. Also, for example, the behavior of various components such as cells influences other behaviors and determines the behavior of the individual organism or organ. The organism simulation device of this embodiment takes into account the characteristics of the medical field, and makes it possible to achieve highly precise simulation in which the simulator parts for simulating the various organism components (e.g. myocardial cells) are structurally separated from the region (simulation controller) that controls the organism components, and in which the incorporation of new simulator parts does not affect other parts. That is, with this embodiment, it is easy to combine simulator parts being scrutinized to permit precise organism simulation that reflects the current state of medicine, and thus facilitates future research and advances in medicine. It is also very easy to expand the simulation functions in conjunction with medical advances.
It should be noted that the Bi-directional coupled simulation discussed in this embodiment obviously also can be adopted in the organism simulation device of Embodiment 2 as well.
Further, in this embodiment, the various processes (various functions) can be achieved by a single device (system) or can be split between a plurality a devices.
That is to say, as an example, in this embodiment it is possible for the simulator parts, the simulator controller, and the data output part, for example, each to be achieved by different devices and for organism simulation to be achieved by sending and receiving messages or data (using a communication function or a broadcast function, for example). The following system is one such organism simulation system. That is, it is an organism simulation system that is provided with two or more different simulator part devices that calculate the behavior of an organism's structural elements, that is, the elements making up the organism, such as molecules, cell organelles, cells, tissue, and organs, a data output part device that outputs the simulation results, and a simulation control device that controls the sending and receiving of data between the two or more different simulator part devices and the data output part device, wherein the two or more simulator part devices include an input data reception unit for receiving data from a user and/or the simulation control device, a calculation unit for performing predetermined calculations on the data received by the input data reception unit to create output data, and an output data output unit for sending the output data to the simulation control device, the data output part device includes an output data reception unit for receiving output data from the simulation control device, and an output unit for outputting the output data received by the output data reception unit, and the simulation control device includes a simulation scenario information storage unit storing simulation scenario information, which is information on the sending and receiving of data between the two or more simulator part devices and the data output part device, and the operation sequence, a data reception unit for receiving data from the two or more simulator part devices, an input data transfer unit for sending the data received by the data reception unit to the simulator part devices based on the simulation scenario information, and an output data transfer unit for sending the data that have been received from the two or more simulator part devices to the data output part device based on the simulation scenario information.
It should be noted that in the above program, the output step of outputting information and the receiving step of receiving information do not include processing that is performed by hardware, such as processing performed by a modem or interface card in the transmission step (which is processing that can only be performed by hardware).
As for the number of computers that execute the above program, there can be a single computer or a plurality of computers. That is, the processes can be performed concentrated in one computer or split among a plurality of computers.
The invention is not limited to the foregoing embodiments and various modifications are possible, and it goes without saying that those modifications also are within the scope of the invention.
Thus, the organism simulation device of the invention has the effect that various organism functions can be simulated, and it is useful as an organism simulation device for simulating an organism.
Number | Date | Country | Kind |
---|---|---|---|
20004-050607 | Feb 2004 | JP | national |
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/JP05/02138 | 2/14/2005 | WO | 8/21/2006 |