# Patent

## Title
Method and system for utilizing Markov chain Monte Carlo simulations

## Abstract

Systems and methods for determining a probability of changing from one state to another in a stochastic entity, comprising: determining the compact component matrix utilizing characteristic information of the stochastic entity; determining the compact composite component matrix by taking a Kroneker product of the compact component matrix and an identity matrix; determining and placing all current states for the stochastic entity into a state space matrix; determining a Q matrix and/or a transition rate matrix using the compact composite component matrix and basic conditions or variables of the problem domain and/or a compact transition rate matrix; and performing Markov chain Monte Carlo (MCMC) simulation using information from the state space matrix and information from the transition rate matrix to determine the probability of changing from one state to another state in the stochastic entity.

## Background
CROSS-REFERENCE TO RELATED APPLICATIONS
This application claims priority of U.S. provisional patent application 61/294,194, filed Jan. 12, 2010, the entirety of which is incorporated by reference.


STATEMENT REGARDING FEDERALLY SPONSORED RESEARCH OR DEVELOPMENT
This invention was made with government support under Grant Number 0443843 awarded by National Science Foundation. The government has certain rights in the invention.


BRIEF DESCRIPTION OF FIGURES
FIG. 1 illustrates a system for utilizing a Markov chain Monte Carlo simulation, according to one embodiment.
FIGS. 2-5 illustrate a method for utilizing a Markov chain Monte Carlo simulation, according to one embodiment.


DESCRIPTION OF EMBODIMENTS OF THE INVENTION
In one embodiment, a system and method for utilizing a Markov chain Monte Carlo simulation can be provided. FIG. 1 illustrates a system 100 for utilizing a Markov chain Monte Carlo simulation, according to one embodiment. Markov chain Monte Carlo (MCMC) simulations can be used to describe a stochastic process (e.g., a process that contains a random variable(s)) that can display a Markov Property. A process that displays the Markov property can be a process where the statistical properties of a system's future can be predicted depending only on the current state and not on past states.
Referring to FIG. 1, the system 100 can comprise: a server computer 110, a client computer 105, a network 117, and an application 115. The application 115 can run on a server computer 110 and/or a client computer 105, or be accessible through the network 117. The application 115 can comprise: a user interface module 120; a read input module 130, a generate compact form module 125, or an MCMC simulation module 135, or any combination thereof. The user interface module 120 can accept input from a user. The read input module 130 can read the input. The generate compact form module 125 can generate a compact form of a state space vector and/or a transition probability vector, as described in detail below. The MCMC simulation module 135 can run MCMC simulations, as described in detail below.
In some embodiments, the use of the MCMC simulations can be across many fields, including, but not limited to: social science, economics, chemistry, finance, physics, biology, computer science, or engineering, or any combination thereof. In some embodiments, the MCMC simulations can be used when the probability for transition of the random variables between states does not change during a time step of the algorithm. In other embodiments, the MCMC simulations can also be used when the transition probabilities change with time. In one embodiment, the system and method can improve efficiency by introducing a compact form matrix for the state space—hereafter called a “compact state space matrix”; and can utilize highly efficient approach for working with this state space during the simulation. This can work for either homogeneous or heterogeneous clusters of stochastic units.
For example purpose, the system and method can be applied to the MCMC simulation of calcium (Ca2+) channels in the heart (e.g., L-type calcium channel, ryanodine receptor), where the gating of the channels can represent the stochastic unit of the MCMC. Calcium channels are ion channels that can assume different conformational states, such as open states that allow the passage of calcium ions across cellular membranes, and closed states that do not. Ion channels are integral membrane proteins or an assembly of several proteins packed around a water-filled pore.
Ion channels regulate the flow of ions across the membrane in all cells. In some ion channels, passage through the pore is governed by a gate, which may be opened or closed by chemical or electrical signals, temperature, or mechanical force. Ion channels can transit between the open and closed states randomly and can be described by a continuous-time discrete-state Markov chain. Transmembrane ion channels are pore-forming proteins that help establish and control the small voltage gradient across the plasma membrane of cells by allowing the flow of ions down their electrochemical gradient.
It should be noted that the example provided throughout the application is only one of many uses of the system and method. The system and method can be used in a multitude of other examples across many fields, including, but not limited to: social science, economics, chemistry, finance, physics, biology, computer science, or engineering, or any combination thereof.
FIG. 2 illustrates a method 200 for utilizing a Markov chain Monte Carlo simulation, according to one embodiment. In 205, problem specific parameters (e.g., transition rates of Markov-chain models of different types of stochastic units, initial states of the system) can be loaded. The transition rates for a Markov-chain model, mathematically, can be represented as an infinitesimal generator matrix, which can be referred to as a Qm-matrix. This Qm-matrix can contain the information about the number of states of a single stochastic units and transition rates from one state to another. Based on the conservation law, the row sum of this matrix can be zero.
For simplicity, we describe the gating of ion channels calculated using a two-state Ryanodine Receptor (RyR) model. The two-state RyR model can correspond to a channel with conductance levels (e.g., closed C and open O):




  
    
      
        C
        ⁢
        
          
        
        ⁢
        
          
            ⇄
            
              
                k
                12
                +
              
              ⁢
              
                C
                η
              
            
          
          
            k
            21
            -
          
        
        ⁢
        
          
        
        ⁢
        O
      
    
    
      
        (
        
          Equation
          ⁢
          
            
          
          ⁢
          1
        
        )
      
    
  




