BALL  1.4.1
secondaryStructureProcessor.h
Go to the documentation of this file.
00001 // -*- Mode: C++; tab-width: 2; -*-
00002 // vi: set ts=2:
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     // helper function for finish()
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     // matrix to save the possible HBondPairs
00071     std::vector<std::vector<Position> > HBonds_;
00072 
00073     //vector to save the bridges
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 } //namespace BALL
00084 
00085 #endif // BALL_STRUCTURE_SECONDARYSTRUCTUREPROCESSOR_H
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines