• No se han encontrado resultados

Estudios de agregación α-sinucleína in vitro

4. RESULTADOS

4.6. Estudios de agregación α-sinucleína in vitro

Adaptive dynamic programming stems from an alternate interpretation of rotamer state spaces. The state spaces that vertices carry can be interpreted in two different ways. In the first interpretation (the interpretation used in dynamic programming), each vertex

v caries a state space,S(v) and each state represents an assignment of dihedral angles to a side chain. In the second interpretation (the interpretation that drives adaptive dynamic programming), each vertex v carries a hierarchy of state spaces. At the top level is the (low-resolution) base-state state space,L(v) where each base state represents a restriction on the range of dihedral angles for a side chain; a box in dihedral space, a base rotamer. At the bottom level, each base-state b∈ L(v) carries a (high resolution) sub-state state space, H(b) where each sub-state represents an assignment of dihedral angles to side chains and each s∈ H(b) lies inside b in dihedral space.

In the first interpretation of the vertices’ state spaces, the hyperedge scoring func- tion fe would be interpreted as a mapping fe : QveS(v) → ℜ. In the second in- terpretation, the hyperedge scoring function fe would be interpreted hierarchically. The high-resolution scoring function for a particular assignment of base-states B is a mapping from the sub-states to their interaction energies; fB

e :

Q

b∈BH(b) → ℜ. The low-resolution scoring function would be interpreted as mapping from the vertices low-resolution states into the high-resolution scoring functions for sub-states of those base-states; fe :

Q

v∈eL(v)→f B e .

With these two interpretations defined, I now give the algorithm for adaptive dy- namic programming. Consider a scoring function fe:Q

v∈eS(v) → ℜ for a hyper- edge e. In adaptive dynamic programming, we will use an approximate function

˜

fe:Q

v∈eS(v)→ ℜ. Let s

i denote the sub-state assigned to theith vertex thate is inci- dent upon. Let the base-state assignmentB denote an assignment of base-states to each of the the vertices thateis incident upon. The value of the approximation function for a sub-state assignment, ˜fe(s1, s2, . . . , sk), is derived from the value of fe(t1, t2, . . . , tk), where each ti is either the canonical rotamer si

1 or the original state sij if b(sij) is in- volved in stiff interactions. For each hyperedge e and each base state assignment B, we maintain a stiffness descriptor, CB

e which is a family of subsets of B. The base- rotamers contained in the stiffness descriptor are those which interact stiffly – if the stiffness descriptor is empty, then that assignment of base-rotamers does not interact stiffly. There are possibly many subsets ofB in the stiffness descriptor. Let CB

e,k ⊆B represent thekth element ofCB

define the set of all stiff base-states in an assignment asUB e =

S|CeB| k=1 Ce,kB.

Figure 4.5: Stiffness Descriptors for Input Edges.The two-dimensional table of tables for holding the hyperedge scoring functions. Input hyperedges store the interaction energies for base state pairs in one of two possible ways. The first way is to store for stiffly interacting base states a high-resolution table of interaction energies for each sub-state pair, as is pictured for the base state assignment B = (b, g). In this case, the top-level table stores a pointer to a second high-resolution table as well as the stiffness descriptorCB

e ={{b, g}}. The second way to store base-rotamer interaction energies is to store a single interaction energy for base-rotamer pairs that do not interact stiffly, as is pictured for the base state assignment B′ = (d, i). This single energy approximates

all sub-state interaction energies. Instead of a pointer to a table, the top level stores a pointer to a single float as well as the stiffness descriptorCB′

e ={{}}.

If e is an input hyperedge e ={u, v}, then under the base-state assignment {a, b}, the stiffness descriptor is either C{{u,va,b}} = {{a, b}} if a and b’s interaction is stiff and

{{}} otherwise (Figure 4.5). A non-input hyperedge is one created over the course of vertex elimination, and therefore corresponds to an eliminated vertex; the stiffness descriptor for such a hyperedge is determined by the stiffnesses that existed with the optimal states of the eliminated vertex.

The elimination of vertex v with incident edges Ev leaves behind a hyperedge Nv incident upon v’s former neighbors. I describe how to compute the stiffness descriptor

CB

Nv for a single base-state assignment, B, to the vertices of Nv. Define the stiffly- interacting base-states for the neighboring residues ofv for a particular base-state ofv,

b∈ L(v) to beTEv(B,b)=e∈EvU

(B,b)e

Figure 4.6: Tables For Hyperedges Produced by ADP: CB

e = {∅}. The elimination of vertex x has left behind a degree-3 hyperedge e incident upon vertices u, v, and w. The base states forx’s neighbors under the base-state assignmentB = (b, h, m) did not interact stiffly with the optimal state of x, therefore, CB

e ={∅}and the top-level table contains a pointer to a single float (blue region). The memory savings is the difference between the blue region for which memory is allocated, and the empty region that would have been allocated to store all sub-state assignments.

to the vertices econtains. Let PB represent the power set of B, where if|N

v|=dthen

|PB|= 2d, and let PB

i be theith member ofPiB. Let LPB

i (v) be {b|T

(B,b)

Ev =PiB}, that is, the set of all base-states of v which have the same stiffly-interacting base-states of

PB i .

For each i with a non-empty LPB

i (v), compute the function fPiB :

