Writing /users/jbklauda/pub/wiki/data/cache/3/36a3922e6748748aba38e43b093b0858.i failed
Unable to save cache file. Hint: disk full; file permissions; safe_mode setting.
Writing /users/jbklauda/pub/wiki/data/cache/3/36a3922e6748748aba38e43b093b0858.metadata failed
Writing /users/jbklauda/pub/wiki/data/cache/6/6193a558dc90ed4c190004bf67ecff70.captchaip failed
gmvae_update
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| gmvae_update [2026/08/02 06:22] – edit | gmvae_update [2026/08/03 12:43] (current) – edit | ||
|---|---|---|---|
| Line 6: | Line 6: | ||
| This is based off Dr. Ghorbani' | This is based off Dr. Ghorbani' | ||
| - | Tar file for all code: {{ :gmcave_tf1_update_copy.tgz |}} | + | Tar file for all code: {{ :gmvae_tf1_v2.tgz |}} |
| The detailed instructions were added by Dr. Min-Kang Hsieh. | The detailed instructions were added by Dr. Min-Kang Hsieh. | ||
| Line 73: | Line 73: | ||
| </ | </ | ||
| - | **Usage note: copy the scripts folder as your project name to begin.** | + | **Usage note: copy the scripts folder as your project name to begin.** |
| + | |||
| + | Note: If the servers where no graphical user interface (GUI) or display server is available, | ||
| + | |||
| + | < | ||
| + | import matplotlib | ||
| + | matplotlib.use(" | ||
| + | import matplotlib.pyplot as plt | ||
| + | </ | ||
| + | |||
| + | |||
| **Input data preparation** | **Input data preparation** | ||
| Line 195: | Line 205: | ||
| Once a suitable set of training hyperparameters has been determined (excluding K and z), perform a systematic grid search to identify the optimal latent-space dimension and number of clusters. | Once a suitable set of training hyperparameters has been determined (excluding K and z), perform a systematic grid search to identify the optimal latent-space dimension and number of clusters. | ||
| - | < | + | |
| **Example** | **Example** | ||
| + | < | ||
| python gmvae_pipeline_v2.py --mode grid \ | python gmvae_pipeline_v2.py --mode grid \ | ||
| --pdb / | --pdb / | ||
| Line 266: | Line 277: | ||
| **GMVAE Operation details** | **GMVAE Operation details** | ||
| + | Detailed instructions for using this gmvae script are provided below. | ||
| + | |||
| + | < | ||
| + | usage: gmvae_pipeline_v2.py [-h] --mode {train, | ||
| + | --dataset-npy DATASET_NPY --rmsd-npy RMSD_NPY | ||
| + | [--mode_chain {single_chain, | ||
| + | [--indices1 INDICES1 INDICES1] | ||
| + | [--indices2 INDICES2 INDICES2] | ||
| + | [--batch-size BATCH_SIZE] [--lr LR] | ||
| + | [--epochs EPOCHS] [--num-layers NUM_LAYERS] | ||
| + | [--z-dim Z_DIM] [--temp TEMP] [--K K] | ||
| + | [--restore RESTORE] [--dense-n DENSE_N] | ||
| + | [--filters FILTERS [FILTERS ...]] | ||
| + | [--kernel-sizes KERNEL_SIZES [KERNEL_SIZES ...]] | ||
| + | [--pool-sizes POOL_SIZES [POOL_SIZES ...]] | ||
| + | [--valid-ratio VALID_RATIO] [--dropout DROPOUT] | ||
| + | [--r-nent R_NENT] [--r-label R_LABEL] | ||
| + | [--output-dir OUTPUT_DIR] | ||
| + | [--grid-ks [GRID_KS [GRID_KS ...]]] | ||
| + | [--grid-zs [GRID_ZS [GRID_ZS ...]]] | ||
| + | [--evaluate-after-train] [--num-cpus NUM_CPUS] | ||
| + | [--model-dir MODEL_DIR] | ||
| + | |||
| + | GMVAE training & grid testing pipeline | ||
| + | |||
| + | optional arguments: | ||
| + | -h, --help | ||
| + | --mode {train, | ||
| + | Mode to run: train | grid | eval | ||
| + | --pdb PDB Path to pdb file | ||
| + | --dataset-npy DATASET_NPY | ||
| + | Path to dataset .npy file | ||
| + | --rmsd-npy RMSD_NPY | ||
| + | --mode_chain {single_chain, | ||
| + | Single chain or dimer analysis (affects indices_range2 | ||
| + | selection) | ||
| + | --indices1 INDICES1 INDICES1 | ||
| + | Range for chain 1 indices, e.g., 0 99. | ||
| + | --indices2 INDICES2 INDICES2 | ||
| + | Range for chain 2 indices, e.g., 100 220. | ||
| + | --batch-size BATCH_SIZE | ||
| + | --lr LR | ||
| + | --epochs EPOCHS | ||
| + | --num-layers NUM_LAYERS | ||
| + | --z-dim Z_DIM | ||
| + | --temp TEMP | ||
| + | --K K | ||
| + | --restore RESTORE | ||
| + | --dense-n DENSE_N | ||
| + | --filters FILTERS [FILTERS ...] | ||
| + | --kernel-sizes KERNEL_SIZES [KERNEL_SIZES ...] | ||
| + | --pool-sizes POOL_SIZES [POOL_SIZES ...] | ||
| + | --valid-ratio VALID_RATIO | ||
| + | --dropout DROPOUT | ||
| + | --r-nent R_NENT | ||
| + | --r-label R_LABEL | ||
| + | --output-dir OUTPUT_DIR | ||
| + | Base output directory | ||
| + | --grid-ks [GRID_KS [GRID_KS ...]] | ||
| + | List of K values for grid | ||
| + | --grid-zs [GRID_ZS [GRID_ZS ...]] | ||
| + | List of z-dim values for grid | ||
| + | --evaluate-after-train | ||
| + | Run evaluation after each training run (CPU) | ||
| + | --num-cpus NUM_CPUS | ||
| + | --model-dir MODEL_DIR | ||
| + | Model output dir to evaluate (used in eval mode) | ||
| + | |||
| + | </ | ||
| **1. Hyperparameter Optimization (excluding K and z)** | **1. Hyperparameter Optimization (excluding K and z)** | ||
| Line 281: | Line 361: | ||
| Systems | Systems | ||
| | | ||
| - | Trp-cage 2 64 5 8 5000 0.1 [3, | + | Trp-cage 2 64 5 8 5000 0.1 [3, |
| - | BBA 2 64 6 9 5000 0.1 [3, | + | BBA 2 64 6 9 5000 0.1 [3, |
| - | villin | + | villin |
| - | BST-2/ | + | BST-2/ |
| - | BST-2/ | + | BST-2/ |
| - | ORF7b dimer 3 64 6 10 2500 0.05 [3, | + | ORF7b dimer 3 64 6 10 2500 0.05 [3, |
| - | ORF7b dimer 3 64 6 8 2500 0.05 [3, | + | ORF7b dimer 3 64 6 8 2500 0.05 [3, |
| - | BST-2/ | + | BST-2/ |
| </ | </ | ||
| Line 318: | Line 398: | ||
| </ | </ | ||
| - | **Note: If the whole usage of data set is not a case, please specify | + | **My suggestion is to adjust the number of input data points to an appropriate batch size to ensure 0 leftover.** |
| + | |||
| + | **Note: | ||
| **1.4. Recommended Optimization Strategy** | **1.4. Recommended Optimization Strategy** | ||
| Line 356: | Line 438: | ||
| After selecting an optimal (K, z) configuration, | After selecting an optimal (K, z) configuration, | ||
| - | The script | + | < |
| + | usage: contact_heatmap_top_structures.py [-h] --mode {dataset, | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | |||
| + | </ | ||
| + | |||
| + | The script performs the following tasks: | ||
| * Reads one or more molecular dynamics trajectories; | * Reads one or more molecular dynamics trajectories; | ||
| * Loads GMVAE clustering results (y_tot.npy) from the specified cluster_folder. | * Loads GMVAE clustering results (y_tot.npy) from the specified cluster_folder. | ||
| Line 363: | Line 476: | ||
| * Identifies the top representative conformations (highest cluster assignment probability) from each cluster. | * Identifies the top representative conformations (highest cluster assignment probability) from each cluster. | ||
| * Writes representative structures to individual trajectory files for downstream visualization and analysis. | * Writes representative structures to individual trajectory files for downstream visualization and analysis. | ||
| + | |||
| + | **Example script** | ||
| + | |||
| < | < | ||
| #!/bin/bash | #!/bin/bash | ||
| Line 399: | Line 515: | ||
| | | ||
| </ | </ | ||
| - | |||
| - | data_collection.py | ||
| - | |||
| - | Required python (main) packages | ||
| - | channels: | ||
| - | * conda-forge | ||
| - | * defaults | ||
| - | dependencies: | ||
| - | * python=3.9 | ||
| - | * numpy | ||
| - | * mdtraj | ||
| - | * pyemma | ||
| - | |||
| - | or using provided pyemma.yml to build conda environment. | ||
| - | |||
| - | === Truncating Trajectories === | ||
| - | |||
| - | For large systems, it is recommended to trim the trajectory to include only the heavy atoms of interest (e.g., CA). | ||
| - | |||
| - | Data file archive: save pdb in ca_dcd/ (e.g. ca_dcd/ | ||
| - | |||
| - | Example: | ||
| - | < | ||
| - | python data_collection.py --pdb / | ||
| - | |||
| - | === Starting Data Collection Pipeline === | ||
| - | |||
| - | Length of indices1: 100 | ||
| - | Length of indices2: 121 | ||
| - | Feature dimension: 12100 | ||
| - | 100%|████████████████████| 100/100 [00: | ||
| - | 100%|████████████████████| 100/100 [00: | ||
| - | Final all_data length: 10000 | ||
| - | Computed RMSD for 10000 frames. | ||
| - | Saved outputs: orf7a_bst2_short_data.npy and orf7a_bst2_short_rmsd.npy | ||
| - | |||
| - | === Pipeline Completed === | ||
| - | |||
| - | Using tf1.15.4.yml to build conda environment (pyemma excluded). | ||
| - | GMVAE clustering via Zaratan v100 GPU | ||
| - | |||
| - | Example of run.sh | ||
| - | < | ||
| - | #!/bin/bash | ||
| - | #SBATCH --job-name=k6_z8_r1 | ||
| - | #SBATCH -n 8 | ||
| - | #SBATCH --partition=GPU | ||
| - | #SBATCH --gpus=v100: | ||
| - | #SBATCH --time=01: | ||
| - | |||
| - | source ~/.bashrc | ||
| - | conda init --all | ||
| - | conda activate / | ||
| - | pip list | grep tensorflow | ||
| - | echo " | ||
| - | --pdb / | ||
| - | --dataset-npy orf7a_bst2_short_data.npy \ | ||
| - | --rmsd-npy orf7a_bst2_short_rmsd.npy \ | ||
| - | --mode_chain dimer \ | ||
| - | --indices1 0 99 \ | ||
| - | --indices2 100 220 \ | ||
| - | --K 6 --z-dim 8 \ | ||
| - | --epochs 100 --batch-size 500 \ | ||
| - | --output-dir outputs" | ||
| - | |||
| - | python gmvae_pipeline.py --mode train \ | ||
| - | --pdb / | ||
| - | --dataset-npy orf7a_bst2_short_data.npy \ | ||
| - | --rmsd-npy orf7a_bst2_short_rmsd.npy \ | ||
| - | --mode_chain dimer \ | ||
| - | --indices1 0 99 \ | ||
| - | --indices2 100 220 \ | ||
| - | --K 6 --z-dim 8 \ | ||
| - | --epochs 100 --batch-size 500 \ | ||
| - | --output-dir outputs | ||
| - | </ | ||
| - | |||
| - | If process evaluation right after clustering, the add | ||
| - | < | ||
| - | python gmvae_pipeline.py --mode train \ | ||
| - | --pdb / | ||
| - | --dataset-npy orf7a_bst2_short_data.npy \ | ||
| - | --rmsd-npy orf7a_bst2_short_rmsd.npy \ | ||
| - | --mode_chain dimer \ | ||
| - | --indices1 0 99 \ | ||
| - | --indices2 100 220 \ | ||
| - | --K 6 --z-dim 4 \ | ||
| - | --epochs 10 --batch-size 500 \ | ||
| - | --output-dir outputs \ | ||
| - | --evaluate_after_train | ||
| - | </ | ||
| - | |||
| - | If run evaluation separately, using the following script. | ||
| - | < | ||
| - | #!/bin/bash | ||
| - | #SBATCH --job-name=k11_z4_r1 | ||
| - | #SBATCH -N 1 | ||
| - | #SBATCH -n 64 | ||
| - | #SBATCH --partition=standard | ||
| - | #SBATCH --time=01: | ||
| - | |||
| - | |||
| - | source ~/.bashrc | ||
| - | conda init --all | ||
| - | conda activate / | ||
| - | |||
| - | pip list | grep tensorflow | ||
| - | |||
| - | echo " | ||
| - | --pdb / | ||
| - | --dataset-npy orf7a_bst2_short_data.npy \ | ||
| - | --rmsd-npy orf7a_bst2_short_rmsd.npy \ | ||
| - | --mode_chain dimer \ | ||
| - | --indices1 0 99 \ | ||
| - | --indices2 100 220 \ | ||
| - | --K 6 --z-dim 8 \ | ||
| - | --batch-size 1 \ | ||
| - | --output-dir outputs \ | ||
| - | --model-dir ./ | ||
| - | --num-cpus 64" | ||
| - | |||
| - | python gmvae_pipeline.py --mode eval \ | ||
| - | --pdb / | ||
| - | --dataset-npy orf7a_bst2_short_data.npy \ | ||
| - | --rmsd-npy orf7a_bst2_short_rmsd.npy \ | ||
| - | --mode_chain dimer \ | ||
| - | --indices1 0 99 \ | ||
| - | --indices2 100 220 \ | ||
| - | --K 6 --z-dim 8 \ | ||
| - | --batch-size 1 \ | ||
| - | --output-dir outputs \ | ||
| - | --model-dir ./ | ||
| - | --num-cpus 64 | ||
| - | </ | ||
| - | |||
gmvae_update.1785666161.txt.gz · Last modified: 2026/08/02 06:22 by edit