How does Rosetta select atom pairs for Lennard Jones Potential calculations?

Member Site Forums PyRosetta PyRosetta – General How does Rosetta select atom pairs for Lennard Jones Potential calculations?

Viewing 1 reply thread
  • Author
    Posts
    • #2324
      Anonymous

        Hi,

        I am a new user for Rosetta and I am now trying to figure out how exactly PyRosetta is making the atom pair selection for scoring function calculations in general. For example, when we calculate pair-potential we will not include those bonded atom pairs and we also do not consider those who are two chemical bonds away. I wonder what is the selection rule for Rosetta? And where I could find the source code in the Rosetta folder?

         

        Many thanks.

         

      • #11295
        Anonymous

          This is all going to live somewhere under Rosetta/src/core/scoring.  This is some of the most optimized, and therefore most complex to read, code.  The Rosetta3 Methods in Enzymology review paper http://www.ncbi.nlm.nih.gov/pubmed/21187238, section 4.6.2, describes how different EnergyMethod types determine what atom pairs get scored (not sorted by concrete type, but by the parent classes – LJ is in the etable so it’s ContextIndependentTwoBody).  The right place to start tracing code is probably src/core/scoring/ScoreFunction.cc, function operator().  You’re probably better off looking through Andrew Leaver-Fay’s papers than reading the code itself (certainly do at least read the papers first.)

        • #11298
          Anonymous

            Specifically, it’s the CountPair functions (in Rosetta/src/core/scoring/etable/count_pair/) which determine which atoms are included/excluded in LJ calculations. The determination of which CountPair function is used is encoded in Rosetta/src/core/scoring/etable/BaseEtableEnergy.*  There’s a bit of complicated logic in the determine_crossover_behavior() function, which more-or-less boils down to 1-3 exclusion for most things (e.g. disulfides), but 1-4 across the peptide bond. 

            Much of the details of exclusion behavior in LJ is esoteric, though, as stadard Rosetta does not really use intra-residue LJ. The internal energy of residues is based off of statistical potentials, and LJ is used just for residue-residue interactions, most of which are non-covalent. (That’s not entirely true, as fa_intra_rep is sometimes turned on at *small* levels, but the small weight means it’s normally negligible, anyway.)

          • #11303
            Anonymous

              Hi,

               

              Thanks so much for your response, yet I am still confused about the terminology between Rosetta and PyRosetta. are all scoring function names conserved from Rosetta to PyRosetta? For example, I was trying to search for “fa_intra_rep” in Rosetta source folder but I did not find any function is calling this name. Do you have any idea where I can find the precise definition of fa_intra_rep or its corresponded equivalence in Rosetta source files?

              Many thanks again.

               

              Bo

            • #11304
              Anonymous

                fa_intra_rep is the label for a weight for a term in the scorefunction.  It’s a function in the math sense but not the programming sense.  fa_intra_rep is managed by a collection of code referred to as the “Etable” (because histortically it was calculated by table lookups instead of directly, for speed reasons) – this is the location Rocco referred to you above.

            Viewing 1 reply thread
            • You must be logged in to reply to this topic.