00001
00002
00003
00004
00005 #ifndef BALL_SECONDARY_STRUCTURE_PROCESSOR_H
00006 #define BALL_SECONDARY_STRUCTURE_PROCESSOR_H
00007
00008 #ifndef BALL_COMMON_H
00009 #include <BALL/common.h>
00010 #endif
00011
00012 #ifndef BALL_CONCEPT_COMPOSITE_H
00013 # include <BALL/CONCEPT/composite.h>
00014 #endif
00015
00016 #include <vector>
00017
00018 namespace BALL
00019 {
00020 class SecondaryStructure;
00021
00038 class BALL_EXPORT SecondaryStructureProcessor
00039 : public UnaryProcessor<Composite>
00040 {
00041 public:
00042
00045
00046 SecondaryStructureProcessor();
00048
00051
00052 virtual Processor::Result operator() (Composite& composite);
00054
00055 protected:
00056
00058 void compute_();
00059
00060
00061 char setSecondaryStructureType_(SecondaryStructure* ss, char type);
00062
00063 bool testString_(const String& s, Size offset, Size offset_2);
00064 bool testString2_(const String& s, Size offset);
00065 bool testString3_(const String& s, Size offset, char x);
00066
00067 void insertTurn_(int turn, int position);
00068 void changeAllXToY_(char X, char Y, String& target);
00069
00070
00071 std::vector<std::vector<Position> > HBonds_;
00072
00073
00074 std::vector<std::vector<int> > posbridges_;
00075
00076 String sheet_;
00077 String fiveturn_;
00078 String fourturn_;
00079 String threeturn_;
00080 String summary_;
00081 };
00082
00083 }
00084
00085 #endif // BALL_STRUCTURE_SECONDARYSTRUCTUREPROCESSOR_H