5 #ifndef BALL_KERNEL_RESIDUE_H
6 #define BALL_KERNEL_RESIDUE_H
8 #ifndef BALL_KERNEL_FRAGMENT_H
12 #ifndef BALL_KERNEL_PDBATOMITERATOR_H
16 #ifndef BALL_KERNEL_RESIDUEITERATOR_H
21 #define BALL_RESIDUE_DEFAULT_ID ""
22 #define BALL_RESIDUE_DEFAULT_INSERTION_CODE ' '
28 class SecondaryStructure;
85 ADD_VARIANT_EXTENSIONS_AND_ID
111 virtual void clear();
114 virtual void destroy();
141 void set(
const Residue& residue,
bool deep =
true);
149 void get(
Residue& residue,
bool deep =
true)
const;
185 String getFullName(FullNameType type = ADD_VARIANT_EXTENSIONS)
const;
190 bool hasTorsionPhi()
const;
195 Angle getTorsionPhi()
const;
200 bool hasTorsionPsi()
const;
205 Angle getTorsionPsi()
const;
210 bool hasTorsionOmega()
const;
215 Angle getTorsionOmega()
const;
227 const Protein* getProtein()
const;
239 const Chain* getChain()
const;
270 void setID(
const String&
id);
275 const String& getID()
const;
286 void setInsertionCode(
char insertion_code);
293 void unsetInsertionCode();
298 char getInsertionCode()
const;
303 Size countPDBAtoms()
const;
340 void spliceBefore(
Residue& residue);
345 void spliceAfter(
Residue& residue);
361 bool isAminoAcid()
const;
368 bool isTerminal()
const;
375 bool isNTerminal()
const;
382 bool isCTerminal()
const;
388 virtual bool isResidue()
const {
return true; }
400 virtual bool isValid()
const;
408 virtual void dump(std::ostream& s = std::cout,
Size depth = 0)
const;
420 AtomContainer* getAtomContainer(
Position position);
422 const AtomContainer* getAtomContainer(
Position position)
const;
424 Size countAtomContainers()
const;
426 void prepend(AtomContainer& atom_container);
428 void append(AtomContainer& atom_container);
430 void insert(AtomContainer& atom_container);
432 void insertBefore(AtomContainer& atom_container, Composite& composite);
434 void insertAfter(AtomContainer& atom_container, Composite& composite);
436 void spliceBefore(AtomContainer& atom_container);
438 void spliceAfter(AtomContainer& base_ragment);
440 void splice(AtomContainer& AtomContainer);
442 bool remove(AtomContainer& AtomContainer);
444 bool isSuperAtomContainerOf(
const AtomContainer& atom_container)
const;
453 char insertion_code_;
456 template <
class Res
idueContainerType>
460 for (; res_it != residue_container.endResidue(); ++res_it)
462 if (res_it->isAminoAcid() ==
true)
471 template <
class Res
idueContainerType>
475 for (; res_it != residue_container.rendResidue(); ++res_it)
478 if (res_it->isAminoAcid() ==
true)
489 #endif // BALL_KERNEL_RESIDUE_H