De-lint groups.py

I did my best (via Google) to make sure that renamed public members and
methods had minimal impact on others' code.
This commit is contained in:
Nathan Baker
2020-05-24 11:13:06 -07:00
parent 6cbcac3be9
commit a534d97016
10 changed files with 703 additions and 650 deletions

View File

@@ -342,7 +342,7 @@ common_charge_centre 0
remove_penalised_group 1
# non-covalent coupling
max_intrinsic_pKa_diff 2.0
max_intrinsic_pka_diff 2.0
min_interaction_energy 0.5
max_free_energy_diff 1.0
min_swap_pka_shift 1.0

View File

@@ -89,8 +89,8 @@ def setup_bonding_and_protonation(parameters, molecular_container):
my_bond_maker.add_pi_electron_information(molecular_container)
# Protonate atoms
if molecular_container.options.protonate_all:
my_protonator = propka.protonate.Protonate(verbose=False)
my_protonator.protonate(molecular_container)
PROTONATOR = propka.protonate.Protonate(verbose=False)
PROTONATOR.protonate(molecular_container)
def setup_bonding(molecular_container):
@@ -386,10 +386,10 @@ def radial_volume_desolvation(parameters, group):
"""
all_atoms = group.atom.conformation_container.get_non_hydrogen_atoms()
volume = 0.0
# TODO - Nathan really wants to rename the Nmass variable.
# TODO - Nathan really wants to rename the num_volume variable.
# He had to re-read the original paper to figure out what it was.
# A better name would be num_volume.
group.Nmass = 0
group.num_volume = 0
min_dist_4th = MIN_DISTANCE_4TH
for atom in all_atoms:
# ignore atoms in the same residue
@@ -410,11 +410,11 @@ def radial_volume_desolvation(parameters, group):
volume += dv_inc
# buried
if sq_dist < parameters.buried_cutoff_squared:
group.Nmass += 1
group.buried = calculate_weight(parameters, group.Nmass)
group.num_volume += 1
group.buried = calculate_weight(parameters, group.num_volume)
scale_factor = calculate_scale_factor(parameters, group.buried)
volume_after_allowance = max(0.00, volume-parameters.desolvationAllowance)
group.Emass = group.charge * parameters.desolvationPrefactor \
group.energy_volume = group.charge * parameters.desolvationPrefactor \
* volume_after_allowance * scale_factor
@@ -589,7 +589,7 @@ def hydrogen_bond_interaction(group1, group2, version):
# is closer to the titratable atom than the hydrogen. In either
# case, we set the angle factor to 0
f_angle = 0.0
weight = version.calculate_pair_weight(group1.Nmass, group2.Nmass)
weight = version.calculate_pair_weight(group1.num_volume, group2.num_volume)
exception, value = version.check_exceptions(group1, group2)
if exception:
# Do nothing, value should have been assigned.
@@ -614,7 +614,7 @@ def electrostatic_interaction(group1, group2, dist, version):
# check if we should do coulomb interaction at all
if not version.check_coulomb_pair(group1, group2, dist):
return None
weight = version.calculate_pair_weight(group1.Nmass, group2.Nmass)
weight = version.calculate_pair_weight(group1.num_volume, group2.num_volume)
value = version.calculate_coulomb_energy(dist, weight)
return value
@@ -633,7 +633,7 @@ def check_coulomb_pair(parameters, group1, group2, dist):
Returns:
Boolean
"""
num_volume = group1.Nmass + group2.Nmass
num_volume = group1.num_volume + group2.num_volume
do_coulomb = True
# check if both groups are titratable (ions are taken care of in
# determinants::set_ion_determinants)
@@ -695,7 +695,7 @@ def backbone_reorganization(parameters, conformation):
value = 1.0 - (dist-UNK_BACKBONE_DISTANCE2) \
/ (UNK_BACKBONE_DISTANCE1-UNK_BACKBONE_DISTANCE2)
dpka += UNK_PKA_SCALING2*min(1.0, value)
titratable_group.Elocl = dpka*weight
titratable_group.energy_local = dpka*weight
def check_exceptions(version, group1, group2):
@@ -799,7 +799,7 @@ def check_coo_coo_exception(group1, group2, version):
closest_atom2)
f_angle = 1.00
value = hydrogen_bond_energy(dist, dpka_max, cutoff, f_angle)
weight = calculate_pair_weight(version.parameters, group1.Nmass, group2.Nmass)
weight = calculate_pair_weight(version.parameters, group1.num_volume, group2.num_volume)
value = value * (1.0 + weight)
return exception, value
@@ -816,7 +816,7 @@ def check_coo_his_exception(group1, group2, version):
2. value associated with atypical interaction (None if Boolean is False)
"""
exception = False
if check_buried(group1.Nmass, group2.Nmass):
if check_buried(group1.num_volume, group2.num_volume):
exception = True
return exception, version.parameters.COO_HIS_exception
@@ -833,7 +833,7 @@ def check_oco_his_exception(group1, group2, version):
2. value associated with atypical interaction (None if Boolean is False)
"""
exception = False
if check_buried(group1.Nmass, group2.Nmass):
if check_buried(group1.num_volume, group2.num_volume):
exception = True
return exception, version.parameters.OCO_HIS_exception
@@ -850,7 +850,7 @@ def check_cys_his_exception(group1, group2, version):
2. value associated with atypical interaction (None if Boolean is False)
"""
exception = False
if check_buried(group1.Nmass, group2.Nmass):
if check_buried(group1.num_volume, group2.num_volume):
exception = True
return exception, version.parameters.CYS_HIS_exception
@@ -867,7 +867,7 @@ def check_cys_cys_exception(group1, group2, version):
2. value associated with atypical interaction (None if Boolean is False)
"""
exception = False
if check_buried(group1.Nmass, group2.Nmass):
if check_buried(group1.num_volume, group2.num_volume):
exception = True
return exception, version.parameters.CYS_CYS_exception

