void SignalProcessingMasterFitter::UpdateClonalFilterData ( int flow )
{
  if ( global_defaults.signal_process_control.do_clonal_filter )
  {
    vector<float> copy_mult ( NUMFB );
    for ( int f=0; f<NUMFB; ++f )
      copy_mult[f] = CalculateCopyDrift ( region_data->my_regions.rp, region_data->my_flow.buff_flow[f] );

    region_data->my_beads.UpdateClonalFilter ( flow, copy_mult );
  }
}
Esempio n. 2
0
// this puts our answers into the data structures where they belong
// should be the only point of contact with the external world, but isn't
void extern_links::WriteAnswersToWells ( int iFlowBuffer, Region *region, RegionTracker *my_regions, BeadTracker &my_beads, flow_buffer_info &my_flow )
{
  // make absolutely sure we're upt to date
  my_regions->rp.copy_multiplier[iFlowBuffer] = CalculateCopyDrift ( my_regions->rp, my_flow.buff_flow[iFlowBuffer] );
  //Write one flow's data to 1.wells
  for ( int ibd=0;ibd < my_beads.numLBeads;ibd++ )
  {
    float val = my_beads.params_nn[ibd].Ampl[iFlowBuffer] * my_beads.params_nn[ibd].Copies * my_regions->rp.copy_multiplier[iFlowBuffer];
    int x = my_beads.params_nn[ibd].x+region->col;
    int y = my_beads.params_nn[ibd].y+region->row;
    
    if (my_beads.params_nn[ibd].my_state->pinned or my_beads.params_nn[ibd].my_state->corrupt)
      val = 0.0f; // actively suppress pinned wells in case we are so unfortunate as to have an estimate for them

    rawWells->WriteFlowgram ( my_flow.buff_flow[iFlowBuffer], x, y, val );

  }
}