Track lipid insertion into membrane protein system
Hi @drroe ,
I’ve simulated an ion channel protein and observed that some lipids enter the protein and remain inside for a period of time. I’d like to track these lipid insertion events and perform some statistics on them.
So far, I’ve tried the following CPPTRAJ script:
parm structure.pdb
trajin prod1/output.xtc 1 2500 10
strip :SOD,CLA,TIP3,TIP
autoimage
rms fit :;59-91,96-130,137-172,181-207,229-274,292-329,335-367&^5 mass
bounds :;59-91,96-130,137-172,181-207,229-274,292-329,335-367&^5 dx 0.5 name MyGrid out boundaries.dat
average average.pdb pdb :;59-91,96-130,137-172,181-207,229-274,292-329,335-367&^5
createcrd MyCoords
run
crdaction MyCoords grid ligand-grid.xplor data MyGrid :POP
However, the output includes a lot of noise from membrane lipids, making it difficult to isolate those that actually enter the channel.
Is there a better approach to quantify lipid insertion into the protein? I considered defining a center of mass and calculating distances to track lipids entering a defined region, but I’m unsure if that’s the most straightforward method.
Any suggestions would be appreciated!
Hi, sorry for the delay. It's an interesting problem.
What exactly are the residue ranges? Are they protein residues or lipid residues (or a mix of both)?
It might be easier for me to come up with something if you could send me a topology and a frame (or a few) so I could visualize the system. If you don't want to attach it here feel free to email it to me.
Hi @drroe
Thanks for your reply! Those residues correspond to the transmembrane domain of the protein. Of course, I can send you a Psf file and a few frames by mail. What should I put as the subject of the email so that you know it’s me? :)
What should I put as the subject of the email so that you know it’s me?
Just use the same subject as the title of this issue - I'll let you know when I get it. Thanks!
Thanks for the files.
So I have a partial solution so far, working on more. Here is an annotated script that will generate some grid densities for the protein and lipids based on aligning the system on the protein.
# Load topology/trajectory
parm 15461_dyn_754.psf
trajin 15462_trj_754.xtc
# Remove water/ions/box info
strip :SOD,CLA,TIP3,TIP parmout strip.parm7 nobox
# Center and align on the protein
center ^5 origin
align ^5&!@H= mass first
# Create an average structure of the protein
average Avg.mol2 ^5
# Create grids for the protein/POPC
bounds ^5 name Protein dx 0.5 offset 2
bounds :POPC name Popc dx 0.5 offset 2
# Create stripped and aligned output trajectory
trajout strip.aligned.dcd
# Save the stripped and aligned coords
createcrd MyCrd
run
# Create grids for the protein and POPC from aligned coords
crdaction MyCrd grid protein.dx data Protein ^5
crdaction MyCrd grid popc.dx data Popc :POPC
Try that and let me know how that works. I'll keep thinking of ways to quantify insertion in the meantime.
So one thing I thought of that you can do is to grid the POPC and Protein on grids with identical dimensions. Then you can multiply the two grids, and you'll only get densities where voxels in both grids have some density.
# Load topology/trajectory
parm 15461_dyn_754.psf
trajin 15462_trj_754.xtc
# Remove water/ions/box info
strip :SOD,CLA,TIP3,TIP parmout strip.parm7 nobox
# Center and align on the protein
center ^5 origin
align ^5&!@H= mass first
# Create an average structure of the protein
average Avg.mol2 ^5
# Create grids for the protein/POPC
#bounds ^5 name Protein dx 0.5 offset 2
bounds :POPC name Protein dx 0.5 offset 2
bounds :POPC name Popc dx 0.5 offset 2
# Create stripped and aligned output trajectory
trajout strip.aligned.dcd
# Save the stripped and aligned coords
createcrd MyCrd
run
# Create grids for the protein and POPC from aligned coords
crdaction MyCrd grid protein.dx data Protein ^5
crdaction MyCrd grid popc.dx data Popc :POPC
Mult = Protein * Popc
writedata Mult.dx Mult
Dear @drroe
Thanks for your fast reply!
Just a small question
bounds ^5 name Protein dx 0.5 offset 2
bounds :POPC name Protein dx 0.5 offset 2
bounds :POPC name Popc dx 0.5 offset 2
This should not be
bounds ^5 name Protein dx 0.5 offset 2
bounds :POPC name Protein dx 0.5 offset 2
If yes, I tried to run it but I go the following warning
TIME: Total action execution time: 0.4008 seconds.
[crdaction MyCrd grid popc.dx data Popc :POPC]
Using set 'MyCrd'
----- MyCrd (1-562, 1) -----
OpenDx: Grid will be created using bin corners.
GRID:
No offset will be applied to points.
Grid will not move.
Calculating positive density.
-=Grid Dims=- X Y Z
Bins: 258 267 176
Origin: -63.3293 -65.2381 -38.0119
Spacing: 0.5 0.5 0.5
Center: 1.17071 1.51188 5.98811
Box: Orthorhombic ABC={129 133.5 88} abg={90 90 90}
Grid will be printed to file popc.dx
Grid data set: 'Popc'
Mask expression: [:POPC]
Pseudo-PDB will be printed to STDOUT
Mask [:POPC] corresponds to 29748 atoms.
0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100% Complete.
GRID: No normalization.
Grid max is 29748
Writing PDB of grid points > 80.00% of grid max.
ATOM 1 XX GRID 1 -0.079 0.012 0.238 1.00 0.00
HETATM 2 XX XXX 2 -63.329 -65.238 -38.012 0.00 0.00
HETATM 3 XX XXX 2 65.671 -65.238 -38.012 0.00 0.00
HETATM 4 XX XXX 2 -63.329 68.262 -38.012 0.00 0.00
HETATM 5 XX XXX 2 65.671 68.262 -38.012 0.00 0.00
HETATM 6 XX XXX 2 -63.329 -65.238 49.988 0.00 0.00
HETATM 7 XX XXX 2 65.671 -65.238 49.988 0.00 0.00
HETATM 8 XX XXX 2 -63.329 68.262 49.988 0.00 0.00
HETATM 9 XX XXX 2 65.671 68.262 49.988 0.00 0.00
TIME: Total action execution time: 1.5863 seconds.
[Mult = Protein * Popc]
Error: Grid operation 'Multiply' requires both grids have same dimensions.
'Mult = Protein * Popc': Invalid command or expression.
1 errors encountered reading input.
TIME: Total execution time: 6.0839 seconds.
Error: Error(s) occurred during execution.
Could you explain me please why POPC is mentioned twice? Because was not clear to me :|
For the quanitification I had an idea based on this paper (https://pubs.acs.org/doi/10.1021/acs.jcim.9b01209#_i25)
They could quantify probes binding in the following way
To detect co-solvent binding, we calculated a free energy grid (FEG) that was later used to cluster energy minima and define binding hotspots. Specifically, first, we computed the benzene occupancy by calculating a 3D histogram with 1 Å cubic bins of the location of benzene geometrical centers along our MD simulations. We computed a count matrix of the benzene center of mass and a 1 Å padding around the center. Then, we transformed these occupancies into probabilities by dividing them by the number of MD trajectory frames. Finally, using the Boltzmann equation (eq 1), we transformed the probabilities into free energies
AG=-KbT*ln(N/N0)
where T is the simulation temperature (300 K), kB is the Boltzmann constant in kcal/mol·K, N is the co-solvent occupancy probability, and N0 is the standard occupancy in equilibrium.
Do you think that something similar here could work, since the grid are already there?
Both scripts I posted should run with no issues. Based on the error message you received it looks like you're running an older version of cpptraj. Try using the latest version of cpptraj from GitHub.
For the quanitification I had an idea based on this paper (https://pubs.acs.org/doi/10.1021/acs.jcim.9b01209#_i25)
They could quantify probes binding in the following way
To detect co-solvent binding, we calculated a free energy grid (FEG) that was later used to cluster energy minima and define binding hotspots. Specifically, first, we computed the benzene occupancy by calculating a 3D histogram with 1 Å cubic bins of the location of benzene geometrical centers along our MD simulations. We computed a count matrix of the benzene center of mass and a 1 Å padding around the center. Then, we transformed these occupancies into probabilities by dividing them by the number of MD trajectory frames. Finally, using the Boltzmann equation (eq 1), we transformed the probabilities into free energies
AG=-KbT*ln(N/N0)where T is the simulation temperature (300 K), kB is the Boltzmann constant in kcal/mol·K, N is the co-solvent occupancy probability, and N0 is the standard occupancy in equilibrium.
Do you think that something similar here could work, since the grid are already there?
In theory, that approach could be sound - in fact, it is essentially the same idea behind GIST. However, you would absolutely have to show that the sampling around the protein is converged. It works for things like water because there are so many of them and they move a lot. I'm not sure the same would hold true for lipids, where diffusion is typically orders of magnitude slower. I guess as a first pass you could try this approach on the first half of your trajectory vs the second half to get an idea of what the error bars might look like.
Dear @drroe ,
Thanks for your help! I tried with the last version and it worked. However, I still don't understand 😅 why
bounds :POPC name Protein dx 0.5 offset 2
bounds :POPC name Popc dx 0.5 offset 2
is needed. One in theory, would just need as you wrote before the bounds of the protein and the POPC, right?
# Create grids for the protein/POPC
bounds ^5 name Protein dx 0.5 offset 2
bounds :POPC name Popc dx 0.5 offset 2
# Create stripped and aligned output trajectory
- Regarding the quantification: From what I understood, MDpocket detects cavities using a grid-based method and identifies the atoms or residues lining them. Do you think it would make sense to cluster the grid points based on isovalues to define relevant pocket regions, and then compute a COM using either the lining residues or the atoms from inserted lipids?
Just as a note, I messed up.
# Load topology/trajectory
parm 15461_dyn_754.psf
trajin 15462_trj_754.xtc
# Remove water/ions/box info
strip :SOD,CLA,TIP3,TIP parmout strip.parm7 nobox
# Center and align on the protein
center ^5 origin
align ^5&!@H= mass first
# Create an average structure of the protein
average Avg.mol2 ^5
# Create grids for the protein/POPC
bounds ^5 name Protein dx 0.5 offset 2
bounds :POPC name Popc dx 0.5 offset 2
# Create stripped and aligned output trajectory
trajout strip.aligned.dcd
# Save the stripped and aligned coords
createcrd MyCrd
run
# Create grids for the protein and POPC from aligned coords
crdaction MyCrd grid protein.dx data Protein ^5
crdaction MyCrd grid popc.dx data Popc :POPC
This script still leading to error regarding the grid, with the last version
CPPTRAJ: Trajectory Analysis. V6.29.13 (GitHub) MPI OpenMP CUDA
___ ___ ___ ___
| \/ | \/ | \/ |
_|_/\_|_/\_|_/\_|_
| Running on 1 processes.
| 1 OpenMP threads available.
| Date/time: 08/04/25 17:05:36
| Available memory: 206.303 GB
| CUDA device: NVIDIA A100 80GB PCIe
| Available GPU memory: 84.974 GB
| Compute capability: 8.0
INPUT: Reading input from 'STDIN'
[parm prod1/structure.psf]
Reading 'prod1/structure.psf' as Charmm PSF
Reading Charmm PSF file structure.psf as topology file.
PSF contains 570230 atoms, 145435 residues.
Warning: Determining bond length parameters from element types for 'structure.psf'.
[trajin prod1/output.xtc 1 2500]
Reading 'prod1/output.xtc' as Gromacs XTC
Warning: Trajectory box type is 'Orthorhombic' but topology box type is 'None'.
Warning: Setting topology box information from trajectory.
[strip :SOD,CLA,TIP3,TIP parmout strip.parm7 nobox]
STRIP: Stripping atoms in mask [:SOD,CLA,TIP3,TIP]
Any existing box information will be removed.
Writing 'stripped' topology file with name 'strip.parm7'
[center ^5 origin]
CENTER: Centering coordinates using geometric center of atoms in mask (^5) to
coordinate origin.
[align ^5&!@H= mass first]
ALIGN: Aligning atoms selected by mask '^5&!@H*'
Reference is first frame (^5&!@H*)
Fit will be mass-weighted.
[average Avg.mol2 ^5]
Writing 'Avg.mol2' as Mol2
AVERAGE: Averaging over coordinates in mask [^5]
Start: 1 Stop: Final frame
Writing averaged coords to file 'Avg.mol2'
[bounds ^5 name Protein dx 0.5 offset 2]
BOUNDS: Calculating bounds for atoms in mask [^5]
Output to 'STDOUT'
Grid Protein will be created after processing using
spacings dX= 0.5 dY= 0.5 dZ= 0.5 offset= 2 Bins.
[bounds :POPC name Popc dx 0.5 offset 2]
BOUNDS: Calculating bounds for atoms in mask [:POPC]
Output to 'STDOUT'
Grid Popc will be created after processing using
spacings dX= 0.5 dY= 0.5 dZ= 0.5 offset= 2 Bins.
[trajout strip.aligned.dcd]
Writing 'strip.aligned.dcd' as Charmm DCD
[createcrd MyCrd]
CREATECRD: Saving coordinates from Top structure.psf to "MyCrd"
[run]
---------- RUN BEGIN -------------------------------------------------
PARAMETER FILES (1 total):
0: structure.psf, 570230 atoms, 145435 res, box: Orthorhombic, 144375 mol, 142697 solvent
INPUT TRAJECTORIES (1 total):
0: 'output.xtc' is a GROMACS XTC file, Parm structure.psf (Orthorhombic box) (reading 2500 of 25000)
Coordinate processing will occur on 2500 frames.
OUTPUT TRAJECTORIES (1 total):
'strip.aligned.dcd' (2500 frames) is a CHARMM DCD file (coords) Little Endian 32 bit
PARALLEL INFO:
Process 0 will handle 2500 frames.
.....................................................
ACTION SETUP FOR PARM 'structure.psf' (7 actions):
0: [strip :SOD,CLA,TIP3,TIP parmout strip.parm7 nobox]
Stripping 428839 atoms.
Stripped topology: 141391 atoms, 1990 res, box: None, 930 mol
Writing topology 0 (structure.psf) to 'strip.parm7' with format Amber Topology
Warning: No angle parameters.
Warning: No dihedral parameters.
Warning: No non-bonded parameters.
Memory used by full exclusion list: 3.138 MB
Topology has alternative residue numbering (from e.g PDB, stripping, reordering, etc).
Topology has chain IDs.
Warning: Topology does not contain tree, join, and/or rotate arrays.
Warning: Missing arrays will not be written. Care should be taken if this
Warning: topology is used for anything besides analysis or visualization.
Warning: To create an empty array specify the 'writeempty' keyword.
1: [center ^5 origin]
Mask [^5] corresponds to 5874 atoms.
2: [align ^5&!@H= mass first]
Target mask: [^5&!@H*](2916)
Reference topology: structure.psf
Reference mask: [^5&!@H*](2916)
3: [average Avg.mol2 ^5]
Mask [^5] corresponds to 5874 atoms.
Averaging over 5874 atoms.
Warning: Atom selection < total # atoms, stripping parm for averaging only:
4: [bounds ^5 name Protein dx 0.5 offset 2]
Mask [^5] corresponds to 5874 atoms.
5: [bounds :POPC name Popc dx 0.5 offset 2]
Mask [:POPC] corresponds to 124218 atoms.
6: [createcrd MyCrd]
Estimated memory usage (2500 frames): 4.242 GB
.....................................................
ACTIVE OUTPUT TRAJECTORIES (1):
strip.aligned.dcd (coordinates, time)
BEGIN PARALLEL TRAJECTORY PROCESSING:
0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100% Complete.
TIME: Rank 0 throughput= 32.3418 frames / second.
TIME: Avg. throughput= 32.3418 frames / second.
ACTION OUTPUT:
AVERAGE: 2500 frames, 'Avg.mol2' is a Tripos Mol2 file, Parm structure.psf: Writing 1 frames (1-Last, 1)
BOUNDS: Output to STDOUT
-42.442846 < X < 39.653772 Center= -1.394537 Bins=167
-49.808529 < Y < 37.278336 Center= -6.265096 Bins=177
-95.522603 < Z < 54.457190 Center= -20.532707 Bins=302
BOUNDS: Output to STDOUT
-185.140591 < X < 190.660556 Center= 2.759983 Bins=754
-205.418658 < Y < 173.070134 Center= -16.174262 Bins=759
-77.947451 < Z < 93.876379 Center= 7.964464 Bins=346
TIME: Analyses took 0.0000 seconds.
DATASETS (15 total):
Protein "Protein" (float grid), size is 8926818 (35.707 MB)
Protein[xmin] "Protein[xmin]" (double), size is 1 (0.008 kB)
Protein[ymin] "Protein[ymin]" (double), size is 1 (0.008 kB)
Protein[zmin] "Protein[zmin]" (double), size is 1 (0.008 kB)
Protein[xmax] "Protein[xmax]" (double), size is 1 (0.008 kB)
Protein[ymax] "Protein[ymax]" (double), size is 1 (0.008 kB)
Protein[zmax] "Protein[zmax]" (double), size is 1 (0.008 kB)
Popc "Popc" (float grid), size is 198010956 (792.044 MB)
Popc[xmin] "Popc[xmin]" (double), size is 1 (0.008 kB)
Popc[ymin] "Popc[ymin]" (double), size is 1 (0.008 kB)
Popc[zmin] "Popc[zmin]" (double), size is 1 (0.008 kB)
Popc[xmax] "Popc[xmax]" (double), size is 1 (0.008 kB)
Popc[ymax] "Popc[ymax]" (double), size is 1 (0.008 kB)
Popc[zmax] "Popc[zmax]" (double), size is 1 (0.008 kB)
MyCrd "MyCrd" (coordinates), size is 2500 (4.242 GB)
Total data set memory usage is at least 5.069 GB
DATAFILES (2 total):
STDOUT (Bounds)
STDOUT (Bounds)
RUN TIMING:
TIME: Init : 2.8150 s ( 3.45%)
TIME: Trajectory Process : 77.2994 s ( 94.66%)
TIME: Data Set Sync : 0.7150 s ( 0.88%)
TIME: Action Post : 0.0103 s ( 0.01%)
TIME: Analysis : 0.0000 s ( 0.00%)
TIME: Data File Write : 0.0002 s ( 0.00%)
TIME: Other : 0.8223 s ( 0.01%)
TIME: Run Total 81.6623 s
---------- RUN END ---------------------------------------------------
[crdaction MyCrd grid protein.dx data Protein ^5]
Warning: 'crdaction' command does not yet use multiple MPI processes.
Using set 'MyCrd'
----- MyCrd (1-2500, 1) -----
OpenDx: Grid will be created using bin corners.
GRID:
No offset will be applied to points.
Grid will not move.
Calculating positive density.
-=Grid Dims=- X Y Z
Bins: 167 177 302
Origin: -43.1445 -50.5151 -96.0327
Spacing: 0.5 0.5 0.5
Center: -1.39454 -6.2651 -20.5327
Box: Orthorhombic ABC={83.5 88.5 151} abg={90 90 90}
Grid will be printed to file protein.dx
Grid data set: 'Protein'
Mask expression: [^5]
Pseudo-PDB will be printed to STDOUT
Mask [^5] corresponds to 5874 atoms.
0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100% Complete.
GRID: No normalization.
Grid max is 299
Writing PDB of grid points > 80.00% of grid max.
ATOM 1 XX GRID 1 10.105 0.735 -12.783 0.85 0.00
ATOM 2 XX GRID 2 8.605 0.735 -12.283 0.82 0.00
ATOM 3 XX GRID 3 3.105 -2.765 -0.783 0.82 0.00
ATOM 4 XX GRID 4 -2.895 5.735 0.217 0.84 0.00
ATOM 5 XX GRID 5 -3.895 6.235 1.717 0.87 0.00
ATOM 6 XX GRID 6 4.605 -3.265 2.717 0.80 0.00
ATOM 7 XX GRID 7 -5.395 0.235 3.717 0.92 0.00
ATOM 8 XX GRID 8 -4.395 7.735 4.217 0.85 0.00
ATOM 9 XX GRID 9 -6.895 -1.265 4.717 0.85 0.00
ATOM 10 XX GRID 10 -3.895 7.235 4.717 0.82 0.00
ATOM 11 XX GRID 11 -6.395 -1.265 5.217 0.80 0.00
ATOM 12 XX GRID 12 -3.395 3.735 6.217 0.84 0.00
ATOM 13 XX GRID 13 0.105 -6.265 7.717 0.84 0.00
ATOM 14 XX GRID 14 -1.895 5.735 7.717 0.93 0.00
ATOM 15 XX GRID 15 -2.895 6.735 7.717 0.89 0.00
ATOM 16 XX GRID 16 -4.395 5.235 9.717 0.95 0.00
ATOM 17 XX GRID 17 -4.395 4.235 10.717 0.88 0.00
ATOM 18 XX GRID 18 -5.895 2.235 14.717 0.82 0.00
ATOM 19 XX GRID 19 -3.895 6.735 14.717 0.81 0.00
ATOM 20 XX GRID 20 6.605 1.235 15.217 0.87 0.00
ATOM 21 XX GRID 21 8.105 -0.265 18.217 0.80 0.00
ATOM 22 XX GRID 22 -7.395 -1.765 18.717 1.00 0.00
HETATM 23 XX XXX 23 -43.145 -50.515 -96.033 0.00 0.00
HETATM 24 XX XXX 23 40.355 -50.515 -96.033 0.00 0.00
HETATM 25 XX XXX 23 -43.145 37.985 -96.033 0.00 0.00
HETATM 26 XX XXX 23 40.355 37.985 -96.033 0.00 0.00
HETATM 27 XX XXX 23 -43.145 -50.515 54.967 0.00 0.00
HETATM 28 XX XXX 23 40.355 -50.515 54.967 0.00 0.00
HETATM 29 XX XXX 23 -43.145 37.985 54.967 0.00 0.00
HETATM 30 XX XXX 23 40.355 37.985 54.967 0.00 0.00
TIME: Total action execution time: 2.4856 seconds.
[crdaction MyCrd grid popc.dx data Popc :POPC]
Warning: 'crdaction' command does not yet use multiple MPI processes.
Using set 'MyCrd'
----- MyCrd (1-2500, 1) -----
OpenDx: Grid will be created using bin corners.
GRID:
No offset will be applied to points.
Grid will not move.
Calculating positive density.
-=Grid Dims=- X Y Z
Bins: 754 759 346
Origin: -185.74 -205.924 -78.5355
Spacing: 0.5 0.5 0.5
Center: 2.75998 -16.1743 7.96446
Box: Orthorhombic ABC={377 379.5 173} abg={90 90 90}
Grid will be printed to file popc.dx
Grid data set: 'Popc'
Mask expression: [:POPC]
Pseudo-PDB will be printed to STDOUT
Mask [:POPC] corresponds to 124218 atoms.
0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100% Complete.
GRID: No normalization.
Grid max is 99
Writing PDB of grid points > 80.00% of grid max.
ATOM 1 XX GRID 1 5.010 20.826 -8.286 0.81 0.00
ATOM 2 XX GRID 2 -8.490 -8.174 -6.286 0.83 0.00
ATOM 3 XX GRID 3 -4.990 14.826 -5.786 0.88 0.00
ATOM 4 XX GRID 4 3.510 17.326 -5.786 0.83 0.00
ATOM 5 XX GRID 5 -7.490 14.326 -3.786 0.94 0.00
ATOM 6 XX GRID 6 2.010 16.326 -3.786 0.82 0.00
ATOM 7 XX GRID 7 2.510 16.326 -3.786 0.86 0.00
ATOM 8 XX GRID 8 2.510 16.326 -3.286 0.83 0.00
ATOM 9 XX GRID 9 3.010 16.326 -3.286 1.00 0.00
ATOM 10 XX GRID 10 10.510 16.826 -2.786 0.86 0.00
ATOM 11 XX GRID 11 2.510 15.826 -2.286 0.81 0.00
ATOM 12 XX GRID 12 8.510 15.826 -2.286 0.90 0.00
ATOM 13 XX GRID 13 1.510 15.826 -1.786 0.82 0.00
ATOM 14 XX GRID 14 1.510 15.326 -1.286 0.82 0.00
ATOM 15 XX GRID 15 1.510 15.826 -1.286 0.82 0.00
ATOM 16 XX GRID 16 1.510 16.326 -1.286 0.83 0.00
ATOM 17 XX GRID 17 -13.490 9.826 0.714 0.81 0.00
ATOM 18 XX GRID 18 -12.990 10.326 0.714 0.82 0.00
ATOM 19 XX GRID 19 -13.490 10.326 1.214 0.87 0.00
ATOM 20 XX GRID 20 -12.990 10.326 1.214 0.85 0.00
ATOM 21 XX GRID 21 -13.490 10.826 1.214 0.90 0.00
ATOM 22 XX GRID 22 -13.990 10.326 1.714 0.90 0.00
ATOM 23 XX GRID 23 -13.990 10.826 2.214 0.83 0.00
ATOM 24 XX GRID 24 1.010 18.326 3.714 0.82 0.00
ATOM 25 XX GRID 25 -14.990 2.326 14.714 0.89 0.00
ATOM 26 XX GRID 26 -14.990 2.826 15.714 0.82 0.00
ATOM 27 XX GRID 27 -14.990 3.326 15.714 0.81 0.00
ATOM 28 XX GRID 28 -3.490 10.826 18.714 0.81 0.00
ATOM 29 XX GRID 29 5.510 11.326 19.714 0.82 0.00
HETATM 30 XX XXX 30 -185.740-205.924 -78.536 0.00 0.00
HETATM 31 XX XXX 30 191.260-205.924 -78.536 0.00 0.00
HETATM 32 XX XXX 30 -185.740 173.576 -78.536 0.00 0.00
HETATM 33 XX XXX 30 191.260 173.576 -78.536 0.00 0.00
HETATM 34 XX XXX 30 -185.740-205.924 94.464 0.00 0.00
HETATM 35 XX XXX 30 191.260-205.924 94.464 0.00 0.00
HETATM 36 XX XXX 30 -185.740 173.576 94.464 0.00 0.00
HETATM 37 XX XXX 30 191.260 173.576 94.464 0.00 0.00
TIME: Total action execution time: 43.8777 seconds.
[Mult = Protein * Popc]
Error: Grid operation 'Multiply' requires both grids have same dimensions.
'Mult = Protein * Popc': Invalid command or expression.
1 errors encountered reading input.
Error: Error(s) occurred during execution.
TIME: Total execution time: 138.2211 seconds.
--------------------------------------------------------------------------
Primary job terminated normally, but 1 process returned
a non-zero exit code. Per user-direction, the job has been aborted.
--------------------------------------------------------------------------
--------------------------------------------------------------------------
mpirun detected that one or more processes exited with non-zero status, thus causing
the job to be terminated. The first process to do so was:
Process name: [[48975,1],0]
Exit code: 1
--------------------------------------------------------------------------
Shouldn't one normalize the 2 grids before?
Hi, sorry this fell off of my radar for a bit - I've been crazy busy.
Regarding your error, the issue is that when you want to multiply grids they need to have the same size. You can do this by setting the mask in your bounds command to point to the same thing, e.g.
bounds :POPC name Protein dx 0.5 offset 2
bounds :POPC name Popc dx 0.5 offset 2
In this case I'm using :POPC to set up the grids for both the lipids and the protein. When you grid, use the mask appropriate to the system, e.g.
crdaction MyCrd grid protein.dx data Protein ^5
crdaction MyCrd grid popc.dx data Popc :POPC
So in this case in the first command CPPTRAJ is gridding molecule 5 onto the grid we set up based on the bounds of :POPC. Does that make sense? Then you can multiply.
Sorry again for the delay.