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: > > https://salilab.org/modeller/9v7/examples/automodel/model-disulfide.py > > 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).
Ben Webb, Modeller Caretaker