Matlab Source Codes Used for Ankylographic Reconstructions


Recently, a novel 3D imaging technique, termed ankylography (derived from the Greek words ankylos meaning curved and graphein meaning writing) has been developed, which enables 3D structure determination of a small, general object (or a relatively large object at lower resolution) from a single view [1]. This work has ignited a lively debate in the scientific community [2,3]. To facilitate a better understanding of the method, we post here the Matlab source codes for the ankylographic reconstructions, and encourage interested readers to download the codes and test the method. Note that you can use these source codes to reconstruct any other 3D objects, although the array size is currently limited. For those who are interested in the ankylography experiment, two more papers have recently been published [4,5]. In addition, a formal response to the two technical comments by Wei and Wang et al. has been posted on the arXiv http://arxiv.org/abs/1112.4459. If you have any questions about the ankylography method, please contact John Miao at miao@physics.ucla.edu. If you have any questions about the source codes, please contact Chien-Chun Chen at ccchen0627@ucla.edu.



If any of the following codes are used in your publications and/or presentations, we request you cite our paper (i.e. ref. 1).




I). Numerical simulation on the ankylographic reconstruction of a 3D "UCLA" pattern with 7 x 7 x 7 voxels (posted on Jan. 20, 2011)

Figure 1. Numerical simulation on ankylographic reconstruction of a 3D "UCLA" pattern from a spherical diffraction pattern of 1 voxel thick with a diffraction angle (2q) of 90 degree. The array size of the 3D pattern is 7 x 7 x7 voxels and oversampling degree (Od) is 1.14 [1]. The upper panel shows the 1st, 3rd, 5th and 7th slices of the reconstructed image. The lower panel shows the corresponding slices of the 3D pattern, consisting four alphabet letters "U", "C", "L", and "A".


If you are interested in reconstructing the 3D "UCLA" pattern, please click here to download the Matlab code.





II). Numerical simulation on the ankylographic reconstruction of a continuous 3D object with 14 x 14 x 14 voxels (posted on Oct. 26, 2011)





Figure 2. Numerical simulation on the ankylographic reconstruction of a continuous object with array size of 14 x 14 x 14 voxel. a, 14 slices of the 3D object with a minimum and a maximum voxel vale of 1.45 and 11.06, respectively. b, 14 reconstructed slices, which are in good agreement with the original ones. The reconstruction was computed from a simulated spherical different pattern of 1 voxel thick with a diffraction angle (2q) of 90 degree. The oversampling degree (Od) is 1.48 [1] and the number of iteration is 106. c,d, Iso-surface renderings of the original and reconstructed object. The object is continuous and the holes in the images are due to a threshold value chosen for the display purpose.


If you are interested in reconstructing this continuous 3D object, please click here to download the Matlab code. In the reconstruction, we usually started with 100 random initial phase seeds and then chose the best one for the final reconstruction.





III). Numerical simulation on the ankylographic reconstruction of a sodium silicate glass structure with 25 x 25 x 25 voxels (posted on Oct. 26, 2011)

Figure 3. Numerical simulation on the ankylographic reconstruction of a sodium silicate glass particle. The glass particle structure was generated by molecular dynamics simulations and consists of a total of 365 atoms with a resolution of 1.5 Angstrom (i.e. 0.75 Angstrom per pixel) and array size of 25 x 25 x 25 voxels. a-c, Three central slices of the glass structure along the XY, YZ and XZ planes. d-f, The corresponding reconstructed slices along the XY, YZ and XZ planes. The reconstruction was computed from a simulated spherical different pattern of 1 voxel thick with a diffraction angle (2q) of 90 degree. The oversampling degree (Od) is 1.50 [1] and the number of iteration is 2x105.


If you are interested in reconstructing the simulated 3D sodium silicate glass particle, please click here to download the Matlab code. In the reconstruction, we usually started with 100 random initial phase seeds and then chose the best one for the final reconstruction.



References

1. K. S. Raines, S. Salha, R. L. Sandberg, H. Jiang, J. A. Rodriguez, B. P. Fahimian, H. C. Kapteyn, J. Du and J. Miao. Three-dimensional structure determination from a single view. Natrue 463, 214-217 (2010).

2. P. Thibault. Feasibility of 3D reconstruction from a single 2D diffraction measurement, arXiv:0909.1643v1 [physics.data-an] (2009).

3. J. Miao. Response to "Feasibility of 3D reconstruction from a single 2D diffraction measurement", arXiv:0909.3500v1 [physics.optics] (2009).

4.C.-C. Chen, H. Jiang, L. Rong, S. Salha, R. Xu, T. G. Mason and J. Miao. Three-dimensional imaging of a phase object from a single sample orientation using an optical laser. Phys. Rev. B 84, 224104 (2011).

5. M. D. Seaberg, D. E. Adams, E. L. Townsend, D. A. Raymondson, W. F. Schlotter, Y. Liu, C. S. Menoni, L. Rong, C.-C. Chen, J. Miao, H. C. Kapteyn and M. M. Murnane. Ultrahigh 22 nm resolution coherent diffractive imaging using a desktop 13 nm high harmonic source. Opt. Express 19, 22470-22479 (2011).