25 #include <SideChain.h>
26 #include <AminoAcidCode.h>
27 #include <IntCoordConverter.h>
33 namespace Victor {
namespace Biopool {
53 virtual string getClassName()
const {
56 virtual unsigned int getCode()
const;
58 unsigned int size()
const;
59 unsigned int sizeBackbone()
const;
61 double getPhi(
bool override =
false);
62 double getPsi(
bool override =
false);
63 double getOmega(
bool override =
false);
64 double getChi(
unsigned int n);
65 vector<double> getChi();
66 unsigned int getMaxChi();
73 bool isMember(
const AtomCode& ac)
const;
84 void setType1L(
char _name);
90 void setChi(
unsigned int n,
double a);
91 void setChi(vector<double> cv);
93 void setState(StateCode sc);
96 void setBonds(
double NToCaLen,
double CaToCLen,
double CToOLen,
double atCaToCAng,
double CaToOAng);
100 double chi3,
double chi4,
double chi5);
107 void removeSideChain();
111 void patchAminoAcidCode();
113 bool permissive =
false);
115 virtual void setModified();
138 Atom& operator[](
unsigned int n);
139 const Atom& operator[](
unsigned int n)
const;
140 Atom& operator[](
const AtomCode& ac);
141 const Atom& operator[](
const AtomCode& ac)
const;
151 static double BOND_ANGLE_N_TO_CB;
152 static double BOND_ANGLE_CB_TO_C;
153 static double BOND_LENGTH_CA_TO_CB;
157 double phi, psi, omega;
170 AminoAcid::getCode()
const {
171 return aminoAcidThreeLetterTranslator(
id);
175 AminoAcid::getType1L() {
176 return threeLetter2OneLetter(
id);
180 AminoAcid::size()
const {
181 return (Group::size() + sideChain.size());
185 AminoAcid::sizeBackbone()
const {
186 return Group::size();
190 AminoAcid::getPhi(
bool override) {
191 if ((phi > 990) || (
override))
194 (*
this)[CA], (*
this)[C]);
199 AminoAcid::getPsi(
bool override) {
200 if ((psi > 990) || (
override))
208 AminoAcid::getOmega(
bool override) {
209 if ((omega > 990) || (
override))
217 AminoAcid::getChi(
unsigned int n) {
218 return sideChain.getChi(n);
221 inline vector<double>
222 AminoAcid::getChi() {
223 return sideChain.getChi();
227 AminoAcid::getMaxChi() {
228 return sideChain.getMaxChi();
232 AminoAcid::getState() {
236 inline const SideChain&
237 AminoAcid::getSideChain()
const {
242 AminoAcid::getSideChain() {
247 AminoAcid::isMember(
const AtomCode& ac)
const {
252 AminoAcid::save(Saver& s) {
253 s.saveAminoAcid(*
this);
260 AminoAcid::setType1L(
char _name) {
261 type = aminoAcidOneLetterTranslator(_name);
262 id.setName(oneLetter2ThreeLetter(_name));
267 type = aminoAcidThreeLetterTranslator(_name);
272 AminoAcid::setChi(
unsigned int n,
double a) {
273 sideChain.setChi(n, a);
277 AminoAcid::setChi(vector<double> cv) {
278 sideChain.setChi(cv);
282 AminoAcid::setState(StateCode sc) {
287 AminoAcid::removeSideChain() {
294 AminoAcid::load(Loader& l) {
295 l.loadAminoAcid(*
this);
299 inline const AminoAcid&
320 AminoAcid::patchAminoAcidCode() {
326 AminoAcid::setModified() {
327 Group::setModified();
328 sideChain.setModified();
332 AminoAcid::acceptCalculator(EnergyVisitor* v) {
333 v->PrepareAminoAcid(*
this);
337 AminoAcid::acceptOptimizer(OptimizationVisitor* v) {
338 v->PrepareAminoAcid(*
this);
358 AminoAcid::operator[](
unsigned int n) {
359 PRECOND(n < this->size(), exception);
360 return ((n < Group::size()) ? Group::getAtom(n) : sideChain[n - Group::size()]);
364 AminoAcid::operator[](
unsigned int n)
const {
365 PRECOND(n < this->size(), exception);
366 return ((n < Group::size()) ? Group::getAtom(n) : sideChain[n - Group::size()]);
370 AminoAcid::operator[](
const AtomCode& ac) {
372 INVARIANT(a != NULL, exception);
377 AminoAcid::operator[](
const AtomCode& ac)
const {
379 INVARIANT(a != NULL, exception);
386 #endif //_AMINOACID_H_
const AminoAcid & getOutBond(unsigned int n) const
Definition: AminoAcid.h:310
virtual const Atom & getOpenInBondRef(unsigned int n=0) const
Definition: AminoAcid.cc:63
virtual void sync()
Definition: AminoAcid.cc:565
virtual void connectIn(AminoAcid *c, unsigned int offset=1)
Definition: AminoAcid.cc:112
bool setBondsFromPdbCode(bool connect, AminoAcid *prev=NULL, bool permissive=false)
Definition: AminoAcid.cc:666
Base class for saving components (Atoms, Groups, etc.).
Definition: Saver.h:39
static double getTorsionAngle(Atom &a1, Atom &a2, Atom &a3, Atom &a4)
Definition: IntCoordConverter.cc:127
void removeHAtomsfromLeadingNH3()
Definition: AminoAcid.cc:481
This class implements a side chain.
Definition: SideChain.h:32
void setBonds(double NToCaLen, double CaToCLen, double CToOLen, double atCaToCAng, double CaToOAng)
Definition: AminoAcid.cc:648
void setStateFromTorsionAngles()
Definition: AminoAcid.cc:383
virtual void connectOut(AminoAcid *c, unsigned int offset=1)
Definition: AminoAcid.cc:128
AminoAcid & operator=(const AminoAcid &orig)
Definition: AminoAcid.cc:589
virtual const SimpleBond & getInBond(unsigned int n) const
Definition: SimpleBond.h:176
virtual const SimpleBond & getOutBond(unsigned int n) const
Definition: SimpleBond.h:184
void adjustLeadingN()
Definition: AminoAcid.cc:403
This class implements a simple chemical group.
Definition: Group.h:35
void constructSideChain(SideChain &sc, vector< double > chi)
Definition: AminoAcid.cc:367
void patchAminoAcidCode()
Definition: SideChain.cc:96
Base class for composite structures.
Definition: Component.h:39
Base class for loading components (Atoms, Groups, etc.).
Definition: Loader.h:39
Base class implementing the visitor pattern.
Definition: Visitor.h:38
unsigned int sizeInBonds() const
Definition: SimpleBond.h:146
AminoAcid()
Definition: AminoAcid.cc:35
void setPhi(double a)
Definition: AminoAcid.cc:202
unsigned int sizeOutBonds() const
Definition: SimpleBond.h:153
void addTerminalOXT()
Definition: AminoAcid.cc:422
Atom * pGetAtom(const AtomCode &ac) const
Definition: Group.cc:200
void addMissingO()
Definition: AminoAcid.cc:451
void setDefault()
Definition: AminoAcid.cc:620
void patchBetaPosition(unsigned int n=0)
Definition: AminoAcid.cc:504
void setOmega(double a)
Definition: AminoAcid.cc:250
Base class Optimizacion Patter.
Definition: Visitor.h:66
virtual void resetBoundaries()
Definition: AminoAcid.cc:603
virtual AminoAcid * unconnectIn()
Definition: AminoAcid.cc:143
Implements a simple atom type.
Definition: Atom.h:39
void setSideChain(SideChain &sc)
Definition: AminoAcid.cc:275
virtual const Atom & getOpenOutBondRef(unsigned int n=0) const
Definition: AminoAcid.cc:85
virtual ~AminoAcid()
Definition: AminoAcid.cc:53
virtual AminoAcid * unconnectOut()
Definition: AminoAcid.cc:173
virtual Component * clone()
Definition: AminoAcid.cc:576
It mplements a simple amino acid.
Definition: AminoAcid.h:43
const AminoAcid & getInBond(unsigned int n) const
Definition: AminoAcid.h:300
void setPsi(double a)
Definition: AminoAcid.cc:226
void setType(string _name)
Definition: AminoAcid.h:266
void copy(const AminoAcid &orig)
Definition: AminoAcid.cc:531
virtual string getType() const
Definition: SideChain.h:127
Implements methods to manage translation vector and angles between vectors.
Definition: IntCoordConverter.h:46