| RNAstructure Classes Version 6.2

Public Member Functions | Private Member Functions | Private Attributes | List of all members
design Class Reference

`#include <design.h>`

Inheritance diagram for design:

## Public Member Functions
| design (const char filename[], const char *const alphabet)
| Constructor. Programmer provides a filename for a ct file. More...
int | design_sequence (double &pernucdefect, const bool random, const int maxdepth=5, bool heuristic=false, int MaxRedesignC=10, int MaxMutateC=4, int MaxLeafRedesignC=3, long randomSeed=1L)
void | SpecifyRedesignLimits (int leaf, int parent, int mutate)
void | SpecifyWeightedDefect (bool DefectWeighted)
Public Member Functions inherited from RNA
| RNA (const char sequence[], const bool IsRNA=true)
| Constructor - user provides a sequence as a c string. More...
| RNA (const char filepathOrSequence[], const RNAInputType fileType, const char *const alphabetName, const bool allowUnknownBases=false, const bool skipThermoTables=false)
| RNA (const char filepathOrSequence[], const RNAInputType fileType, const Thermodynamics *copyThermo)
| RNA (const char filename[], const RNAInputType fileType, const bool IsRNA=true)
| Constructor - user provides a filename for existing file as a c string. More...
| RNA (const bool IsRNA=true)
int | GetErrorCode () const
| Return an error code, where a return of zero is no error. More...
string | GetFullErrorMessage () const
const string | GetErrorDetails () const
| Returns extended details about the last error. (e.g. error messages produced during file read operations that are otherwise lost.) More...
void | SetErrorDetails (const string &details)
| Set extended details about the last error. (e.g. error messages produced during file read operations that are otherwise lost.) More...
void | SetSequenceLabel (const string &label)
| Set the name of the sequence. (This must be called before structure prediction for it to affect the resulting structures.) More...
string | GetErrorMessageString (const int error) const
| Return error messages based on code from GetErrorCode and other error codes. More...
void | ResetError ()
void | EnsureStructureCapcacity (const int minimumStructures)
| Ensure that at a minumum number of structures have been created. More...
int | SpecifyPair (const int i, const int j, const int structurenumber=1)
| Specify a base pair between nucleotides i and j. More...
int | RemovePairs (const int structurenumber=1, bool removeIfLastStructure=true)
| Remove all the current base pairs in a specified structure. More...
int | RemoveBasePair (const int i, const int structurenumber=1)
| Remove a specified pair in a specified structure. More...
double | CalculateFreeEnergy (const int structurenumber=1, const bool UseSimpleMBLoopRules=false)
| Return the predicted Gibb's free energy change for structure # structurenumber, defaulted to 1. More...
double | ExteriorLoopCorrection (const int structurenumber, const bool UseSimpleMBLoopRules, int min_index, int max_index)
int | WriteThermodynamicDetails (const char filename[], const bool UseSimpleMBLoopRules=false)
| Calculate the folding free energy change for all structures and write the details of the calculation to a file. More...
int | FoldSingleStrand (const float percent=20, const int maximumstructures=20, const int window=5, const char savefile[]="", const int maxinternalloopsize=30, bool mfeonly=false, bool simple_iloops=true, bool disablecoax=false)
| Predict the lowest free energy secondary structure and generate suboptimal structures using a heuristic. More...
int | GenerateAllSuboptimalStructures (const float percent=5, const double deltaG=0.6)
| Predict the lowest free energy secondary structure and generate all suboptimal structures. More...
int | MaximizeExpectedAccuracy (const double maxPercent=20, const int maxStructures=20, const int window=1, const double gamma=1.0)
| Predict the structure with maximum expected accuracy and suboptimal structures. More...
int | PartitionFunction (const char savefile[]="", double temperature=-10.0, bool disablecoax=false, bool restoreSHAPE=true)
| Predict the partition function for a sequence. More...
int | Rsample (const vector< double > &experimentalRestraints, RsampleData &refdata, const int randomSeed=0, const char savefile[]="", const double cparam=0.5, const double offset=1.10, const int numsamples=10000)
int | PredictProbablePairs (const float probability=0)
| Predict structures containing highly probable pairs. More...
int | ProbKnot (int iterations=1, int MinHelixLength=1, double threshold=0)
| Predict maximum expected accuracy structures that contain pseudoknots from either a sequence or a partition function save file. More...
int | ProbKnotFromSample (int iterations=1, int MinHelixLength=1, double threshold=0)
| Predict maximum expected accuracy structures that contain pseudoknots from a file containing ensemble of structures. More...
int | ReFoldSingleStrand (const float percent=20, const int maximumstructures=20, const int window=5)
| Re-predict the lowest free energy secondary structure and generate suboptimal structures using a heuristic. More...
int | Stochastic (const int structures=1000, const int seed=1)
| Sample structures from the Boltzman ensemable. More...
int | ForceDoubleStranded (const int i)
| Force a nucleotide to be double stranded (base paired). More...
int | ForceFMNCleavage (const int i)
| Indicate a nucleotide that is accessible to FMN cleavage (a U in GU pair). More...
int | ForceMaximumPairingDistance (const int distance)
| Force a maximum distance between apired nucleotides. More...
int | ForceModification (const int i)
| Force modification for a nucleotide. More...
int | ForcePair (const int i, const int j)
| Force a pair between two nucleotides. More...
int | ForceProhibitPair (const int i, const int j)
| Prohibit a pair between two nucleotides. More...
int | ForceSingleStranded (const int i)
| Force a nucleotide to be single stranded. More...
int | GetForcedDoubleStranded (const int constraintnumber)
| Return a nucleotide that is forced double stranded. More...
int | GetForcedFMNCleavage (const int constraintnumber)
| Return a nucleotide that is accessible to FMN cleavage. More...
int | GetForcedModification (const int constraintnumber)
| Return a nucleotide that is accessible to modification. More...
int | GetForcedPair (const int constraintnumber, const bool fiveprime)
| Return a nucleotide in a forced pair. More...
int | GetForcedProhibitedPair (const int constraintnumber, const bool fiveprime)
| Return a nucleotide in a prohibited pair. More...
int | GetForcedSingleStranded (const int constraintnumber)
| Return a nucleotide that is forced single stranded. More...
int | GetMaximumPairingDistance ()
| Return the maximum pairing distance. More...
int | GetNumberOfForcedDoubleStranded ()
| Return the number of nucletides forced to be paired. More...
int | GetNumberOfForcedFMNCleavages ()
| Return the number of nucleotides accessible to FMN cleavage. More...
int | GetNumberOfForcedModifications ()
| Return the number of nucleotides accessible to chemical modification. More...
int | GetNumberOfForcedPairs ()
| Return the number of forced base pairs. More...
int | GetNumberOfForcedProhibitedPairs ()
| Return the number of prohibited base pairs. More...
int | GetNumberOfForcedSingleStranded ()
| Return the number of nucleotides that are not allowed to pair. More...
int | ReadConstraints (const char filename[])
| Read a set of folding constraints to disk in a plain text file. More...
int | ReadSHAPE (const char filename[], const double slope, const double intercept, RestraintType modifier=RESTRAINT_SHAPE, const bool IsPseudoEnergy=true)
| Read SHAPE data from disk. More...
int | ReadSHAPE (const char filename[], const double dsSlope, const double dsIntercept, const double ssSlope, const double ssIntercept, RestraintType modifier=RESTRAINT_SHAPE)
| Read SHAPE data from disk including single-stranded SHAPE pseudo free energys. More...
int | ReadDMS (const char filename[], const bool bynt=false)
int | ReadDSO (const char filename[])
| Read double strand offset data from disk. More...
int | ReadSSO (const char filename[])
| Read single strand offset data from disk. More...
int | ReadExperimentalPairBonus (const char filename[], double const experimentalOffset, double const experimentalScaling)
| Read experimental pair bonuses from disk. More...
void | RemoveConstraints ()
| Remove all folding constraints. More...
void | SetConstraints (vector< int > ss)
int | SetExtrinsic (int i, int j, double k)
| Add extrinsic restraints for partition function calculations. More...
int | WriteConstraints (const char filename[])
| Write the current set of folding constraints to disk in a plain text file. More...
int | AddComment (const char comment[], const int structurenumber=1)
| Add a comment associated with a structure. More...
int | WriteCt (const char filename[], bool append=false, CTCommentProvider &commentProvider=CTComments::Energy) const
| Write a ct file of the structures. More...
int | WriteDotBracket (const char filename[], const int structurenumber=-1, const DotBracketFormat format=DBN_FMT_MULTI_TITLE, CTCommentProvider &commentProvider=CTComments::Energy) const
| Write dot-bracket file of structures. More...
int | BreakPseudoknot (const bool minimum_energy=true, const int structurenumber=0, const bool useFastMethod=true)
| Break any pseudoknots that might be in a structure. More...
bool | ContainsPseudoknot (const int structurenumber)
| Report if there are any pseudoknots in a structure. More...
double | GetEnsembleEnergy ()
| Get the ensemble folding free energy change. More...
double | GetEnsembleDefect (const int structurenumber=1)
| Get the ensemble defect of a secondary structure. More...
double | GetFreeEnergy (const int structurenumber)
| Get the folding free energy change for a predicted structure. More...
int | GetPair (const int i, const int structurenumber=1)
| Get the nucleotide to which the specified nucleotide is paired. More...
double | GetPairEnergy (const int i, const int j)
| Get the lowest folding free energy possible for a structure containing pair i-j. More...
double | GetPairProbability (const int i, const int j)
| Get a base pair probability. More...
int | GetPairProbabilities (double *arr, const int size)
int | GetStructureNumber () const
| Get the total number of specified or predicted structures. More...
int | DetermineDrawingCoordinates (const int height, const int width, const int structurenumber=1)
| Determine the coordinates for drawing a secondary structure. More...
std::string | GetCommentString (const int structurenumber=1)
| Provide the comment from the ct file as a string. More...
int | GetNucleotideXCoordinate (const int i)
| Get the X coordinate for nucleotide i for drawing a structure. More...
int | GetNucleotideYCoordinate (const int i)
| Get the Y coordinate for nucleotide i for drawing a structure. More...
int | GetLabelXCoordinate (const int i)
| Get the X coordinate for placing the nucleotide index label specified by i. More...
int | GetLabelYCoordinate (const int i)
| Get the Y coordinate for placing the nucleotide index label specified by i. More...
char | GetNucleotide (const int i)
int | GetSequenceLength () const
| Get the total length of the sequence. More...
const char * | GetSequence () const
std::string | GetSequence (size_t start, size_t length=std::string::npos) const
bool | GetBackboneType () const
| Get the backbone type. More...
double | GetVprimeQ (const int i, const int j)
double | GetW (const int i, const int j)
structure * | GetStructure ()
void | SetProgress (ProgressHandler &Progress)
void | StopProgress ()
ProgressHandler * | GetProgress ()
| ~RNA ()
| Destructor. More...
void | CopyThermo (Thermodynamics &copy)
| Copy thermodynamic parameters from an instance of an RNA class. More...
Public Member Functions inherited from Thermodynamics
| Thermodynamics (const bool isRNA=true, const char *const alphabetName=NULL, const double temperature=310.15)
| Thermodynamics (const Thermodynamics &copyThermo)
int | SetTemperature (double temperature)
| Set the temperature of folding in K. More...
double | GetTemperature () const
string | GetAlphabetName () const
| Get the name of the extended alphabet for which thermodynamic parameters should be loaded. More...
int | ReadThermodynamic (const char *directory=NULL, const char *alphabet=NULL, const double temperature=-1.0)
| Function to read the thermodynamic parameters. More...
int | ReloadDataTables (const double new_temperature=-1.0)
bool | VerifyThermodynamic ()
| Force the datatables to be read if they haven't already. Return true if the tables were already loaded or if the attempt to (re)open them succeded. More...
datatable * | GetDatatable ()
datatable * | GetEnthalpyTable (const char *alphabet=NULL)
void | ClearEnergies ()
| Clear the currently loaded energy datatable and release its resources. More...
void | ClearEnthalpies ()
| Clear the currently loaded enthalpy datatable and release its resources. More...
bool | GetEnergyRead () const
| Return whether this instance of Thermodynamics has the paremters populated (either from disk or from another Thermodynamics class). More...
bool | IsAlphabetRead () const
| ~Thermodynamics ()

