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/18 08:53] – 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 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. If you lack sterol, the first number in the Nlist MUST be zero due to the assumption in calc_avg_vertical.py. | + | 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.1624020822.txt.gz · Last modified: 2021/06/18 08:53 by admin