Skip to content

Repository files navigation

MIPkit: Automated Screening, Docking, Precomplexation, and Complexation for Molecularly Imprinted Polymers

This package provides automated tools for screening and docking functional monomers onto epitopes and proteins. The entire functional monomer library can be found in MIPkit/constants/fm-list.yaml , or below. If you want to add any, make sure you fill out the tables completely, i.e., the functional monomer acronym, any equivalents you might use by mistake, SMILES codes, etc.

Beyond docking, this code can generate precomplexes about a target epitope. -dock applies recursive docking to a target, building out a theoretical precomplexation structure. Recipe order is randomized (or applied with a seed for repeatability), so calling the function several times should give a range of starting configurations to analyze. The precomplexes can then be polymerized using -react. Complexation can be done with or without a template present, to generate relevant MIP and NIP structures for rebinding and cross-reactivity simulations.

Citation

If you use this package or any of its constituents, please use the following citations of this package and its dependencies:

@article{MIPkit,
    author = "Barrett, T. and Moldovean-Cioroianu, N.~S. and Altintas, Z.",
    title = "A digital twin for the in-silico screening, polymerization, and rebinding of Molecularly Imprinted Polymers",
    journal = "In Preparation",
    year = "2026"
}

Python Dependencies

  • Numpy
  • Scipy
  • Rich
  • ACPYPE
  • RDKit
  • Setuptools
  • Matplotlib
  • pyyaml
  • Pandas
  • networkx

Separately Installed Optional Dependencies

  • Autodock Vina
  • GNINA
  • Openbabel
  • Ambertools
  • GROMACS

MIPkit's main functionality requires all optional dependencies to be installed; however, if you only want to use Python-based applications (visualization, recipe price estimation, etc.), MIPkit will function without them.

Once these are installed, update config.yaml and activate_XXX_venv.sh.

Features

Screening

# Screen using GNINA or VINA
MIPkit -screen -protein Example_protein.pdb -fms AAC BIS DMAA NIPAM ....

# Screen using Gromacs
MIPkit -gmxscreen -protein Example_protein.pdb -fms AAC BIS DMAA NIPAM ....

MIPkit automates the screening process, either through simple docking or molecular dynamics interactions. -gmxscreen will dock and simulate a single functional monomer (or list of monomers) against a given template, allowing high-throughput screening of FMs with only a single line of code. For comparison, it exports RDFs, LJ and Coulombic interactions, and H-Bond counts.

Recursive Docking

# From -fms
MIPkit -dock -protein CD20-epitope.pdb -fms AMPSA 4 BAAPY 1 NIPAM 15 BIS 5

# From a config
MIPkit -dock -protein CD20-epitope.pdb -config cd20_complex.yaml

MIPkit will recursively dock MIP recipes to generate precomplexes that can be polymerized into MIPs and NIPs. -dockmethod can be used to switch between GNINA and VINA.

Algorithm-Based Polymerization

# MIP
MIPkit -react -protein CD20-epitope.pdb -complex CD20-shuffle.pdb -cutoff 3.3 -gmxt short

# NIP
MIPkit -react -complex CD20-shuffle.pdb -cutoff 3.3 -gmxt short

MIPkit contains a novel RDkit-based algorithm to determine and apply new bonds. This permits the polymerization of an unprecedented variety of monomers, with the current FM library containing 98 FMs and crosslinkers. For implicit simulations, a bonding cutoff and probability determine polymerization events, while for explicit simulations, bonding and initiation cutoffs are used to apply bonding eligibility.

Interaction

# MIP complex Interaction (with excess FMs)
MIPkit -interact -cplx CD20-MIP.pdb -protein CD20-epitope-done.pdb -id -config cd20_complex.yaml

# MIP Interaction (no loose FMs)
MIPkit -react -cplx CD20-MIP.pdb -protein CD20-epitope-done.pdb -wash -id -config cd20_complex.yaml 