## Private Member Functions
void | decompose (int nucstart, int nucend, int currentdepth, int maxdepth, int **tree, int missingstart=0, int missingend=0)
bool | closeenoughtocut (int i, int j, int nucstart, int nucend, int missingstart, int missingend, double CLOSENESS)
void | marktree (int beststart, int bestend, int nucstart, int nucend, int missingstart, int missingend, int currentdepth, int **tree)
void | bestdecomposition (int nuctstart, int nucend, int currentstart, int currentend, int *beststart, int *bestend, int missingstart, int missingend)
double | SelectSequence (int **tree, bool random, int depth, const double pernucdefect, long seed=1)
double | SelectSequenceHeuristic (int **tree, bool random, int depth, const double pernucdefect, long seed=1)
void | FindFragments (int **tree, int level, int start, int stop, int missingstart, int missingstop, vector< int > *stackstart, vector< int > *stackend, vector< int > *stackmissingstart, vector< int > *stackmissingend, vector< int > *stackfragmentdepth)
void | FillSequence (int start, int end, int missingstart, int missingend, bool random, randomnumber *dice, vector< vector< string > > &Helices, vector< vector< string > > &Loops)
int | MapNuctoFragment (int j, int start, int missingstart, int missingend)
int | MapFragmenttoNuc (int j, int start, int missingstart, int missingend)
void | Mutation (int maxDefPos, int start, int missingstart, int missingend, char *sequence, vector< int > &Mutated)
void | GetDefect (int start, int end, int missingstart, int missingend, vector< double > &def, double &defect, RNA *fragment)
void | Debug1 (int start, int end, int missingstart, int missingend, char *sequence, RNA *fragment)
void | PlaceSeqOnStack (vector< int > *stackstart, vector< int > *stackend, vector< int > *stackmissingstart, vector< int > *stackmissingend, vector< int > *stackfragmentdepth)
void | StoreMutation (int start, int end, int missingstart, int missingend, char *sequence)
void | StoreBestSequence (int start, int end, int missingstart, int missingend, char **sequence, int fragmentdepth)
char | tonuc (int i)
int | toint (char i)
double | leafdesign (int start, int end, int missingstart, int missingend, bool random, randomnumber *dice, vector< vector< string > > *Helices, vector< vector< string > > *Loops, double pernucdefect, Thermodynamics *thermo)
void | LeafOptimize (const double pernucdefect, randomnumber &dice, double &defect, vector< double > &def, RNA *fragment, int start, int end, int missingstart, int missingend, char *sequence, Thermodynamics *thermo)