where k12 and k21 can be the rates of the C to O and O to C transitions and can be estimated from experimental data; and the concentration of Ca2+ binding experienced by the channel can be given by c, where η can indicate the cooperativity of Ca2+ binding. In this case, the Qm-matrix can take the form:




  
    
      
        Q
        =
        
          
            
              K
              -
            
            +
            
              
                c
                η
              
              ⁢
              
                K
                +
              
            
          
          =
          
            
              (
              
                
                  
                    
                      0
                    
                  
                  
                    
                      
                        k
                        21
                        -
                      
                    
                  
                
                ⁢
                
                  
                    
                      0
                    
                  
                  
                    
                      
                        -
                        
                          k
                          21
                          -
                        
                      
                    
                  
                
              
              )
            
            +
            
              
                c
                η
              
              ⁡
              
                (
                
                  
                    
                      
                        
                          -
                          
                            k
                            12
                            +
                          
                        
                      
                    
                    
                      
                        0
                      
                    
                  
                  ⁢
                  
                    
                      
                        
                          k
                          12
                          +
                        
                      
                    
                    
                      
                        0
                      
                    
                  
                
                )
              
            
          
        
      
    
    
      
        (
        
          Equation
          ⁢
          
            
          
          ⁢
          2
        
        )
      
    
  




Note that the matrices K− and K+ can be constructed from dissociation and association rate constants, respectively, and can have negative diagonal elements and row sum zero.
When the transition rates do not vary with time, and are independent of calcium, the Q-matrix can take the form:




  
    
      
        Q
        =
        
          (
          
            
              
                
                  
                    -
                    
                      k
                      12
                      +
                    
                  
                
              
              
                
                  
                    k
                    21
                    -
                  
                
              
            
            ⁢
            
              
                
                  
                    k
                    12
                    +
                  
                
              
              
                
                  
                    -
                    
                      k
                      21
                      -
                    
                  
                
              
            
          
          )
        
      
    
    
      
        (
        
          Equation
          ⁢
          
            
          
          ⁢
          3
        
        )
      
    
  




It should be noted that rates in the state transition diagram (e.g., Equation 1) and the off-diagonal elements of the Q-matrix (e.g., Equation 3) can give the transition rate from state i to state j (i≠j) as follows:




  
    
      
        
          Q
          ij
        
        =
        
          
            lim
            
              
                Δ
                ⁢
                
                  
                
                ⁢
                t
              
              →
              0
            
          
          ⁢
          
            
          
          ⁢
          
            
              P
              ⁢
              
                {
                
                  
                    S
                    ⁡
                    
                      (
                      
                        t
                        +
                        
                          Δ
                          ⁢
                          
                            
                          
                          ⁢
                          t
                        
                      
                      )
                    
                  
                  =
                  
                    
                      
                        S
                        i
                      
                      |
                      
                        S
                        ⁡
                        
                          (
                          t
                          )
                        
                      
                    
                    =
                    
                      S
                      i
                    
                  
                
                }
              
            
            
              Δ
              ⁢
              
                
              
              ⁢
              t
            
          
        
      
    
    
      
        (
        
          Equation
          ⁢
          
            
          
          ⁢
          4
        
        )
      
    
  




where P can be the transition probability to a particular next state given the current state, S can be the state, and t can be the time. So, when the time step Δt is small enough, QijΔt can become the probability of jumping to state Sj given the current state is Si. This idea can also be extended to either a homogeneous or a heterogeneous cluster of channels as well. The transition rate matrix Q for the cluster can be built, based on the matrix Q for the single stochastic unit, as described below.
Similarly, the absolute values of the diagonal elements of the diagonal elements of the Q-matrix (e.g., Equation 3) can correspond to the probability per unit time that the state remains unchanged.
It should be noted that many other systems can be utilized in some embodiments. In addition, it should be noted that, in some embodiments, Markov chain models of RyRs (and/or other systems) can be more complex than shown in the equations above, and can include multiple closed and/or open states; and/or transitions that reflect experimentally observed phenomena such as voltage- and/or ligand-dependent gating. In other embodiments, for example, this method can be applied to Monte Carlo Simulation for risks that are commonly used in finance.
In a particular system, it typically contains a number of such stochastic units (e.g. RyR channel, LCC), forming a homogeneous cluster or heterogeneous cluster.
We introduce how a compact state space matrix of a heterogeneous cluster can be built, e.g., a Ca2+ release unit (CRU) comprising 50 stochastic Ryanodine Receptors (RyRs) co-localized with a number of stochastic voltage-gated L-type Ca2+ channels (LCCs) in the diad, such that the ratio of LCC:RyR is between 1:7 depending on the species. In many studies, when the LCCs are pharmacologically disabled; the diad becomes a homogeneous cluster of RyRs only. This approach can be easily extended when we have three or more heterogeneous clusters forming a bigger heterogeneous cluster. Accordingly, we will have distinct concepts: channel state, (homogeneous) cluster state, and CRU (or non-homogeneous cluster) state. The capability of simulating a cardiac cell with a high number of CRUs, i.e. 20,000, demonstrates the power of the method for simultaneously running of multiple instances of a dynamics system.
Referring again to FIG. 2, in 210, a compact transition rate matrix for the cluster can be generated without needing to build the full state transition rate matrix of the cluster. This can be helpful as in certain systems, it may not be possible to build the full transition rate matrix. The first step in building the compact transition rate matrix is defining and calculating the cluster state. We first introduce how to deal with a homogeneous cluster, (i.e. the individual stochastic units are interchangeable). In particular, a reduced state space can be introduced (e.g., the number of possible states from which transitions have to be calculated)—whose individual state of the homogeneous cluster is called a “cluster state”. For example, for a CRU with n=50 RyR channels, each represented using m=2 states, the Markov chain of the CRU can be defined as containing 250 (ma) or  ̃1015 states. However, this state space can be contracted by considering the individual channels to be indistinguishable and only tracking the number of channels in each state. Such a reduced model can have M=(m+n−1)!/(n!(m−1)!) states (e.g., 51 states if n=50 and. m=2). This can be analogous to the combinatorics problem of n balls placed in m bins. The possible configurations of the cluster state can be enumerated in a M×m collector matrix form. For example, for a cluster of three two-state RyR channels (n=3, m=2), the collector matrix Sr can be:




  
    
      
        
          S
          r
        
        =
        
          (
          
            
              
                
                  3
                
              
              
                
                  2
                
              
              
                
                  1
                
              
              
                
                  0
                
              
            
            ⁢
            
              
                
                  0
                
              
              
                
                  1
                
              
              
                
                  2
                
              
              
                
                  3
                
              
            
          
          )
        
      
    
    
      
        (
        
          Equation
          ⁢
          
            
          
          ⁢
          5
        
        )
      
    
  




