SampledMultispot Namespace Reference

Classes

struct  SpotWithBackgroundMasked
 This class compute the log-diff-hess probability of a spot, given an image patch and background due to existing spots. More...
class  GibbsSampler
 Draw samples from the spot states given the spots positions and some data. More...
class  GibbsSampler2
 Gibbs sampling class which masks spots to reduce computation. More...

Functions

double intensity (double i)
double intensity (const pair< double, Vector< 4 > > &i)
template<class T >
void remove_spot (vector< vector< double > > &current_sample_intensities, const vector< T > &spot_intensities, const vector< State > &spot_sample)
template<class T >
void add_spot (vector< vector< double > > &current_sample_intensities, const vector< T > &spot_intensities, const vector< State > &spot_sample)
template<class T >
void remove_spot (vector< vector< double > > &current_sample_intensities, const vector< T > &spot_intensities, const vector< State > &spot_sample, const vector< int > &mask)
template<class T >
void add_spot (vector< vector< double > > &current_sample_intensities, const vector< T > &spot_intensities, const vector< State > &spot_sample, const vector< int > &mask)
template<class T >
void remove_spot (vector< vector< double > > &current_sample_intensities, const vector< vector< T > > &spot_intensities, const vector< State > &spot_sample, const vector< int > &mask)
template<class T >
void add_spot (vector< vector< double > > &current_sample_intensities, const vector< vector< T > > &spot_intensities, const vector< State > &spot_sample, const vector< int > &mask)
vector< double > compute_spot_intensity (const vector< ImageRef > &pixels, const Vector< 4 > &params)
vector< pair< double, Vector< 4 > > > compute_spot_intensity_derivatives (const vector< ImageRef > &pixels, const Vector< 4 > &params)
vector< tuple< double, Vector
< 4 >, Matrix< 4 > > > 
compute_spot_intensity_hessian (const vector< ImageRef > &pixels, const Vector< 4 > &params)
vector< int > sequence (int n)

Function Documentation

double SampledMultispot::intensity ( double  i  )  [inline]

Definition at line 65 of file sampled_multispot.h.

Referenced by add_spot(), and remove_spot().

00066 {
00067     return i;
00068 }

double SampledMultispot::intensity ( const pair< double, Vector< 4 > > &  i  )  [inline]

Definition at line 70 of file sampled_multispot.h.

00071 {
00072     return i.first;
00073 }

template<class T >
void SampledMultispot::remove_spot ( vector< vector< double > > &  current_sample_intensities,
const vector< T > &  spot_intensities,
const vector< State > &  spot_sample 
) [inline]

Definition at line 78 of file sampled_multispot.h.

References intensity().

Referenced by fit_spots_historic(), SampledMultispot::GibbsSampler2::next(), SampledMultispot::GibbsSampler::next(), FitSpots::optimize_each_spot_in_turn_for_several_passes(), and FitSpots::try_modifying_model().

00079 {
00080     for(unsigned int frame=0; frame < current_sample_intensities.size(); frame++)
00081         if(spot_sample[frame] == 0) //Spot is on, so remove it
00082             for(unsigned int p=0; p < spot_intensities.size(); p++)
00083                 current_sample_intensities[frame][p] -= intensity(spot_intensities[p]);
00084 }

template<class T >
void SampledMultispot::add_spot ( vector< vector< double > > &  current_sample_intensities,
const vector< T > &  spot_intensities,
const vector< State > &  spot_sample 
) [inline]

Definition at line 87 of file sampled_multispot.h.

References intensity().

Referenced by fit_spots_historic(), SampledMultispot::GibbsSampler2::next(), SampledMultispot::GibbsSampler::next(), and FitSpots::try_modifying_model().

00088 {
00089     for(unsigned int frame=0; frame < current_sample_intensities.size(); frame++)
00090         if(spot_sample[frame] == 0) //Spot is on, so add it
00091             for(unsigned int p=0; p < spot_intensities.size(); p++)
00092                 current_sample_intensities[frame][p] += intensity(spot_intensities[p]);
00093 }

template<class T >
void SampledMultispot::remove_spot ( vector< vector< double > > &  current_sample_intensities,
const vector< T > &  spot_intensities,
const vector< State > &  spot_sample,
const vector< int > &  mask 
) [inline]

Definition at line 98 of file sampled_multispot.h.

References intensity().

00099 {
00100     for(unsigned int frame=0; frame < current_sample_intensities.size(); frame++)
00101         if(spot_sample[frame] == 0) //Spot is on, so remove it
00102             for(unsigned int p=0; p < mask.size(); p++)
00103                 current_sample_intensities[frame][mask[p]] -= intensity(spot_intensities[mask[p]]);
00104 }