## Private Attributes
int | MaxRedesign
int | MaxMutate
int | MaxLeafRedesign
bool | defectweighted
int | numbering

## Additional Inherited Members
Static Public Member Functions inherited from RNA
static const char * | GetErrorMessage (const int error)
| Return error messages based on code from GetErrorCode and other error codes. More...
Public Attributes inherited from Thermodynamics
bool | isrna
Protected Member Functions inherited from RNA
int | FileReader (const char filename[], const RNAInputType fileType)
void | init (const char *sequenceOrFileName, const RNAInputType fileType, const bool allowUnknownBases=false, const bool skipThermoTables=false)
Protected Member Functions inherited from Thermodynamics
virtual void | CopyThermo (const Thermodynamics &copy)
| Copy thermodynamic parameters from an instance of Thermodynamics class. More...
Protected Attributes inherited from RNA
int | ErrorCode
ProgressHandler * | progress
PFPRECISION * | w5
PFPRECISION * | w3
PFPRECISION ** | wca
pfdatatable * | pfdata
DynProgArray< PFPRECISION > * | w
DynProgArray< PFPRECISION > * | v
DynProgArray< PFPRECISION > * | wmb
DynProgArray< PFPRECISION > * | wl
DynProgArray< PFPRECISION > * | wmbl
DynProgArray< PFPRECISION > * | wcoax
DynProgArray< PFPRECISION > * | wlc
PFPRECISION | Q
Protected Attributes inherited from Thermodynamics
datatable * | data
datatable * | enthalpy
bool | copied
double | nominal_temperature
string | nominal_alphabetName
bool | skipThermoTables

