CD20 Epitope
Preparation : -dock
center:
- 146.284
- 157.686
- 146.331
energy_range:
- 4
exhaustiveness:
- 100
fms:
- AMPSA
- 4
- BAAPY
- 1
- NIPAM
- 15
- BIS
- 5
protein: CD20-epitope.pdb
scale: 1
size:
- 16
- 31
- 27
Serial
By default, functional monomers are docked in the system in the order they are given.
MIPkit -dock -protein CD20-epitope.pdb -config cd20_complex.yaml
Interval FM Mean RMSD Affinity Score
0 AMPSA 3.917 -3.188 -0.915
1 AMPSA 12.500 -3.090 -0.254
2 AMPSA 3.442 -2.695 -0.855
3 AMPSA 16.235 -2.652 -0.166
4 26-BAP 13.025 -3.680 -0.303
5 NIPAM 16.110 -2.212 -0.141
6 NIPAM 15.540 -2.230 -0.147
7 NIPAM 12.740 -2.181 -0.172
8 NIPAM 10.895 -2.240 -0.210
9 NIPAM 9.521 -2.152 -0.233
10 NIPAM 5.469 -2.285 -0.430
11 NIPAM 10.755 -2.195 -0.206
12 NIPAM 15.790 -2.348 -0.150
13 NIPAM 5.473 -2.273 -0.437
14 NIPAM 12.125 -2.219 -0.185
15 NIPAM 17.585 -2.201 -0.126
16 NIPAM 20.575 -2.127 -0.104
17 NIPAM 16.960 -2.152 -0.128
18 NIPAM 20.060 -2.144 -0.108
19 NIPAM 4.176 -2.097 -0.531
20 BIS 10.470 -2.828 -0.271
21 BIS 16.015 -2.790 -0.178
22 BIS 18.500 -2.660 -0.146
23 BIS 21.315 -2.700 -0.129
24 BIS 13.075 -2.668 -0.208
Precomplexation ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 0:02:15
Shuffle
Alternatively, we can add all functional monomers in a shuffled manner using -shuffle.
MIPkit -dock -protein CD20-epitope.pdb -config cd20_complex.yaml -shuffle -shuffle_seed "xF00D"
Interval FM Mean RMSD Affinity Score
0 NIPAM 3.688 -2.596 -0.719
1 NIPAM 7.901 -2.420 -0.312
2 NIPAM 8.162 -2.432 -0.302
3 NIPAM 12.940 -2.268 -0.181
4 BIS 11.490 -2.856 -0.255
5 NIPAM 10.675 -2.333 -0.224
6 BIS 4.574 -2.830 -0.703
7 NIPAM 10.575 -2.280 -0.221
8 AMPSA 17.795 -2.638 -0.150
9 NIPAM 17.530 -2.465 -0.142
10 BIS 22.955 -2.878 -0.126
11 NIPAM 14.290 -2.358 -0.166
12 26-BAP 12.860 -3.753 -0.300
13 BIS 18.655 -2.873 -0.157
14 NIPAM 14.425 -2.122 -0.148
15 NIPAM 15.025 -2.258 -0.151
16 NIPAM 13.910 -2.184 -0.158
17 NIPAM 16.590 -2.299 -0.140
18 BIS 13.990 -2.689 -0.196
19 NIPAM 15.195 -2.237 -0.149
20 NIPAM 16.950 -2.124 -0.127
21 AMPSA 13.840 -2.426 -0.178
22 NIPAM 15.400 -2.156 -0.142
23 AMPSA 17.365 -2.506 -0.146
24 AMPSA 12.025 -2.442 -0.209
Precomplexation ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 0:02:18
Serial vs Shuffle
Serial and Shuffle give different results, which will almost certainly give us different trajectories. Similarly, -shuffle by itself will do the same, with -shuffle_seed giving us the a method of controlling the randomness to some degree (at least the starting configuration).
| Serial | Shuffle |
|---|---|
![]() |
![]() |
Here we can see the side by sides of shuffle and serial. AMPSA is the most clear difference due to its location in the config file. In serial, it has docked on the surface of the epitope and is surrounded by NIPAM and cross-linkers. However, when it gets shuffled, some are docked on the outside, which lowers its chances of contributing to the MIP.
GROMACS : -react
To demonstrate the differences from starting conditions, we will run directly from the docked position rather than the equilibration -min. Since this is just a tutorial and not a full production run, we will only use 10 cycles. We will also use -gmxt short to use a 0.5 ns cycle.
Serial
MIPkit -react -protein CD20-epitope.pdb -cplx CD20-serial.pdb -cutoff 3.3 -gmxt short
=====================================================================
BMBT MIPkit
DOI:
Barrett et al.
=====================================================================
+ Reaction run.
+ GMX -short selected. This will run 0.5 ns per cycle, totalling 5.0 ns.
+ Implicit reaction with probability 1.0 and cutoff 3.3.
Complexation using 8 cores.
Accelerating with -gpu_id 0
Precomplex : CD20-serial.pdb
Template : CD20-epitope.pdb.
======================================================================
Step Nmono Npoly MW-Navg MW-Wavg MWmax MWmin
======================================================================
0 25 0 140.48 150.67 217.09 113.08
1 25 0 140.48 150.67 217.09 113.08
2 25 0 140.48 150.67 217.09 113.08
3 25 0 140.48 150.67 217.09 113.08
4 25 0 140.48 150.67 217.09 113.08
5 23 1 146.41 169.15 363.15 113.08
6 23 1 146.41 169.15 363.15 113.08
7 22 1 152.87 192.96 478.25 113.08
8 22 1 152.87 192.96 478.25 113.08
9 22 1 152.87 192.96 478.25 113.08
Complexation ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 0:24:51
So we can see that polymerization only just began with our system, with only three functional monomers reacting to form a single chain. If you want to analyze the statistics over time, the same molecular weight stats will are printed to ./work/stats-polymerization.log.
Shuffle
MIPkit -react -protein CD20-epitope.pdb -cplx CD20-shuffle.pdb -cutoff 3.3 -gmxt short
=====================================================================
BMBT MIPkit
DOI:
Barrett et al.
=====================================================================
+ Reaction run.
+ GMX -short selected. This will run 0.5 ns per cycle, totalling 5.0 ns.
+ Implicit reaction with probability 1.0 and cutoff 3.3.
Complexation using 8 cores.
Accelerating with -gpu_id 0
Precomplex : CD20-shuffle.pdb
Template : CD20-epitope.pdb.
======================================================================
Step Nmono Npoly MW-Navg MW-Wavg MWmax MWmin
======================================================================
0 25 0 140.48 150.67 217.09 113.08
1 25 0 140.48 150.67 217.09 113.08
2 21 2 152.87 168.25 269.17 113.08
3 20 2 159.91 192.21 425.26 113.08
4 19 2 167.52 206.88 425.26 113.08
5 17 3 176.0 216.97 425.26 113.08
6 16 3 185.37 254.72 581.35 113.08
7 15 3 195.78 278.6 581.35 113.08
8 15 3 195.78 278.6 581.35 113.08
9 15 3 195.78 278.6 581.35 113.08
Complexation ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 0:24:46
-shuffle faired a bit differently, with the chains forming and growing much faster, with a total of 10 monomers consumed by 3 chains in 10 steps. We can see who contributed to this growth by inspecting ./logs/bmbt-polymerization.log, which will contain :
Bonding NIPAM 7 and NIPAM 6 (14) as X0
Bonding BIS 0 and NIPAM 6 (17) as X1
Bonding BIS 0 and X1 9 (20) as X2
Bonding NIPAM 7 and X0 15 (23) as X3
Bonding BIS 0 and NIPAM 6 (17) as X4
Bonding X2 10 and BIS 1 (31) as X5
Bonding BIS 10 and X4 9 (20) as X6
In MIPkit, X$ will always be a polymer chain, with each reaction increasing by 1. So during the formation of one polyNIPAM chain, we see NIPAM + NIPAM > X0, then NIPAM + X0 > X3.
Serial vs Shuffle
| Serial | Shuffle |
|---|---|
![]() |
![]() |
So in looking at these stills from the last step, we can first see an AMPSA molecule wandering away from the system (in both). This happens and is one thing we discuss in the paper. The steric hinderances introduced by polymerization prevents functional monomers from leaving, increasing their contributions to interaction energy with the template molecule.
GROMACS : -interact
From here, you can rerun the system with a larger cycle count to see how the polymerization progresses, or rerun it with a minimization first to see how that impacts the polymerization behavior of the system.
MIP vs NIP Interaction Energy
Omitting the -template or -protein flag will allow us to generate a non-imprinted polymer (NIP) from the same recipe that we generate our MIPs from
Serial NIP :
MIPkit -react -cplx CD20-serial.pdb -cutoff 3.3 -gmxt short
Shuffle NIP :
MIPkit -react -cplx CD20-shuffle.pdb -cutoff 3.3 -gmxt short
When these runs are done, we can then run interactions using:
MIP complex Interaction (with excess FMs) :
MIPkit -interact -cplx CD20-MIP.pdb -protein CD20-epitope-done.pdb -id -config cd20_complex.yaml
NIP complex Interaction (with excess FMs) :
MIPkit -interact -cplx CD20-NIP.pdb -protein CD20-epitope-done.pdb -id -config cd20_complex.yaml -offset x y z
MIP Interaction (no loose FMs) :
MIPkit -react -cplx CD20-MIP.pdb -protein CD20-epitope-done.pdb -wash -id -config cd20_complex.yaml
NIP Interaction (no loose FMs) :
MIPkit -react -cplx CD20-NIP.pdb -protein CD20-epitope-done.pdb -wash -id -config cd20_complex.yaml -offset x y z
Using -id and -config allows us to decompose any polymers into the basic functional monomers to determine FM contributions as part of the MIP/NIP structure.
Potential Errors
- CUDA Assertion Error: This error is typically due to high energy configurations causing singularity and memory errors within GROMACS. This seems to happen more frequently with GNINA. If it does occur, try running a minimization with the 0.5 fs timestep and using the minimized state as the initial polymerization state.



