Modernize print statements with str.format()
This commit is contained in:
@@ -113,7 +113,7 @@ class Protonate:
|
||||
i = 1
|
||||
for bonded in heavy_atom.bonded_atoms:
|
||||
if bonded.element == 'H':
|
||||
bonded.name += '%d' % i
|
||||
bonded.name += str(i)
|
||||
i += 1
|
||||
|
||||
def set_number_of_protons_to_add(self, atom):
|
||||
@@ -125,15 +125,16 @@ class Protonate:
|
||||
debug('*'*10)
|
||||
debug('Setting number of protons to add for', atom)
|
||||
atom.number_of_protons_to_add = 8
|
||||
debug(' %4d' % 8)
|
||||
debug(" 8")
|
||||
atom.number_of_protons_to_add -= self.valence_electrons[atom.element]
|
||||
debug('Valence eletrons: %4d' % -self.valence_electrons[atom.element])
|
||||
debug('Valence electrons: {0:>4d}'.format(
|
||||
-self.valence_electrons[atom.element]))
|
||||
atom.number_of_protons_to_add -= len(atom.bonded_atoms)
|
||||
debug('Number of bonds: %4d' % -len(atom.bonded_atoms))
|
||||
debug('Number of bonds: {0:>4d}'.format(-len(atom.bonded_atoms)))
|
||||
atom.number_of_protons_to_add -= atom.num_pi_elec_2_3_bonds
|
||||
debug('Pi electrons: %4d' % -atom.num_pi_elec_2_3_bonds)
|
||||
debug('Pi electrons: {0:>4d}'.format(-atom.num_pi_elec_2_3_bonds))
|
||||
atom.number_of_protons_to_add += int(atom.charge)
|
||||
debug('Charge: %4.1f' % atom.charge)
|
||||
debug('Charge: {0:>4.1f}'.format(atom.charge))
|
||||
debug('-'*10)
|
||||
debug(atom.number_of_protons_to_add)
|
||||
|
||||
@@ -149,35 +150,37 @@ class Protonate:
|
||||
debug('='*10)
|
||||
debug('Setting steric number and lone pairs for', atom)
|
||||
atom.steric_number = 0
|
||||
debug('%65s: %4d' % ('Valence electrons',
|
||||
self.valence_electrons[atom.element]))
|
||||
debug('{0:>65s}: {1:>4d}'.format(
|
||||
'Valence electrons', self.valence_electrons[atom.element]))
|
||||
atom.steric_number += self.valence_electrons[atom.element]
|
||||
debug('%65s: %4d' % ('Number of bonds',
|
||||
len(atom.bonded_atoms)))
|
||||
debug('{0:>65s}: {1:>4d}'.format(
|
||||
'Number of bonds', len(atom.bonded_atoms)))
|
||||
atom.steric_number += len(atom.bonded_atoms)
|
||||
debug('%65s: %4d' % ('Number of hydrogen atoms to add',
|
||||
atom.number_of_protons_to_add))
|
||||
debug('{0:>65s}: {1:>4d}'.format(
|
||||
'Number of hydrogen atoms to add', atom.number_of_protons_to_add))
|
||||
atom.steric_number += atom.number_of_protons_to_add
|
||||
debug('%65s: %4d' % ('Number of pi-electrons in double '
|
||||
'and triple bonds(-)',
|
||||
debug('{0:>65s}: {1:>4d}'.format(
|
||||
'Number of pi-electrons in double and triple bonds(-)',
|
||||
atom.num_pi_elec_2_3_bonds))
|
||||
atom.steric_number -= atom.num_pi_elec_2_3_bonds
|
||||
debug('%65s: %4d' % ('Number of pi-electrons in conjugated double and '
|
||||
'triple bonds(-)',
|
||||
debug('{0:>65s}: {1:>4d}'.format(
|
||||
'Number of pi-electrons in conjugated double and triple bonds(-)',
|
||||
atom.num_pi_elec_conj_2_3_bonds))
|
||||
atom.steric_number -= atom.num_pi_elec_conj_2_3_bonds
|
||||
debug('%65s: %4d' % ('Number of donated co-ordinated bonds', 0))
|
||||
debug('{0:>65s}: {1:>4d}'.format(
|
||||
'Number of donated co-ordinated bonds', 0))
|
||||
atom.steric_number += 0
|
||||
debug('%65s: %4.1f' % ('Charge(-)', atom.charge))
|
||||
debug('{0:>65s}: {1:>4.1f}'.format(
|
||||
'Charge(-)', atom.charge))
|
||||
atom.steric_number -= atom.charge
|
||||
atom.steric_number = math.floor(atom.steric_number/2.0)
|
||||
atom.number_of_lone_pairs = (atom.steric_number
|
||||
- len(atom.bonded_atoms)
|
||||
- atom.number_of_protons_to_add)
|
||||
atom.number_of_lone_pairs = (
|
||||
atom.steric_number-len(atom.bonded_atoms)-atom.number_of_protons_to_add)
|
||||
debug('-'*70)
|
||||
debug('%65s: %4d' % ('Steric number', atom.steric_number))
|
||||
debug('%65s: %4d' % ('Number of lone pairs',
|
||||
atom.number_of_lone_pairs))
|
||||
debug('{0:>65s}: {1:>4d}'.format(
|
||||
'Steric number', atom.steric_number))
|
||||
debug('{0:>65s}: {1:>4d}'.format(
|
||||
'Number of lone pairs', atom.number_of_lone_pairs))
|
||||
atom.steric_num_lone_pairs_set = True
|
||||
|
||||
def add_protons(self, atom):
|
||||
@@ -191,8 +194,8 @@ class Protonate:
|
||||
if atom.steric_number in list(self.protonation_methods.keys()):
|
||||
self.protonation_methods[atom.steric_number](atom)
|
||||
else:
|
||||
warning('Do not have a method for protonating',
|
||||
atom, '(steric number: %d)' % atom.steric_number)
|
||||
warning('Do not have a method for protonating', atom,
|
||||
'(steric number: {0:d})'.format(atom.steric_number))
|
||||
|
||||
def trigonal(self, atom):
|
||||
"""Add hydrogens in trigonal geometry.
|
||||
@@ -200,7 +203,7 @@ class Protonate:
|
||||
Args:
|
||||
atom: atom to protonate
|
||||
"""
|
||||
debug('TRIGONAL - %d bonded atoms' % len(atom.bonded_atoms))
|
||||
debug('TRIGONAL - {0:d} bonded atoms'.format(len(atom.bonded_atoms)))
|
||||
rot_angle = math.radians(120.0)
|
||||
cvec = Vector(atom1=atom)
|
||||
# 0 bonds
|
||||
@@ -258,7 +261,8 @@ class Protonate:
|
||||
Args:
|
||||
atom: atom to protonate.
|
||||
"""
|
||||
debug('TETRAHEDRAL - %d bonded atoms' % len(atom.bonded_atoms))
|
||||
debug(
|
||||
'TETRAHEDRAL - {0:d} bonded atoms'.format(len(atom.bonded_atoms)))
|
||||
# TODO - might be good to move tetrahedral angle to constant
|
||||
rot_angle = math.radians(109.5)
|
||||
cvec = Vector(atom1=atom)
|
||||
@@ -304,7 +308,7 @@ class Protonate:
|
||||
new_h = propka.atom.Atom()
|
||||
new_h.set_property(
|
||||
numb=None,
|
||||
name='H%s' % atom.name[1:],
|
||||
name='H{0:s}'.format(atom.name[1:]),
|
||||
res_name=atom.res_name,
|
||||
chain_id=atom.chain_id,
|
||||
res_num=atom.res_num,
|
||||
@@ -327,14 +331,15 @@ class Protonate:
|
||||
atom.number_of_protons_to_add -= 1
|
||||
atom.conformation_container.add_atom(new_h)
|
||||
# update names of all protons on this atom
|
||||
new_h.residue_label = "%-3s%4d%2s" % (new_h.name, new_h.res_num,
|
||||
new_h.chain_id)
|
||||
new_h.residue_label = "{0:<3s}{1:>4d}{2:>2s}".format(
|
||||
new_h.name, new_h.res_num, new_h.chain_id)
|
||||
no_protons = atom.count_bonded_elements('H')
|
||||
if no_protons > 1:
|
||||
i = 1
|
||||
for proton in atom.get_bonded_elements('H'):
|
||||
proton.name = 'H%s%d' % (atom.name[1:], i)
|
||||
proton.residue_label = "%-3s%4d%2s" % (
|
||||
proton.name = 'H{0:s}{1:d}'.format(
|
||||
atom.name[1:], i)
|
||||
proton.residue_label = "{0:<3s}{1:>4d}{2:>2s}".format(
|
||||
proton.name, proton.res_num, proton.chain_id)
|
||||
i += 1
|
||||
debug('added', new_h, 'to', atom)
|
||||
@@ -352,8 +357,9 @@ class Protonate:
|
||||
if element in list(self.bond_lengths.keys()):
|
||||
dist = self.bond_lengths[element]
|
||||
else:
|
||||
str_ = ('Bond length for %s not found, using the standard value '
|
||||
'of %f' % (element, dist))
|
||||
str_ = (
|
||||
'Bond length for {0:s} not found, using the standard value '
|
||||
'of {1:f}'.format(element, dist))
|
||||
warning(str_)
|
||||
bvec = bvec.rescale(dist)
|
||||
return bvec
|
||||
|
||||
@@ -34,7 +34,7 @@ def single(pdbfile, optargs=None):
|
||||
options = loadOptions(*optargs)
|
||||
pdbfile = options.filenames.pop(0)
|
||||
if len(options.filenames) > 0:
|
||||
_LOGGER.warning("Ignoring filenames: %s", options.filenames)
|
||||
_LOGGER.warning("Ignoring filenames: {0:s}".format(options.filenames))
|
||||
my_molecule = Molecular_container(pdbfile, options)
|
||||
my_molecule.calculate_pka()
|
||||
my_molecule.write_pka()
|
||||
|
||||
@@ -58,7 +58,7 @@ class Vector:
|
||||
elif type(other) in [int, float]:
|
||||
return Vector(self.x * other, self.y * other, self.z * other)
|
||||
else:
|
||||
info('%s not supported' % type(other))
|
||||
info('{0:s} not supported'.format(type(other)))
|
||||
raise TypeError
|
||||
|
||||
def __rmul__(self, other):
|
||||
@@ -85,7 +85,8 @@ class Vector:
|
||||
return math.sqrt(self.sq_length())
|
||||
|
||||
def __str__(self):
|
||||
return '%10.4f %10.4f %10.4f'%(self.x, self.y, self.z)
|
||||
return '{0:>10.4f} {1:>10.4f} {2:>10.4f}'.format(
|
||||
self.x, self.y, self.z)
|
||||
|
||||
def __repr__(self):
|
||||
return '<vector>'
|
||||
@@ -100,9 +101,7 @@ class Vector:
|
||||
def rescale(self, new_length):
|
||||
""" Rescale vector to new length while preserving direction """
|
||||
frac = new_length/(self.length())
|
||||
res = Vector(xi=self.x*frac,
|
||||
yi=self.y*frac,
|
||||
zi=self.z*frac)
|
||||
res = Vector(xi=self.x*frac, yi=self.y*frac, zi=self.z*frac)
|
||||
return res
|
||||
|
||||
|
||||
@@ -296,7 +295,8 @@ class MultiVector:
|
||||
keys2 = get_sorted_configurations(atom2.configurations.keys())
|
||||
if self.keys != keys2:
|
||||
str_ = ('Cannot make multi vector: Atomic configurations '
|
||||
'mismatch for\n %s\n %s\n' % (atom1, atom2))
|
||||
'mismatch for\n {0:s}\n {1:s}\n'.format(
|
||||
atom1, atom2))
|
||||
raise KeyError(str_)
|
||||
for key in self.keys:
|
||||
atom1.setConfiguration(key)
|
||||
@@ -314,7 +314,7 @@ class MultiVector:
|
||||
def __str__(self):
|
||||
res = ''
|
||||
for i, key in enumerate(self.keys):
|
||||
res += '%s %s\n' % (key, self.vectors[i])
|
||||
res += '{0:s} {1:s}\n'.format(key, self.vectors[i])
|
||||
return res
|
||||
|
||||
def do_job(self, job):
|
||||
@@ -350,8 +350,9 @@ class MultiVector:
|
||||
for i in range(len(self.vectors)):
|
||||
self.result.vectors.append(
|
||||
# TODO - eliminate eval() or entire class
|
||||
eval('self.vectors[%d] %s other.vectors[%d]'
|
||||
% (i, operation, i)))
|
||||
eval(
|
||||
'self.vectors[{0:d}] {1:s} other.vectors[{2:d}]'.format(
|
||||
i, operation, i)))
|
||||
self.result.keys.append(self.keys[i])
|
||||
|
||||
def __add__(self, other):
|
||||
|
||||
@@ -31,7 +31,7 @@ class Version:
|
||||
Raises:
|
||||
NotImplementedError
|
||||
"""
|
||||
err = "Called an empty Version function with args %s" % args
|
||||
err = "Called an empty Version function with args {0:s}".format(args)
|
||||
raise NotImplementedError(err)
|
||||
|
||||
def calculate_desolvation(self, group):
|
||||
|
||||
@@ -48,8 +48,9 @@ def get_test_dirs():
|
||||
if test_path.is_dir():
|
||||
path_dict[key] = test_path
|
||||
else:
|
||||
errstr = ("Can't find %s test files in %s"
|
||||
% (key, [TEST_DIR / path, path]))
|
||||
errstr = (
|
||||
"Can't find {0:s} test files in {1:s}".format(
|
||||
key, [TEST_DIR / path, path]))
|
||||
raise FileNotFoundError(errstr)
|
||||
return path_dict
|
||||
|
||||
@@ -65,8 +66,9 @@ def run_propka(options, pdb_path, tmp_path):
|
||||
options += [str(pdb_path)]
|
||||
args = propka.lib.loadOptions(options)
|
||||
try:
|
||||
_LOGGER.warning("Working in tmpdir %s because of PROPKA file output; "
|
||||
"need to fix this.", tmp_path)
|
||||
_LOGGER.warning(
|
||||
"Working in tmpdir {0:s} because of PROPKA file output; "
|
||||
"need to fix this.".format(str(tmp_path)))
|
||||
cwd = Path.cwd()
|
||||
os.chdir(tmp_path)
|
||||
molecule = propka.molecular_container.Molecular_container(
|
||||
@@ -93,7 +95,7 @@ def compare_output(pdb, tmp_path, ref_path):
|
||||
ref_data.append(float(line))
|
||||
|
||||
test_data = []
|
||||
pka_path = Path(tmp_path) / ("%s.pka" % pdb)
|
||||
pka_path = Path(tmp_path) / ("{0:s}.pka".format(pdb))
|
||||
with open(pka_path, "rt") as pka_file:
|
||||
at_pka = False
|
||||
for line in pka_file:
|
||||
@@ -106,8 +108,9 @@ def compare_output(pdb, tmp_path, ref_path):
|
||||
match = re.search(r'([0-9]+\.[0-9]+)', line)
|
||||
value = float(match.group(0))
|
||||
test_data.append(value)
|
||||
errstr = ("Error exceeds maximum allowed value (%d decimal places)"
|
||||
% MAX_ERR_DECIMALS)
|
||||
errstr = (
|
||||
"Error exceeds maximum allowed value ({0:d} decimal places)".format(
|
||||
MAX_ERR_DECIMALS))
|
||||
assert_almost_equal(
|
||||
test_data, ref_data, decimal=MAX_ERR_DECIMALS, err_msg=errstr,
|
||||
verbose=True)
|
||||
@@ -126,17 +129,18 @@ def compare_output(pdb, tmp_path, ref_path):
|
||||
def test_regression(pdb, options, tmp_path):
|
||||
"""Basic regression test of PROPKA functionality."""
|
||||
path_dict = get_test_dirs()
|
||||
ref_path = path_dict["results"] / ("%s.dat" % pdb)
|
||||
ref_path = path_dict["results"] / ("{0:s}.dat".format(pdb))
|
||||
if ref_path.is_file():
|
||||
ref_path = ref_path.resolve()
|
||||
else:
|
||||
_LOGGER.warning("Missing results file for comparison: %s", ref_path)
|
||||
_LOGGER.warning("Missing results file for comparison: {0:s}".format(
|
||||
str(ref_path)))
|
||||
ref_path = None
|
||||
pdb_path = path_dict["pdbs"] / ("%s.pdb" % pdb)
|
||||
pdb_path = path_dict["pdbs"] / ("{0:s}.pdb".format(pdb))
|
||||
if pdb_path.is_file():
|
||||
pdb_path = pdb_path.resolve()
|
||||
else:
|
||||
errstr = "Missing PDB file: %s" % pdb_path
|
||||
errstr = "Missing PDB file: {0:s}".format(pdb_path)
|
||||
raise FileNotFoundError(errstr)
|
||||
tmp_path = Path(tmp_path).resolve()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user