## Constructor & Destructor Documentation

## ◆ design()

design::design | ( | const char | filename[],
|  | const char *const | alphabet
| ) |  |

Constructor. Programmer provides a filename for a ct file.

Read a ct with name filename. This is a template for the structure. The sequence in the ct file will be ignored. If IsRNA is true (default), this is RNA, and it is DNA otherwise.

Parameters

  filename | is a null terminated cstring that provides the filename and path.
  alphabet | is c-string that specifies the alphabet (e.g. rna, dna, or custom)

## Member Function Documentation

## ◆ bestdecomposition()

void design::bestdecomposition | ( | int | nuctstart,
|  | int | nucend,
|  | int | currentstart,
|  | int | currentend,
|  | int * | beststart,
|  | int * | bestend,
|  | int | missingstart,
|  | int | missingend
| ) |  |
| private

## ◆ closeenoughtocut()

bool design::closeenoughtocut | ( | int | i,
|  | int | j,
|  | int | nucstart,
|  | int | nucend,
|  | int | missingstart,
|  | int | missingend,
|  | double | CLOSENESS
| ) |  |
| private

## ◆ Debug1()

void design::Debug1 | ( | int | start,
|  | int | end,
|  | int | missingstart,
|  | int | missingend,
|  | char * | sequence,
|  | RNA * | fragment
| ) |  |
| private

