best_ifaceE.py error

Member Site Forums Rosetta 3 Rosetta 3 – General best_ifaceE.py error

Viewing 4 reply threads
  • Author
    Posts
    • #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.

      • #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.)

        • #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 GLU

            Thanks.

          • #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: 126

              I 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.

            • #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’

              • #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.

                • #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.)

                  • #9079
                    Anonymous

                      Worked like a charm!!! Thanks.

                  Viewing 4 reply threads
                  • You must be logged in to reply to this topic.