Re: [modeller_usage] How to (partially) override model.patch_ss_templates() ?
To: Luca Jovine <>, "" <>
Subject: Re: [modeller_usage] How to (partially) override model.patch_ss_templates() ?
From: Modeller Caretaker <>
Date: Mon, 26 Nov 2018 13:23:23 -0800
On 11/23/18 9:38 PM, Luca Jovine wrote:
I am trying to make a model of a disulfide-bonded protein, where some
disulfides are the same as in my templates, but some are shuffled. I
redefined the shuffled disulfides as described here:
but the models that I get always show the same exact disulfide
connectivity of the templates, i.e. redefining special_patches does not
seem to override model.patch_ss_templates().
special_patches is used to add additional patches to the defaults; it
doesn't change the default set of patches. To do that, override the
default_patches method instead (which by default just calls
patch_ss_templates() - see automodel.py in your Modeller installation).
This will remove *all* template-derived disulfides though, so you'd have
to add patches for each one you want to keep by hand.
That being said, this isn't usually what you want to do.
patch_ss_templates() just adds S-S bonds for nearby Cys pairs as defined
by your alignment and template structure. If you skip this, you won't
get the S-S bonds, but you'll still get all the other pairwise distances
implied by the alignment with the template, so the two Cys residues will
still end up in proximity. If you define alternate disulfides, likely
those S-S bonds will fight the distances from the alignment and you'll
get poor quality models. You probably just want to not align your model
sequence with at least one of the template Cys residues in this case, so
that it won't get the S-S bond *or* the other residue-residue distances
(and no need for you to mess with patch_ss_templates).