/usr/include/BALL/STRUCTURE/peptideBuilder.h is in libball1.4-dev 1.4.3~beta1-3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 | // -*- Mode: C++; tab-width: 2; -*-
// vi: set ts=2:
//
#ifndef BALL_STRUCTURE_PEPTIDEBUILDER_H
#define BALL_STRUCTURE_PEPTIDEBUILDER_H
#ifndef BALL_STRUCTURE_PEPTIDES_H
# include <BALL/STRUCTURE/peptides.h>
#endif
namespace BALL
{
class FragmentDB;
namespace Peptides
{
/** This class represents one amino acid in the sequence.
\ingroup StructurePeptideBuilder
*/
class BALL_EXPORT AminoAcidDescriptor
{
public:
/** Default constructor.
*/
AminoAcidDescriptor();
/** Detailed constructor. Here, type is considered to be
* either a three - letter or a one letter string for the
* amino acid type, phi is the torsion angle phi, psi is
* the psi torsion angle and omega is the angle of the peptide
* bond. By default, a standard alpha-helical geometry is constructed.
*/
AminoAcidDescriptor(const String& type, const Angle& phi=Angle(-47.,false),
const Angle& psi=Angle(-58.,false), const Angle& omega=Angle(180.,false));
/// Default angles: sheet ????
/** Destructor.
*/
virtual ~AminoAcidDescriptor();
/** copy constructor
*/
AminoAcidDescriptor(const AminoAcidDescriptor& aad);
/** Set the type of the amino acid. type is considered to be a
* one - or three letter code.
*/
void setAminoAcidType(const String& type);
/** Set the torsion angle phi.
*/
void setPhi(const Angle& phi);
/** Set the torsion angle psi.
*/
void setPsi(const Angle& psi);
/** Set the peptide bond angle omega.
*/
void setOmega(const Angle& omega);
/** Returns the type of this amino acid.
*/
const String& getType() const;
/** Returns the torsion angle phi.
*/
const Angle& getPhi() const;
/** Returns the torsion angle psi.
*/
const Angle& getPsi() const;
/** Returns the angle of the peptide bond omega.
*/
const Angle& getOmega() const;
protected:
String type_;
Angle phi_;
Angle psi_;
Angle omega_;
};
/** Build a Peptide from a sequence and the corresponing angles.
Dont forget to call setFragmentDB() before using this class.
\ingroup StructurePeptideBuilder
*/
class BALL_EXPORT PeptideBuilder
{
public:
/** Default constructor.
*/
PeptideBuilder();
/** Detailed constructor. This constructor takes a vector of
* AminoAcidDescriptors and prepares everything for the construction
* process.
*/
PeptideBuilder(const std::vector<AminoAcidDescriptor>& sequence);
/** Construct a peptide from a one-letter code sequence.
*/
PeptideBuilder(const String& sequence, const Angle& phi = Angle(-47., false),
const Angle& psi = Angle(-58., false), const Angle& omega = Angle(180., false));
/** copy constructor
*/
PeptideBuilder(const PeptideBuilder& pc);
/** Destructor.
*/
virtual ~PeptideBuilder();
/** Adds another amino acid to the sequence.
*/
void addAminoAcid(const String& type, const Angle& phi=Angle(-47.,false),
const Angle& psi=Angle(-58.,false), const Angle& omega=Angle(180.,false));
// Sheet angles ???
/** Adds another amino acid to the sequence.
*/
void addAminoAcid(const AminoAcidDescriptor& aad);
/** Sets the name of the chain.
*/
void setChainName(const String& name);
/** Returns the name of the chain.
*/
const String& getChainName() const;
/** Sets the name of the protein.
*/
void setProteinName(const String& name);
/** Returns the name of the protein.
*/
const String& getProteinName() const;
/** Constructs the peptide and returns it.
*/
Protein* construct();
///
void setFragmentDB(const FragmentDB* db)
;
///
const FragmentDB* getFragmentDB() const
;
protected:
std::vector<AminoAcidDescriptor> sequence_;
String chainname_;
String proteinname_;
/// The proline flag
bool is_proline_;
FragmentDB* fragment_db_;
/** some helper functions for the construction of the residue; for internal use only
* omega is not yet implemented
*/
Residue* createResidue_(const String& type, const int id);
void insert_(Residue& resnew, Residue& resold);
void transform_(const Angle& phi, const Angle& psi, Residue& resold, Residue& resnew);
void peptide_(Residue& resold, Residue& resnew);
void setOmega_(Residue& resold, Residue& residue, const Angle& omega);
PDBAtom* getAtomByName_(Residue& res, const String& name);
};
} // namespace Peptides
} // namespace BALL
#endif // BALL_STRUCTURE_PEPTIDEBUILDER_H
|