00001 #ifndef BALL_STRUCTURE_SIDECHAINPLACEMENTPROCESSOR_H 00002 #define BALL_STRUCTURE_SIDECHAINPLACEMENTPROCESSOR_H 00003 00004 #ifndef BALL_CONCEPT_PROCESSOR_H 00005 #include <BALL/CONCEPT/processor.h> 00006 #endif 00007 00008 #ifndef BALL_KERNEL_ATOMCONTAINER_H 00009 #include <BALL/KERNEL/atomContainer.h> 00010 #endif 00011 00012 #ifndef BALL_DATATYPE_OPTIONS_H 00013 # include <BALL/DATATYPE/options.h> 00014 #endif 00015 00016 namespace BALL 00017 { 00046 class BALL_EXPORT SideChainPlacementProcessor 00047 : public UnaryProcessor<AtomContainer> 00048 { 00049 public: 00050 00054 00055 struct BALL_EXPORT Option 00056 { 00059 static const char* METHOD; 00060 00063 static const char* SCWRL_BINARY_PATH; 00064 00071 static const char* SCWRL_INPUT_FILE; 00072 00079 static const char* SCWRL_SEQUENCE_FILE; 00080 00090 static const char* SCWRL_OUTPUT_FILE; 00091 00094 static const char* MUTATE_SELECTED_SIDE_CHAINS; 00095 00096 }; 00097 00099 struct BALL_EXPORT Default 00100 { 00101 static const String METHOD; 00102 static const String SCWRL_BINARY_PATH; 00103 static const bool MUTATE_SELECTED_SIDE_CHAINS; 00104 static const String SCWRL_INPUT_FILE; 00105 static const String SCWRL_SEQUENCE_FILE; 00106 static const String SCWRL_OUTPUT_FILE; 00107 }; 00108 00109 struct BALL_EXPORT Method 00110 { 00114 static const String SCWRL_4_0; 00115 //static const String SCWRL_SERVER; 00116 //static const String ILP; 00117 }; 00118 00120 00121 BALL_CREATE(SideChainPlacementProcessor); 00122 00126 00128 SideChainPlacementProcessor(); 00129 00131 SideChainPlacementProcessor(const SideChainPlacementProcessor& scpp); 00132 00134 virtual ~SideChainPlacementProcessor(); 00136 00140 00142 virtual bool start(); 00143 00148 void clear(); 00149 00164 virtual Processor::Result operator ()(AtomContainer& ac); 00165 00167 virtual bool finish(); 00168 00170 00174 00177 void setDefaultOptions(); 00178 00181 void setMutations(String mutated_seq) {mutated_sequence_ = mutated_seq;} 00182 00185 const String& getMutations() const {return mutated_sequence_;} 00186 00189 String getMutations() {return mutated_sequence_;} 00190 00192 00195 00197 SideChainPlacementProcessor& operator = (const SideChainPlacementProcessor& scpp); 00198 00199 00201 00204 00205 Options options; 00206 00208 00209 protected: 00215 bool readOptions_(); 00216 00218 String mutated_sequence_; 00219 00220 // The processor state. 00221 bool valid_; 00222 00223 }; 00224 00225 } // namespace BALL 00226 00227 00228 #endif // BALL_STRUCTURE_SIDECHAINPLACEMENTPROCESSOR_H