The columns in Sr can reference the states of the individual channel (e.g., the first column is the number of channels in the closed state and the second column is the number of channels in the open state). The rows can reference the different configurations and can represent the cluster state. For example, the entries in the second row of Sr can indicate that this configuration contains two channels in the closed state and one channel in the open state. Hence, rather than check each channel individually to see if there is a state transition, the matrix Sr can be used to reduce the state space. Thus, it's not the state of each channel that matters, but the number of channels in a particular state.
FIG. 3 sets forth the details of 210. In 305, the detection of the number of states M of a homogeneous cluster can be done. For a homogeneous cluster of M cluster states, it needs a M×M transition rate matrix (or Qhc-matrix) to keep the transition rates from each cluster state to another, while the actual number of possible outgoing paths from one particular state can be much smaller than M. The upper bound {tilde over (M)} of maximum number of possible state transitions can be detected and only the matrix of size M×{tilde over (M)} is required. This compact transition rate matrix can be used to calculate the transition probabilities from the current state to all of its possible next states of each release site during the MCMC simulation (to be described in detail later).
Instead of finding the total number of possible state transition for all affecting factors (e.g. Ca-dependent, Ca-independent), we can examine only the possible state transitions under individual affecting factors per se. In other words, rather than working with the Q-matrix whose elements involve different factors, as shown in Equation 2, we can deal with the component matrices, e.g. K+, K−. From these matrices, we can build a number of compact form matrices for the clusters. In 310, the maximum number of possible state transitions {tilde over (M)}i from one (homogeneous) cluster state to another, under a particular affecting factor, can be estimated (the detail is given in the example in the end). This value can be limited by the Markov-chain size of a single stochastic unit, not the size of the cluster. So, the larger the size the cluster, the more effective our algorithm can be. When the number of stochastic units nsu in the cluster is smaller than the number of state nst of a single stochastic unit, a better upper bound value can be the number of off-diagonal non-zero elements from the nsu rows of maximum number of off-diagonal non-zero elements. In essence, the upper bound can be the number of off-diagonal non-zero elements from min(nsu,nsi) rows of maximum number of off-diagonal non-zero elements. For example: if we examine Ca-dependent transitions, and the component matrix for a single stochastic unit is




  
    K
    +
  
  =
  
    [
    
      
        
          
            -
            1
          
        
        
          0.1
        
        
          0.9
        
      
      
        
          2
        
        
          
            -
            10
          
        
        
          8
        
      
      
        
          1
        
        
          0
        
        
          
            -
            1
          
        
      
    
    ]
  




