BALL  1.4.2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
peptideBuilder.h
Go to the documentation of this file.
1 // -*- Mode: C++; tab-width: 2; -*-
2 // vi: set ts=2:
3 //
4 
5 #ifndef BALL_STRUCTURE_PEPTIDEBUILDER_H
6 #define BALL_STRUCTURE_PEPTIDEBUILDER_H
7 
8 #ifndef BALL_STRUCTURE_PEPTIDES_H
10 #endif
11 
12 namespace BALL
13 {
14  class FragmentDB;
15 
16  namespace Peptides
17  {
22  {
23  public:
24 
28 
35  AminoAcidDescriptor(const String& type, const Angle& phi=Angle(-47.,false),
36  const Angle& psi=Angle(-58.,false), const Angle& omega=Angle(180.,false));
38 
41  virtual ~AminoAcidDescriptor();
42 
46 
50  void setAminoAcidType(const String& type);
51 
54  void setPhi(const Angle& phi);
55 
58  void setPsi(const Angle& psi);
59 
62  void setOmega(const Angle& omega);
63 
66  const String& getType() const;
67 
70  const Angle& getPhi() const;
71 
74  const Angle& getPsi() const;
75 
78  const Angle& getOmega() const;
79 
80  protected:
81 
86  };
87 
93  {
94  public:
95 
99 
104  PeptideBuilder(const std::vector<AminoAcidDescriptor>& sequence);
105 
108  PeptideBuilder(const String& sequence, const Angle& phi = Angle(-47., false),
109  const Angle& psi = Angle(-58., false), const Angle& omega = Angle(180., false));
110 
113  PeptideBuilder(const PeptideBuilder& pc);
114 
117  virtual ~PeptideBuilder();
118 
121  void addAminoAcid(const String& type, const Angle& phi=Angle(-47.,false),
122  const Angle& psi=Angle(-58.,false), const Angle& omega=Angle(180.,false));
123  // Sheet angles ???
124 
127  void addAminoAcid(const AminoAcidDescriptor& aad);
128 
131  void setChainName(const String& name);
132 
135  const String& getChainName() const;
136 
139  void setProteinName(const String& name);
140 
143  const String& getProteinName() const;
144 
147  Protein* construct();
148 
150  void setFragmentDB(const FragmentDB* db)
151  ;
152 
154  const FragmentDB* getFragmentDB() const
155  ;
156 
157  protected:
158  std::vector<AminoAcidDescriptor> sequence_;
161 
165 
169  Residue* createResidue_(const String& type, const int id);
170  void insert_(Residue& resnew, Residue& resold);
171  void transform_(const Angle& phi, const Angle& psi, Residue& resold, Residue& resnew);
172  void peptide_(Residue& resold, Residue& resnew);
173  void setOmega_(Residue& resold, Residue& residue, const Angle& omega);
174  PDBAtom* getAtomByName_(Residue& res, const String& name);
175  };
176 
177  } // namespace Peptides
178 
179 } // namespace BALL
180 
181 #endif // BALL_STRUCTURE_PEPTIDEBUILDER_H