Published January 18, 2026 | Version v7
Dataset Open

Supplementary Data Codes

Description

Three-dimensional determination of individual carbon atoms

Na Yeon Kim1*, Hanfeng Zhong1,2*, Jianhua Zhang3*, Colum M. O’Leary1*, Yuxuan Liao1, Ji Zou4, Haozhi Sha1, Minh Pham1, Weiyi Li1, Yakun Yuan1, Ji-Hoon Park5, Dennis Kim6, Huaidong Jiang3, Jing Kong5, Miaofang Chi7, Jianwei Miao1†,

1Department of Physics and Astronomy and California NanoSystems Institute, University of California, Los Angeles, CA, USA.
2Department of Electrical and Computer Engineering, University of California, Los Angeles, CA, USA.
3Center for Transformative Science, ShanghaiTech University, Shanghai, China.
4Department of Physics, University of Basel, Basel, Switzerland.
5Department of Electrical Engineering and Computer Science, Massachusetts Institute of Technology, Cambridge, MA, USA.
6Department of Chemistry and Biochemistry, University of California, Los Angeles, CA, USA.
7Center for Nanophase Materials Sciences, Oak Ridge National Laboratory, Oak Ridge, TN, USA.
*These authors contributed equally to this work.
†Correspondence author: J.M. (j.miao@ucla.edu).

Contents

Overview

This repository provides all experimental and simulated data, along with source code for ptychographic and tomographic reconstruction, atom tracing, position refinement, and data analysis associated with our study. We report the first experimental determination of the 3D coordinates of individual carbon atoms with picometer-scale precision using ptychographic atomic electron tomography (pAET). Using twisted bilayer graphene as a model system, our results reveal chiral lattice distortions and interlayer interactions that were previously inaccessible to conventional microscopy. We further demonstrate the generalizability of pAET to disordered and low-Z materials through simulations on amorphous carbon and a nitrogen-vacancy center in diamond. All resources are freely available for download and unrestricted use by the research community. We hope this repository supports further advances in high-precision 3D atomic imaging.

System Requirements

Hardware Requirements

We recommend a computer with 32G DRAM, AMD Ryzen 7 6800H with Radeon Graphics 3.20 GHz CPU, and a NVIDIA GeForce RTX 3070 Ti GPU to run most data analysis source codes.

Software Requirements

OS Requirements

This package has been tested on the following Operating System:

Linux: Ubuntu 20.04.6 LTS (GNU/Linux 5.4.0-173-generic x86_64).
Windows: Windows 11 Version 24H2 (OS Build 26100.3476).
Mac OSX: We have not tested it on a Mac yet, but it should in principle work.

Matlab Version Requirements

This package has been tested with Matlab R2022b. All the codes have to run in their own folders. We recommend the use of Matlab version R2021a or higher to test the data and source codes.

Repositary Contents

a. Experiment Data

Folder: Measured_data

This folder contains 13 experimental projections after ptychography reconstruction and alignment as well as their corresponding angles.

b. The Extended Ptychographical Iterative Engine (EPIE) Package

Folder: EPIE_package

Run the ptychography reconstruction code Main_EPIE.m to obtain the phase retrieval projections of the twisted bilayer graphene sample.

c. The Probe REal Space Iterative REconstruction (RESIRE) Package

Folder: RESIRE_package

Run the tomography reconstruction code Main_AET_RESIRE_probe.m to obtain the 3D reconstruction of the twisted bilayer graphene sample.

d. Reconstructed 3D Volume

Folder: Final_reconstruction_volume

This folder contains the 3D volume of the twisted bilayer graphene reconstructed from Main_AET_RESIRE_probe.m.

e. Atom Tracing

Folder: Tracing_atom_position

Run the code Main_1_polynomial_tracing_iteration.m to trace the initial atomic positions from the reconstructed 3D volume. After the manual checking of the 3D atomic positions, run the code Main_2_match_atom_with_projection.m to match the traced atom with the experimental projections. This is the pre-processing step for atimic position refinement.

f. Atomic Position Refinement

Folder: Position_refinement

Run the code Main_atom_position_refinement.m to refine the 3D atomic coordinates in the twisted bilayer graphene sample.

g. Experimental Atomic Model

Folder: Final_coordinates

The final 3D atomic model and chemical element types (i.e. Carbon and Silicon) of the twisted bilayer graphene sample.

h. Match Experimental and Flat Atomic Models

Folder: Match_atom

Run the code Main_match_atom.m to match the experimental atominc model with the flat atomic model.

i. Displacement Caculation

Folder: Calculate_displacement

Run the code Main_calculate_displacement.m to obtain the displacement between the experimental atomic model and the flat atomic model.

j. Meron and Skyrmion Caculation

Folder: Calculate_Meron_Skyrmion

Run the 6 codes inside the folder Main_calculate_antimeron_lower.m, Main_calculate_antimeron_upper_1.m, Main_calculate_antimeron_upper_2.m, Main_calculate_meron_lower.m, Main_calculate_meron_upper.m, and Main_calculate_skyrmion_lower.m to obatin the merons-like and skyrmion-like structure in the experimental atomic model as well as their corresponding skyrmion number.

k. Twisted Bilayer Graphene Multislice Simulation with 64 Frozon Phonons

Folder: Twisted_bilayer_graphene_multislice_simulation_with_64_frozon_phonons

