Usage ====== .. _usage: Python module ------------ Quick start ------------ Parametrization of structure with coordinates saved as `supramolecular_cage.xyz` with (nonbonded) topology `supramolecular_cage.top` (of the whole structure): .. code-block:: python from metallicious import supramolecular_structure cage = supramolecular_structure('supramolecular_cage.xyz', metal_charges={'metal name 1': charge of metal 1(integer), 'metal name 2':charge of metal 2(integer),...}, topol='supramolecular_cage.top', LJ_type='uff') cage.parametrize(out_coord='out.pdb', out_topol='out.top') For example, for the structure ru_pd.xyz with force-field parameters saved as ru_pd.top, which consists of two metals Pd2+ and Ru2+, the input file looks like this: .. code-block:: python from metallicious import supramolecular_structure cage = supramolecular_structure('ru_pd.xyz', metal_charges={'Ru': 2, 'Pd':2 }, topol='ru_pd.top', LJ_type='uff') cage.parametrize(out_coord='out.pdb', out_topol='out.top') Initial topology file ~~~~~~~~~~~~~~~~~~~~~ If you don't have a topology file, you can generate a simple force-field parametrization using General Amber Force-field (GAFF): .. code-block:: python from metallicious import supramolecular_structure cage = supramolecular_structure('ru_pd.xyz', metal_charges={'Ru': 2, 'Pd':2 }, LJ_type='uff') cage.prepare_initial_topology() cage.parametrize(out_coord='out.pdb', out_topol='out.top') Please note that our focus was on covalent metal parametrization; only basic support for the organic molecule parametrization is available. For more robust parameterization protocols, please refer to specialized tools such as `gromacs `_, `ATB `_, `ambertools `_, and `charmm-gui `_. Handling missing templates ------------ The number of combination of possible ligands and metal results that inevitably you will encounter metal site for which there is no template. In such cases two solutions are possible: 1. Parametrize template ~~~~~~~~~~ We recommend to run template parametrization on HPC/cluster as it can take some time (our experience is ~8h on 8 CPUs per template). Specifying explicitly the metal multiplicity using the metal_charge_mult variable instead of metal_charges, will automatically inform metallicious to be ready to parametrize the new template. .. code-block:: python from metallicious import supramolecular_structure cage = supramolecular_structure('ru_pd.xyz', metal_charge_mult = {'Ru': (2,1), 'Pd':(2,1)}, LJ_type='uff') cage.parametrize(out_coord='out.pdb', out_topol='out.top') 2. Truncate existing template ~~~~~~~~~~~~~~~~ If an exact template is unavailable in the library, you can truncate part of an existing template. Truncation is based on the distance from the metal centre, such as 4-bonds away ("dihedral"), 3-bonds away ("angles"), or 1-bond away ("bonds"). Such a strategy is fast but results in a loss of accuracy. For example: .. code-block:: python from metallicious import supramolecular_structure cage = supramolecular_structure('ru_pd.xyz', metal_charge_mult = {'Ru': (2,1), 'Pd':(2,1)}, truncation_scheme = 'dihedral', LJ_type='merz-opc') cage.parametrize(out_coord='out.pdb', out_topol='out.top') Input for supramolecular_structure class ~~~~~~~~~~~~~~~~~~~~~~~~~~~ The extended input list of supramolecular_structure class: .. list-table:: :header-rows: 1 * - Variable - Type - Description - Default - Needs to be specified? * - filename - str - name of the coordination file - none - yes * - metal_charge_mult - dict - the names charges, and multiplicity of the metals in format {metal_name: (metal_charges, multiplicity)} - none - yes or metal_charges * - metal_charges - dict - the names and charges of metals in the input structure in format: {metal_name1: metal_charges1, metal1_name2: metal_charge2} - none - yes or metal_charge_mult * - LJ_type - str - name of LJ dataset used for metal paramters (uff, merz-tip3p, merz-opc3, merz-spc/e, merz-tip3p-fb, merz-opc, merz-tip4p-fb, merz-tip4-ew, zhang-tip3p, zhang-opc3, zhang-spc/e, zhang-spc/eb, zhang-tip3p-fb, zhang-opc, zhang-tip4p/2005, zhang-tip4p-d, zhang-tip4p-fb, zhang-tip4p-ew) - none - yes * - topol - str - force-field parameters file - none - Yes, unless later prepare_initial_topol used * - keywords - list(str) - autodE keywords for QM calculations - PBE0 D3BJ def2-SVP tightOPT freq - no * - improper_metal - bool - if True it will parametrize the improper dihedral involving metal - false - no * - donors - list(str) - list of atom elements with which metal forms bond - ['N', 'S', 'O'] - No * - library_path - str - directory of template library, be default where the script is - path to metallicious + /library - no * - search_library - bool - if True, metallicious searches templates in template library,if False, it will parametrize template - true - no * - ff - str - parametrization protocol for small organic molecules (only gaff available at the moment) - 'gaff' - no * - fingerprint_guess_list - list(str) - list of template names, which will be checked from library - none - no * - truncation_scheme - str - name of the truncation scheme - none - no * - covalent_cutoff - float - if metal-atoms smaller then cutoff it is assumed that creates bond with the metal - 3.0 - no Bash command line ------------ It is also possible to use the metallicious just from the command line. For example: .. code-block:: bash metallicious -f cage.xyz -LJ_type merz-tip3p -metal_and_charges Pd 2 -prepare_topol For details, see: .. code-block:: bash metallicious -h Extended list of the bash command: .. list-table:: :header-rows: 1 * - Variable - Comment - possible input - Default - Required * - -h, --help - show help message and exit - possible input - none - no * - -f - metaloorganic coordination file - *.gro, *.pdb and other coordination formats supported by MDAnalysis - none - yes * - -p - metaloorganic force-field parameters of non-bonded model - .top, .prmtop, etc. and other supported by ParmEd - none - yes (unless prepare_topol specified) * - -of - output metaloorganic structure - .gro, .pdb and other formats supported by MDAnalysis - out.pdb - no * - -op - output metaloorganic topology - .top, .prmtop and other formats supported by ParmEd - out.top - no * - -metal_charges - metal names and charges (optionally, multiplicity when parametrization needed) - names and charges are separate by whitespace (e.g., Pd 2 Ru 2) or names, charges and multiplicities separated by spaces (e.g., Pd 2 1 Ru 2 1) - none - yes * - -keywords - autodE keywords for QM calculations - see autodE or ORCA manual - PBE0 D3BJ def2-SVP tightOPT freq - no * - -LJ_type - type of parameters for Lennard-Jones parameters - uff, merz-tip3p, merz-opc3, merz-spc/e, merz-tip3p-fb, merz-opc, merz-tip4p-fb, merz-tip4-ew, zhang-tip3p, zhang-opc3, zhang-spc/e, zhang-spc/eb, zhang-tip3p-fb, zhang-opc, zhang-tip4p/2005, zhang-tip4p-d, zhang-tip4p-fb, zhang-tip4p-ew - uff - no * - -truncate - truncation scheme - none, 3bond/dihedral, 2bond/angle, 1bond/bond - none - no * - -improper_metal - calculate the improper dihedral of the metal-aromatic - true/false - false - no * - -donors - donors from the connected ligands, usually electronegative atoms, such as N, S, O, but sometimes metal is connected to carbon - any element name separated by space - N S O - no * - -prepare_topol - prepare initial topology using GAFF - true/false - false - no * - -linker_topol - linker force-field (topology) parameters, only used when prepare_topol=True - .top, .prmtop, etc. and other formats supported by ParmEd - none - no Available parameters ------------ Default templates ~~~~~~~~~~~~ By default, *metallicious* contains a few templates which are commonly used in metallo-organic cages. However, more templates can be easily added using automated parametrization procedure, which is also part of *metallicious*. .. figure:: images/docs_templates.png :figwidth: 500 :align: center :alt: Here should be figure of the available templates Initial templates available as part of *metallicious*. Lennard-Jones ~~~~~~~~~~~ *metallicious* overwrites metal parameters using Lennard-Jones (LJ) parameters taken from literature. In particular, it is possible to use listed below parameters: - merz-OPC [Merzopc]_ - merz-opc3 [Merzopc]_ - merz-tip3p-fb [Merzopc]_ - merz-tip4p-fb [Merzopc]_ - merz-spce [Merztip3p]_ - merz-tip3p [Merztip3p]_ - merz-tip4-ew [Merztip3p]_ - zhang-tip3p [zhang]_ - zhang-opc3 [zhang]_ - zhang-spce [zhang]_ - zhang-spceb [zhang]_ - zhang-tip3p-fb [zhang]_ - zhang-opc [zhang]_ - zhang-tip4p2005 [zhang]_ - zhang-tip4p-d [zhang]_ - zhang-tip4p-fb [zhang]_ - zhang-tip4p-ew [zhang]_ - uff [uff]_ Periodic table below shows for which elements L-J parameters are available. .. figure:: images/periodic_table.png :figwidth: 500 :align: center :alt: Here should be figure of periodic table with indicated L-J parameters Available L-J parameters in *metallicious*. L-J parameters for most of the elements are available from UFF [uff]_. L-J parameters for some of the metals were derived by Merz et al. [Merzopc]_ [Merztip3p]_ and Zhang et al. [zhang]_ to reproduce hydration free energies and coordination number in aqueous complex. References: .. [Merzopc] **\(a) Monovalent:** Sengupta, A.; Li, Z.; Song, L. F.; Li, P.; Merz, K. M. Parameterization of Monovalent Ions for the OPC3, OPC, TIP3P-FB, and TIP4P-FB Water Models. J. Chem. Inf. Model. 2021, 61 (2), 869–880. https://doi.org/10.1021/acs.jcim.0c01390, **(b) Divalent:** Li, Z.; Song, L. F.; Li, P.; Merz, K. M. Systematic Parametrization of Divalent Metal Ions for the OPC3, OPC, TIP3P-FB, and TIP4P-FB Water Models. J. Chem. Theory Comput. 2020, 16 (7), 4429–4442. https://doi.org/10.1021/acs.jctc.0c00194. **(c) Tri- and Tetravalent:** Li, Z.; Song, L. F.; Li, P.; Merz, K. M. Parametrization of Trivalent and Tetravalent Metal Ions for the OPC3, OPC, TIP3P-FB, and TIP4P-FB Water Models. J. Chem. Theory Comput. 2021, 17 (4), 2342–2354. https://doi.org/10.1021/acs.jctc.0c01320. .. [Merztip3p] **\(a) Monovalent:** Li, P.; Song, L. F.; Merz, K. M. Systematic Parameterization of Monovalent Ions Employing the Nonbonded Model. J. Chem. Theory Comput. 2015, 11 (4), 1645–1657. https://doi.org/10.1021/ct500918t. **(b) Divalent:** Li, P.; Roberts, B. P.; Chakravorty, D. K.; Merz, K. M. Rational Design of Particle Mesh Ewald Compatible Lennard-Jones Parameters for +2 Metal Cations in Explicit Solvent. J. Chem. Theory Comput. 2013, 9 (6), 2733–2748. https://doi.org/10.1021/ct400146w. **(c) Tri- and Tetravalent:** Li, P.; Song, L. F.; Merz, K. M. Parameterization of Highly Charged Metal Ions Using the 12-6-4 LJ-Type Nonbonded Model in Explicit Water. J. Phys. Chem. B 2015, 119 (3), 883–895. https://doi.org/10.1021/jp505875v. .. [zhang] **\(a) Monovalent:** Qiu, Y.; Jiang, Y.; Zhang, Y.; Zhang, H. Rational Design of Nonbonded Point Charge Models for Monovalent Ions with Lennard-Jones 12–6 Potential. J. Phys. Chem. B 2021, 125 (49), 13502–13518. https://doi.org/10.1021/acs.jpcb.1c09103. **(b) Divalent:** Zhang, Y.; Jiang, Y.; Peng, J.; Zhang, H. Rational Design of Nonbonded Point Charge Models for Divalent Metal Cations with Lennard-Jones 12-6 Potential. J. Chem. Inf. Model. 2021, 61 (8), 4031–4044. https://doi.org/10.1021/acs.jcim.1c00580. **(c) Tri- and Tetravalent:** Zhang, Y.; Jiang, Y.; Qiu, Y.; Zhang, H. Rational Design of Nonbonded Point Charge Models for Highly Charged Metal Cations with Lennard-Jones 12-6 Potential. J. Chem. Inf. Model. 2021. https://doi.org/10.1021/acs.jcim.1c00723. .. [uff] Rappé, A. K.; Casewit, C. J.; Colwell, K. S.; Goddard, W. A.; Skiff, W. M. UFF, a Full Periodic Table Force Field for Molecular Mechanics and Molecular Dynamics Simulations. J. Am. Chem. Soc. 1992, 114 (25), 10024–10035. https://doi.org/10.1021/ja00051a040.