I am attempting to create an atomic model based on data from a transmission electron microscope (TEM). Basically you shoot electrons at bunch of identical molecules stuck to a grid, and look at the shadow on a photo plate. Contrast is formed when you have electrons bouncing off atoms, making the transmitted signal a bit darker. For now let's just consider the problem of building an atomic model by comparison to a single image.

One way to handle this is to treat each grid point as independent, and use a likelihood function like:

$$p(D|M) = \prod_{x,y} p(m(x,y) - d(x,y))$$

where the product is over the pixels, $m(x,y)$ is the electron density of your model at that grid point, $d(x,y)$ is the data value, and $p(m-d)$ is the PDF explaining the expected difference between model and data, usually including some error model. You then suitably modify your model (say, with Monte Carlo search) until you maximize this score. Usually there are strong additional priors (e.g., the atoms are all in a polymer with certain bond lengths).

The thing that confuses me is that while the detector has very high resolution (either film or direct electron detectors), the experiment itself does not. Meaning, you won't be able to resolve atoms that are less than, say, a nanometer apart, due to various factors including motion of the sample. Therefore the formula above seems to have too much data weight (multiplying too many values). Or, in other words, the grid measurements aren't really independent.

One idea I had was to first do clustering (e.g. with Bayesian Gaussian mixture model) on the data to discover the truly "independent" data set, and use that in the likelihood, but I'm not sure if that's the right approach. Any suggestions?


1 Answer 1


While I am not familiar with the details of your experiment, I am quite familiar with the methods of maximum likelihood estimation. In the field in which I work, we model the system response as part of our model - so that when we compare the predicted measurements with the actual ones, we find our how close our model is to the underlying truth.

It goes roughly like this:

  1. Take a set of measurements $y_i$
  2. Create a model $P_{ij}$ that relates object $\lambda_j$ to observations $y_i$:
    $$y_i = P_{ij}\lambda_j$$ In this model you incorporate your knowledge about resolution degradation etc
  3. Perform iterative reconstruction: start with an initial estimate of $\lambda$ (this could be "all values = 1" for example), estimate the observations you would have had, and compare to the ones you actually got. The ratio of these values indicates the error. Project the error back into the estimate (using the transpose of $P$). Repeat.

I don't know whether your particular setup lends itself to this approach (google "Expectation Maximization" to get a lot of information / tips on implementation) but it works very well in, for example, medical imaging systems where resolution of the system has to be modeled in order to estimate the actual image (patient body) from blurry sensor data. The more you try to recover resolution, the less sparse your matrix $P$, and the larger the number of iterations needed. This in turn can lead to an amplification of noise, and needs some form of regularization (priors) to penalize noisy features in the object while preserving true contrast.

It's a big field; I can't vouch that you will be able to make it work for your application - but it's well trodden space in imaging, so you might have a chance.

  • $\begingroup$ This is very helpful, thank you! I'm familiar with the EM algorithm, but not with exactly how to think about experimental error in that context. Do you have any specific references, even in medical imaging, that fully develop the idea? $\endgroup$
    – cgreen
    Commented Nov 7, 2014 at 3:38

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.