IGMPlot 3.16
Optimized IGMplot version able to use wfn/wfx/xyz files
Loading...
Searching...
No Matches
ProgData.h
Go to the documentation of this file.
1/*
2 * Copyright University of Reims Champagne-Ardenne
3 * Authors and Contributors: Akilan RAJAMANI, Corentin LEFEBVRE, Johanna KLEIN,
4 * Emmanuel PLUOT, Hugo ROUSSEL, Gaetan RUBEZ, Hassan KHARTABIL,
5 * Jean-Charles BOISSON and Eric HENON
6 * (24/07/2017)
7 * jean-charles.boisson@univ-reims.fr, eric.henon@univ-reims.fr
8 *
9 * This software is a computer program whose purpose is to
10 * detect and quantify interactions from electron density
11 * obtained either internally from promolecular density or
12 * calculated from an input wave function input file. It also
13 * prepares for the visualization of isosurfaces representing
14 * several descriptors (dg) coming from the IGM methodology.
15 *
16 * This software is governed by the CeCILL-C license under French law and
17 * abiding by the rules of distribution of free software. You can use,
18 * modify and/ or redistribute the software under the terms of the CeCILL-C
19 * license as circulated by CEA, CNRS and INRIA at the following URL
20 * "http://www.cecill.info".
21 *
22 * As a counterpart to the access to the source code and rights to copy,
23 * modify and redistribute granted by the license, users are provided only
24 * with a limited warranty and the software's author, the holder of the
25 * economic rights, and the successive licensors have only limited
26 * liability.
27 *
28 * In this respect, the user's attention is drawn to the risks associated
29 * with loading, using, modifying and/or developing or reproducing the
30 * software by the user in light of its specific status of free software,
31 * that may mean that it is complicated to manipulate, and that also
32 * therefore means that it is reserved for developers and experienced
33 * professionals having in-depth computer knowledge. Users are therefore
34 * encouraged to load and test the software's suitability as regards their
35 * requirements in conditions enabling the security of their systems and/or
36 * data to be ensured and, more generally, to use and operate it in the
37 * same conditions as regards security.
38 *
39 * The fact that you are presently reading this means that you have had
40 * knowledge of the CeCILL-C license and that you accept its terms.
41 *
42 * */
43
48
49#ifndef _PROGDATA_H_
50#define _PROGDATA_H_
51
52// STL
53// transfert to toolbox.h
54//#include <cstdlib>
55//#include <vector>
56
57// LOCAL
58#include <LocalData.h>
59
60
65{
66
67 private :
68
69 // Program data
70
73
76
79
81 int nbAtom;
82
84 unsigned int nbBond;
85
87 double maxCoordinates[3];
88 double maxCoordinatesA[3];
89 double maxCoordinatesB[3];
90
92 double minCoordinates[3];
93 double minCoordinatesA[3];
94 double minCoordinatesB[3];
95
97 int nbSteps[3];
98
99 // Other utilities' variables
100
103
105 bool boxSet;
106
109
111 int cnt;
112
114
115 public :
116
118 int * atomTypes; // in the range [0:nbAtoms-1]
119
122
125
126
127
136 //ProgData(int nbAtomMolAParam, int nbAtomMolBParam, int numLigandParam, int nbBondParam);
137 ProgData(int nbAtomMolAParam, int nbAtomMolBParam, int nbTotalAtomParam, int numLigandParam, std::vector<std::pair< unsigned int, unsigned int> > &chosenBondsParam);
138
142 ~ProgData();
143
154 void addAtom(int type, double posx, double posy, double posz, bool setLIGAND=false, bool WFNmode=false, bool HirshMode=false);
155
163
164 void validate(double * increments, double ligandRadius, bool setLIGAND, bool QMmode);
165
170 void setCube( double * cubeParam );
171
176 void setRadius( double * radiusParam );
177
182 unsigned int getNbBond();
183
188 int getNbAtom();
189
194 int getNbAtomMolA();
195
200 int getNbAtomMolB();
201
207 double getMaxCoord(int axis);
208
214 double getMinCoord(int axis);
215
221 int getNbSteps(int axis);
222
227 std::string getGridBoxDefinition();
228
233 void setNbAtomMolA(int newValue);
234
239 void setNbAtomMolB(int newValue);
240
247 void setNbSteps(int nbStepsX, int nbStepsY, int nbStepsZ);
248
254 void storeBondLength( unsigned int ibond, double length);
255
263 void storeBondVector(unsigned int ibond, double ABx, double ABy, double ABz);
264
270 void setIBSI(unsigned int ibond, double newValue);
271
277 void setBAF(unsigned int ibond, double newValue);
278
283 double getIBSI(int ibond);
284
289 double getBAF(int ibond);
290
291
292
293};
294
295#endif
Class designed to store Gradient related values and provide some utilities concerning those.
int nbAtomMolA
Number of atoms in molecule A.
Definition ProgData.h:72
void storeBondLength(unsigned int ibond, double length)
Function to manually store the length of a studied bond (IBSI case)
Definition ProgData.cpp:631
unsigned int nbBond
Number of bonds studied (QM treatment)
Definition ProgData.h:84
void setCube(double *cubeParam)
Sets the given cube has the reference cube to the problem.
Definition ProgData.cpp:511
int * atomTypes
arry of atom's type
Definition ProgData.h:118
int getNbSteps(int axis)
Gets the number of steps for the given axis.
Definition ProgData.cpp:595
int cursor
Used to iterate through the arrays.
Definition ProgData.h:102
void storeBondVector(unsigned int ibond, double ABx, double ABy, double ABz)
Function to manually store the vector components of the AB bond.
Definition ProgData.cpp:655
bond_t * bonds
array of studied bonds (QM treatment)
Definition ProgData.h:124
double getBAF(int ibond)
Function to manually get the BDA score of a studied bond (IBSI case)
Definition ProgData.cpp:728
void addAtom(int type, double posx, double posy, double posz, bool setLIGAND=false, bool WFNmode=false, bool HirshMode=false)
Adds an atom with the given properties to the atom's array.
Definition ProgData.cpp:118
void validate(double *increments, double ligandRadius, bool setLIGAND, bool QMmode)
Ends the atom adding and update the coordinates before reporting whether the values are consistent.
Definition ProgData.cpp:386
int numLigand
Number of the ligand ; if none : -1.
Definition ProgData.h:78
double minCoordinates[3]
Min coordinates.
Definition ProgData.h:92
double getMaxCoord(int axis)
Gets the max coordinate for the given axis.
Definition ProgData.cpp:583
void setRadius(double *radiusParam)
Sets the given radius has the reference cube to the problem.
Definition ProgData.cpp:537
~ProgData()
Destructor.
Definition ProgData.cpp:101
unsigned int getNbBond()
Gets the number of studied bonds.
Definition ProgData.cpp:559
double maxCoordinates[3]
Max coordinates.
Definition ProgData.h:87
double getMinCoord(int axis)
Gets the min coordinate for the given axis.
Definition ProgData.cpp:589
void setIBSI(unsigned int ibond, double newValue)
Function to manually set the IBSI score of a studied bond (IBSI case)
Definition ProgData.cpp:679
void setNbAtomMolB(int newValue)
setter for nbAtomMolB variable
Definition ProgData.cpp:623
int getNbAtomMolA()
Gets the number of atom in molecule A.
Definition ProgData.cpp:571
void setNbSteps(int nbStepsX, int nbStepsY, int nbStepsZ)
Function to manually set the number of steps of each axis (IBSI case)
Definition ProgData.cpp:503
bool radiusSet
Used to check whether RADIUS option has been used.
Definition ProgData.h:108
int getNbAtom()
Gets the number of atom.
Definition ProgData.cpp:565
void setNbAtomMolA(int newValue)
setter for nbAtomMolA variable
Definition ProgData.cpp:617
int nbSteps[3]
Number of steps in loop for all three axis.
Definition ProgData.h:97
void setBAF(unsigned int ibond, double newValue)
Function to manually set the BDA score of a studied bond (IBSI case)
Definition ProgData.cpp:705
double getIBSI(int ibond)
Function to manually get the IBSI score of a studied bond (IBSI case)
Definition ProgData.cpp:722
int cnt
TO DOCUMENT.
Definition ProgData.h:111
bool boxSet
Used to check whether CUBE option has been used.
Definition ProgData.h:105
ProgData(int nbAtomMolAParam, int nbAtomMolBParam, int nbTotalAtomParam, int numLigandParam, std::vector< std::pair< unsigned int, unsigned int > > &chosenBondsParam)
Constructor.
Definition ProgData.cpp:58
int getNbAtomMolB()
Gets the number of atom in molecule B.
Definition ProgData.cpp:577
int nbAtomMolB
Number of atoms in molecule B.
Definition ProgData.h:75
int nbAtom
Number of atoms in both molecule (if two)
Definition ProgData.h:81
std::string getGridBoxDefinition()
Gets the way the box was deinied by user.
Definition ProgData.cpp:601
positions_t atomPositions
Each atom's position.
Definition ProgData.h:121
bool HirshMode
Flag to indicate if we are using the HIRSH mode.
Definition reader.cpp:85
bool setLIGAND
Flag to indicate if the user has provided the index of the ligand within the set of two supplied frag...
Definition reader.cpp:128
Structure describing studied bond (QM treatment)
Definition general.h:658
Structure containing a serie of 3D position.
Definition general.h:705