Research Article

CallSim: Evaluation of Base Calls Using Sequencing Simulation

Algorithm 1

The pseudocode for a single flow in the simulation process. The process is repeated for each flow that was produced during the sequencing process.
signal:= 0 ;# initialize the signal value
for (all polymerase/molecules that are not stalled)
{
if (base == N) { skip over this base }
else if (Rand < ){ polymerase status:= stalled }
else while((base==flow base) & (!stalled) & (no failure to add base))
 {
  if ( Rand > ) # add base
  {
   position++; # polymerase moves to next base
   signal++; # signal produced
   if (position == last base) { polymerase status:= stalled }
  }
 }
} next polymerase/molecule