PTools Class Reference

#include <PTools.h>

List of all members.


Detailed Description

PTools defines a variety of functions related to loop closure, including functions to calculate goal positions, computation of Jacobian, computation of Null Space, and computation of RMSD distance.


Static Public Member Functions

static void GetGoals (PAtom *anchorPrior, PAtom *anchorEnd, PAtom *effectorPrior, PAtom *effectorEnd, Real len, Real angle1, Real angle2, Vector3 &goalPrior, Vector3 &goalEnd)
static void GetGoals (PProtein *protein, ProteinSide side, Vector3 &goalPrior, Vector3 &goalEnd)
static ProteinSide GetGoals (PProtein *protein, Vector3 &goalPrior, Vector3 &goalEnd)
static PProteinCreateSlimProtein (PProtein *protein)
static PProteinCreateSlimProtein (PProtein *protein, int startRes, int endRes)
static Real EffectorAnchorDist (PProtein *loop, ProteinSide side)
static PChainLowestCommonChain (PChain *c1, PChain *c2)
static list< PClusterGetClusters (const PConformationSpace &space, ConformationDistFn distFn, Real threshold)
static int getBackboneAtomIndex (int resIndex, const string &atomID)
static void ComputeJacobian (PProtein *loop, vector< int > ind, double **Jac, Vector3 p, bool forward)
static void ComputeJacobian (PProtein *loop, vector< int > ind, double **Jac, bool forward)
static void ComputeJacobian (PProtein *loop, double **Jac)
static void ComputePseudoInverse (double **A, int m, int n, double **Ainv)
static void ComputeNullSpace (double **Jac, int dim, bool SixDimensional, NullSpaceRet *Ret)
static void ProjectOnNullSpace (PProtein *loop, vector< int > ind, bool forward, double ToProject[], double AfterProject[])
static vector< vector< CDof > > GetBBDofs (vector< PProtein * > loops)
static double RMSDBackbone (PProtein *protein0, PProtein *protein1, int loopstart, int loopend)
static double RMSDAllAtom (PProtein *protein0, PProtein *protein1, int loopstart, int loopend)
static bool CopyBackbone (PProtein *lpS, PProtein *lpD, int startS, int startD, int numRes)
static bool CopyBackbone (PProtein *lpS, PProtein *lpD)
static void RandomNullSpacePerturb (PProtein *lp, double pert_mag)
static void RandomNullSpacePerturb (PProtein *lp, vector< vector< CDof > > Dofs, double pert_mag)
static IKSolution CloseAlmostClosedLoop (PProtein *lp, Vector3 endPriorGoal, Vector3 endGoal, Vector3 endNextGoal)
static int gsl_test ()


Member Function Documentation

void PTools::GetGoals ( PAtom anchorPrior,
PAtom anchorEnd,
PAtom effectorPrior,
PAtom effectorEnd,
Real  len,
Real  angle1,
Real  angle2,
Vector3 &  goalPrior,
Vector3 &  goalEnd 
) [static]

Computes goal positions for chain loop closure. This version of the overloaded function GetGoals does not make the assumption that the chain in question represents a protein, and so requires information about the location of both anchors and end effectors.

Parameters:
anchorPrior The anchor closest to the disconencted chain loop.
anchorEnd The anchor farthest from the disconnected chain loop.
effectorPrior The end effector whose goal is farthest from anchorPrior.
effectorEnd The end effector whose goal is closest to anchorPrior.
len Distance between goalEnd and anchorPrior.
angle1 Angle formed by goalPrior-goalEnd-anchorPrior.
angle2 Angle formed by goalEnd-anchorPrior-anchorEnd.
goalPrior Reference to the Vector3 in which to store the goal for effectorPrior.
goalEnd Reference to the Vector3 in which to store the goal for effectorEnd.

void PTools::GetGoals ( PProtein protein,
ProteinSide  side,
Vector3 &  goalPrior,
Vector3 &  goalEnd 
) [static]

Computes goal positions for the specified protein on the specified ProteinSide.

ProteinSide PTools::GetGoals ( PProtein protein,
Vector3 &  goalPrior,
Vector3 &  goalEnd 
) [static]

Computes goal positions for the specified protein. The ProteinSide direction is selected automatically based on distances between anchor and end effector atoms: whichever side (start/end) has the greater C-N anchor-effector distance is used.

PProtein * PTools::CreateSlimProtein ( PProtein protein  )  [static]

Caller is responsible for deallocating return.

PProtein * PTools::CreateSlimProtein ( PProtein protein,
int  startRes,
int  endRes 
) [static]

Real PTools::EffectorAnchorDist ( PProtein loop,
ProteinSide  side 
) [static]