and nsu=2, nsi=3, the maximum number of possible state transition of the cluster is 4.
After building the configurations of cluster states, in 310, we can estimate the maximum number of possible state transition from one cluster state to another. One assumption can be that a state transition is valid only when one stochastic unit changes the state within a small enough time step. In our example of a three two-state cluster, a cluster state with the configuration of (3,0) has only one possible next state, which is (2,1). And the cluster state of (2,1), in turn, can have two possible next states, i.e. (3,0) or (1,2). In our example, this assumption is valid 94% of the time. This number can be increased by choosing a smaller adaptive time step. Hence, this assumption doesn't limit the power of the method but confirms that the simulation technique is an exact method as it captures individual channel state transitions. This can reflect a more realistic behavior of the system.
Given the number of cluster states M, and the upper bound for possible state transition for each component matrix {tilde over (M)}i, we can build the corresponding compact form matrix of size M×{tilde over (M)}i. This can involve creating two compact form matrices and re-ordering the positions of columns. This can correspond to 315 in FIG. 3.
For each component matrix, say K+, we can use two compact form matrices, one to keep the non-zero state transition, say compK+, and the other one to keep the state index, say idxK+, that can specify where the non zero element was in the component matrix. As the number of possible state transition is normally a few orders of value smaller than the cluster state size, the two compact-form matrices can achieve a large memory savings. During the process of building this compact form matrix, all diagonal elements can be re-ordered to locate in the first column of the compact form matrix. By doing this, we can greatly reduce the number of comparisons when we perform the Monte-Carlo simulation because the selection of our time step can guarantee that a state transition occurs only 10% of the time (as discussed below). In other words, we can avoid unnecessary computations with this proposed data structure. The first three steps in FIG. 4 can be repeatedly used to build all component matrices.
When the problem domain involves a heterogeneous cluster, we can repeat the process above to build the compact form for the component matrices in each homogeneous cluster. We can also combine the rate transition matrices of the homogeneous clusters into the rate transition matrices of the heterogeneous one.
With respect to the above calcium channel gating in the heart example, calcium release sites can comprise both LCCs and RyRs, which can interact via Ca2+ in the dyadic space. So a release unit has two types of homogeneous clusters: RyRs and LCCs. When we use full-form matrices, we can perform the Kronecker sum on these two matrices to find the transition-rate Q-matrix for the heterogeneous cluster. For example, the following can form a Q-matrix representing the states of a release unit containing both LCCs (A) and RyRs (B), IA and IB can be identity matrices congruent with KA and KB, respectively, as shown below:

QAB=K−AB+cnK+AB 

where

K−AB=K−AI−B+I−AK−B 

K+AB=K+AI+B+I+AK+B  (Equation 6)

with K−AB, K+AB conceptually denoted as KAB for further demonstration of the method.

KAB=KAKB=KAI+IKB  (Equation 7)

and KA,KB can be rate transition matrices for the homogeneous cluster. Its compact form versions are compKA,compKB whose building process has been mentioned above.

With the proposed compact form format, we no longer need to do this, i.e. we generate compKAB. It should be noted that with the Kronecker sum, the elements of KA and the elements of KB will never fall into the same (row, column) in the KAB matrix, except the diagonal elements. It should also be noted that, using our proposed compact form matrices, all diagonal elements of KA,KB, are now in the first column of its corresponding compact form. So, the compact form compKA,compKB, along with idxKA,idxKB, can be easily incorporated to form compKAB,idxKAB, when needed via the so-called “compact-Kronecker-product”

compK−AB=compKAIidxK−AB=f(idxKA)

compK+AB=IcompKBidxK+AB=g(idxKB)  (Equation 8)

Then

compQ=[T|a1×compK−AB(2:)|a2×compK+AB(2:)]

idxQAB=[—|idxK−AB|idxK+AB]  (Equation 9)

where T can be the column-vector that contains the diagonal-elements of compKAB, a1, a2 are problem domain-dependent. In our example: a1=1,a2=cn. T can be computed based on the first column of compK−AB,compK+AB and the formulation can be

T=a1×compK−AB(1)+a2×compK+AB(1)  (Equation 10)

