Hello
I am trying to model a small (22 amino acids) peptide with 3 disulfide bonds using structures of 6 related peptides with Modeller 9.7. The template peptides have 1-3 modified amino acids (pyroglutamate, hydroxyproline, amidated C-termini) and the peptide to be modeled has an amidated cysteine as the C-terminus.
Pyroglu is already in the restyp.lib file, and I added HYP as
HETATM | HYP | O | | #### | hydroxyproline
When I try to align the templates, all of the modified amino acids are missing from the alignments, and since each template has different numbers of modified residues, the reported alignment doesn't even get most of the cysteines aligned.
I tried setting env.io.hetatm= True to see if that made a difference, but then the routine failed with the following track back:
____________________________________________________________________
Traceback (most recent call last):
File "salignCTX.py", line 21, in ?
mdl = model(env, file=code, model_segment=('FIRST:'+chain, 'LAST:'+chain))
File "/Library/modeller-9v7/modlib/modeller/model.py", line 72, in __init__
self.read(**vars)
File "/Library/modeller-9v7/modlib/modeller/model.py", line 115, in read
return _modeller.mod_model_read(self.modpt, io.modpt,
File "/Library/modeller-9v7/modlib/modeller/io_data.py", line 56, in __get_modpt
self.__atom_files_directory)
TypeError: in method 'mod_io_data_set', argument 3 of type 'gboolean'
____________________________________________________________________
I'm not sure why env.io.hetatm = 'True' causes this error, since the routine runs fine under the default condition (env.io.hetatm = 'False')
the alignment routine is below (with "env.io.hetatm = 'True' commented out):
_________________________________________________________________
from modeller import *
log.verbose()
env = environ()
env.io.atom_files_directory = './:../atom_files/'
# env.io.hetatm = 'True'
aln = alignment(env)
for (code, chain) in (('1jlo', 'A'), ('1jlp', 'A'), ('1gib', 'A'), ('1tcg', 'A'), ('1r9i','A'),('1q2j','A')):
mdl = model(env, file=code, model_segment=('FIRST:'+chain, 'LAST:'+chain))
aln.append_model(mdl, atom_files=code, align_codes=code+chain)
for (weights, write_fit, whole) in (((1., 0., 0., 0., 1., 0.), False, True),
((1., 0.5, 1., 1., 1., 0.), False, True),
((1., 1., 1., 1., 1., 0.), True, False)):
aln.salign(rms_cutoff=3.5,normalize_pp_scores=False,
rr_file='$(LIB)/as1.sim.mat', overhang=30,
gap_penalties_1d=(-100.0, 0.0),
gap_penalties_3d=(0.0, 3.0), gap_gap_score=0, gap_residue_score=0,
dendrogram_file='M_conotoxins.tree',
alignment_type='tree', # If 'progresive', the tree is not
# computed and all structures will be
# aligned sequentially to the first
feature_weights=weights, # For a multiple sequence alignment only
# the first feature needs to be non-zero
improve_alignment=True, fit=True, write_fit=write_fit,
write_whole_pdb=whole, output='ALIGNMENT QUALITY')
aln.write(file='M_conotoxins.pap', alignment_format='PAP')
aln.write(file='M_conotoxins.ali', alignment_format='PIR')
aln.salign(rms_cutoff=1.0,normalize_pp_scores=False, rr_file='$(LIB)/as1.sim.mat', overhang=30,
gap_penalties_1d=(-100.0, 0.0), gap_penalties_3d=(0.0, 3.0),
gap_gap_score=0, gap_residue_score=0, dendrogram_file='M_conotoxins.tree',
alignment_type='progressive', feature_weights=[0]*6,
improve_alignment=False, fit=False, write_fit=True,
write_whole_pdb=False, output='QUALITY')
____________________________________________________________________
How does one get the modified amino acids to be part of the alignment process? Since the peptides are small, the modified amino acids comprise a significant portion of the total peptide. When one gets to the actual modeling, are these residues also ignored or set to something like the parent amino acid (i.e., proline for HYP)?
Thanks!
Mike White