Run the codes inside the folder Main_1_AET_RESIRE_Probe.m, Main_2_polynomial_tracing_iteration.m, Main_3_Match_Atom_With_Position.m, and Main_4_Atom_Position_refinement.m to obatin the traced atom positions for the twisted bilayer graphene multislice simulation with 64 frozon phonons.

l. Twisted Bilayer Graphene Multislice Simulation with 32 Frozon Phonons

Folder: Twisted_bilayer_graphene_multislice_simulation_with_32_frozon_phonons

Run the codes inside the folder Main_1_AET_RESIRE_Probe.m, Main_2_polynomial_tracing_iteration.m, Main_3_Match_Atom_With_Position.m, and Main_4_Atom_Position_refinement.m to obatin the traced atom positions for the twisted bilayer graphene multislice simulation with 32 frozon phonons.

m. Nitrogen Vacancy Center Multislice Simulation

Folder: Nitrogen_vacancy_center_simulation

Run the codes inside the folder Main_1_RESIRE_Multislice_With_Probe.m, Main_1_RESIRE_Multislice_Without_Probe.m, Main_1_RESIRE_Singleslice_With_Probe.m, Main_1_RESIRE_Singleslice_Without_Probe.m, Main_2_polynomial_tracing_iteration_Multislice_With_Probe.m, Main_2_polynomial_tracing_iteration_Multislice_Without_Probe.m, Main_2_polynomial_tracing_iteration_Singleslice_With_Probe.m, Main_4_Match_Atom_With_Position_Multislice.m, Main_1_RESIRE_Singleslice_With_Probe.m, Main_4_Match_Atom_With_Position_Multislice_Without_Probe.m, Main_5_Atom_Position_refinement_Multislice_With_Probe.m, and Main_5_Atom_Position_refinement_Multislice_Without_Probe.m to obatin the traced atom positions for the nitrogen vacancy center simulation.

n. Amorphous Carbon Multislice Simulation

Folder: Amorphous_carbon_simulation

Run the codes inside the folder Main_1_AET_RESIRE_Probe.m, Main_2_polynomial_tracing_iteration.m, Main_3_Match_Atom_With_Position.m, and Main_4_Atom_Position_refinement.m to obatin the traced atom positions for the amorphous carbon multislice simulation.

o. Resoluction Calculation

Folder: Calculate_resolution

Run the codes Main_calculate_resolution.m to calculate the resolution of the tomography reconstruction without support constraint.

p. 2D Tracing Refinement

Folder: 2D_tracing

Run the codes inside the folder Main_1_AET_RESIRE.m, Main_2_2D_Tracing_Lower_Layer.m, Main_2_2D_Tracing_Upper_Layer.m, Main_3_match_atom_with_projection.m, and Main_4_atom_position_refinement.m to obatin the traced atom positions for the experiment twisted bilayer graphene from 2D Tracing. Run the codes inside the folder Main_6_match_atom.m, and Main_7_calculate_displacement.m to obtain the corresponding displacement between the experimental atomic model and the flat atomic model.

q. Odd And Even Dataset Comparison 

Folder: Experiment_odd_even_dataset

Run the codes inside the Even_dataset and Odd_dataset folders Main_1_AET_RESIRE_probe.m, Main_2_polynomial_tracing_iteration.m, Main_3_match_atom_with_projection.m, Main_4_atom_position_refinement.m, Main_5_match_atom.m, and Main_5_Atom_Position_refinement_Multislice_Without_Probe.m to obatin the traced atom positions for odd and even experiment twisted bilayer graphene dataset and the corresponding displacement between the experimental atomic model and the flat atomic model.

Files

a_Measured_data.zip

Files (33.4 GB)

Name Size Download all
md5:75fb41730c418528b9ab701712346398
155.2 MB Preview Download
md5:1a2db1ac7b7a848a831aa52c68c721d2
7.1 GB Preview Download
md5:a8e24a1f0d2074668dc647f150865d6a
1.7 GB Preview Download
md5:084d085a045033fbb2b5e1e1e4eb3b6a
1.5 GB Preview Download
md5:7d0c5c6c2e4b1d1f92cc1af8376814b0
1.1 GB Preview Download
md5:278a8a34a5a5c6e556a0e067f4add373
70.7 MB Preview Download
md5:5bdfb243d382df3d69b4c1327d8cf86d
75.5 kB Preview Download
md5:43978d368c852d1d6ce9e01110d3f3e5
257.3 kB Preview Download
md5:3f0e2ef54c7177d683b3b6e1261e12aa
195.3 kB Preview Download
md5:7facc57fbb811897de802b69fc44c8fd
278.4 kB Preview Download
md5:a1f87ae6e9c5d8905ad33c697d7d866b
1.3 GB Preview Download
md5:5e457ef8354d7145bacba6a1adfdb108
976.5 MB Preview Download
md5:7b7fd71a9562977769de08597e587da2
13.4 GB Preview Download
md5:8aa3268174d7b17714a6e916de290608
20.3 MB Preview Download
md5:a11c1e47c8b9e9b4c50ebd2115e9e850
590.7 MB Preview Download
md5:20d081bbf2babd6af722462c96ba9fd7
562.0 MB Preview Download
md5:038ee12ab65112f3e9d6a095bcaaa014
5.0 GB Preview Download