BALL::DNAMutator Class Reference
#include <BALL/STRUCTURE/DNAMutator.h>
List of all members.
|
Public Types |
enum | Base {
ADENINE = 0,
THYMINE = 1,
GUANINE = 2,
CYTOSINE = 3,
URACILE = 4
} |
Public Member Functions |
| DNAMutator (EnergyMinimizer *mini=NULL, ForceField *ff=NULL, FragmentDB *frag=NULL) |
| ~DNAMutator () |
void | setup () |
void | mutate (Fragment *res, Base base) throw (Exception::InvalidOption) |
void | setMinimizer (EnergyMinimizer *mini) |
void | setFragmentDB (FragmentDB *frag) |
void | setForceField (ForceField *ff) |
void | setMaxOptimizationSteps (Size steps) |
void | setUsedProperty (Property p) |
Private Member Functions |
void | freeDB_ () |
void | freeFF_ () |
void | mark_ (AtomContainer *atoms) |
void | unmark_ (AtomContainer *atoms) |
void | tryFlip_ (Fragment *res, const Vector3 &connect_atom, const Vector3 &axis) const |
bool | optimize_ (Fragment *frag) |
Atom * | getAttachmentAtom (AtomContainer *res) |
Atom * | markBaseAtoms (AtomContainer *res) |
void | rotateBases (AtomContainer *from, const Atom *from_at, const Atom *to_at, const Vector3 &from_connection, const Vector3 &to_connection) |
void | rotateSameBases (AtomContainer *from, AtomContainer *to) |
const Atom * | getSecondNitro (const std::vector< const Atom * > &ring_atoms, const Atom *base) |
Vector3 | getNormalVector (const Atom *at) |
Atom * | getConnectionAtom (Atom *at) |
Vector3 | getOrthogonalVector (const Vector3 &n, const Atom *base, const Atom *at) |
bool | isPurine (const Atom &baseNitrogen) const |
bool | isPyrimidine (const Atom &baseNitrogen) const |
Private Attributes |
bool | keep_db_ |
bool | keep_ff_ |
FragmentDB * | db_ |
ForceField * | ff_ |
EnergyMinimizer * | minimizer_ |
Size | num_steps_ |
Property | prop_ |
Static Private Attributes |
static const char * | bases_ [] |
static const Size | default_num_steps_ |
Member Enumeration Documentation
Entries of this enum are used for the selection of bases in the mutate function
- Enumerator:
ADENINE |
|
THYMINE |
|
GUANINE |
|
CYTOSINE |
|
URACILE |
|
Constructor & Destructor Documentation
BALL::DNAMutator::~DNAMutator |
( |
|
) |
|
The destructor of the the DNAMutator must delete the FragmentDB instance iff it has been auto generated
Member Function Documentation
void BALL::DNAMutator::freeDB_ |
( |
|
) |
[private] |
void BALL::DNAMutator::freeFF_ |
( |
|
) |
[private] |
This function returns a pointer to the nitrogen atom that attaches a base to the sugar backbone
Atom* BALL::DNAMutator::getConnectionAtom |
( |
Atom * |
at |
) |
[private] |
Vector3 BALL::DNAMutator::getNormalVector |
( |
const Atom * |
at |
) |
[private] |
Vector3 BALL::DNAMutator::getOrthogonalVector |
( |
const Vector3 & |
n, |
|
|
const Atom * |
base, |
|
|
const Atom * |
at | |
|
) |
| | [private] |
const Atom* BALL::DNAMutator::getSecondNitro |
( |
const std::vector< const Atom * > & |
ring_atoms, |
|
|
const Atom * |
base | |
|
) |
| | [private] |
bool BALL::DNAMutator::isPurine |
( |
const Atom & |
baseNitrogen |
) |
const [private] |
The methods below decide whether a base is a Purine or a Pyrimidine. In an ideal distant future this should be stored in the fragment and thus be not necessary.
bool BALL::DNAMutator::isPyrimidine |
( |
const Atom & |
baseNitrogen |
) |
const [private] |
Selects the atoms in a base. If succesfull it returns the pointer to the attachment nitrogen.
This method changes a given base to another one. Changing the base on the opposite strand is
not handled. Most likely you will need to localy reoptimize the structure after the insertion.
- Parameters:
-
| res | A pointer to the Fragment that will be changed |
| base | A string specifiying the base which will be used to replace the current one. Can be one of "A", "T", "G", "C" and "U". |
bool BALL::DNAMutator::optimize_ |
( |
Fragment * |
frag |
) |
[private] |
Reoptimize the given fragment using the minimizer stored in minimizer_.
- Returns:
- false on error.
void BALL::DNAMutator::rotateBases |
( |
AtomContainer * |
from, |
|
|
const Atom * |
from_at, |
|
|
const Atom * |
to_at, |
|
|
const Vector3 & |
from_connection, |
|
|
const Vector3 & |
to_connection | |
|
) |
| | [private] |
void BALL::DNAMutator::setForceField |
( |
ForceField * |
ff |
) |
|
void BALL::DNAMutator::setFragmentDB |
( |
FragmentDB * |
frag |
) |
|
void BALL::DNAMutator::setMaxOptimizationSteps |
( |
Size |
steps |
) |
|
void BALL::DNAMutator::setup |
( |
|
) |
|
Calling this method explicitly circumvents lazy loading of the FragmentDB. This method has no effect if mutate has already been called or if valid instances of the fragmentDB has been passed via the constructor.
- Warning:
- If you called setup() and then set the FragmentDB to NULL via setFragmentDB() you will need to call setup() again in order to prevent lazy loading.
void BALL::DNAMutator::setUsedProperty |
( |
Property |
p |
) |
|
void BALL::DNAMutator::tryFlip_ |
( |
Fragment * |
res, |
|
|
const Vector3 & |
connect_atom, |
|
|
const Vector3 & |
axis | |
|
) |
| | const [private] |
void BALL::DNAMutator::unmark_ |
( |
AtomContainer * |
atoms |
) |
[private] |
Member Data Documentation