# Illustrating the cryo-EM image combination technique (chem nobel 2017)

No idea if this is a valid question - probably a bit ambiguous.

I'm looking for ideas on how I might use Mathematica as a tool to demonstrate the image collation/computation aspects of this year's chemistry nobel. Imagine giving a high level description of the technique at the same time as whipping up an illustrative example that captures some critical aspects - ideally real-time like you would see during a live coding Twitch stream. I can wave my hands and give some flavour to what they did given my chemistry background but I feel there must be a way to add some computational sizzle.

A simple example of the idea would be showing how bell curves arise by flipping coins (using RandomChoice, Table, Counts and Histogram wrapped up in a Manipulate command).

Perhaps something like a 3D line figure of the Eiffel Tower that is sliced (viewed?) into 1000 pieces (2D representation?) and during the presentation you would show a random sample of say a dozen of these and then describe how an algorithm could be used to 'stitch' these together and reveal the 3D shape that is then instantly recognisable (and give some appreciation of what the cryo-EM software has to do with millions of images). I think it would be an amazing way of showing people (I'm thinking of high school students) how computation is allowing new techniques to develop and changing what's possible and of course, having Mathematica in your tool set is smart regardless of where your studies take you.

Sadly I have no idea how to even get started - maybe there's curated data already sitting around... Any help, hints, partial ideas from the community gratefully appreciated.

So that first idea is a nice-and-easy to show. Something like this'll do:

Manipulate[
Show[
Histogram[
#,
{Range[0, 1, .01]},
"PDF"
],
Plot[
Evaluate@
PDF[
EstimatedDistribution[#, NormalDistribution[\[Mu], \[Sigma]]],
x],
{x, 0, 1}
]
] &@
Rescale@
Total@RandomReal[{-1, 1}, {100, n}],
{n, 10, 100000, 100}
]


You can even get away with something like this:

Manipulate[
Histogram[
Rescale@
Total@RandomReal[{-1, 1}, {100, n}],
{Range[0, 1, .01]}
],
{n, 10, 100000, 100}
]


But I feel the fitted Gaussian is a better example

The second one could be shown by showing your students how Image3D works, in particular looking at something like this:

im = ExampleData[{"TestImage3D", "Orbits"}]

ListAnimate[Image3DSlices[im]]


Where you show how im can be built up via 2D slices.