This repository contains the complete analysis pipeline for Atomic Force Microscopy (AFM) data collected from protein samples on a gold substrate. The data is processed to extract the region of interest, correct data, locate key points (such as minima and points of inflexion), and fit the derived potential and force with the Lennard-Jones potential function. Additional calculations include the Young's modulus, Hamaker constant, and energy dissipation.
Atomic Force Microscopy (AFM) is widely used to study the interaction forces between a probe and a sample surface at the nanoscale. This repository focuses on the analysis of protein samples deposited on a gold substrate. The workflow includes data preprocessing, extraction of regions of interest, force and potential derivation, and application of the Lennard-Jones potential fitting to characterize the molecular interactions.
The analysis also computes key mechanical and physical properties such as
- Young's modulus
- Hamaker constant
- Energy dissipation
- Data Extraction and Correction Extracts the region of interest and corrects the raw AFM data for further analysis.
- Key Points Identification Locates important features such as minima and points of inflexion in the force curve data.
- Lennard-Jones Potential Fitting Fits the Lennard-Jones potential to the derived interaction forces.
- Young's Modulus Calculation Computes the Young’s modulus of the protein samples from force-displacement data.
- Hamaker Constant Derives the Hamaker constant, which is essential for understanding van der Waals interactions.
- Energy Dissipation Calculates energy dissipation during AFM measurements.
- Python 3.10
- Pandas
- Numpy
- Scipy
- Matplotlib
To install the required packages, run
pip install -r requirements.txt
-
Clone the repository
git clone httpsgithub.commohdrafikProtein-AFM-Analysis-and-Lennard-Jones-potential-fitting.git cd Protein-AFM-Analysis-and-Lennard-Jones-potential-fitting
-
Prepare your AFM data files in
.xlsx
format and place them in the appropriate directory. -
Modify the
mainprocess.py
script to specify your data paths and analysis parameters. -
Run the analysis script
python mainprocess.py
- mainprocess.py The main script that initiates the analysis workflow, including calling the necessary functions and setting up parameters.
- ham.py Contains the function
hamaker_const
which calculates the Hamaker constant and other related quantities. - analysis_functions.py Houses the core analysis functions for data correction, potential derivation, force fitting, and calculation of Young’s modulus and energy dissipation.
- requirements.txt Lists the required Python packages.
- Place your
.xlsx
AFM data files in the data directory. - Adjust parameters such as
K
,Q
,R
, andhamdeg
inmainprocess.py
based on your experimental setup. - Run
mainprocess.py
to process your data, which will- Extract the region of interest.
- Locate key points like minima and inflection points.
- Correct and normalize the AFM data.
- Fit the Lennard-Jones potential to the derived forces.
- Calculate Young’s modulus, Hamaker constant, and energy dissipation.
- The results, including fitted parameters and computed quantities, will be saved in an output file.
- Moh Rafik
Feel free to contribute by opening issues, making pull requests, or suggesting improvements.
This project is licensed under the MIT License - see the LICENSE file for details.