View File

@@ -33,7 +33,7 @@ class NonCovalentlyCoupledGroups:
return {'coupling_factor': -1.0}
# calculate intrinsic pKa's, if not already done
for group in [group1, group2]:
if not hasattr(group, 'intrinsic_pKa'):
if group.intrinsic_pka is None:
group.calculate_intrinsic_pka()
use_ph = self.parameters.pH
if self.parameters.pH == 'variable':
@@ -70,12 +70,12 @@ class NonCovalentlyCoupledGroups:
and return_on_fail:
return {'coupling_factor': -1.0}
# check intrinsic pka diff
if abs(group1.intrinsic_pKa - group2.intrinsic_pKa) \
> self.parameters.max_intrinsic_pKa_diff and return_on_fail:
if abs(group1.intrinsic_pka - group2.intrinsic_pka) \
> self.parameters.max_intrinsic_pka_diff and return_on_fail:
return {'coupling_factor': -1.0}
# if everything is OK, calculate the coupling factor and return all info
factor = self.get_free_energy_diff_factor(default_energy, swapped_energy) \
* self.get_pka_diff_factor(group1.intrinsic_pKa, group2.intrinsic_pKa) \
* self.get_pka_diff_factor(group1.intrinsic_pka, group2.intrinsic_pka) \
* self.get_interaction_factor(interaction_energy)
return {'coupling_factor': factor, 'default_energy': default_energy,
'swapped_energy': swapped_energy,
@@ -95,8 +95,8 @@ class NonCovalentlyCoupledGroups:
"""
intrinsic_pka_diff = abs(pka1-pka2)
res = 0.0
if intrinsic_pka_diff <= self.parameters.max_intrinsic_pKa_diff:
res = 1-(intrinsic_pka_diff/self.parameters.max_intrinsic_pKa_diff)**2
if intrinsic_pka_diff <= self.parameters.max_intrinsic_pka_diff:
res = 1-(intrinsic_pka_diff/self.parameters.max_intrinsic_pka_diff)**2
return res
def get_free_energy_diff_factor(self, energy1, energy2):
@@ -147,7 +147,7 @@ class NonCovalentlyCoupledGroups:
info(' Detecting non-covalently coupled residues')
info('-' * 103)
info(' Maximum pKa difference: %4.2f pKa units' \
% self.parameters.max_intrinsic_pKa_diff)
% self.parameters.max_intrinsic_pka_diff)
info(' Minimum interaction energy: %4.2f pKa units' \
% self.parameters.min_interaction_energy)
info(' Maximum free energy diff.: %4.2f pKa units' \
@@ -263,7 +263,7 @@ class NonCovalentlyCoupledGroups:
str_ = ' ' + '-' * 113 + '\n'
for group in system:
str_ += self.tagged_format(' %-8s|' % tag,
group.getDeterminantString(),
group.get_determinant_string(),
all_labels)
return str_ + '\n'
@@ -355,8 +355,8 @@ class NonCovalentlyCoupledGroups:
(group1.label, group2.label, data['coupling_factor'],
data['default_energy'], data['swapped_energy'],
data['default_energy'] - data['swapped_energy'], data['pH'],
data['interaction_energy'], group1.intrinsic_pKa, group2.intrinsic_pKa,
group1.intrinsic_pKa-group2.intrinsic_pKa, data['swapped_pka1'],
data['interaction_energy'], group1.intrinsic_pka, group2.intrinsic_pka,
group1.intrinsic_pka-group2.intrinsic_pka, data['swapped_pka1'],
data['swapped_pka2'], data['pka_shift1'], data['pka_shift2'])
return str_

View File

@@ -188,8 +188,8 @@ def set_ion_determinants(conformation_container, version):
for ion_group in conformation_container.get_ions():
dist_sq = squared_distance(titratable_group, ion_group)
if dist_sq < version.parameters.coulomb_cutoff2_squared:
weight = version.calculate_pair_weight(titratable_group.Nmass,
ion_group.Nmass)
weight = version.calculate_pair_weight(titratable_group.num_volume,
ion_group.num_volume)
# the pKa of both acids and bases are shifted up by negative
# ions (and vice versa)
value = (-ion_group.charge) \

File diff suppressed because it is too large Load Diff

View File

@@ -339,8 +339,8 @@ class Iterative:
coulomb += value
self.pKa_NonIterative = group.model_pka
self.pKa_NonIterative += group.Emass
self.pKa_NonIterative += group.Elocl
self.pKa_NonIterative += group.energy_volume
self.pKa_NonIterative += group.energy_local
self.pKa_NonIterative += side_chain
self.pKa_NonIterative += back_bone
self.pKa_NonIterative += coulomb

View File

@@ -133,7 +133,7 @@ def getDeterminantSection(protein, conformation, parameters):
groups = [g for g in protein.conformations[conformation].groups if g.atom.chain_id == chain]
for group in groups:
if group.residue_type == residue_type:
str += "%s" % ( group.getDeterminantString(parameters.remove_penalised_group) )
str += "%s" % ( group.get_determinant_string(parameters.remove_penalised_group) )
# Add a warning in case of coupled residues
if protein.conformations[conformation].non_covalently_coupled_groups and not protein.options.display_coupled_residues:
@@ -151,7 +151,7 @@ def getSummarySection(protein, conformation, parameters):
for residue_type in parameters.write_out_order:
for group in protein.conformations[conformation].groups:
if group.residue_type == residue_type:
str += "%s" % ( group.getSummaryString(parameters.remove_penalised_group) )
str += "%s" % ( group.get_summary_string(parameters.remove_penalised_group) )
return str

View File

@@ -33,7 +33,7 @@ parameters = ['Nmin','Nmax','desolvationSurfaceScalingFactor','desolvat
'include_H_in_interactions','coupling_max_number_of_bonds',
'min_bond_distance_for_hydrogen_bonds','coupling_penalty',
'shared_determinants','common_charge_centre','hide_penalised_group', 'remove_penalised_group',
'max_intrinsic_pKa_diff','min_interaction_energy','max_free_energy_diff','min_swap_pka_shift',
'max_intrinsic_pka_diff','min_interaction_energy','max_free_energy_diff','min_swap_pka_shift',
'min_pka','max_pka','sidechain_interaction']
strings = ['version','output_file_tag','ligand_typing','pH','reference']

View File

@@ -342,7 +342,7 @@ common_charge_centre 0
remove_penalised_group 1
# non-covalent coupling
max_intrinsic_pKa_diff 2.0
max_intrinsic_pka_diff 2.0
min_interaction_energy 0.5
max_free_energy_diff 1.0
min_swap_pka_shift 1.0

View File

@@ -18,8 +18,8 @@ class version:
def calculate_desolvation(self, group):
return self.desolvation_model(self.parameters, group)
def calculate_pair_weight(self, Nmass1, Nmass2):
return self.weight_pair_method(self.parameters, Nmass1, Nmass2)
def calculate_pair_weight(self, num_volume1, num_volume2):
return self.weight_pair_method(self.parameters, num_volume1, num_volume2)
# side chains
def hydrogen_bond_interaction(self, group1, group2):