You are here

Relax command for docking purposes and cluster_vs_rmsd command

6 posts / 0 new
Last post
Relax command for docking purposes and cluster_vs_rmsd command
#1

Hello All,

I currently have two questions.

The first related to using the relax.linuxgccrelease,

I am relaxing a cleaned native structure to produce a 1000 decoys, in which I will cluster and use the top 5 to perform docking with Rosetta.

My question is when I relax my native structure, what options and flags should I include and not include. Should I be relaxing with contraints on the main chain and side chains, or should I relax with no constraints. Should I include -ex1 and -ex2aro flags for my purpose? Should I perform relax:fast or relax:thorough?

My next questions pertains to running the cluster_vs_rmsd.py script. I have tried to run it by ./score_vs_rmsd.py --native /home/ralphkfoury/projects/singaporeProject/structures/cleanstructures/1ATNcleanedAD.pdb --table=1atnscorevsrmsd.pdb --term=total /home/ralphkfoury/projects/singaporeProject/dockings/knownenergydockings/ActinvsDeoxyribonuclease1ATNchAD/clusterlogsandtextfiles/Dockingoutputstructureslist.txt

It keeps showing an error this error,
File "./score_vs_rmsd.py", line 43, in <module>
rms = pdbStat.calculate_rms(native,decoy,options.ca,options.residues,"",options.chain)
TypeError: calculate_rms() takes exactly 8 arguments (6 given)

Can anyone help me figure this out?

Thank you,

Ralph Kfoury

Category: 
Post Situation: 
Wed, 2015-04-01 08:48
Rkfoury

For relax, -ex1 and -ex2 (and -ex1aro and -ex2aro) don't really seem to improve results, but do add a fair amount to the runtime. For normal purposes you can omit them, but if you have the runtime, it doesn't hurt to add them in.

relax:fast is the default, and is the recommended one to use unless you have some specific reason to use relax:thorough. Frankly speaking, if you want to do a "thorough" relax, there are other flags you probably want to try first, prior to trying -relax:thorough.

Relaxing with or without constraints depends on what you're attempting to achieve with the relax, and what protocol you're going to be using it for. If you trust the input coordinates more than the Rosetta energy function (for example, the coordinates come from a crystal structure), then I might recommend constraints. If not, then relaxing without constraints might be warranted. Even with constraints, if the protocol you're using will be repacking the sidechains anyway, I'd recommend only using backbone constraints. If it's keeping the input sidechain conformations, you'd probably want sidechain constraints. Adding the flag "-relax:ramp_constraints false" will make sure the atoms don't move too far from their starting positions.

If the structure is really far from optimal, sometimes relax will cause the protein to fall apart. If that happens, you may want to add backbone constraints during relax, and omit the "-relax:ramp_constraints false", which will keep the atoms close during the initial phases, but will allow them to move during the later stages. This helps with keeping the protein from falling apart due to internal clashes and the like.

A note that if you use un-ramped constraints, the output structures tend to be very close to one another. You probably wouldn't need 5000 structures in that case. Unconstrained relax shows more variability, and as such would need more structures.

For the /score_vs_rmsd.py script issue, simply add "False,False", changing the indicated line to be:

rms = pdbStat.calculate_rms(native,decoy,options.ca,options.residues,"",options.chain,False,False)

Wed, 2015-04-01 10:27
rmoretti

Thank you very much R Moretti, my structure that I am relaxing is a cleaned structure( using the clean_pdb.py script) containining chains A, B and which I will attempt to dock Chain B to chain A after obtaining relaxed structures. The pdb files were obtained using xray crystallography (pdb.org) and have a very low resolution and a good R value. In this case, what would you recommend as flags and options for relax?

I was unsure what you meant by adding the " False,False" lines, I have tried adding this to my command and receive an error. I have also tried changing this line in the script to rms = pdbStat.calculate_rms(native,decoy,options.ca,options.residues,"",options.chain,False,False) and that didn't work.
Any suggestions?

Thanks Again

Ralph

Thu, 2015-04-02 11:07
Rkfoury

In your case I'd probably recommend using fastrelax with always-on ("-relax:ramp_constraints false") backbone-only constraints in the apo state for each chain. The reason is that you have good structures where you'd trust the input backbone conformation. I wouldn't do the sidechains as docking is going to be repacking the sidechains anyway, and you don't want to have a situation where a slightly bad energy from an input sidechain conformation is repacked out during docking, giving you an anomalous docking energy. I would also recommend adding the flags "-flip_HNQ" and "-no_optH false" to the commandline to attempt to help fix up some common crystallography artifacts.

Changing line 43 as you did is what I was suggesting. Are you still getting the same error with the score_vs_rmsd script? At the very least the numbers on the error message should change. Can you double check which script you're running and which one you're editing? It sounds like you have multiple copies of the script and edited a different one from the one you're running.

Thu, 2015-04-02 12:41
rmoretti

I changed the script located in Rosettabundles.../tools/proteintools/scripts ,
and edited the line contained in the paragraph as you suggested

for decoy_file in args:
tag = decoy_file.split("/").pop().split(".")[0]
decoy = util.load_pdb(decoy_file.rstrip())
score_table = rosettaScore.ScoreTable(decoy_file)
rms = pdbStat.calculate_rms(native,decoy,options.ca,options.residues,"",options.chain,False,False)
score = score_table.get_score(0,options.term) #0 is the pose energy
score_rmsd.append( (rms,score) )
name_score_rmsd.append( (decoy_file,rms,score) )

then I ran my script with the flags and options as follows,

~/Downloads/rosetta_src_2015.05.57576_bundle/tools/protein_tools/scripts$ ./score_vs_rmsd.py --native /home/ralphkfoury/projects/singaporeProject/structures/cleanstructures/1ATNcleanedAD.pdb --table=1atnvsrmsd.pdb --term=total /home/ralphkfoury/projects/singaporeProject/dockings/knownenergydockings/ActinvsDeoxyribonuclease1ATNchAD/dockingoutputstructures/33015nstruct200X5structopcluster/1ATNcleanedAD_0001_0158_0001.pdb
calculating RMSD between 1 decoys and the native structure /home/ralphkfoury/projects/singaporeProject/structures/cleanstructures/1ATNcleanedAD.pdb
calculating all-atom RMSD
you must specify a ca_mode, all,bb, or ca.

Let me know what you think, it is giving me the error right above?

Fri, 2015-04-03 09:23
Rkfoury

That looks to be another issue, in addition to the first. The quick fix would be to replace options.ca on the calculate_rms line with 'ca' (or 'bb' or 'all' for c-alpha only, backbone, and all atom rmsd calculations, respectively).

rms = pdbStat.calculate_rms(native,decoy,'ca',options.residues,"",options.chain,False,False)

The quotation marks around the 'ca', 'bb' or 'all' are important.

Sat, 2015-04-25 10:05
rmoretti