#include <PTools.h>
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 PProtein * | CreateSlimProtein (PProtein *protein) |
static PProtein * | CreateSlimProtein (PProtein *protein, int startRes, int endRes) |
static Real | EffectorAnchorDist (PProtein *loop, ProteinSide side) |
static PChain * | LowestCommonChain (PChain *c1, PChain *c2) |
static list< PCluster > | GetClusters (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 () |
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.
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.
Caller is responsible for deallocating return.
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
.
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
.
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.
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] |