PRIVATE void update_dfold_params(void){ vrna_md_t md; if(P) free(P); set_model_details(&md); P = vrna_params(&md); make_pair_matrix(); }
PRIVATE void add_params( vrna_fold_compound_t *vc, vrna_md_t *md_p, unsigned int options){ /* ALWAYS add regular energy parameters */ vc->params = vrna_params(md_p); if(options & VRNA_OPTION_PF){ vc->exp_params = (vc->type == VRNA_VC_TYPE_SINGLE) ? \ vrna_exp_params(md_p) : \ vrna_exp_params_comparative(vc->n_seq, md_p); } }
InteractionEnergyVrna::InteractionEnergyVrna( const Accessibility & accS1 , const ReverseAccessibility & accS2 , VrnaHandler &vrnaHandler , const size_t maxInternalLoopSize1 , const size_t maxInternalLoopSize2 , const bool initES ) : InteractionEnergy(accS1, accS2, maxInternalLoopSize1, maxInternalLoopSize2) // get final VRNA folding parameters , foldModel( vrnaHandler.getModel() ) , foldParams( vrna_params( &foldModel ) ) , RT(vrnaHandler.getRT()) , bpCG( BP_pair[RnaSequence::getCodeForChar('C')][RnaSequence::getCodeForChar('G')] ) , bpGC( BP_pair[RnaSequence::getCodeForChar('G')][RnaSequence::getCodeForChar('C')] ) , esValues1(NULL) , esValues2(NULL) { vrna_md_defaults_reset( &foldModel ); // init ES values if needed if (initES) { // 23.11.2017 : should not be relevant anymore //#if INTARNA_MULITHREADING // #pragma omp critical(intarna_omp_callingVRNA) //#endif // { // create ES container to be filled esValues1 = new EsMatrix(); esValues2 = new EsMatrix(); // fill ES container computeES( accS1, *esValues1 ); computeES( accS2, *esValues2 ); // } // omp critical(intarna_omp_callingVRNA) } }