Victor
 All Data Structures Functions Variables Friends Pages
SeqLoader.h
1 /* This file is part of Victor.
2 
3  Victor is free software: you can redistribute it and/or modify
4  it under the terms of the GNU General Public License as published by
5  the Free Software Foundation, either version 3 of the License, or
6  (at your option) any later version.
7 
8  Victor is distributed in the hope that it will be useful,
9  but WITHOUT ANY WARRANTY; without even the implied warranty of
10  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11  GNU General Public License for more details.
12 
13  You should have received a copy of the GNU General Public License
14  along with Victor. If not, see <http://www.gnu.org/licenses/>.
15  */
16 
17 
18 #ifndef _SEQ_LOADER_H_
19 #define _SEQ_LOADER_H_
20 
21 // Includes:
22 #include <SideChain.h>
23 #include <AminoAcid.h>
24 #include <Loader.h>
25 #include <Debug.h>
26 #include <string>
27 #include <vector>
28 
29 // Global constants, typedefs, etc. (to avoid):
30 
31 namespace Victor { namespace Biopool {
32 
40  class SeqLoader : public Loader {
41  public:
42 
43  // CONSTRUCTORS/DESTRUCTOR:
44 
45  SeqLoader(istream& _input = cin, istream& _refInput = cin) :
46  input(_input), refInput(_refInput), loaded(false), refAmino() {
47  }
48  // this class uses the implicit copy operator.
49 
50  ~SeqLoader() {
51  PRINT_NAME;
52  }
53 
54  // MODIFIERS:
55  virtual void loadAminoAcid(AminoAcid& node, AminoAcid* prev = NULL);
56  virtual void loadSpacer(Spacer& node);
57  virtual void loadLigand(Ligand& node);
58 
59  protected:
60  // HELPERS:
61  virtual void loadReference();
62  virtual void setStructure(AminoAcid& aa, string type);
63 
64  // ATTRIBUTES:
65  istream& input; // input stream
66  istream& refInput; // reference stream
67  int loaded; // is reference loaded yet?
68  vector<AminoAcid> refAmino; // reference amino acids
69 
70  private:
71 
72  };
73 
74 }} //namespace
75 #endif //_SEQ_LOADER_H_
Loads components (Atoms, Groups, etc.) in SEQ format.
Definition: SeqLoader.h:40
Base class for loading components (Atoms, Groups, etc.).
Definition: Loader.h:39
Implements methods to verify the ligand properties.
Definition: Ligand.h:38
It mplements a simple amino acid.
Definition: AminoAcid.h:43
Implements a "Spacer" for a protein chain. Includes methods to obtain values from the atoms and its p...
Definition: Spacer.h:42