@@ -84,6 +84,7 @@ class MoleculePreparation:
8484 def __init__ (
8585 self ,
8686 merge_these_atom_types = ("H" ,),
87+ merge_these_atom_params = (),
8788 merge_rmin_half = False ,
8889 hydrate = False ,
8990 flexible_amides = False ,
@@ -120,6 +121,7 @@ def __init__(
120121 Parameters
121122 ----------
122123 merge_these_atom_types
124+ merge_these_atom_params
123125 merge_rmin_half
124126 hydrate
125127 flexible_amides
@@ -162,6 +164,7 @@ def __init__(
162164
163165 self .deprecated_setup_access = None
164166 self .merge_these_atom_types = merge_these_atom_types
167+ self .merge_these_atom_params = merge_these_atom_params
165168 self .merge_rmin_half = merge_rmin_half
166169 self .hydrate = hydrate
167170 self .flexible_amides = flexible_amides
@@ -605,6 +608,17 @@ def prepare(
605608 self .dihedral_params ,
606609 )
607610
611+ if self .crippen or self .crippen_as_solpar :
612+ add_crippen_to_molsetup (setup )
613+ if not self .crippen :
614+ setup .atom_params ["ad4_sol_par" ] = setup .atom_params .pop ("crippen" )
615+ elif self .crippen_as_solpar :
616+ setup .atom_params ["ad4_sol_par" ] = [value for value in setup .atom_params ["crippen" ]]
617+
618+ if self .override_ad4sol_par_including_q :
619+ qasp = self .override_ad4sol_par_including_q_qasp
620+ set_ad4sol_par_including_q (setup , qasp )
621+
608622 # Convert molecule to graph and apply trained Espaloma model
609623 # skip if charges are read from template
610624 if self .dihedral_model == "espaloma" or (self .charge_model == "espaloma" and self .compute_charges ):
@@ -634,7 +648,7 @@ def prepare(
634648 for atom in setup .atoms :
635649 if atom .atom_type == atype_to_merge :
636650 indices .add (atom .index )
637- setup .merge_terminal_atoms (indices , self .merge_rmin_half )
651+ setup .merge_terminal_atoms (indices , self .merge_rmin_half , self . merge_these_atom_params )
638652
639653 # 3. assign bond types
640654 # - all single bonds rotatable except some amides and SMARTS rigidification
@@ -672,17 +686,6 @@ def prepare(
672686 new_atom_info = orig_pdbinfo ._replace (name = new_name )
673687 atom .pdbinfo = new_atom_info
674688
675- if self .crippen or self .crippen_as_solpar :
676- add_crippen_to_molsetup (setup )
677- if not self .crippen :
678- setup .atom_params ["ad4_sol_par" ] = setup .atom_params .pop ("crippen" )
679- elif self .crippen_as_solpar :
680- setup .atom_params ["ad4_sol_par" ] = [value for value in setup .atom_params ["crippen" ]]
681-
682- if self .override_ad4sol_par_including_q :
683- qasp = self .override_ad4sol_par_including_q_qasp
684- set_ad4sol_par_including_q (setup , qasp )
685-
686689 if self .reactive_smarts is None :
687690 setups = [setup ]
688691 else :
0 commit comments