Biomedical Engineering Reference
In-Depth Information
Figure 23.9
b
shows the workflow as comprised in
Wildfire
. The parallel “foreach”
construct,
pforeach
has been used to execute in parallel. This is because the number of
clusters and the number of motifs are not known a priori. This is a frequent occurence
in many bioinformatics workflows and hence this particular example is a good illus-
tration of the
pforeach
construct. This construct allows the pipeline included in the
pforeach
box to be executed as many times as there are files in the directory that match
the particular “glob” pattern.
23.7.3
Parameter Estimation Using Swarm Intelligence
The next example demonstrates how to run a swarm intelligence algorithm over the
grid.
Real-life optimization problems are often intractable and heuristics are the only
choice for finding near optimal solutions. Particle Swarm Optimization [19] is such a
heuristic based on simulation of information exchange between leaders and followers
observed in, for example, bird flocking.
The algorithm simulates individuals flying through the search space. On each
iteration, the individuals are separated into a set of leaders and a set of followers,
based on their fitness. The followers use the locations of the leaders to change their
flying direction, that is, search velocity. The location of each individual is computed
based on its current location and flying direction. The new location is used to rank
the fitness of individuals and subsequently the leader and follower sets. This process
is repeated again until an optimal solution is found. In the swarm algorithm, each
individual of the swarm works independently after obtaining information about the
leaders. Hence, it is computationally advantageous to parallelize the algorithm.
The workflow in Figure 23.10 is a simplified implementation of a swarm algorithm
by Ray et al. [50]. The algorithm is applied to a parameter estimation problem for a
biochemical pathway model consisting of 36 unknowns and eight ODEs [45]. Com-
ponents
Initialize
,
Evaluate
, and
Collate
are used to initialize and rank
the individuals. Component
Test
determines whether the workflow should terminate
and
Extract
collects together the results on termination of the simulation. Compo-
nent
ReEval
is used to evaluate the fitness of an individual; note the outer parallel
loop evaluates the fitness of each follower. The remaining components are used to
select the leaders and followers.
It is to be noted that there is a cyclic dependency in the workflow as
Classify
depends on both
Collate
and
Reassign
(initially and thereafter on
Reassign
hereditarily), whereas
Reassign
in its turn is dependent hereditarily on
Classify
.
The while loop in GEL allows such dependencies and so is crucial for this workflow.
Figure 23.10
b
shows the swarm workflow as comprised in
Wildfire
. Figure 23.11
shows the GEL script generated upon building the workflow in
Wildfire
.
The swarm algorithm script in Figures 23.10
b
and 23.11 shows two new syntax
constructs not observed in the previous two examples. These two are the
pfor
and
while
loops. The
pfor
initializes the swarm with some random values. The
while
body contains the stages in the evolution of the swarm and it is the test for ending the
algorithm.The
pforeach
in the loop body represents the set of followers updating
Search WWH ::
Custom Search