#include <PSampMethods.h>
Static Public Member Functions | |
static IKSolution | RandAndIKClose (PProtein *loop, bool clash_free) |
static IKSolution | RandAndIKClose (PProtein *loop, const string &pdbFileName, bool clash_free) |
static IKSolutions | PermuteIK (PProtein *loop, int num_wanted) |
static vector< PProtein * > | DeformSampleBackbone (PProtein *orig_protein, int loopSid, int loopEid, int num_wanted, double deform_mag) |
static vector< PProtein * > | SeedSampleBackbone (PProtein *protein, int loopSid, int loopEid, int num_wanted=1) |
static vector< PProtein * > | SeedSampleBackboneWithSidechain (PProtein *protein, int loopSid, int loopEid, string scwrl3_path, int num_wanted=1) |
static vector< PProtein * > | SeedSampleBackboneWithSidechainLoopOnly (PProtein *original_protein, int loopSid, int loopEid, string scwrl3_path, int num_wanted=1) |
static vector< PProtein * > | SeedSampleBackbone (PProtein *protein, int loopSid, int loopEid, map< string, PPhiPsiDistribution > &distri_map, int num_wanted=1) |
static vector< PProtein * > | SeedSampleBackboneWithSidechain (PProtein *protein, int loopSid, int loopEid, map< string, PPhiPsiDistribution > &distri_map, string scwrl3_path, int num_wanted) |
static vector< PProtein * > | SeedSampleBackboneWithSidechainLoopOnly (PProtein *original_protein, int loopSid, int loopEid, map< string, PPhiPsiDistribution > &distri_map, string scwrl3_path, int num_wanted) |
static PProtein * | MergeProtein (PProtein *loop, PProtein *original_protein, int startRid) |
static PProtein * | MergeProteinByPdbId (PProtein *loop, PProtein *original_protein, int startPdbId) |
static void | addSidechain (string loopFile, string boundaryFile, string scwrl3_path, string outLoopFile) |
static void | AddSidechain (string protein_input, int addStart, int addEnd, string scwrl3_path, string protein_output) |
static vector< PProtein * > | SeedSampleBackboneLoopOnly (PProtein *original_protein, int loopSid, int loopEid, int num_wanted=1) |
static vector< PProtein * > | SeedSampleBackboneLoopOnly (PProtein *original_protein, int loopSid, int loopEid, map< string, PPhiPsiDistribution > &distri_map, int num_wanted=1) |
static PProtein * | FillMissingLoop (PProtein *original_p, int start_pdb_id, int end_pdb_id, vector< string > loop_seq) |
IKSolution PSampMethods::RandAndIKClose | ( | PProtein * | loop, | |
bool | clash_free | |||
) | [static] |
Randomizes the loop
and then closes it using Exact IK method Coutsias et al. Sampled conformation is collision free or not depending on clash_free
.
IKSolution PSampMethods::RandAndIKClose | ( | PProtein * | loop, | |
const string & | pdbFileName, | |||
bool | clash_free | |||
) | [static] |
Randomizes the loop
and then closes it using Exact IK method Coutsias et al. Sampled conformation is collision free or not depending on clash_free
. The conformation is output to pdbFileName
.
IKSolutions PSampMethods::PermuteIK | ( | PProtein * | loop, | |
int | num_wanted | |||
) | [static] |
Generates num_wanted
(number of) closed conformations starting from a closed conformation of a loop loop
, by using various permutations of 6DOFs as needed by ExactIK solution method developed by Coutsias et al.
vector< PProtein * > PSampMethods::DeformSampleBackbone | ( | PProtein * | orig_protein, | |
int | loopSid, | |||
int | loopEid, | |||
int | num_wanted, | |||
double | deform_mag | |||
) | [static] |
Generates num_wanted
(number of) closed clash-free,backbone conformations by deforming a loop specified by residue indices loopSid
and loopEid
of protein chain specified by orig_protein
. The loop is deformed in a random direction in its null/tangent space and the magnitude of deformation is specified by deform_mag
. orig_protein
stays unchanged. Side chains act like rigid bodies attached to the backbone. New side chains can be placed using addSideChain method defined in this class.
vector< PProtein * > PSampMethods::SeedSampleBackbone | ( | PProtein * | protein, | |
int | loopSid, | |||
int | loopEid, | |||
int | num_wanted = 1 | |||
) | [static] |
Generates num_wanted
(number of)closed, clash-free backbone conformations of a loop specified by residue indices loopSid
and loopEid
of protein chain specified by protein
. Note that, the residue index starts from 0. If num_wanted
is not specified, the default is 1. The protein
is not changed at all in the function. The output is a vector of pointers to proteins containing the desired loop conformation. The resulting closed, collsion-free loop backbones will only consist of N, C_alpha, C_beta, C and O atoms. There will be no collision between any atom on the loop backbone with any other atom on the loop backbone or with any atom on the rest of the protein.The phi and psi angles in the loop are sampled uniformly between 0 and 2 pi.
vector< PProtein * > PSampMethods::SeedSampleBackboneWithSidechain | ( | PProtein * | protein, | |
int | loopSid, | |||
int | loopEid, | |||
string | scwrl3_path, | |||
int | num_wanted = 1 | |||
) | [static] |
Similar to the above function. In addition, the loops are with side chains, which are also not in collision. Side-chains are added using SCWRL3. User needs to provide the path of the executable of SCWRL3 as scwrl3_path
.
vector< PProtein * > PSampMethods::SeedSampleBackboneWithSidechainLoopOnly | ( | PProtein * | original_protein, | |
int | loopSid, | |||
int | loopEid, | |||
string | scwrl3_path, | |||
int | num_wanted = 1 | |||
) | [static] |
Similar to the above function. However, rather than returning the entire protein, only the loop portion is returned.
vector< PProtein * > PSampMethods::SeedSampleBackbone | ( | PProtein * | protein, | |
int | loopSid, | |||
int | loopEid, | |||
map< string, PPhiPsiDistribution > & | distri_map, | |||
int | num_wanted = 1 | |||
) | [static] |
Same as the other SeedSampleBackbone method, but the phi and psi angles are sampled according a distribution. If the distribution map distri_map
only has one element, then this distribution will be applied on all amino acids. Otherwise, there should be 20 distributions in the map. Each distribution corresponds to one amino acid, and the corresponding name of a distribution should be the 3-letter amino acid name in all capital letters.
vector< PProtein * > PSampMethods::SeedSampleBackboneWithSidechain | ( | PProtein * | protein, | |
int | loopSid, | |||
int | loopEid, | |||
map< string, PPhiPsiDistribution > & | distri_map, | |||
string | scwrl3_path, | |||
int | num_wanted | |||
) | [static] |
Similar to the above function. In addition, the loops are with side chains, which are also not in collision. Side-chains are added using SCWRL3. User needs to provide the path of the executable of SCWRL3 as scwrl3_path
.
vector< PProtein * > PSampMethods::SeedSampleBackboneWithSidechainLoopOnly | ( | PProtein * | original_protein, | |
int | loopSid, | |||
int | loopEid, | |||
map< string, PPhiPsiDistribution > & | distri_map, | |||
string | scwrl3_path, | |||
int | num_wanted | |||
) | [static] |
Similar to the above function. However, rather than returning the entire protein, only the loop portion is returned.
PProtein * PSampMethods::MergeProtein | ( | PProtein * | loop, | |
PProtein * | original_protein, | |||
int | startRid | |||
) | [static] |
Merges the loop
with the original_protein
. The 0-th residue in the loop becomes the startRid
-th residue in the resulting protein. Neither loop
or original_protein
is changed in the function. Users are responsible to delete the returned protein if they don't need it any more.
PProtein * PSampMethods::MergeProteinByPdbId | ( | PProtein * | loop, | |
PProtein * | original_protein, | |||
int | startPdbId | |||
) | [static] |
Similar to the above function. However, the 0-th residue in the loop becomes the residue with PDB ID startPdbId
in the protein.
void PSampMethods::addSidechain | ( | string | loopFile, | |
string | boundaryFile, | |||
string | scwrl3_path, | |||
string | outLoopFile | |||
) | [static] |
Add side chains to a loop using SCWRL3 with option -i, -o and -f. For the details of SCWRL3 and its usage, please go to http://dunbrack.fccc.edu/SCWRL3.php. The loop is specified in a pdb file loopFile
(option -i). A boundary is specified in a pdb file boundaryFile
(option -f). Please specify the FULL path of your scwrl3 program at scwrl3_path
. The loop with side chain will be written into a pdb format file outLoopFile
. Note that, in the output loop file outLoopFile
, columns after the 3D coordinates are not meaningful.
void PSampMethods::AddSidechain | ( | string | protein_input, | |
int | addStart, | |||
int | addEnd, | |||
string | scwrl3_path, | |||
string | protein_output | |||
) | [static] |
Add side chains to a portion of a protein using SCWRL3 with option -i, -o and -s. For the details of SCWRL3 and its usage, please go to http://dunbrack.fccc.edu/SCWRL3.php. The protein is specified in PDB format in file protein_input
. The protion of the protein from the residue addStart
(as in the PDB file) to the residue addEnd
is to be placed side chains, while the rest is to serve as the boundary. Please specify the FULL path of your scwrl3 program at scwrl3_path
. The entire protein with side-chain-placement in the portion will be written into the file protein_output
. Note that, in the output loop file outLoopFile
, columns after the 3D coordinates are not meaningful.
vector< PProtein * > PSampMethods::SeedSampleBackboneLoopOnly | ( | PProtein * | original_protein, | |
int | loopSid, | |||
int | loopEid, | |||
int | num_wanted = 1 | |||
) | [static] |
vector< PProtein * > PSampMethods::SeedSampleBackboneLoopOnly | ( | PProtein * | original_protein, | |
int | loopSid, | |||
int | loopEid, | |||
map< string, PPhiPsiDistribution > & | distri_map, | |||
int | num_wanted = 1 | |||
) | [static] |
PProtein * PSampMethods::FillMissingLoop | ( | PProtein * | original_p, | |
int | start_pdb_id, | |||
int | end_pdb_id, | |||
vector< string > | loop_seq | |||
) | [static] |
Fill in a missing loop in protein original_p
from residue ID as in the PDB file start_pdb_id
to end_pdb_id
with a randomly generated and closed conformation. This conformation is not guaranteed to be collision-free. The original_p
is not modified. This function is useful when you want to do seed sampling on a missing loop. Invoke this function first, and then invoke one of the seed sampling functions.