Individual residue repacking causes segmentation fault or “ERROR: seqpos >= 1 ERROR:: Exit from: src/core/conformation/Confo…”

Member Site Forums PyRosetta PyRosetta – General Individual residue repacking causes segmentation fault or “ERROR: seqpos >= 1 ERROR:: Exit from: src/core/conformation/Confo…”

Viewing 2 reply threads
  • Author
    Posts
    • #1226
      Anonymous

        PyRosetta 47983.64bit Linux

        When selectively repacking a pose containing disulfide bonds, choosing to temporarily repack residues that do not include all CYDs results in a segfault or ERROR.

        example pose: 1-HIS, 2-CYD, 3-PHE, 4-MET, 5-GLY, 6-VAL, 7-CYD, 8-ILE

        For the procedure:

        1. load pose
        2. pt = standard_packer_task(pose)
        3. pt.restrict_to_repacking()
        4. pt.temporarily_fix_everything()
        5. pt.temporarily_set_pack_residue(3,True)
        6. pm = PackRotamersMover(scorefxn,pt)
        7. pm.apply(pose)

        I get:

        ERROR: seqpos >= 1
        ERROR:: Exit from: src/core/conformation/Conformation.hh line: 288

        But with:

        1. load pose
        2. pt = standard_packer_task(pose)
        3. pt.restrict_to_repacking()
        4. pt.temporarily_fix_everything()
        5. pt.temporarily_set_pack_residue(1,True)
        6. pt.temporarily_set_pack_residue(2,True)
        7. pt.temporarily_set_pack_residue(7,True)
        8. pm = PackRotamersMover(scorefxn,pt)
        9. pm.apply(pose)

        Everything is fine.

      • #6915
        Anonymous

          Um.

          Well.

          First, although the code does a poor job of making this obvious, temporarily_etc are not meant to be used except by one specific client; they’re not for general use. Your bug is hopefully due to uses of the temporarily_ functions that won’t hold up because they aren’t meant to do that. It’s used to make temporary one-residue-at-a-time PackerTasks for Rotamer Trials, but they may leave the PackerTask itself in a self-inconsistent state.

          So, you should not use those functions! Instead use restrict_to_residues(vector1), where trues are repack and falses are don’t repack.

        • #6922
          Anonymous

            Thank you Steven. Using restrict_to_residues(vector1) fixed things.

            This also forces you to make a new standard_packer_task(), and thus a new PackRotamersMover() every time you want to repack different parts of your protein. Setting a vector1 index to False and using the restrict_to_residues() method knocks out “allowed_aas” and I’m unsure of how to get them back. Just creating a new instance right now.

            “So, you should not use those functions!” <-- PyRosetta people please take note and ammend Workshop #6.

          • #6923
            Anonymous

              “This also forces you to make a new standard_packer_task()…every time you want to repack different parts of your protein. “

              This is a feature, not a bug. PackerTasks are meant to be one-time-use objects – they retain state in ways that can be dangerous if you reuse them in the wrong situations. Specifically, the “do not design” functionality remembers what the residue type was at task creation time – so a task that says “do not design” will, in fact, cause mutations if the pose you use it on no longer has the same sequence as the pose the task was created from. (This may be explained in the Leaver-Fay 2011 MIE paper, I’m not sure).

            • #6924
              Anonymous

                All right. Important safety tip.

                Again, thank you for your prompt responses. The fact that it takes less than a day to solve these types of problems is invaluable to people’s work. And such support on free software! This saved time really adds up. Thanks, Steven.

              • #6930
                Anonymous

                  I do what I can, and you’re very welcome. Fast replies are more a function of “what do I know off the top of my head” than anything else…

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