BALL  1.5.0
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
BALL_EXPORT
#define BALL_EXPORT
Definition: COMMON/global.h:50
BALL::Peptides::PeptideBuilder::proteinname_
String proteinname_
Definition: peptideBuilder.h:160
BALL::Residue
Definition: residue.h:36
BALL::Peptides::PeptideBuilder::sequence_
std::vector< AminoAcidDescriptor > sequence_
Definition: peptideBuilder.h:158
BALL::Peptides::PeptideBuilder::fragment_db_
FragmentDB * fragment_db_
Definition: peptideBuilder.h:164
BALL::Peptides::AminoAcidDescriptor
Definition: peptideBuilder.h:21
db
db
Definition: GAFFTypeProcessor.h:72
BALL::PDBAtom
Definition: PDBAtom.h:38
BALL::Peptides::AminoAcidDescriptor::type_
String type_
Definition: peptideBuilder.h:82
BALL
Definition: constants.h:12
BALL::String
Definition: string.h:56
BALL::Protein
Definition: protein.h:28
BALL::Peptides::AminoAcidDescriptor::phi_
Angle phi_
Definition: peptideBuilder.h:83
BALL::Angle
TAngle< float > Angle
Definition: angle.h:697
BALL::Peptides::PeptideBuilder::is_proline_
bool is_proline_
The proline flag.
Definition: peptideBuilder.h:163
BALL::FragmentDB
Definition: fragmentDB.h:44
BALL::TAngle< float >
BALL::Peptides::AminoAcidDescriptor::psi_
Angle psi_
Definition: peptideBuilder.h:84
BALL::Peptides::PeptideBuilder::chainname_
String chainname_
Definition: peptideBuilder.h:159
BALL::Peptides::PeptideBuilder
Definition: peptideBuilder.h:92
BALL::Peptides::AminoAcidDescriptor::omega_
Angle omega_
Definition: peptideBuilder.h:85
peptides.h