Grassroots Infrastructure
The Grassroots Infrastructure is a suite of computing tools to help users and developers use scientific data infrastructure that can easily be interconnected.
primer3_prefs.h
Go to the documentation of this file.
1 /*
2 ** Copyright 2014-2018 The Earlham Institute
3 **
4 ** Licensed under the Apache License, Version 2.0 (the "License");
5 ** you may not use this file except in compliance with the License.
6 ** You may obtain a copy of the License at
7 **
8 ** http://www.apache.org/licenses/LICENSE-2.0
9 **
10 ** Unless required by applicable law or agreed to in writing, software
11 ** distributed under the License is distributed on an "AS IS" BASIS,
12 ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 ** See the License for the specific language governing permissions and
14 ** limitations under the License.
15 */
16 /*
17  * primer3_prefs.h
18  *
19  * Created on: 19 Jan 2019
20  * Author: billy
21  */
22 
23 #ifndef SERVICES_POLYMARKER_SERVICE_INCLUDE_PRIMER3_PREFS_H_
24 #define SERVICES_POLYMARKER_SERVICE_INCLUDE_PRIMER3_PREFS_H_
25 
26 #include "polymarker_service.h"
27 
28 
29 /*
30 :primer_product_size_range => "50-150" ,
31 :primer_max_size => 25 ,
32 :primer_lib_ambiguity_codes_consensus => 1,
33 :primer_liberal_base => 1,
34 :primer_num_return=>5,
35 :primer_explain_flag => 1,
36 :primer_thermodynamic_parameters_path=>File.expand_path(File.dirname(__FILE__) + '../../conf/primer3_config/') + '/'
37 */
38 typedef struct Primer3Prefs
39 {
40  /*
41  * PRIMER_PRODUCT_SIZE_RANGE (size range list; default 100-300)
42  *
43  * The associated values specify the lengths of the product that the user wants the
44  * primers to create, and is a space separated list of elements of the form
45  *
46  * <x>-<y>
47  *
48  */
50 
52 
53  /*
54  * PRIMER_MAX_SIZE (int; default 27)
55  *
56  * Maximum acceptable length (in bases) of a primer. Currently this parameter cannot
57  * be larger than 35. This limit is governed by maximum oligo size for which primer3's
58  * melting-temperature is valid.
59  */
60  uint32 pp_max_size;
61 
63 
65 
66  uint32 pp_num_return;
67 
69 
71 } Primer3Prefs;
72 
73 
74 #ifdef __cplusplus
75 extern "C"
76 {
77 #endif
78 
79 
81 
82 
84 
85 
86 POLYMARKER_SERVICE_LOCAL char *SavePrimer3Prefs (Primer3Prefs *prefs_p, const char *working_dir_s, const char *job_id_s);
87 
88 
90 
91 
92 POLYMARKER_SERVICE_LOCAL bool GetPrimer3PrefsParameterTypesForNamedParameters (const Service *service_p, const char *param_name_s, ParameterType *pt_p);
93 
94 
96 
97 
98 POLYMARKER_SERVICE_LOCAL char *WritePrimer3Config (const ParameterSet *params_p, const char *prefs_path_s, const PolymarkerServiceData *data_p);
99 
100 
101 #ifdef __cplusplus
102 }
103 #endif
104 
105 
106 
107 #endif /* SERVICES_POLYMARKER_SERVICE_INCLUDE_PRIMER3_PREFS_H_ */
ParsePrimer3PrefsParameters
void ParsePrimer3PrefsParameters(const ParameterSet *params_p, Primer3Prefs *prefs_p)
Primer3Prefs::pp_explain_flag
bool pp_explain_flag
Definition: primer3_prefs.h:68
ParameterType
ParameterType
The different types that a Parameter can take.
Definition: parameter_type.h:35
SavePrimer3Prefs
char * SavePrimer3Prefs(Primer3Prefs *prefs_p, const char *working_dir_s, const char *job_id_s)
GetPrimer3PrefsParameterTypesForNamedParameters
bool GetPrimer3PrefsParameterTypesForNamedParameters(const Service *service_p, const char *param_name_s, ParameterType *pt_p)
Primer3Prefs::pp_num_return
uint32 pp_num_return
Definition: primer3_prefs.h:66
AddPrimer3PrefsParameters
bool AddPrimer3PrefsParameters(ParameterSet *params_p, PolymarkerServiceData *data_p)
Primer3Prefs::pp_lib_ambiguity_codes_consensus
bool pp_lib_ambiguity_codes_consensus
Definition: primer3_prefs.h:62
polymarker_service.h
Primer3Prefs::pp_thermodynamic_parameters_path_s
const char * pp_thermodynamic_parameters_path_s
Definition: primer3_prefs.h:70
PolymarkerServiceData
The ServiceData used for the PolymarkerService.
Definition: polymarker_service.h:129
AllocatePrimer3Prefs
Primer3Prefs * AllocatePrimer3Prefs(const PolymarkerServiceData *data_p)
Service
A datatype which defines an available service, its capabilities and its parameters.
Definition: service.h:153
Primer3Prefs::pp_product_size_range_min
uint32 pp_product_size_range_min
Definition: primer3_prefs.h:49
WritePrimer3Config
char * WritePrimer3Config(const ParameterSet *params_p, const char *prefs_path_s, const PolymarkerServiceData *data_p)
Primer3Prefs::pp_liberal_base
bool pp_liberal_base
Definition: primer3_prefs.h:64
POLYMARKER_SERVICE_LOCAL
#define POLYMARKER_SERVICE_LOCAL
Definition: polymarker_service.h:48
ParameterSet
A set of Parameters along with an optional name and description.
Definition: parameter_set.h:46
FreePrimer3Prefs
void FreePrimer3Prefs(Primer3Prefs *prefs_p)
Primer3Prefs
Definition: primer3_prefs.h:38
Primer3Prefs::pp_max_size
uint32 pp_max_size
Definition: primer3_prefs.h:60
Primer3Prefs::pp_product_size_range_max
uint32 pp_product_size_range_max
Definition: primer3_prefs.h:51