Using this approach, it can be easily stacked up to form bigger compact form matrices, if the heterogeneous cluster has three or more homogeneous clusters. Finally, we can obtain the compact form of the transition rate Q-matrix. From now on, we'll work with the so-called “master cluster”, regardless of whether it's a homogeneous one or heterogeneous one.
In the next step, a timing loop can be performed to simulate the system. In the beginning of the simulation, the initial state of all “master clusters” (or release sites, in our example) can be given in a vector S. The values of this vector can be continuously updated to reflect the current state of the system during the MCMC simulation. The details of the simulation steps are given below. In general, we need to estimate the probability of an outgoing path from the current to all possible states; and a pseudo-random number can be used to determine the next states. This pseudo-random number can be regenerated after every time step.
Referring again to FIG. 2, in 215 a compact transition probability vector (matrix) can be generated, which can contain only possible transitions from one master cluster state to another. If, in the problem domain, it has more than one master clusters or if we want to run many trials of a MCMC study, we can achieve this aim easily by generating a compact transition probability matrix. This is the case in our chosen example, where in a single cardiac cell, it has about 20,000 calcium-release units. The compact transition probability vector (matrix) can be for individual stochastic entities and can use compact form based calculations.
As pointed out in the early part of the algorithm, the transition probability can be computed from the transition rate values when multiplied with the small time step. This time step can be fixed, or adaptively chosen depending on the problem domains. The detailed steps are depicted in FIG. 4.
In 405, transition rates for the current state of the master cluster can be calculated using Equation 10, using information about the current state contained in the compact current state vector. Depending on the problem domain, we can have more terms and the multiplication factor can be different. In our example problem, we can have matrices of calcium-dependent activation, calcium-dependent inactivation, Voltage-dependent activation, or an inactivation matrix; each one can contribute a different factor to the compact form Q-matrix.
In 410, the transition rates can be multiplied by an appropriate time step Δt. This can be done to convert the transition rates into transition probabilities for use in the Monte Carlo simulation. For numerical stability and computational efficiency, an adaptive time step can be used by constraining the time step Δt to the maximum possible value, which can still give a 90% probability of remaining in the current state, Δt=min(−0.1/qmin), where is qmin the negative values in the transition matrix of the master cluster. If the application domain is composed of a number of master clusters, as we explained previously in the cardiac cell model, qmin is the smallest negative value from all transition matrices of all master clusters. This minimum value can be easily detected as, in our proposed compact form, the negative values are kept at the first column. It should be noted that the upper bound of Δt can be constrained to a value which satisfies numerical stability for any other ordinary differential equations (ODEs) in the calculation. This optimized adaptive time step can lead to increased computational efficiency.
In 415, the transition probabilities are calculated by multiplying the time step with the transition rates.
In 220, Monte Carlo simulation can be performed to determine the new state(s) of the master cluster(s). FIG. 5 explains in detail 220. In order to compute the next state using Monte Carlo simulation, a single pseudo-random number (PRN) can be generated for the master cluster, in 505. If the problem domain has a number of master clusters, we may need to generate a vector of PRNs. However, it should be noted that, using our method, only a single PRN is needed for one master cluster. This is considered computational effective as generating PRN is quite expensive. There are many choices of PRN methods; one widely used option is the Mersenne Twister.
In 515, the random numbers can be compared to the cumulative transition matrix to determine what transition, if any, has occurred. Before that, we need to calculate the cumulative transition matrix, in 510. Notice that as the row sum of the rate transition matrix is 0, to guarantee the row sum is 1, after multiplying the rate transition to the time step, the negative value is summed with 1. Again, as the negative value is at the first column, this can be done instantly without needing to search for the correct index of the negative value in the compact form matrix.

Pij=Δt×compQi,k(i=1, . . . ,Nmaster)

Pil=Pil+1

The cumulative sum of the rows of P then can be calculated, as shown below:

{circumflex over (P)}i,j=scan_sum(Pij)(i=1, . . . ,Nmaster and j=1, . . . ,Ñ)

with Nmaster is the number of master clusters. This can yield an increasing set of numbers between 0 and 1 that can indicate the boundaries of the partitions. Here, each row of matrix P represents the cumulative sum of the probabilities transitions for each master cluster.

