The Disulfidizer API runs the Rosetta “Disulfidizer” protocol. The disfulfidizer protocol attempts to stabilize a protein by making disulfide bonds. This method has been used widely with atomic-resolution success for de novo designed small proteins, and less extensively for larger proteins. The user may restrict what sets of residues the protocol searches for disulfides between.  The protocol will return protein structures for as many disulfides and combinations thereof it found to be stabilizing, as well as a scorefile list of structures.  If it is not possible to make reasonable disulfide bonds for the given backbone, no models will be returned. See Notes for more details on the disulfidizer protocol.

Quickstart

Command Line Examples

Run disulfidizer on an input structure allowing any residue to form disulfides

cyrus engine submit disulfidizer input.pdb

Run disulfidizer on an input structure in permissive mode to allow more permissive disulfide bond formation and relax output models.

cyrus engine submit disulfidizer input.pdb --permissive --run-relax

Run disulfidizer on an input structure allowing residues 5-8 to form disulfides with residues 30-32

cyrus engine submit disulfidizer input.pdb --residue-set-1 "5 6 7 8" --residue-set-2 "30 31 32"

Run disulfidizer with max disulfides set to 1

cyrus engine submit disulfidizer input.pdb --max-disulfides 1

Python Examples

Run disulfidizer on an input structure allowing any residue to form disulfides

from engine.disulfidizer.client import DisulfidizerClient

client = DisulfidizerClient()
job_id = client.submit(pdb_path="input.pdb")

Run disulfidizer on an input structure in permissive mode

from engine.disulfidizer.client import DisulfidizerClient

client = DisulfidizerClient()
job_id = client.submit(pdb_path="input.pdb", permissive=True)

Run disulfidizer on an input structure allowing residues 5-8 to form disulfides with residues 30-32

from engine.disulfidizer.client import DisulfidizerClient

client = DisulfidizerClient()
  job_id = client.submit(
  pdb_path="input.pdb", 
  residue_set_1=[5,6,7,8], 
  residue_set_2=[30, 31, 32]
)

Inputs

Options

Outputs

Notes

Rosetta Disulfidizer Protocol

To summarize the documentation: 

This protocol scans a protein and builds disulfides that join residues in one set of residues with those in another set. GLY and PRO residues are ignored. Residues too close in primary sequence are ignored. Potential disulfides are first identified by CB-CB distance, then by mutating the pair to CYS, forming a disulfide, and performing energy minimization. If the energy passes a cutoff, it is compared with a set geometric criteria from a database of known disulfides in the PDB. If the “distance” along this metric passes a cutoff, the pairing is considered a valid disulfide bond.

Once valid disulfides are found, they are combinatorially added. For example, if disulfides are identified between residues 3 and 16 and also between residues 23 and 50, the following configurations will be found: 1. [3,16] 2. [23,50] 3. [3,16],[23,50]

The Rosetta Disulfidizer protocol described in further detail here (paper) and here (documentation).

Using residue sets

Using permissive mode

note

Cyrus recommends standard settings for conservative designs featuring the most likely disulfides, or permissive settings for hypothesis generation and creating large data sets for cross referencing with other tools.

Cyrus recommends standard settings for conservative designs featuring the most likely disulfides, or permissive settings for hypothesis generation and creating large data sets for cross referencing with other tools.

Output File interpretation

note

Results can be downloaded if and only if a job has succeeded – DONE state, see the list command below.  If no viable arrangements are identified, the job will have failed (status FAILED) and attempting to download its results will give an error message stating that there are no models.

Results can be downloaded if and only if a job has succeeded – DONE state, see the list command below.  If no viable arrangements are identified, the job will have failed (status FAILED) and attempting to download its results will give an error message stating that there are no models.

The model numbering is irrelevant to quality. The models are ordered in a way such that the first model (input_0001_0001.pdb) will contain the most N-terminal disulfide in the set, and the last-numbered model will contain the mostly C-terminal numbered disulfides.

Model quality can be assessed via scores.  Broad documentation on interpreting scores can be found here.  The score.sc file is a space-delimited data table, padded for easier reading.  It can be parsed with pandas dataframes, excel, or your tool of choice.  In the score.sc file, pay particular attention to the total_score and dslf_fa13 columns (the second and third).  The total_score is Rosetta’s overall grade for a model.  dslf_13 is a measurement of just the quality of the disulfides in the model.  This is a total score for all disulfides, so if there are several it adds them together.  In both cases, these scores are more-negative-is-better.  The total_score should have a negative value for good models, although this will depend enormously on the quality of the input model.  The dslf_13 score should have a small positive value (single digit positive) in an ideal case.  

Disulfidizer will output all combinations of disulfides that it can (see the introduction above).  As a consequence, the disulfide score for any individual disulfide is present for the model that contains only that disulfide.  You can also find this data in the per-residue score tables at the end of each PDB file. These are also in a space-delimited tabular format that can be imported into your analytics tool of choice.

Rosetta will also report the disulfides into the PDB models in two ways:

SSBOND     CYS A    4    CYS A   66                                       3.94  
REMARK PDBinfo-LABEL:   66 DISULFIDIZE

Example PDB data:

SSBOND     CYS A    4    CYS A   66                                       3.94  
...ATOM records omitted
REMARK PDBinfo-LABEL:   66 DISULFIDIZE

These can be parsed to get a quick overview of where disulfides went in an entire return dataset.

Treatment of existing disulfides

Disulfidizer is set up to discover disulfides even where they only exist.  As a consequence, models with existing disulfides may have them “rediscovered”, which may appear as a repacking or rotamer change.

Troubleshooting

If a job has failed because no disulfides could be formed, you will get an error message to that effect.  For any other failure contact Cyrus support for further details on the error and how to address it. 

No disulfides could be formed:

No output files were produced. The disulfidizer job resulted in the following errors:
No disulfide bonds could be added to the input structure

Some other error:

No output files were produced. The disulfidizer job resulted in the following errors:
The disulfidizer job crashed. Please contact 

References

Accurate de novo design of hyperstable constrained peptides

Rosetta Disulfidize

Rosetta Energy Terms