I have been trying to load 'HYP.params' for the hydroxyproline residue. According to previous answers in the forum there are 2 options: add the params file to the residue_types folder and editing the residue_types.txt or loading the params file via command lines in pyrosetta. Neither of these options work for me and raise the following error:
File: /Volumes/MacintoshHD3/benchmark/W.fujii.release/rosetta.Fujii.release/_commits_/main/source/src/core/chemical/AA.cc:301 [ ERROR ] UtilityExitException ERROR: unrecognized aa type HYP
I added the params file as a regular text file.
Thanks in advance.
PS: These are the PyRosetta code lines for (trying to) load HYP.params (although I have seen multiple approaches).
pose = pyrosetta.Pose()
rts = pose.conformation().modifiable_residue_type_set_for_conf(pyrosetta.rosetta.core.chemical.FULL_ATOM_t)
new = pyrosetta.rosetta.core.chemical.read_topology_file('HYP.params',rts)
Where are you getting the HYP params file from?
The issue here is that there are multiple different specifications of identifiers in the params file. The RESIDUE_IO line specifies how the residue will be read in from things like the three letter code in the PDB file. The AA line is a separate specification of the residue identity, but one which has to pick from a limited subset of possibilities. HYP is not one of those, so you'll have to substitute the canonical aa which represents the residue the best, so you want to use `AA PRO` instead.
That said, I don't believe it should be necessary to use a HYP-specific parameters file. Rosetta should, by default, contain a "patch file" which will create a HYP type from a proline type. A separate params file should only be needed if that default patch file is insufficient for your needs.
The HYP params file is generated by converting the HYP.sdf file (from online database) into HYP.mol using openbabel. Next, the M ROOT etc. atoms are assigned and this file is then run through the molfile_2_params_polymer.py script.
I was not aware of these patches. I found a patch called 'pro_hydroxylated_case1.txt' that contains the post-translational modification that I need.
How would I incorporate this patch in my code?
That said, I am planning to incorporate some modified amino acids where there is no corresponding patch.
The `pro_hydroxylated_case1.txt` patch is mentioned in the patches.txt file for the residue type set, so it should be loaded automatically. As such, Rosetta should be able to recognize residues with the three letter code HYP by default. (Just read in the PDB, and the residue should be recognized.)
If there's a modified amino acid without an existing patch, you would either need to create a params file for it (and then load that params file with the `-extra_res_fa` option) or create a patch file for it (and then load the patch with the `-extra_patch_fa` option).
Thank you for the help!