Hi all, I'm trying to run relax on a pdb which has ACE and NME terminal caps. Is there a way I can preserve those in the output? I'm not an expert Rosetta user, but here are some more specifics of what I've tried:
- If I run relax using simple settings, it looks like Rosetta sees my ACE and NME and doesn't complain. In the output pdb's score section, the residues were renamed ILE:AcetylatedNtermProteinFull_1 and LEU:MethylatedCtermProteinFull_134. The problem is that the ACE and NME atoms were squashed into their neighboring ILE and LEU residues meaning that those residues are now incomprehensible to other non-Rosetta software packages I'd like to use. I'd like to get legitimately standard ILE and LEU back out again, ideally with those cap atoms placed back into separate ACE and NME residues. Is there a way to do that within Rosetta?
Based on advice in the structure preparation section, I thought I'd try the -chemical:exclude_patches option. It seems to work in that those "merged" residues aren't appearing in the trace output, however, I'm now getting an error:
ERROR: Error! Could not open file ncaa_rotamer_libraries/n_methyl_amino_acid/LEU_Nmethylated.rotlib for read.
which I can't get rid of even if I try to use a resfile to not repack that LEU.
I looked back at the other relax advised options and found that if I add the -correct flag, then I don't get the error and it appears like relax proceeds as expected. According to the documentation, the -correct flag shouldn't be used with the newer score functions, so I don't know why this would make it not need those rotamers? Regardless, the output pdb appears to drop the ACE and NME completely, which is not ideal, but preferred over the non-standard ILE and LEU residues.
I'm not sure if I'm hitting a bug or not... but any advice is welcome!
Here's the version of Rosetta I'm using:
core.init: Rosetta version: rosetta.binary.linux.release-171 r171 2018.09+release.333d996 333d99699777cd6a50d1c1736bacd689f8f1d1df https://www.rosettacommons.org 2018-02-27T09:57:00.705373
Oh, and since it seems related, I tried "-use_terminal_residues true" instead of the -chemical:exclude_patches option, but that didn't seem to make a difference (I still got the squashed residues in the output).
Unfortuntely, we don't have any option to prevent the merging. Having the ACE/NME being merged into the attached residue is a deliberate thing being done by Rosetta. (And it's distinct from the patching system, so turning of those patches won't help.)
The best you probably can do is to go into the Rosetta database, in the Rosetta/main/database/chemical/residue_type_sets/fa_standard/merge_residue_behaviors.txt file, and comment out (prepend a '#' to) the ACE and NME lines there. That will keep Rosetta from merging those residues with the adjacent ones, but it may or may not work properly within Rosetta itself. I don't know if this has been benchmarked.
With recent versions of Rosetta, the ACE/NME may be appropriately recognized from the PDB chemical component dictionary, but that might cause issues. If you're getting errors, try adding the options `-load_PDB_components false` and `-ignore_unrecognized_res` to the commandline. With the merge_residue_behaviors.txt changes, this will definitely cause the ACE/NME to be lost.
The reason why the -correct seems to work is that - in addition to changing the scoring function to an older, outdated version - it switches Rosetta to an older, outdated residue type set, which doesn't have the merge_residue_behaviors.txt -- but you can get the same effect with the recent energy function and residue type set with the merge_residue_behaviors.txt changes and the -load_PDB_components false/-ignore_unrecognized_res changes.