12 #ifndef PRD_DESIGN_HXX
13 #define PRD_DESIGN_HXX
49 Range primer_distance;
54 int max_count_primerpairs;
73 double temperature_factor;
78 int min_distance_to_next_match;
83 bool expand_IUPAC_Codes;
89 static const int FORWARD = 1;
90 static const int BACKWARD = -1;
105 unsigned long int total_node_counter_left;
106 unsigned long int total_node_counter_right;
107 unsigned long int primer_node_counter_left;
108 unsigned long int primer_node_counter_right;
110 void reset_node_counters() {
111 total_node_counter_left = 0;
112 total_node_counter_right = 0;
113 primer_node_counter_left = 0;
114 primer_node_counter_right = 0;
118 PrimerDesign(
const char *sequence_,
long int seqLength_,
120 Range ratio_,
Range temperature_,
int min_dist_to_next_,
bool expand_IUPAC_Codes_,
121 int max_count_primerpairs_,
double GC_factor_,
double temp_factor_);
122 PrimerDesign(
const char *sequence_,
long int seqLength_,
124 int max_count_primerpairs_,
double GC_factor_,
double temp_factor_);
126 PrimerDesign(
const char *sequence_,
long int seqLength_);
130 void setConditionalParameters(
Range ratio_,
Range temperature_,
int min_dist_to_next_,
bool expand_IUPAC_Codes_,
int max_count_primerpairs_,
double GC_factor_,
double temp_factor_);
137 #if defined(DUMP_PRIMER)
138 void printPrimerTrees ();
139 void printPrimerLists ();
140 void printPrimerPairs ();
149 const char *
get_result(
int num,
const char *&primers,
int max_primer_length,
int max_position_length,
int max_length_length)
const;
158 void init (
const char *sequence_,
long int seqLength_,
Range pos1_,
Range pos2_,
Range length_,
Range distance_,
Range ratio_,
Range temperature_,
int min_dist_to_next_,
bool expand_IUPAC_Codes_,
int max_count_primerpairs_,
double GC_factor_,
double temp_factor_);
160 void findNextPrimer (
Node *start_at_,
int depth_,
int *counter_,
int delivered_);
161 int insertNode (
Node *current_,
unsigned char base_,
PRD_Sequence_Pos pos_,
int delivered_,
int offset_,
int left_,
int right_);
162 void clearTree (
Node *
start,
int left_,
int right_);
164 void calcGCandAT (
int &GC_,
int &AT_,
Node *start_at_);
165 double evaluatePair (
Item *one_,
Item *two_);
166 void insertPair (
double rating_,
Item *one_,
Item *two_);
170 #error PRD_Design.hxx included twice
171 #endif // PRD_DESIGN_HXX
const char * get_result(int num, const char *&primers, int max_primer_length, int max_position_length, int max_length_length) const
static const int PRINT_MATCHED_TREES
void matchSequenceAgainstPrimerTrees()
static HelixNrInfo * start
void setPositionalParameters(Range pos1_, Range pos2_, Range length_, Range distance_)
PrimerDesign(const char *sequence_, long int seqLength_, Range pos1_, Range pos2_, Range length_, Range distance_, Range ratio_, Range temperature_, int min_dist_to_next_, bool expand_IUPAC_Codes_, int max_count_primerpairs_, double GC_factor_, double temp_factor_)
PRD_Sequence_Pos get_max_primer_pos() const
void convertTreesToLists()
GB_ERROR get_error() const
PRD_Sequence_Pos max() const
void setConditionalParameters(Range ratio_, Range temperature_, int min_dist_to_next_, bool expand_IUPAC_Codes_, int max_count_primerpairs_, double GC_factor_, double temp_factor_)
static const int PRINT_RAW_TREES
static const int PRINT_PRIMER_LISTS
void evaluatePrimerPairs()
long int PRD_Sequence_Pos
PRD_Sequence_Pos get_max_primer_length() const
static const int PRINT_PRIMER_PAIRS