1 #ifndef LOCARNA_PFOLD_PARAMS_HH
2 #define LOCARNA_PFOLD_PARAMS_HH
9 #include <ViennaRNA/data_structures.h>
12 #include "named_arguments.hh"
35 DEFINE_NAMED_ARG_DEFAULT(
noLP,
bool,
false);
36 DEFINE_NAMED_ARG_DEFAULT(
stacking,
bool,
false);
37 DEFINE_NAMED_ARG_DEFAULT(
dangling,
int, 2);
39 DEFINE_NAMED_ARG_DEFAULT(ribo,
bool,
true);
40 DEFINE_NAMED_ARG_DEFAULT(cv_fact,
double, 0.6);
41 DEFINE_NAMED_ARG_DEFAULT(nc_fact,
double, 0.5);
43 using valid_args = std::tuple<
noLP,
60 template <
typename... Args>
62 static_assert(
type_subset_of< std::tuple<Args...> ,
typename args::valid_args >::value,
63 "Invalid type in named arguments pack." );
65 auto args = std::make_tuple(argpack...);
67 stacking_ = get_named_arg_opt<args::stacking>(
args);
69 vrna_md_set_default(&md_);
71 md_.noLP = get_named_arg_opt<args::noLP>(
args) ? 1 : 0;
73 md_.max_bp_span = get_named_arg_opt<args::max_bp_span>(
args);
75 md_.dangles = get_named_arg_opt<args::dangling>(
args);
76 assert(md_.dangles >= 0);
77 assert(md_.dangles <= 3);
82 md_.ribo = get_named_arg_opt<args::ribo>(
args) ? 1 : 0;
83 md_.cv_fact = get_named_arg_opt<args::cv_fact>(
args);
84 md_.nc_fact = get_named_arg_opt<args::nc_fact>(
args);
91 stacking_(pfoldparams.stacking_)
93 vrna_md_copy(&md_, &pfoldparams.md_);
121 return md_.noLP == 1;
146 return md_.max_bp_span >= 0 ? md_.max_bp_span
147 : std::numeric_limits<size_t>::max();
Parameters for partition folding.
Definition: pfold_params.hh:32
bool stacking() const
Check stacking flag.
Definition: pfold_params.hh:130
PFoldParams(const PFoldParams &pfoldparams)
Definition: pfold_params.hh:89
const vrna_md_t & model_details() const
get ViennaRNA model details structure
Definition: pfold_params.hh:108
int dangling() const
Get dangling value.
Definition: pfold_params.hh:156
size_t max_bp_span() const
Get maximum base pair span.
Definition: pfold_params.hh:145
PFoldParams(Args... argpack)
Definition: pfold_params.hh:61
bool noLP() const
Check no LP flag.
Definition: pfold_params.hh:120
Definition: aligner.cc:15
Definition: pfold_params.hh:34
Definition: named_arguments.hh:56