RxDock 0.1.0
A fast, versatile, and open-source program for docking ligands to proteins and nucleic acids
Loading...
Searching...
No Matches
PRMFactory.h
1/***********************************************************************
2 * The rDock program was developed from 1998 - 2006 by the software team
3 * at RiboTargets (subsequently Vernalis (R&D) Ltd).
4 * In 2006, the software was licensed to the University of York for
5 * maintenance and distribution.
6 * In 2012, Vernalis and the University of York agreed to release the
7 * program as Open Source software.
8 * This version is licensed under GNU-LGPL version 3.0 with support from
9 * the University of Barcelona.
10 * http://rdock.sourceforge.net/
11 ***********************************************************************/
12
13// Factory class for generating workspace objects from <receptor>.prm file
14// Responsible for generation of:
15// Receptor, Ligand, Solvent,
16#ifndef RBTPRMFACTORY_H_
17#define RBTPRMFACTORY_H_
18
19#include "rxdock/BaseMolecularFileSource.h"
20#include "rxdock/Error.h"
21#include "rxdock/Model.h"
22
23namespace rxdock {
24
25class ParameterFileSource;
26class DockingSite;
27
29public:
30 static const std::string &_CT;
31 // Receptor parameters
32 static const std::string &_REC_SECTION;
33 static const std::string &_REC_FILE;
34 static const std::string &_REC_TOPOL_FILE;
35 static const std::string &_REC_COORD_FILE;
36 static const std::string &_REC_NUM_COORD_FILES;
37 static const std::string &_REC_FLEX_DISTANCE;
38 static const std::string &_REC_DIHEDRAL_STEP;
39 static const std::string &_REC_ALL_H;
40 static const std::string &_REC_MASSES_FILE;
41 static const std::string &_REC_SEGMENT_NAME;
42
43 // Ligand parameters
44 static const std::string &_LIG_SECTION;
45 // Ligand file is not read here, so no need for _LIG_FILE
46 // No need to specify ligand flexibility parameter names explicitly
47 // as we assume that all parameters in SECTION LIGAND
48 // are flexibility params.
49
50 // Solvent parameters
51 static const std::string &_SOLV_SECTION;
52 static const std::string &_SOLV_FILE;
53 // No need to specify solvent flexibility parameter names explicitly
54 // as we assume that all parameters in SECTION SOLVENT
55 // are flexibility params (except for _SOLV_FILE)
56
57 RBTDLL_EXPORT PRMFactory(ParameterFileSource *pParamSource);
58 RBTDLL_EXPORT PRMFactory(ParameterFileSource *pParamSource, DockingSite *pDS);
59
60 DockingSite *GetDockingSite() const { return m_pDS; }
61 void SetDockingSite(DockingSite *pDS) { m_pDS = pDS; }
62
63 RBTDLL_EXPORT ModelPtr CreateReceptor();
64 RBTDLL_EXPORT ModelPtr CreateLigand(BaseMolecularFileSource *pSource);
65 RBTDLL_EXPORT ModelList CreateSolvent();
66
67private:
68 // Creates the appropriate source according to the file extension
69 MolecularFileSourcePtr CreateMolFileSource(const std::string &fileName);
70 void AttachReceptorFlexData(Model *pReceptor);
71 void AttachLigandFlexData(Model *pLigand);
72 void AttachSolventFlexData(Model *pSolvent);
73 ParameterFileSource *m_pParamSource;
74 DockingSite *m_pDS;
75};
76
77} // namespace rxdock
78
79#endif /*RBTPRMFACTORY_H_*/
Definition BaseMolecularFileSource.h:29
Definition DockingSite.h:30
Definition Model.h:34
Definition PRMFactory.h:28
Definition ParameterFileSource.h:27