Rosetta
Namespaces | Functions
JacobianStructure.cc File Reference

class that defines structure of Jacobian modules More...

#include <core/kinematics/jacobian/JacobianStructure.hh>
#include <basic/Tracer.hh>
#include <utility/pointer/memory.hh>
#include <core/kinematics/jacobian/SeriesJacobians.hh>

Namespaces

 core
 A class for reading in the atom type properties.
 
 core::kinematics
 
 core::kinematics::jacobian
 

Functions

static basic::Tracer TR ("core.kinematics.jacobian.JacobianStructure")
 

Detailed Description

class that defines structure of Jacobian modules

Author
teunhoevenaars (teunh.nosp@m.oeve.nosp@m.naars.nosp@m.@gma.nosp@m.il.co.nosp@m.m)

Function Documentation

◆ TR()

static basic::Tracer TR ( "core.kinematics.jacobian.JacobianStructure"  )
static

A Jacobian is the first-order differential of a function that takes a vector as its inputs and outputs. In mechanism analysis (and proteins can be considered complex mechanisms) Jacobian matrices are used to describe the tangent of a conformation. A conformation relates Cartesian positions/orientations of atoms to internal coordinates (such as torsion angles), which is also referred to as kinematics. The tangent (Jacobian) of a conformation is thus a first-order approximation of how a change in torsion angles affects the positions/orientations of the various atoms.

The position/orientation of some atom with respect to some other atom dependss on all DoFs that lie between them. In Rosetta the AtomTree uses Stubs to calculate the Cartesian position/orientation of the atom at the end of a series of atoms. Here, JacobianStructure uses SeriesJacobians to calculate the tangent of the Cartesian position/orientation of the atom at the end of a series of atoms with respect to the atom at the beginning of that series. Once expressed, a Jacobian can be used to:

  • 1. iteratively solve the inverse kinematics problem, i.e. obtain the required torsion angles to achieve a specified pose. This is for example of interest to loop closure.
  • 2. transform force/moment vectors that are expressed in a generalized space (e.g. as a function of bond angles, bond lengths, etc.) into Cartesian force/moment vectors, and vice versa. This can be used to find the energy gradient, and thereby guide the energy descent.

The first step in a Jacobian analysis is to obtain the kinematic relations. In most cases the atoms of a protein are connected in series (the basis for the AtomTree), which leads to a single set of kinematic relations. However, in some cases separate serial chains are connected in parallel (e.g. cyclical molecules, proline). In that case the Jacobian analysis is a combination of sets of kinematic relations, one for each serial chain. This class handles that upper-level structure that expresses how the Jacobian analysis of individual serial chains are related.