## ◆ decompose()

void design::decompose | ( | int | nucstart,
|  | int | nucend,
|  | int | currentdepth,
|  | int | maxdepth,
|  | int ** | tree,
|  | int | missingstart = `0`,
|  | int | missingend = `0`
| ) |  |
| private

## ◆ design_sequence()

int design::design_sequence | ( | double & | pernucdefect,
|  | const bool | random,
|  | const int | maxdepth = `5`,
|  | bool | heuristic = `false`,
|  | int | MaxRedesignC = `10`,
|  | int | MaxMutateC = `4`,
|  | int | MaxLeafRedesignC = `3`,
|  | long | randomSeed = `1L`
| ) |  |

Design the sequence. This function will choose a sequence with low ensemble defect to fold to the structure read in the constructor. The sequence is stored in the underlying RNA class.

Parameters

  pernucdefect | is the maximum allowed ensemble defect per nucleotide.
  random | determines the method for choosing sequence. If false, use pre-selected sequences, and otherwise (true), randomly choose the sequence.
  maxdepth | is the maximum extent to which the structure will be sub-divided in the binary decomposition. The default is 5.
  heuristic | if true, avoids performing a partition function on the complete sequence. Default is false.
  MaxRedesignC | specifies the maximum number of redesigns.
  MaxMutateC | is the maximum number of nucleotide mutations to make.
  MaxLeafRedesignC | is the maximum number of time a leaf will be redesigned when building the tree.
  randomSeed | is the seed for the random number generator.

Returns
  An int error code that can be resolved to a message using RNA::GetErrorMessage. A return of 0 means no errors.

## ◆ FillSequence()

void design::FillSequence | ( | int | start,
|  | int | end,
|  | int | missingstart,
|  | int | missingend,
|  | bool | random,
|  | randomnumber * | dice,
|  | vector< vector< string > > & | Helices,
|  | vector< vector< string > > & | Loops
| ) |  |
| private

## ◆ FindFragments()

void design::FindFragments | ( | int ** | tree,
|  | int | level,
|  | int | start,
|  | int | stop,
|  | int | missingstart,
|  | int | missingstop,
|  | vector< int > * | stackstart,
|  | vector< int > * | stackend,
|  | vector< int > * | stackmissingstart,
|  | vector< int > * | stackmissingend,
|  | vector< int > * | stackfragmentdepth
| ) |  |
| private

## ◆ GetDefect()

void design::GetDefect | ( | int | start,
|  | int | end,
|  | int | missingstart,
|  | int | missingend,
|  | vector< double > & | def,
|  | double & | defect,
|  | RNA * | fragment
| ) |  |
| private

end else, (j!=missingstart)

## ◆ leafdesign()

double design::leafdesign | ( | int | start,
|  | int | end,
|  | int | missingstart,
|  | int | missingend,
|  | bool | random,
|  | randomnumber * | dice,
|  | vector< vector< string > > * | Helices,
|  | vector< vector< string > > * | Loops,
|  | double | pernucdefect,
|  | Thermodynamics * | thermo
| ) |  |
| private

## ◆ LeafOptimize()

