2#ifndef INTARNA_OUTPUTHANDLERCSV_H_
3#define INTARNA_OUTPUTHANDLERCSV_H_
17#include <boost/algorithm/string.hpp>
101 const std::map<ColType,std::string> &
172 throw std::runtime_error(
"OutputHandlerCsv::initColType2string() : ColType "+
toString(i)+
" without string representative");
197 ,
const std::string&
colSep =
";"
198 ,
const bool printHeader =
false
199 ,
const std::string&
listSep =
":"
302const std::map<OutputHandlerCsv::ColType,std::string> &
320 auto addCol = [&](std::string a,
ColType b) {
325 return std::accumulate(std::next(colTypes.begin())
344 if (stringEncoding.empty() || stringEncoding ==
"*") {
347 list.push_back(
static_cast<ColType>(c) );
352 size_t startPos = 0, splitPos = std::string::npos;
353 while (startPos != splitPos) {
354 splitPos = stringEncoding.find(
',',startPos);
356 std::string curTypeString = stringEncoding.substr(startPos,splitPos-(splitPos==std::string::npos?0:startPos));
358 boost::trim(curTypeString);
360 bool notFound =
true;
363 if ( boost::iequals( it->second, curTypeString) ) {
364 list.push_back( it->first );
370 throw std::runtime_error(
"OutputHandlerCsv::string2list("+stringEncoding+
") contains unsupported ColType encoding '"+curTypeString+
"'");
373 startPos = splitPos + (splitPos != std::string::npos ? 1 : 0);
386 for (
const auto& type : colTypes ) {
408 for (
const auto& type : colTypes ) {
Definition InteractionEnergy.h:20
Definition Interaction.h:28
Definition OutputConstraint.h:19
Definition OutputHandlerCsv.h:25
static ColTypeList string2list(const std::string &listString)
Definition OutputHandlerCsv.h:337
static const ColTypeList colTypeNumericSort
list of ColTypes that have to be sorted numerically
Definition OutputHandlerCsv.h:95
std::ostream & out
the output stream to write to
Definition OutputHandlerCsv.h:280
static std::string getHeader(const ColTypeList &colTypes, const std::string &colSep)
Definition OutputHandlerCsv.h:429
std::list< ColType > ColTypeList
list of ColTypes
Definition OutputHandlerCsv.h:92
virtual void add(const Interaction &interaction)
const InteractionEnergy & energy
the interaction energy function used for interaction computation
Definition OutputHandlerCsv.h:283
static const std::string notAvailable
string to encode not available values
Definition OutputHandlerCsv.h:30
static bool needsZall(const ColTypeList &colTypes)
Definition OutputHandlerCsv.h:384
virtual ~OutputHandlerCsv()
ColType
the column types supported
Definition OutputHandlerCsv.h:34
@ Etotal
overall energy of the interaction including the intra-molecular ensemble energies (E+Eall1+Eall2)
Definition OutputHandlerCsv.h:53
@ seq2
full second sequence
Definition OutputHandlerCsv.h:38
@ P_E
probability of mfe within interaction ensemble (outConstraint.needZall)
Definition OutputHandlerCsv.h:86
@ start1
start index of hybrid in seq1
Definition OutputHandlerCsv.h:43
@ hybridDPfull
hybrid in VRNA dot-bracket notation for full sequence lengths
Definition OutputHandlerCsv.h:49
@ end1
end index of hybrid in seq1
Definition OutputHandlerCsv.h:44
@ E_hybridNorm
length normalized energy of hybridization only = E_hybrid / ln(length(seq1)*length(seq2))
Definition OutputHandlerCsv.h:66
@ E_init
initiation energy
Definition OutputHandlerCsv.h:58
@ E_loops
sum of loop energies (excluding E_init)
Definition OutputHandlerCsv.h:59
@ seedEnd1
end index of the seed in seq1
Definition OutputHandlerCsv.h:69
@ hybridDBfull
hybrid in dot-bar notation for full sequence lengths
Definition OutputHandlerCsv.h:50
@ seedEnd2
end index of the seed in seq2
Definition OutputHandlerCsv.h:71
@ Eall
ensemble energy of all interactions (outConstraint.needZall)
Definition OutputHandlerCsv.h:79
@ start2
start index of hybrid in seq2
Definition OutputHandlerCsv.h:45
@ Eall2
ensemble energy of all intra-molecular structures of seq2
Definition OutputHandlerCsv.h:81
@ seedE
overall energy of the seed only (including accessibility etc)
Definition OutputHandlerCsv.h:72
@ seedED2
ED value of seq2 of the seed only (excluding rest)
Definition OutputHandlerCsv.h:74
@ w
Boltzmann weight of the interaction energy.
Definition OutputHandlerCsv.h:77
@ seq1
full first sequence
Definition OutputHandlerCsv.h:37
@ ED1
ED value of seq1.
Definition OutputHandlerCsv.h:54
@ hybridDB
hybrid in dot-bar notation
Definition OutputHandlerCsv.h:48
@ seedStart2
start index of the seed in seq2
Definition OutputHandlerCsv.h:70
@ subseq2
interacting subsequence of second sequence
Definition OutputHandlerCsv.h:40
@ hybridDP
hybrid in VRNA dot-bracket notation
Definition OutputHandlerCsv.h:47
@ ColTypeNumber
number of column types
Definition OutputHandlerCsv.h:88
@ E_dangleL
dangling end contribution of base pair (start1,end2)
Definition OutputHandlerCsv.h:60
@ seedStart1
start index of the seed in seq1
Definition OutputHandlerCsv.h:68
@ Pu2
probability to be accessible for seq2
Definition OutputHandlerCsv.h:57
@ bpList
list of hybrid base pairs like (1,3),(4,2),...
Definition OutputHandlerCsv.h:51
@ Zall1
partition function of all intra-molecular structures of seq1
Definition OutputHandlerCsv.h:83
@ seedED1
ED value of seq1 of the seed only (excluding rest)
Definition OutputHandlerCsv.h:73
@ EallTotal
total ensemble energy (Eall+Eall1+Eall2) of all interactions including the intra-molecular ensemble e...
Definition OutputHandlerCsv.h:85
@ id1
id of first sequence
Definition OutputHandlerCsv.h:35
@ Eall1
ensemble energy of all intra-molecular structures of seq1
Definition OutputHandlerCsv.h:80
@ seedPu1
probability of seed region to be accessible for seq1
Definition OutputHandlerCsv.h:75
@ E_hybrid
energy of hybridization only = E - ED1 - ED2
Definition OutputHandlerCsv.h:64
@ seedPu2
probability of seed region to be accessible for seq2
Definition OutputHandlerCsv.h:76
@ E_endR
penalty of closing base pair (end1,start2)
Definition OutputHandlerCsv.h:63
@ Zall
partition function of all interactions (outConstraint.needZall)
Definition OutputHandlerCsv.h:82
@ subseq1
interacting subsequence of first sequence
Definition OutputHandlerCsv.h:39
@ Zall2
partition function of all intra-molecular structures of seq2
Definition OutputHandlerCsv.h:84
@ E_add
user provided energy shift
Definition OutputHandlerCsv.h:67
@ ED2
ED value of seq2.
Definition OutputHandlerCsv.h:55
@ Pu1
probability to be accessible for seq1
Definition OutputHandlerCsv.h:56
@ subseqDP
hybrid subsequences compatible with hybridDP
Definition OutputHandlerCsv.h:41
@ E
overall interaction energy
Definition OutputHandlerCsv.h:52
@ RT
the scaled temperature used for Boltzmann weight computation
Definition OutputHandlerCsv.h:87
@ E_norm
length normalized energy = E/ln(length(seq1)*length(seq2))
Definition OutputHandlerCsv.h:65
@ id2
id of second sequence
Definition OutputHandlerCsv.h:36
@ end2
end index of hybrid in seq2
Definition OutputHandlerCsv.h:46
@ E_dangleR
dangling end contribution of base pair (end1,start2)
Definition OutputHandlerCsv.h:61
@ subseqDB
hybrid subsequences compatible with hybridDB
Definition OutputHandlerCsv.h:42
@ E_endL
penalty of closing base pair (start1,end2)
Definition OutputHandlerCsv.h:62
std::string colSep
the column separator to be used
Definition OutputHandlerCsv.h:289
std::string listSep
the list separator to be used within single columns
Definition OutputHandlerCsv.h:292
static void initColType2string()
Definition OutputHandlerCsv.h:114
static std::map< ColType, std::string > colType2string
mapping of ColTypes to according strings
Definition OutputHandlerCsv.h:107
static const std::map< ColType, std::string > & getColType2string()
Definition OutputHandlerCsv.h:304
static std::string list2string(const ColTypeList &colTypes, const std::string &sep)
Definition OutputHandlerCsv.h:314
OutputHandlerCsv(const OutputConstraint &outConstraint, std::ostream &out, const InteractionEnergy &energy, const ColTypeList columns, const std::string &colSep=";", const bool printHeader=false, const std::string &listSep=":")
const std::list< ColType > columns
the sequence of columns to be reported
Definition OutputHandlerCsv.h:286
static bool needBPs(const ColTypeList &colTypes)
Definition OutputHandlerCsv.h:406
Definition OutputHandler.h:20
const OutputConstraint outConstraint
the output constraints to be applied
Definition OutputHandler.h:103
Z_type Z
overall partition function for the sequences provided in Z_energy
Definition OutputHandler.h:109
#define toString(x)
Definition general.h:60
Definition Accessibility.h:13