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 ); } }
// 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 ); } }