Returns the distance between the closest anchor and end effector atoms on the specified side of loop.

PChain * PTools::LowestCommonChain ( PChain c1,
PChain c2 
) [static]

Returns smallest shared chain or NULL if different top-level chains.

list< PCluster > PTools::GetClusters ( const PConformationSpace space,
ConformationDistFn  distFn,
Real  threshold 
) [static]

Performs conformation space clustering on the specified space. The user-provided function compFn is used to determine the distance between each pair of conformations.

int PTools::getBackboneAtomIndex ( int  resIndex,
const string &  atomID 
) [static]

Returns the index (of atoms in the backbone) for atom atomID in residue number resIndex.

void PTools::ComputeJacobian ( PProtein loop,
vector< int >  ind,
double **  Jac,
Vector3  p,
bool  forward 
) [static]

Computes Jacoboian of specified loop, using specified DOFs (ind), tool frame position(p) and direction (forward/backward).

void PTools::ComputeJacobian ( PProtein loop,
vector< int >  ind,
double **  Jac,
bool  forward 
) [static]

Computes Jacoboian of specified loop, using specified DOFs and direction

void PTools::ComputeJacobian ( PProtein loop,
double **  Jac 
) [static]

Computes Jacoboian of specified loop, using all backbone DOFs, C-anchor's position, and direction

void PTools::ComputePseudoInverse ( double **  A,
int  m,
int  n,
double **  Ainv 
) [static]

Computes Singularity Robust Inverse of m x n matrix A, The result is contained in Ainv.

void PTools::ComputeNullSpace ( double **  Jac,
int  dim,
bool  SixDimensional,
NullSpaceRet Ret 
) [static]

Computes Null Space of the Jacobian Jac. The dimensions of Jac are 6 x dim or 3 x dim depending on SixDimensional

void PTools::ProjectOnNullSpace ( PProtein loop,
vector< int >  ind,
bool  forward,
double  ToProject[],
double  AfterProject[] 
) [static]

Projects Vector ToProject on the null space of Jacobian of the loop, given the DOFs of loop(ind) to consider, direction of computation of Jacobian (forward). The Projected vector is returned in AfterProject.

vector< vector< CDof > > PTools::GetBBDofs ( vector< PProtein * >  loops  )  [static]

Returns all backbone DOFs of all loops

double PTools::RMSDBackbone ( PProtein protein0,
PProtein protein1,
int  loopstart,
int  loopend 
) [static]

Returns RMSD between backbones of two proteins protein0 and protein1 starting from residue loopstart and ending at residue loopend.

double PTools::RMSDAllAtom ( PProtein protein0,
PProtein protein1,
int  loopstart,
int  loopend 
) [static]

Returns RMSD between all the atoms of two proteins protein0 and protein1 starting from residue loopstart and ending at residue loopend.

bool PTools::CopyBackbone ( PProtein lpS,
PProtein lpD,
int  startS,
int  startD,
int  numRes 
) [static]

Modifies a protein loop/ fragment specified by lpD to overlap it with a specified loop/fragment specified by lpS. The loops start respectively at startS and startD and have numRes number of residues. The N-C-alpha atoms of the starting residues of the loops should have same coordinates.

bool PTools::CopyBackbone ( PProtein lpS,
PProtein lpD 
) [static]

Modifies a protein loop/ fragment specified by lpD to overlap it with a specified loop/fragment specified by lpS.

void PTools::RandomNullSpacePerturb ( PProtein lp,
double  pert_mag 
) [static]

Finds a new conformation of loop specified by lp after a random perturbation in its null space. The magnitude of perturbation is specified by pert_mag. All Backbone DOFs of the loop are perturbed.

void PTools::RandomNullSpacePerturb ( PProtein lp,
vector< vector< CDof > >  Dofs,
double  pert_mag 
) [static]

Finds a new conformation of loop specified by lp after a random perturbation in its null space. The magnitude of perturbation is specified by pert_mag. Only the DOFs specified by Dofs are perturbed.

IKSolution PTools::CloseAlmostClosedLoop ( PProtein lp,
Vector3  endPriorGoal,
Vector3  endGoal,
Vector3  endNextGoal 
) [static]

In many applications one might want to relax the closure constraint by a little bit and in the end the loop specified by lp has to be closed. This method finds a closed conformation closest in terms of RMSD distance to the open conformation. The pose of the closed conformation is defined by the three atoms endPriorGoal, endGoal, and endNextGoal.

int PTools::gsl_test (  )  [static]


The documentation for this class was generated from the following files:
Generated on Wed May 16 20:22:14 2007 for LoopTK: Protein Loop Kinematic Toolkit by  doxygen 1.5.1