Member Site › Forums › Rosetta 3 › Rosetta 3 – General › best_ifaceE.py error
- This topic has 7 replies, 2 voices, and was last updated 11 years, 1 month ago by
Anonymous.
-
AuthorPosts
-
-
July 12, 2013 at 3:35 pm #1652
Anonymous
All,
I’m a newbie to Rosetta. I tried extracting the best decoys from a silent file and got an error that I don’t know how to fix yet.
…/ligand_docking/best_ifaceE.py NBU_silent.out
KeyError: ‘ligand_is_touching’
I read that Ian Davis suggested to discard the decoys with ligand_is_touching = 0 but how does one do this?
Thanks.
-
July 12, 2013 at 6:11 pm #9039
Anonymous
What sort of silent file are you using? (How did you generate it?)
The best_ifaceE.py script is expecting an “atom tree diff”-type silent file as output from the ligand_docking application. It takes care of the ligand_is_touching condition, which is why it’s complaining about it — your silent file doesn’t have the ligand_is_touching field present. (At least one of the structures in the file isn’t annotated with that information.)
-
July 12, 2013 at 10:27 pm #9042
Anonymous
Hi rmoretti,
I generated it from a ligand docking run with the -out:file:atom_tree_diff command and got a silent file that contains the ligand_is_touching field but the value is always 1. Here is a piece of that file:
294 41 3.140276 1.048418
294 42 3.135151 1.061738
JUMP 1 0.048279343702 -0.836612284012 0.545663807863 0.089182645037 0.547729517490 0.831888713407 -0.994844490760 0.008500700569 0.101055317989 28.1944 31.2074 -5.5126
END_POSE_TAG NBU_Cdc25_S_input_0020
POSE_TAG NBUVU0063275_Cdc25_S_input_0021
SCORES NBUVU0063275_Cdc25_S_input_0021 angle_constraint 0 atom_pair_constraint 0 chainbreak 0 coordinate_constraint 1.6095 dihedral_constraint 1.78225e-07 dslf_ca_dih 0 dslf_cs_ang 0 dslf_ss_dih 0 dslf_ss_dst 0 fa_atr -1182.34 fa_dun 165.304 fa_intra_rep 2.58938 fa_pair -50.4525 fa_rep 115.277 fa_sol 540.337 hack_elec -54.4963 hbond_bb_sc -43.9065 hbond_lr_bb -17.109 hbond_sc -37.3441 hbond_sr_bb -396.882 if_X_angle_constraint 0 if_X_atom_pair_constraint 0 if_X_chainbreak 0 if_X_coordinate_constraint 0 if_X_dihedral_constraint 0 if_X_dslf_ca_dih 0 if_X_dslf_cs_ang 0 if_X_dslf_ss_dih 0 if_X_dslf_ss_dst 0 if_X_fa_atr -16.5869 if_X_fa_dun 0 if_X_fa_intra_rep 0 if_X_fa_pair -0.325116 if_X_fa_rep 1.70171 if_X_fa_sol 6.85622 if_X_hack_elec -0.757019 if_X_hbond_bb_sc -0.0879215 if_X_hbond_lr_bb 0 if_X_hbond_sc -0.174562 if_X_hbond_sr_bb 0 if_X_omega 0 if_X_p_aa_pp 0 if_X_pro_close 0 if_X_rama 0 if_X_ref 0 interface_delta_X -9.37359 ligand_centroid_travel_X 3.22392 ligand_is_touching_X 1 ligand_radius_of_gyration_X 3.5236 ligand_rms_no_super_X 6.11302 ligand_rms_with_super_X 2.48865 omega 29.4088 p_aa_pp -33.5751 pro_close 1.05299 rama -20.2437 ref -67.66 total_score -1048.43
MUTATE 89 VAL
MUTATE 90 GLUThanks.
-
July 17, 2013 at 1:06 am #9068
Anonymous
Hi rmoretti,
Worked like charm. So, it prints out a bunch of tags. I put the tags in a list (a text file) and ran:
extract_atomtree_diffs … -s silent.out -tags list
I even tried the individual tag alone instead of the list but it keeps complaining that
ERROR: Input AtomTreeDiff file does not have tag Cdc25_S_input_0001
ERROR:: Exit from: src/protocols/jd2/AtomTreeDiffJobInputter.cc line: 126I could use
extract_atomtree_diffs … -s silent.out -tags $(best_ifaceE.py silent.out)
but I use the C-Shell. Do you know the equivalent command for C-Shell?
Thanks.
-
July 17, 2013 at 5:01 pm #9074
Anonymous
It’s easy to switch to the Bash shell and use the
extract_atomtree_diffs … -s silent.out -tags $(best_ifaceE.py silent.out)
Or a work around somebody suggested on the Forum is
extract_atomtree_diffs … -s silent.out -tags ‘cat pdblist’
-
July 15, 2013 at 6:20 pm #9054
Anonymous
I’m not surprised that ligand_is_touching is always 1. It’s only rarely that it’s zero, so you could very well get a run where that’s not an issue.
The problem is that you’re getting “ligand_is_touching_X” fields instead of just “ligand_is_touching” fields. That’s because you’re apparently using the RosettaScripts ligand docking as opposed to the separate ligand_docking application. Because RosettaScripts ligand docking is more flexible, including doing multi-ligand docking, it annotates the metrics with which ligand (chain) the metric refers to. Since the stand alone ligand_docking application only does single ligand docking, it doesn’t bother.
best_ifaceE.py was written for the old stand-alone ligand_docking application, and hasn’t been updated for the RosettaScripts ligand_docking protocol. A quick fix, assuming you’re only doing single ligand docking and are going to be using chain X for the ligand chain, is to make a copy of rosetta_source/src/apps/public/best_ifaceE.py and change any “ligand_is_touching” to “ligand_is_touching_X”, “interface_delta” to “interface_delta_X” and all the “if_…”s to “if_X_…”s. Basically, make sure that all the terms referenced match how they appear in the SCORES line.
-
July 17, 2013 at 6:19 pm #9078
Anonymous
Using backticks (` – the symbol on the same key as the tilde(~)) around the expression apparently works for command substitution on both BASH and the C shell, so
extract_atomtree_diffs ... -s silent.out -tags `best_ifaceE.py silent.out`
should also work. (Though I don’t use the C shell.)
-
July 17, 2013 at 7:52 pm #9079
Anonymous
Worked like a charm!!! Thanks.
-
-
AuthorPosts
- You must be logged in to reply to this topic.