template<class T >
void SampledMultispot::add_spot ( vector< vector< double > > &  current_sample_intensities,
const vector< T > &  spot_intensities,
const vector< State > &  spot_sample,
const vector< int > &  mask 
) [inline]

Definition at line 107 of file sampled_multispot.h.

References intensity().

00108 {
00109     for(unsigned int frame=0; frame < current_sample_intensities.size(); frame++)
00110         if(spot_sample[frame] == 0) //Spot is on, so add it
00111             for(unsigned int p=0; p < mask.size(); p++)
00112                 current_sample_intensities[frame][mask[p]] += intensity(spot_intensities[mask[p]]);
00113 }

template<class T >
void SampledMultispot::remove_spot ( vector< vector< double > > &  current_sample_intensities,
const vector< vector< T > > &  spot_intensities,
const vector< State > &  spot_sample,
const vector< int > &  mask 
) [inline]

Definition at line 118 of file sampled_multispot.h.

References intensity(), and spot_intensities.

00119 {
00120     const int steps = spot_intensities.size();
00121     const int frames = current_sample_intensities.size();
00122 
00123     for(int frame=0; frame < frames; frame++)
00124     {
00125         int s = frame * steps / frames;
00126 
00127         if(spot_sample[frame] == 0) //Spot is on, so remove it
00128             for(unsigned int p=0; p < mask.size(); p++)
00129                 current_sample_intensities[frame][mask[p]] -= intensity(spot_intensities[s][mask[p]]);
00130     }
00131 }

template<class T >
void SampledMultispot::add_spot ( vector< vector< double > > &  current_sample_intensities,
const vector< vector< T > > &  spot_intensities,
const vector< State > &  spot_sample,
const vector< int > &  mask 
) [inline]

Definition at line 134 of file sampled_multispot.h.

References spot_intensities.

00135 {
00136     const int steps = spot_intensities.size();
00137     const int frames = current_sample_intensities.size();
00138 
00139     for(int frame=0; frame < frames; frame++)
00140     {
00141         int s = frame * steps / frames;
00142 
00143         if(spot_sample[frame] == 0) //Spot is on, so add it
00144             for(unsigned int p=0; p < mask.size(); p++)
00145                 current_sample_intensities[frame][mask[p]] += intensity(spot_intensities[s][mask[p]]);
00146     }
00147 }

vector<double> SampledMultispot::compute_spot_intensity ( const vector< ImageRef > &  pixels,
const Vector< 4 > &  params 
) [inline]

Definition at line 152 of file sampled_multispot.h.

Referenced by NegativeFreeEnergy::compute_with_mask(), fit_spots_historic(), FreeEnergyHessian::hessian(), NegativeFreeEnergy::operator()(), FitSpots::optimize_each_spot_in_turn_for_several_passes(), sampled_background_spot_hessian_ffbs(), and FitSpots::try_modifying_model().

00153 {
00154     vector<double> intensities(pixels.size());
00155 
00156     for(unsigned int i=0; i < pixels.size(); i++)
00157         intensities[i] = spot_shape(vec(pixels[i]), params);
00158 
00159     return intensities;
00160 }

vector<pair<double, Vector<4> > > SampledMultispot::compute_spot_intensity_derivatives ( const vector< ImageRef > &  pixels,
const Vector< 4 > &  params 
) [inline]

Definition at line 163 of file sampled_multispot.h.

References spot_shape_diff_position().

Referenced by SpotNegProbabilityDiffWithSampledBackground::operator()().

00164 {
00165     vector<pair<double, Vector<4> > > derivatives(pixels.size());
00166 
00167     for(unsigned int i=0; i < pixels.size(); i++)
00168         derivatives[i] = spot_shape_diff_position(vec(pixels[i]), params);
00169     return derivatives;
00170 }

vector<tuple<double, Vector<4>, Matrix<4> > > SampledMultispot::compute_spot_intensity_hessian ( const vector< ImageRef > &  pixels,
const Vector< 4 > &  params 
) [inline]

Definition at line 172 of file sampled_multispot.h.

References spot_shape_hess_position().

Referenced by FreeEnergyHessian::hessian(), sampled_background_spot_hessian2(), sampled_background_spot_hessian_FAKE(), and sampled_background_spot_hessian_ffbs().

00173 {
00174     vector<tuple<double, Vector<4>, Matrix<4> > > hessian(pixels.size());
00175 
00176     for(unsigned int i=0; i < pixels.size(); i++)
00177         hessian[i] = spot_shape_hess_position(vec(pixels[i]), params);
00178     return hessian;
00179 }

Generated on Wed Nov 2 18:00:04 2011 for BCUBED by  doxygen 1.6.3