Q b∈PB i Hb → ℜ so that fPB i =b∈Lmin P Bi (v) min s∈Hb(v) X e∈Ev fe((B, b)e)s

wherefe((B, b)e)s has v fixed in sub-state s. Represent the range offPB

i by [bestPiB

. . .worstPB

i ]. Define thebest-worstscore as miniworstPiB and define the set of competing stiffnesses asI ={i|bestPB

i <best-worst}.

Now, the power set suggests a natural partial-order based on the subset property. Define ananti-chainfamily of sets to be any where no element in the family is a subset of any other. Given a family of sets, P we define anti-chain(P) to be the function that returns the anti-chain family produced by throwing out any set if it is a subset of any other. The stiffness descriptor CB

Nv is anti-chain({PiB | i ∈ I}). Let the set

Ik, corresponding to CB

Nv,k, represent {i | PiB ⊆ CNv,kB }. Define a set of functions,

fCB

Nv ,k = mini∈IkfP B

Figure 4.7: Tables For Hyperedges Produced by ADP: |CB

e | = 1. The elimination of vertexxhas left behind a degree-3 hyperedgeeincident upon verticesu,v, andw. The base states foru and v under the base-state assignment B = (b, g, m) interacted stiffly with the optimal states ofx, but the base state forwdid not, therefore, CB

e ={{b, g}} and the top-level table contains a pointer to a 2D table (blue region). The memory savings is the difference between the blue region for which memory is allocated, and the empty region that would have been allocated to store all sub-state assignments.

B isfNv(B) = minkfCB Nv ,k.

Where DP represents each hyperedge scoring function as a multi-dimensional table, ADP represents each function as multi-resolution multi-dimensional table: a table of tables. The top-level table has an entry for each base-state assignment to the vertices that the edge contains. Each cell in this top-level table contains the set of tables described by the stiffness descriptor. If the size of the sub-rotamer state space for base rotamer b is |Hb| = hb, then each fCB

Nv ,k requires Q b∈CB Nv ,khb space all |C B Nv| tables require P k∈CB Nv Q b∈CB

Nv ,khb space. ADP requires less space than the original DP algorithm. I have illustrated a few of the possible high-resolution tables stored for different stiffness descriptors in Figures 4.6, 4.7, and 4.8. All of these different stiffness descriptors could be found on the same hyperedge.

There are two positive effects of declaring base-rotamer pairs in irresolvable collision on adaptive dynamic programming (ADP). First, is that ADP may avoid calculating the best state of a vertex for any combination of neighbors’ base-states that put them in an irresolvable collision. Secondly, because the d112 collision term is fluctuating wildly

for base rotamer pairs that are in an irresolvable collision, all such base-rotamer pairs would meet the criterion for acting stiffly. Without avoiding all work for these base- rotamer pairs, adaptive dynamic programming would otherwise treat them at high

Figure 4.8: Tables For Hyperedges Produced by ADP: |CB

e | > 1. The elimination of vertexxhas left behind a degree-3 hyperedgeeincident upon verticesu,v, andw. The base states for x’s neighbors under the base-state assignment B = (e, f, o) interacted stiffly with the optimal states of x, but such that some of the optimal states of x

simultaneously interacted stiffly with base states f and o but not with e, and the other optimal states of x interacted stiffly with e but not with base states f and o. The stiffness descriptor CB

e = {{e},{f, o}} is an anti-chain family that contains two sets. Therefore, the top-level table contains pointers to two tables (blue regions). The memory savings is the difference between the blue region for which memory is allocated, and the empty region that would have been allocated to store all sub-state assignments.

resolution, performing much more work than they are worth.

4.9.1

Pseudocode of ADP

Below, I sketch the code for vertex elimination. The chief difference between the vertex elimination in dynamic programming and that in adaptive dynamic programming is the hierarchical structure of the loops. Dynamic programming contains two nested loops: a while loop to iterate across the all state assignments to the neighbors, and inside of this while loop, a for loop to iterate across the states of the vertex being eliminated. Adaptive dynamic programming contains four nested loops: the outermost

while loop iterates over the base-state assignment to the neighbors, and inside of this

whileloop, a forloop to iterate across the base-states of the vertex being eliminated. Inside of this forloop is another nested whileloop/forloop pair that iterates across the sub-state assignments for the base-rotamers specified in the outer two loops – this final pair of loops does not always iterate across all sub-state assignments, as some base-states do not interact stiffly and their sub-states do not need to be examined. Adaptive dynamic programming saves time by examining fewer sub-state combinations than dynamic programming examines.

The vertex and hyperedge classes are similar to those classes in dynamic program- ming, the exception of course being the table of tables that represent the hyperedge scoring functions. The NSV (neighbors’ state vector) class now iterates over either the base-states for the neighbors, or the sub-states for the neighbors. AtNSVinstantiation, the elimination code specifies whether the vector should operate at either low resolu- tion (LOWRES) or at high resolution (HIGHRES). When initialized at high resolution, the NSV must know exactly which of the neighbors to treat at high resolution, since not all neighbors need to be examined at high resolution. The elimination code specifies ex- actly which base-states should be treated at high resolution by passing thestiffness

vector to theNSVconstructor. Thestiffness vector is a vector of booleans; if a base- state is stiff on any hyperedge, it must be treated at high resolution in the inner-most while loop/for loop pair.

Documento similar