void design::LeafOptimize | ( | const double | pernucdefect,
|  | randomnumber & | dice,
|  | double & | defect,
|  | vector< double > & | def,
|  | RNA * | fragment,
|  | int | start,
|  | int | end,
|  | int | missingstart,
|  | int | missingend,
|  | char * | sequence,
|  | Thermodynamics * | thermo
| ) |  |
| private

## ◆ MapFragmenttoNuc()

int design::MapFragmenttoNuc | ( | int | j,
|  | int | start,
|  | int | missingstart,
|  | int | missingend
| ) |  |
| private

## ◆ MapNuctoFragment()

int design::MapNuctoFragment | ( | int | j,
|  | int | start,
|  | int | missingstart,
|  | int | missingend
| ) |  |
| private

## ◆ marktree()

void design::marktree | ( | int | beststart,
|  | int | bestend,
|  | int | nucstart,
|  | int | nucend,
|  | int | missingstart,
|  | int | missingend,
|  | int | currentdepth,
|  | int ** | tree
| ) |  |
| private

## ◆ Mutation()

void design::Mutation | ( | int | maxDefPos,
|  | int | start,
|  | int | missingstart,
|  | int | missingend,
|  | char * | sequence,
|  | vector< int > & | Mutated
| ) |  |
| private

## ◆ PlaceSeqOnStack()

void design::PlaceSeqOnStack | ( | vector< int > * | stackstart,
|  | vector< int > * | stackend,
|  | vector< int > * | stackmissingstart,
|  | vector< int > * | stackmissingend,
|  | vector< int > * | stackfragmentdepth
| ) |  |
| private

## ◆ SelectSequence()

double design::SelectSequence | ( | int ** | tree,
|  | bool | random,
|  | int | depth,
|  | const double | pernucdefect,
|  | long | seed = `1`
| ) |  |
| private

defect<=pernucdefect

## ◆ SelectSequenceHeuristic()

double design::SelectSequenceHeuristic | ( | int ** | tree,
|  | bool | random,
|  | int | depth,
|  | const double | pernucdefect,
|  | long | seed = `1`
| ) |  |
| private

## ◆ SpecifyRedesignLimits()

void design::SpecifyRedesignLimits | ( | int | leaf,
|  | int | parent,
|  | int | mutate
| ) |  |

Change the defaults for maximum redesigns. This function allows the programmer to change the maximum number of redesigns at three levels from the defaults. The defaults are to redesign leaves (leaf) up to 3 times, parent nodes (parent) up to 10 times, and to mutate nucleotides for defect-weighted mutation (mutate) up to 4 times.

Parameters

  leaf | is an int that specifies the maximum number of times the leaf is re-optimized at random.
  parent | is an int that specifies the maximum number of redesigns per parent node.
  mutate | is an int that specifies the maximum number of times a nucleotide will be mutated during defect-weighted reoptimization.

## ◆ SpecifyWeightedDefect()

void design::SpecifyWeightedDefect | ( | bool | DefectWeighted | ) |

Change the default for whether weighted-defect optimization should occur. This function allows the programmer to change whether the ascent back up the tree (if check of weighted defect fails) should only redesign a fraction of the sequence. The default is for this to occur.

Parameters

  DefectWeighted | is a bool that specifies whether defect-weighted re-optimization should occur (true=yes, false=no).

## ◆ StoreBestSequence()

void design::StoreBestSequence | ( | int | start,
|  | int | end,
|  | int | missingstart,
|  | int | missingend,
|  | char ** | sequence,
|  | int | fragmentdepth
| ) |  |
| private

## ◆ StoreMutation()

void design::StoreMutation | ( | int | start,
|  | int | end,
|  | int | missingstart,
|  | int | missingend,
|  | char * | sequence
| ) |  |
| private

## ◆ toint()

int design::toint | ( | char | i | ) |
| private

## ◆ tonuc()

char design::tonuc | ( | int | i | ) |
| private

## Member Data Documentation

## ◆ defectweighted

bool design::defectweighted
| private

## ◆ MaxLeafRedesign

int design::MaxLeafRedesign
| private

## ◆ MaxMutate

int design::MaxMutate
| private

## ◆ MaxRedesign

int design::MaxRedesign
| private

## ◆ numbering

int design::numbering
| private

The documentation for this class was generated from the following files:

- RNA_class/design.h
- RNA_class/design.cpp