Writing /users/jbklauda/pub/wiki/data/cache/6/6193a558dc90ed4c190004bf67ecff70.captchaip failed
comp-sa
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| comp-sa [2021/06/09 08:44] – admin | comp-sa [2026/09/03 09:56] (current) – [Step 1: edit config.py] edit | ||
|---|---|---|---|
| Line 5: | Line 5: | ||
| Instruction to obtain surface area per lipid of **__multicomponent system__** \\ | Instruction to obtain surface area per lipid of **__multicomponent system__** \\ | ||
| Original Authors: Xiaohong Zhuang and Viviana Monje\\ | Original Authors: Xiaohong Zhuang and Viviana Monje\\ | ||
| - | Updated Authors: Yalun Yu and Jeffery Klauda | + | Updated Authors: Yalun Yu and Jeffery Klauda\\ |
| + | Updated rtfpsf folder: Joshua Lucker \\ | ||
| + | Completely refactored, supports any membrane: Eric Zhang | ||
| - | The script | + | All new users should use the modern Python workflow. It is highly customizable, |
| + | |||
| + | Legacy scripts are in ZT1 path: **/afs/ | ||
| or using zip file: {{ area_mult_lipids.gz |}} | or using zip file: {{ area_mult_lipids.gz |}} | ||
| - | **How to Edit and Run the Scripts:** | + | Modern Python scripts can be found here: {{ area_asym_lipids.tar.gz |}} |
| + | |||
| + | **How to Edit and Run the Scripts | ||
| **Edit the scripts:** \\ | **Edit the scripts:** \\ | ||
| Line 112: | Line 118: | ||
| **>> area-a**: | **>> area-a**: | ||
| - | **>> 2**: The lipid types of 2 are used instead of 8. (1-atom represented choline/ | + | **>> 2**: This is the dimension |
| **>> 2196**: "image atoms" = 9*(# | **>> 2196**: "image atoms" = 9*(# | ||
| Line 123: | Line 129: | ||
| </ | </ | ||
| - | **9. calc_avg_vertical.py & calc_avg_final.py: | + | **9a. If you have cholesterol: |
| - | Update the number of each lipid component per leaflet in the same order as in lipid.dat | + | Update the number of each lipid component per leaflet in the same order as in lipid.dat. |
| < | < | ||
| # Update the number of each lipid component per leaflet in the same order as in area-a.inp | # Update the number of each lipid component per leaflet in the same order as in area-a.inp | ||
| Nlist = [28, | Nlist = [28, | ||
| </ | </ | ||
| + | |||
| + | **9b. If you lack cholesterol: | ||
| + | Update the number of each lipid component per leaflet in the same order as in lipid.dat and no zeros for cholesterol. | ||
| + | |||
| + | **10. rtfpsf.str: | ||
| + | The file names in the rtfpsf.str file will most likely need to be updated. | ||
| + | |||
| **Run the scripts:** \\ | **Run the scripts:** \\ | ||
| Line 138: | Line 151: | ||
| - | 2. Get the averages and standard errors by command: '' | + | 2a. Get the averages and standard errors |
| + | |||
| + | 2b. Get the averages and standard errors if you DO NOT have sterols by command: '' | ||
| ** Ignore the rest of this wiki for now...Yalun will updated as needed ** | ** Ignore the rest of this wiki for now...Yalun will updated as needed ** | ||
| Line 150: | Line 166: | ||
| Simulations of multiple replicates (e.g. hypocotyl and root, each has 3 replicates) are performed, the REAL final average are taken by the average value of all the replicates. And the standard error is calculated by standard deviation of the **average SA/lipid** divided by square root of the replicate number. E.g. for hypocotyl system of 3 replicate, it is divided by sqrt(3). | Simulations of multiple replicates (e.g. hypocotyl and root, each has 3 replicates) are performed, the REAL final average are taken by the average value of all the replicates. And the standard error is calculated by standard deviation of the **average SA/lipid** divided by square root of the replicate number. E.g. for hypocotyl system of 3 replicate, it is divided by sqrt(3). | ||
| Check that the system go to equilibrium by comparing the distribution data, and adjust the dyn file range when necessary. Also check the distribution, | Check that the system go to equilibrium by comparing the distribution data, and adjust the dyn file range when necessary. Also check the distribution, | ||
| + | |||
| + | =====Modern Python Workflow===== | ||
| + | This workflow is designed to work for any symmetric, asymmetric membrane system. The current copy available for download has predefined inputs for Charmm' | ||
| + | |||
| + | Note: anytime you run into "no permission" | ||
| + | |||
| + | ====Step 1: edit config.py==== | ||
| + | |||
| + | Open '' | ||
| + | |||
| + | I embedded a lot of error handling in the scripts, so don't worry too much about precision if something isn't clear. | ||
| + | |||
| + | Example Membrane with just POPE/POPG lipids (which have segid MEMB since they are part of CHARMM' | ||
| + | < | ||
| + | config_dict = { | ||
| + | ' | ||
| + | } | ||
| + | |||
| + | # ignore the current config_dict in the files with lipids like ' | ||
| + | </ | ||
| + | |||
| + | |||
| + | ====Step 2: run scripts==== | ||
| + | First, run '' | ||
| + | |||
| + | Next, if you left " | ||
| + | |||
| + | Next, run '' | ||
| + | |||
| + | Finally, run '' | ||
| + | < | ||
| + | leaflet resn N_lip Avg_SA | ||
| + | Top AIPE 113 58.3686 | ||
| + | Top AMPG 25 61.0204 | ||
| + | Top LLL 62 52.8182 | ||
| + | Bot AIPE 105 58.2105 | ||
| + | Bot AMPG 37 59.9090 | ||
| + | Bot LLL 58 52.8821 | ||
| + | |||
| + | N_blocks: 20 | ||
| + | N_comp_top: 3 | ||
| + | N_lip_top: 200 | ||
| + | N_comp_bot: 3 | ||
| + | N_lip_bot: 200 | ||
| + | Comp_SA_sum_top: | ||
| + | Comp_SA_sum_bot: | ||
| + | Total_bilayer_SA: | ||
| + | |||
| + | Weighted average across leaflets (by N_lip): | ||
| + | resn N_lip_total | ||
| + | AIPE 218 58.2925 | ||
| + | AMPG 62 60.3571 | ||
| + | | ||
| + | </ | ||
| + | |||
| + | ====Additional Info==== | ||
| + | At a high level, here's what the scripts are doing. Also, I highly recommend you watch a video on Voronoi tessellation so you can visually understand how the areas are computed. | ||
| + | |||
| + | **config.py** | ||
| + | System definition: segid/ | ||
| + | |||
| + | **0_setup.py** | ||
| + | Reads config.py, validates required CHARMM/dyn files, resolves marker atoms per lipid from marker_map, splits the dcd range into blocks, writes system_info.txt. Generates comp_sa.csh from src/ | ||
| + | |||
| + | **system_info.txt** | ||
| + | Generated configuration file consumed by all downstream steps: dcd range, marker dictionary, block assignments, | ||
| + | |||
| + | **CHARMM recentering** | ||
| + | Recenters raw dcds so the bilayer midplane sits at z=0; output written to recenter/. Runs outside this pipeline; all downstream steps assume it has already been done. | ||
| + | |||
| + | **1_comp_sa.scr** | ||
| + | SLURM submission wrapper. Reads block boundaries from system_info.txt, | ||
| + | |||
| + | **comp_sa.csh** | ||
| + | SLURM job script. Sets up the run environment (venv/ | ||
| + | |||
| + | **src/ | ||
| + | Core computation. Per dcd: loads marker atoms, splits into top/bot leaflets, runs periodic 2D Voronoi tessellation, | ||
| + | |||
| + | **2_analysis.py** | ||
| + | Final averaging step. Reads all raw_voronoi_*.dat files, block-averages each dcd, computes mean/ | ||
| + | |||
| + | |||
| + | |||
comp-sa.1623242690.txt.gz · Last modified: 2021/06/09 08:44 by admin