I am wondering if Rosetta has an app for detecting brakes and clashes in proteins? I have got an ensembles of protein decoys that were rebuilt from Ca and Cb traces, then idealized and relaxed. Some of the decoys have clashes, others have brakes. I would like to filter "bad" decoys out.
My other question is about the "bb_min_allowed_dev" option. Does it work with the Rosetta's relaxation? I am wondering whether or no increasing "bb_min_allowed_dev" to 0.7-1.0A would remove some severe clashes?
It sounds like the best tool for this job is molprobity, to tell the truth (because you want chainbreak checking).
The regular score_jd2 app will do a good job of detecting clashes. Run it with -out:pdb to get the PDBs out with scores attached; you can paste the scores section into a spreadsheet to see (by reading the residue rows/score type columns) which residues have large fa_rep clash scores, if any. This will also check the omega torsion angles (be wary that Rosetta scores cis and trans identically, it only checks for planarity.
Rosetta's not good at detecting chainbreaks, largely because Rosetta assumes there aren't any, so it doesn't bother to look. There is some code called LoopAnalyzer that will do this (if you don't find MolProbity easier to use), but it's only partially released. I'd be happy to get you the application file to compile in (for 3.4? 3.3?) if you need it. It's also available in PyRosetta.
If you want to check only omega bond _length_, but not three-body angles, you can activate the peptide_bond term by modifying your scorefunction. The easiest way is to copy rosetta_database/scoring/weights/score12.wts to some other file, add a line "peptide_bond 1.0", and pass that new weights file to score:weights (or just temporarily modify it in-place). This score reports as a normalized deviation from 1.325883 angstroms, std. dev 0.012547 (read core/scoring/methods/PeptidebondEnergy.cc).
bb_min_allowed_dev is used only by the enzyme design code, not relax.
By default, there's no restriction on backbone movement in relax. If you want to restrict movement of the protein backbone during relax, you can use the option -relax:constrain_relax_to_start_coords to add coordinate constraints to the backbone heavy atom positions. You can then adjust how tight or loose those constraints are with the -relax:coord_cst_stdev option.
I'm surprised idealize and relax would give you clashes and chainbreaks. From what I understand, idealize should remove any chainbreak by setting the peptide bond distance to its ideal value. And relax, especially if you didn't have any constraints on, should be good at removing clashes if it is at all possible to do so. How did you run idealize and relax?
"I'm surprised idealize and relax would give you clashes and chainbreaks. "
I assumed he wasn't using Rosetta for that part. Chainbreaks could be caused by artificially having too many chains in the PDB; if those were buried the extra atoms would lead to clashes?