BALL  1.5.0
molecularStructure.h
Go to the documentation of this file.
1 // -*- Mode: C++; tab-width: 2; -*-
2 // vi: set ts=2:
3 //
4 
5 #ifndef BALL_VIEW_WIDGETS_MOLECULARSTRUCTURE_H
6 #define BALL_VIEW_WIDGETS_MOLECULARSTRUCTURE_H
7 
8 #ifndef BALL_VIEW_KERNEL_MODULARWIDGET_H
10 #endif
11 
12 #ifndef BALL_MATHS_VECTOR3_H
13  #include <BALL/MATHS/vector3.h>
14 #endif
15 
16 #ifndef BALL_VIEW_DIALOGS_AMBERCONFIGURATIONDIALOG_H
18 #endif
19 
20 #ifndef BALL_VIEW_DIALOGS_MINIMIZATIONDIALOG_H
22 #endif
23 
24 #ifndef BALL_VIEW_DIALOGS_MOLECULARDYNAMICSDIALOG_H
26 #endif
27 
28 #ifndef BALL_VIEW_DIALOGS_CHARMMCONFIGURATIONDIALOG_H
30 #endif
31 
32 #ifndef BALL_VIEW_DIALOGS_MMFF94CONFIGURATIONDIALOG_H
34 #endif
35 
36 #ifndef BALL_VIEW_DIALOGS_ASSIGNBONDORDERCONFIGURATIONDIALOG_H
38 #endif
39 
40 #ifndef BALL_VIEW_DIALOGS_ASSIGNBONDORDERRESULTSDIALOG_H
42 #endif
43 
44 #ifndef BALL_VIEW_DIALOGS_GENERaTECRYSTALDIALOG_H
46 #endif
47 
48 #ifndef BALL_MOLMEC_AMBER_AMBER_H
49 # include <BALL/MOLMEC/AMBER/amber.h>
50 #endif
51 
52 #ifndef BALL_MOLMEC_CHARMM_CHARMM_H
54 #endif
55 
56 #ifndef BALL_MOLMEC_MMFF94_MMFF94
58 #endif
59 
60 
61 #include <QtWidgets/QWidget>
62 
63 namespace BALL
64 {
65  class Composite;
66 
67  namespace VIEW
68  {
69  class FDPBDialog;
70 
91  : public QWidget,
92  public ModularWidget
93  {
94  Q_OBJECT
95 
96  public:
97 
99 
100 
101  enum
102  {
104  AMBER_FF = 0,
105 
108 
110  MMFF94_FF
111  };
112 
116 
121  MolecularStructure(QWidget* parent = 0, const char* name = 0);
122 
125 
127 
130 
134 
136 
139 
150  virtual void onNotify(Message *message);
151 
158  virtual void checkMenu(MainControl& main_control);
159 
166  virtual void initializeWidget(MainControl& main_control);
167 
173 
177 
182 
187 
190 
193 
196 
199 
203  virtual void fetchPreferences(INIFile &inifile);
204 
208  virtual void writePreferences(INIFile &inifile);
209 
212 
214  MinimizationDialog& getMinimizationDialog() { return minimization_dialog_;}
215 
217  FDPBDialog* getFDPBDialog() { return fdpb_dialog_;}
218 
221 
223  const AssignBondOrderConfigurationDialog& getBondOrderDialog() const { return bond_order_dialog_;}
224 
226  AssignBondOrderResultsDialog& getBondOrderResultsDialog() { return bond_order_results_dialog_;}
227 
229  const AssignBondOrderResultsDialog& getBondOrderResultsDialog() const { return bond_order_results_dialog_;}
230 
231 
232  public Q_SLOTS:
233 
238  void centerCamera(Composite* composite = 0);
239 
247  void buildBonds();
248 
253  void buildEndcaps();
254 
261  void runBondOrderAssignment(bool show_dialog = true);
262 
263 
272 
280  void addHydrogens();
281 
284  virtual bool checkResidue();
285 
287  virtual void createGridFromDistance();
288 
291 
294 
296  virtual void mapProteins();
297 
299  virtual void calculateRMSD();
300 
302  void buildPeptide();
303 
305  bool generateCrystal(bool show = true);
306 
309 
312 
313  // Calculate the charges for a Molecule
314 // void assignCharges();
315 
318 
320  void runMinimization(bool show_dialog_ = true);
321 
323  void MDSimulation(bool show_dialog_ = true);
324 
327 
330 
333 
336 
339 
341  void chooseMMFF94();
342 
345 
348 
350  bool calculateFDPB(bool show = true);
351 
353 
354  private:
355 
356  virtual void addComposite_(Composite& composite, const String& name, bool normalize = true);
357 
358  void applyForceFieldSettings_();
359 
360  void selectUnassignedForceFieldAtoms_();
361 
362  bool setupForceField_(System* system, bool disable_selection = false);
363 
364  QAction* center_camera_id_;
365  QAction* build_bonds_id_;
366  QAction* build_endcaps_id_;
367  QAction* assign_bond_orders_id_;
368  QAction* add_hydrogens_id_;
369  QAction* check_structure_id_;
370  QAction* create_distance_grid_id_, *create_distance_grid_id2_;
371  QAction* calculate_ss_id_;
372  QAction* map_proteins_id_;
373  QAction* calculate_RMSD_id_;
374  QAction* assign_charges_id_;
375  QAction* energy_id_;
376  QAction* minimization_id_;
377  QAction* mdsimulation_id_;
378  QAction* build_peptide_id_;
379  QAction* calculate_hbonds_id_;
380  QAction* amber_ff_id_;
381  QAction* charmm_ff_id_;
382  QAction* mmff94_id_;
383  QAction* setup_ff_;
384  QAction* calculate_ramachandran_;
385  QAction* menu_FPDB_;
386  QAction* generate_crystal_;
387 
388  AmberFF amber_;
389  CharmmFF charmm_;
390  MMFF94 mmff_;
391  AmberConfigurationDialog amber_dialog_;
392  CharmmConfigurationDialog charmm_dialog_;
393  MMFF94ConfigurationDialog mmff94_dialog_;
394  MinimizationDialog minimization_dialog_;
395  MolecularDynamicsDialog md_dialog_;
396  FDPBDialog* fdpb_dialog_;
397  AssignBondOrderConfigurationDialog bond_order_dialog_;
398  AssignBondOrderResultsDialog bond_order_results_dialog_;
399  Position force_field_id_;
400  GenerateCrystalDialog* crystal_dialog_;
401  };
402 
403  } // namespace VIEW
404 } // namespace BALL
405 
406 #endif // BALL_VIEW_WIDGETS_MOLECULARSTRUCTURE_H
#define BALL_EMBEDDABLE(TYPE, BASE)
Definition: embeddable.h:31
Definition: constants.h:13
Assignment of bond orders from topology information.
void calculateForceFieldEnergy()
Calculate the energy for the currently selected force field.
void chooseAmberFF()
Slot for a menu entry to select the AMBER force field.
const AssignBondOrderResultsDialog & getBondOrderResultsDialog() const
virtual void createGridFromDistance()
Create a RegularData3D instance with the distance from the geometric center.
void showAmberForceFieldOptions()
Show the dialog to setup the AMBER force field.
bool generateCrystal(bool show=true)
Build a crystal packing for a loaded system.
void MDSimulation(bool show_dialog_=true)
Perfomr a molecular dynamics simulation with the currently selected force field.
virtual void mapProteins()
Map two Proteins and apply the resulting transformation matrix.
void chooseMMFF94()
Slot for a menu entry to select the MMFF94 force field.
virtual void writePreferences(INIFile &inifile)
MinimizationDialog & getMinimizationDialog()
virtual void calculateRMSD()
Calculate the RMSD between two Molecules.
AssignBondOrderConfigurationDialog & getBondOrderDialog()
void chooseForceField(Position nr)
CharmmConfigurationDialog & getCharmmConfigurationDialog()
Get an instance of an dialog to setup the CHARMM forcefield.
virtual void checkMenu(MainControl &main_control)
virtual void onNotify(Message *message)
MolecularDynamicsDialog & getMDSimulationDialog()
virtual void createGridFromCameraDistance()
virtual void fetchPreferences(INIFile &inifile)
AmberConfigurationDialog & getAmberConfigurationDialog()
Get an instance of an dialog to setup the AMBER forcefield.
virtual void initializeWidget(MainControl &main_control)
void showCharmmForceFieldOptions()
Show the dialog to setup the CHARMM force field.
const AssignBondOrderConfigurationDialog & getBondOrderDialog() const
void calculateRamachandranPlot()
Calculate a Ramachandran Plot.
MMFF94ConfigurationDialog & getMMFF94ConfigurationDialog()
void setupForceField()
Show a dialog to setup the currently selected force field.
void centerCamera(Composite *composite=0)
virtual void calculateSecondaryStructure()
Calculate the secondary structure for a protein.
void runMinimization(bool show_dialog_=true)
Run a energy minization with the currently selected force field.
void chooseCharmmFF()
Slot for a menu entry to select the CHARMM force field.
void buildPeptide()
Build a Peptide from a amino acid sequence.
bool calculateFDPB(bool show=true)
void showBondOrderAssignmentResults(AssignBondOrderProcessor &bop)
AssignBondOrderResultsDialog & getBondOrderResultsDialog()
MolecularStructure(QWidget *parent=0, const char *name=0)
void runBondOrderAssignment(bool show_dialog=true)
MolecularStructure(const MolecularStructure &m)
only needed for Python Interface, dont call it!
void calculateHBonds()
Calculate the H-Bonds for a Protein.
#define BALL_VIEW_EXPORT
Definition: COMMON/global.h:52