You are here

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

5 posts / 0 new
Last post
How does Rosetta select atom pairs for Lennard Jones Potential calculations?
#1

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.

 

Category: 
Post Situation: 
Thu, 2015-10-29 08:04
bowang2013

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

Fri, 2015-10-30 10:42
smlewis

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

Sat, 2015-10-31 09:16
rmoretti

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

Mon, 2015-11-02 19:46
bowang2013

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.

Tue, 2015-11-03 09:17
smlewis