By comparing the entries in P to a vector R (N entries) of U [0, 1] pseudo-random numbers, when Ri<Pij, the index j can indicate the new state of the master clusters. Once a transition occurs, no further comparisons are necessary for that master cluster (column of P).
It should be noted that, with the emerging of general-purpose graphical processing units (GPGPU), there have been a number of implementations targeted to Compute-Unified Device Architecture (CUDA) that can effectively generate PRNs with several times faster than when a Central Processing Units (CPU) is used. The method 200 can run efficiently on GPGPU as well as on traditional and forthcoming multi-core and many core CPUs. The matrix P (above) can be created for intermediate use only. Its purpose can be for detecting the new state of a master clusters. So, in one embodiment, we propose a GPU-based approach where we can completely get rid of the process of building this matrix, except we keep the first column to detect the adaptive time step. In particular, a loop can be created, and a Boolean variable can be used to keep track of whether a new state is found, and a scalar variable can keep track of the current cumulative probabilities. This scalar variable can reside in register file, and then can be updated on the fly, and be used to compare with the PRN quickly. This so-called “lazy” approach can only do computation when necessary to detect the next state transition. This can help avoid un-necessary computation, saving memory, reducing high-latency memory access, as well as reserving the hardware execution units for other threads' usage. This can help increase efficiencies as time delay for accessing data in global memory can be 150-200 times slower compared to data residing in on-chip memory, e.g., shared memory or register files. This approach can be applied easily to CPU only based calculations as well.
When new states are found, referring back to FIG. 2, in 225, algebraic and differential equations for other quantities that are used to update the transition matrices can be solved. In 230, a simple comparison is used to determine whether the simulation has ended. If not, the process returns to 215 and repeats. If yes, the process ends.
While various embodiments of the present invention have been described above, it should be understood that they have been presented by way of example, and not limitation. It will be apparent to persons skilled in the relevant art(s) that various changes in the form and detail can be made therein without departing from the spirit and scope of the present invention. Thus, the invention should not be limited by any of the above-described exemplary embodiments.
In addition, it should be understood that the figures described above, which highlight the functionality and advantages of the present invention, are presented for example purposes only. The architecture of the present invention is sufficiently flexible and configurable, such that it may be utilized in ways other than that shown in the figures.
Further, the purpose of the Abstract of the Disclosure is to enable the U.S. Patent and Trademark Office and the public generally, and especially the scientists, engineers and practitioners in the art who are not familiar with patent or legal terms or phraseology, to determine quickly from cursory inspection the nature and essence of the technical disclosure of the application. The Abstract of the Disclosure is not intended to be limiting as to the scope of the present invention in any way.
It should also be noted that the terms “a”, “an”, “the”, “said”, etc. signify “at least one” or “the at least one” in the specification, claims and drawings.
Finally, it is the applicant's intent that only claims that include the express language “means for” or “step for” be interpreted under 35 U.S.C. 112, paragraph 6. Claims that do not expressly include the phrase “means for” or “step for” are not to be interpreted under 35 U.S.C. 112, paragraph 6.

## Claims

1. A method for determining a probability of changing from one state to another in a stochastic entity, comprising;
performing processing associated with determining, using the processor, the compact component matrix utilizing characteristic information of the stochastic entity;
performing processing associated with determining, using the processor, the compact composite component matrix by taking a Kroneker product of the compact component matrix and an identity matrix;
performing processing associated with determining and placing, using the processor, all current states for the stochastic entity into a state space matrix;
performing processing associated with determining, using the processor, a Q matrix and/or a transition rate matrix using the compact composite component matrix and basic conditions or variables of the problem domain and/or a compact transition rate matrix; and
performing processing associated with performing, using the processor, Markov chain Monte Carlo (MCMC) simulation using information from the state space matrix and information from the transition rate matrix to determine the probability of changing from one state to another state in the stochastic entity.