MIPkit will also run interactions between the polymerized structures and templates. To get a proper MIP structure, -wash should be applied to remove any unreacted FMs. -id is used in conjunction with the recipe outlined in the config yaml to decompose polymers into their constituent FMs to determine the per-species contributions of energies and H-Bond interactions.

Price Estimation

MIPkit -cost -fms AMPSA 1 AAC 10 BIS 5 NIPAM 20

MIPkit contains a simple price estimation tool for all recipes to give you a better idea of FM costs during recipe development. Using -cost with a recipe in the command line, or through -config will calculate cost directly in units EUR/mMol.

Self Interaction

The code allows for self-interaction of the polymer chains, permitting the formation of complex structures and loops. This also allows us to generate hydrogel structures.

Example Workflow

Please follow the links below to the quickstart section of the documentation :

Functional Monomer Library

Functional Monomer Acronym Vina gnina MIPkit (vinyl) Smiles
Acrylic Acid AAC C=CC(=O)O
Acrylamide AAM C=CC(=O)N
4-Acryloylmorpholine ACMO C=CC(=O)N1CCOCC1
Acrylonitrile ACN C=CC#N
Acrolein ACRO C=CC=O
Aminoethyl methacrylate AEMA CC(=C)C(=O)OCCN
Aminoethyl methacrylamide AEMAA N(CCN)C(=O)C(=C)C
Allylamine ALLY C=CCN
Allylpiperazine ALPP C=CCN1CCNCC1
Allyl Methacrylate AMA CC(=C)C(=O)OCC=C
Acrylamido Methyl Propanesulfonic Acid AMPSA CC(C)(CS(=O)(=O)O)NC(=O)C=C
Aminopropyl methacrylamide APMA CC(=C)C(=O)NCCCN
Aminopropyltriethoxysilane APTES CCO[Si](CCCN)(OCC)OCC
Allylthiourea AT C=CCNC(=S)N
p-Aminostyrene p-AS C=CC1=CC=C(C=C1)N
Butyl acrylate BA CCCCOC(=O)C=C
Bis(acrylamido)pyridine BAAPy C=CC(=O)NC1=NC(=CC=C1)NC(=O)C=C
1,4-Bis(acryloyl)piperazine BAPA C=CC(=O)N1CCN(CC1)C(=O)C=C
Methylenebisacrylamide BIS C=CC(=O)NCNC(=O)C=C
Butyl Methacrylate BMA CCCCOC(=O)C(=C)C
Benzyl Methacrylate BZMA CC(=C)C(=O)OCC1=CC=CC=C1
Carboxybetaine Methacrylate CBMA O=C(CC[N+](C)(C)CCOC(C(C)=C)=O)[O-]
Diallyl Carbonate DAC C=CCOC(=O)OCC=C
Diallyl methylamine DAMAS CN(CC=C)CC=C
2-(Diethylamino)ethyl acrylate DEAA CCN(CC)CCOC(=O)C=C
Diethylamino ethyl methacrylate DEAEMA CCN(CC)CCOC(=O)C(C)=C
Diethylene Glycol Dimethacrylate DEGDMA CC(=C)C(=O)OCCOCCOC(=O)C(=C)C
1,3-Diisopropoylbenzene DIPB CC(=C)C1=CC(=CC=C1)C(=C)C
N,N-Dimethylacrylamide DMAA CN(C)C(=O)C=C
Dimethylamino ethyl methacrylate DMAEMA CC(=C)C(=O)OCCN(C)C
Dimethylamino propyl methacrylamide DMAPMAA CN(C)CCCNC(=O)C(C)=C
m-Divinylbenzene m-DVB C=CC1=CC(C=C)=CC=C1
o-Divinylbenzene o-DVB C=CC1=C(C=C)C=CC=C1
p-Divinylbenzene p-DVB C=CC1=CC=C(C=C)C=C1
Ethylenebisacrylamide EBAM C=CC(=O)NCCNC(=O)C=C
Ethylene glycol dimethacrylate EGDMA CC(=C)C(=O)OCCOC(=O)C(=C)C
Ethylene glycol dicyclopentenyl ether acrylate EGDPEA C=CC(=O)OCCOC1CC2CC1C3C=CCC23
Ethylene glycol methacylate phosphate EGMP CC(=C)C(=O)OCCOP(O)(O)=O
Ethylene glycol methyl ether methacrylate EGMEM COCCOC(=O)C(C)=C
Ethylene glycol phenyl ether acrylate EGPEA C=CC(=O)OCCOc1ccccc1
2-Ethylstyrene 2-ES CCC1=CC=CC=C1C=C
4-Ethylstyrene 4-ES CCC1=CC=C(C=C1)C=C
2-Formylphenylboronic acid 2-FPBA B(C1=CC=CC=C1C=O)(O)O
3-Formylphenylboronic acid 3-FPBA B(C1=CC(=CC=C1)C=O)(O)O
4-Formylphenylboronic acid 4-FPBA B(C1=CC=C(C=C1)C=O)(O)O
Furfuryl methacrylate FFMA CC(=C)C(=O)OCc1ccco1
Glycidyl methacrylate GMA CC(=C)C(=O)OCC1CO1
2-Hydroxyethyl Acrylate HEA C=CC(=O)OCCO
Hydroxyethyl acrylamide HEAA C=CC(=O)NCCO
Hydroxyethyl methacrylate HEMA CC(=C)C(=O)OCCO
Hydroxypropyl methacrylamide HPMA CC(=C)C(=O)NCCCO
Isobutyltriethoxysilane IPTS CCO[Si](CC(C)C)(OCC)OCC
Isobutyl acrylate IBA CC(C)COC(=O)C=C
Isobutyl methacrylate IBMA CC(C)COC(=O)C(C)=C
Itaconic Acid IA C=C(CC(=O)O)C(=O)O
Methacrylic Acid MAA CC(=C)C(=O)O
Methyl 2-acetamidoacrylate MAAA COC(=O)C(=C)NC(C)=O
Methacylic acid N-hydroxysyccinimide ester MAHSE CC(=C)C(=O)ON1C(=O)CCC1=O
Methacryloyl L-aspartic acid MALAA CC(=C)C(=O)N[C@@H](CC(=O)O)C(=O)O
N,N,N-trimethyl-3-[(2-methylacryloyl)amino]propan-1-aminium MAPTAC CC(=C)C(=O)NCCC[N+](C)(C)C
Methacrylamide MAM CC(=C)C(=O)N
2-(methacryloyloxy)ethyl phosphate MEP CC(=C)C(=O)OCCOP(O)(=O)OCCOC(=O)C(C)=C
4-Methacryloxyethyl trimellitic anhydride 4-META O1C(=O)c2c(ccc(c2)C(=O)OCCOC(=O)C(=C)C)C1=O
[2-(Methacryloyloxy)ethyl]trimethylammonium METC CC(=C)C(=O)OCC[N+](C)(C)C
Maleic Acid MLA OOCC=CCOO
Methyl methacrylate MMA CC(=C)C(=O)OC
2-Methacryloyloxyethyl phosphorylcholine MPC CC(=C)C(=O)OCCOP(=O)([O-])OCC[N+](C)(C)C
Methylacryloxyprolyl Trimethoxysilane MPTS CO[Si](CCCOC(=O)C(C)=C)(OC)OC
4-Methylstyrene 4-MS CC1=CC=C(C=C1)C=C
N-Isopropylacrylamide NIPAM CC(C)NC(=O)C=C
N-(4-Ethenylphenyl)-N'-methylthiourea NMT CNC(=S)NC1=CC=C(C=C1)C=C
N,O-Bismethacryloyl ethanolamine NOBE CC(=C)C(=O)NCCOC(=O)C(=C)C
N-Phenylacrylamide NPA C=CC(=O)NC1=CC=CC=C1
Phenyl Acrylamide PAM C=C(C1=CC=CC=C1)C(=O)N
1,4-Phenylene dimethacrylate PDMA CC(=C)C(=O)Oc1ccc(OC(=O)C(C)=C)cc1
Pentaerythritol triacrylate PE3A C=CC(=O)OCC(CO)(COC(=O)C=C)COC(=O)C=C
Pentaerythritol tetraacrylate PE4A C=CC(=O)OCC(COC(=O)C=C)(COC(=O)C=C)COC(=O)C=C
Phenyl methacrylate PMA CC(=C)C(=O)Oc1ccccc1
Propyl methacrylate PPMA CCCOC(=O)C(C)=C
Pyrrole PY C1=CNC=C1
4-Vinylphenol PVP C=CC1=CC=C(C=C1)O
Sulfobetaine Methacrylate SBMA CC(=C)C(=O)OCC[N+](C)(C)CCCS(=O)(=O)O
Phenylethene (Styrene) STYR C=CC1=CC=CC=C1
N-tert-Butylacrylamide TBA CC(C)(C)NC(=O)C=C
1-(4-Vinylphenyl)-3-(3,5-bis(trifluoromethyl)phenyl)urea TBFM C=CC1=CC=C(C=C1)NC(=O)NC2=CC(=CC(=C2)C(F)(F)F)C(F)(F)F
Tetraoxysilane TEOS [H][Si](OCC)(OCC)OCC
Trifluoromethacrylic Acid TFMAA C=C(C(=O)O)C(F)(F)F
Trimethylolpropane dimethacrylate TMPD CCC(CO)(COC(=O)C(=C)C)COC(=O)C(=C)C
Trimethylolpropane trimethacrylate TRIM CCC(COC(=O)C(=C)C)(COC(=O)C(=C)C)COC(=O)C(=C)C
Urocanic Acid UCA C1=C(NC=N1)/C=C/C(=O)O
Urocanic Acid Ethyl Ester UCAEE CCOC(=O)/C=C/C1=CN=CN1
Vinyl Acrylate VA C=COC(=O)C=C
p-Vinylbenzoic Acid p-VBA C=CC1=CC=C(C=C1)C(=O)O
Vinylbenzyl Chloride VBC C=CC1=CC=C(C=C1)CCl
9-Vinylcarbazole 9-VC C=Cn1c2ccccc2c3ccccc13
N-Vinylcaprolactam NVCL C=CN1CCCCCC1=O
N-Vinylformamide NVF C=CNC=O
1-vinylimidazole 1-VI C=CN1C=CN=C1
4,5-vinylimidazole 45-VI C=CC=1NC=NC1
Vinyl Methacrylate VMA CC(=C)C(=O)OC=C
4-Vinylbenzlamine VNA C=CC1=CC=C(C=C1)CN
2-vinylpyridine 2-VP C=CC1=CC=CC=N1
4-vinylpyridine 4-VP C=CC1=CC=NC=C1
Vinylphosphonic Acid VPA C=CP(=O)(O)O
2-vinylphenylboronic acid 2-VPBA B(C1=CC=CC=C1C=C)(O)O
3-vinylphenylboronic acid 3-VPBA B(C1=CC(=CC=C1)C=C)(O)O
4-vinylphenylboronic acid 4-VPBA B(C1=CC=C(C=C1)C=C)(O)O
Vinyl pyrrolidone VPD C=CN1CCCC1=O

To Do :

This list will be developed as features and bugs are submitted. If you have bugs, please open an issue. If you have suggestions, please open a discussion.

Current To Do List:

  • RDkit-based topology generation
  • Refactor from pseudo-functional to object-oriented
  • Electropolymerization

About

A digital twin for the in-silico screening, polymerization, and rebinding of Molecularly Imprinted Polymers

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages