conformationSet.h

Go to the documentation of this file.
00001 // -*- Mode: C++; tab-width: 2; -*-
00002 // vi: set ts=2:
00003 //
00004 // $Id: conformationSet.h,v 1.3.18.2 2007/06/17 07:02:21 oliver Exp $
00005 //
00006 // Author:
00007 //
00008 
00009 #ifndef BALL_STRUCTURE_DOCKING_RANKEDCONFORMATION_H
00010 #define BALL_STRUCTURE_DOCKING_RANKEDCONFORMATION_H
00011 
00012 #ifndef BALL_DATATYPE_HASHMAP_H
00013 # include <BALL/DATATYPE/hashMap.h>
00014 #endif
00015 
00016 #ifndef BALL_KERNEL_SYSTEM_H
00017 # include <BALL/KERNEL/system.h>
00018 #endif
00019 
00020 #ifndef BALL_MOLMEC_COMMON_SNAPSHOT_H
00021 # include <BALL/MOLMEC/COMMON/snapShot.h>
00022 #endif
00023 
00024 #ifndef BALL_FORMAT_DCDFILE_H
00025 # include <BALL/FORMAT/DCDFile.h>
00026 #endif
00027 
00028 #include <vector>
00029 #include <set>
00030 
00031 namespace BALL
00032 {
00036     class BALL_EXPORT ConformationSet
00037     {
00038       public:
00039 
00043         typedef std::pair<Index, float> Conformation;
00044 
00045         ConformationSet() {};
00046         ConformationSet(const System& system);
00047 
00048         virtual ~ConformationSet() {};
00049         
00052         void setup(const System& system)
00053           ;
00054 
00055         void add(const float score, const System& conformations) 
00056           ;
00057 
00058         const System& getSystem() const
00059           ;
00060           
00061         System& getSystem()
00062           ;
00063 
00066         void setScoring(std::vector<Conformation>& score)
00067           ;
00068         
00071         const std::vector<Conformation>& getScoring() const
00072           ;
00073 
00077         void resetScoring()
00078           ;
00079 
00083         const std::vector<SnapShot>& getUnscoredConformations() const
00084           ;
00085 
00089         const SnapShot& operator [] (const Index pos) const;
00090 
00094         bool writeDCDFile(const String& filename, const Size num=0);
00095         
00096         bool readDCDFile(const String& filename)
00097           ;
00098 
00101         Size size() const;
00102         
00103       protected:
00104 
00108         // Indices of the conformations in the SnapShotManager.
00109         // Sorted according to their score
00110         std::vector<Conformation> snapshot_order_;
00111 
00114         System system_;
00115 
00118         vector<SnapShot> structures_;
00119     };
00120 
00121 }
00122 #endif