2. The method of claim 1, wherein the current states of the stochastic entity are determined by:
performing processing associated with determining a probability of transitioning out of a current state to another state; and
performing processing associated with utilizing the probability of transitioning information to determine the current states of the stochastic entity.

3. The method of claim 1, wherein using indices of non zero entries of the state space matrix ensures that only possible current states are used in a compact state space matrix; and/or using non zero transition rates ensures that only possible current transitions are used in a compact transition rate matrix.

4. The method of claim 1, wherein a transition from one state to another state does not need to be constant.

5. The method of claim 1, wherein transition paths out of each current state are tracked rather than all possible transitions.

6. The method of claim 1, wherein the MCMC simulation scales with increasing size and complexity of the stochastic entity.

7. The method of claim 1, wherein the method performs MCMC simulations of multiple stochastic entities simultaneously.

8. The method of claim 6, wherein the MCMC simulation scales by using memory and computational resources.

9. The method of claim 1, wherein the stochastic entity is in the field of: social science, economics, chemistry, finance, physics, biology, computer science, or engineering, or any combination thereof.

10. The method of claim 1, wherein the MCMC simulation is computed by: a GPGPU, a CPU, any other distributed and/or parallel processor, or any combination thereof.

11. The method of claim 1, wherein the stochastic entity is a cluster of ion channels.

12. A system for determining the probability of changing from one state to another in a stochastic entity, comprising:
a processor configured for:
performing processing associated with determining, using the processor, the compact component matrix utilizing characteristic information of the stochastic entity;
performing processing associated with determining, using the processor, the compact composite component matrix by taking a Kroneker product of the compact component matrix and an identity matrix;
performing processing associated with determining and placing, using the processor, all current states for the stochastic entity into a state space matrix;
performing processing associated with determining, using the processor, a Q matrix and/or a transition rate matrix using the compact composite component matrix and basic conditions or variables of the problem domain and/or a compact transition rate matrix; and
performing processing associated with performing, using the processor, Markov chain Monte Carlo (MCMC) simulation using information from the state space matrix and information front the transition rate matrix to determine the probability of changing from one state to another state in the stochastic entity.

13. The system of claim 12, wherein the current states of the stochastic entity can be determined by:
performing processing associated with determining a probability of transitioning out of a current state to another state; and
performing processing associated with utilizing the probability of transitioning information to determine the current states of the stochastic entity.

14. The system of claim 13, wherein using a indices of non zero entries of the state space matrix ensures that only possible current states are used in a compact state space matrix; and/or using non zero transition rates ensures that only possible current transitions are used in a compact transition rate matrix.

15. The system of claim 12, wherein a transition from one state to another state does not need to be constant.

16. The system of claim 12, wherein transition paths out of each current state are tracked rather than all possible transitions.

17. The system of claim 12, wherein the MCMC simulation scales with increasing size and complexity of the stochastic entity.

18. The system of claim 12, wherein the method performs MCMC simulations of multiple stochastic entities simultaneously.

19. The system of claim 17, wherein the MCMC simulation scales by using memory and computational resources.

20. The system of claim 12, wherein the stochastic entity is in the field of: social science, economics, chemistry, finance, physics, biology, computer science, or engineering, or any combination thereof.

21. The system of claim 12, wherein the MCMC simulation is computed by: a GPGPU, a CPU, any other distributed and/or parallel processor, or any combination thereof.

22. The system of claim 12, wherein the stochastic entity is a cluster of ion channels.

23. The method of claim 1, wherein the following are in compact form: state space matrix, transition rate matrix, or Q-matrix, or any combination thereof.

24. The method of claim 1, wherein the transition rate matrix changes based on changing conditions and/or variables of the problem domain.

25. The system of claim 1, wherein the following are in compact form: state space matrix, transition rate matrix, or Q-matrix, or any combination thereof.

26. The system of claim 1, wherein the transition rate matrix changes based on changing conditions and/or variables of the problem domain.