Commit 327a5ce4 authored by RomainFeron's avatar RomainFeron
Browse files

Almost working depths after refactoring

parent 3f3a30dc
......@@ -10,31 +10,23 @@ DEPENDPATH += $$PWD/include/bwa
PRE_TARGETDEPS += $$PWD/include/bwa/libbwa.a
HEADERS += \
src/analysis.h \
src/arg_parser.h \
src/depth.h \
src/distrib.h \
src/freq.h \
src/map.h \
src/marker.h \
src/markers_table.h \
src/parameters.h \
src/popmap.h \
src/process.h \
src/signif.h \
src/stats.h \
src/subset.h \
src/table_parser.h \
src/utils.h
SOURCES += \
src/analysis.cpp \
src/depth.cpp \
src/distrib.cpp \
src/freq.cpp \
src/main.cpp \
src/map.cpp \
src/marker.cpp \
src/markers_table.cpp \
src/popmap.cpp \
src/process.cpp \
src/signif.cpp \
src/stats.cpp \
src/subset.cpp \
include/kfun/kfun.cpp \
src/table_parser.cpp
include/kfun/kfun.cpp
......@@ -69,11 +69,13 @@ $(function() {
<table class="directory">
<tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structAlignedMarker.html" target="_self">AlignedMarker</a></td><td class="desc"></td></tr>
<tr id="row_1_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classCustomFormatter.html" target="_self">CustomFormatter</a></td><td class="desc">Custom CLI11 Formatter </td></tr>
<tr id="row_2_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structInputFile.html" target="_self">InputFile</a></td><td class="desc"></td></tr>
<tr id="row_3_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structMarker.html" target="_self">Marker</a></td><td class="desc"></td></tr>
<tr id="row_4_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structMarkersQueue.html" target="_self">MarkersQueue</a></td><td class="desc"></td></tr>
<tr id="row_5_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structParameters.html" target="_self">Parameters</a></td><td class="desc"></td></tr>
<tr id="row_6_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structPopmap.html" target="_self">Popmap</a></td><td class="desc"></td></tr>
<tr id="row_2_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structDepthResults.html" target="_self">DepthResults</a></td><td class="desc">DepthsResults struct </td></tr>
<tr id="row_3_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structDistribResults.html" target="_self">DistribResults</a></td><td class="desc"><a class="el" href="structDistribResults.html" title="DistribResults struct.">DistribResults</a> struct </td></tr>
<tr id="row_4_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structInputFile.html" target="_self">InputFile</a></td><td class="desc"></td></tr>
<tr id="row_5_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structMarker.html" target="_self">Marker</a></td><td class="desc"></td></tr>
<tr id="row_6_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structMarkersQueue.html" target="_self">MarkersQueue</a></td><td class="desc"></td></tr>
<tr id="row_7_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structParameters.html" target="_self">Parameters</a></td><td class="desc"></td></tr>
<tr id="row_8_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structPopmap.html" target="_self">Popmap</a></td><td class="desc"></td></tr>
</table>
</div><!-- directory -->
</div><!-- contents -->
......
......@@ -125,7 +125,7 @@ $(function() {
<div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="classCustomFormatter.html#abbcaea7bc716a16ed5fe23ed8caf5c9b"> 74</a></span>&#160; uint <a class="code" href="classCustomFormatter.html#abbcaea7bc716a16ed5fe23ed8caf5c9b">column_widths</a>[3] {0, 0, 0}; </div>
<div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="classCustomFormatter.html#a8976f459918d11b5696efdb76dc2cff2"> 75</a></span>&#160; uint <a class="code" href="classCustomFormatter.html#a8976f459918d11b5696efdb76dc2cff2">border_width</a> = 4; </div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; </div>
<div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="classCustomFormatter.html#a7c1d208d52c932ca0cb40b35b0b1c673"> 89</a></span>&#160; <span class="keyword">virtual</span> std::string <a class="code" href="classCustomFormatter.html#a7c1d208d52c932ca0cb40b35b0b1c673">make_option</a>(<span class="keyword">const</span> CLI::Option* opt, <span class="keywordtype">bool</span> is_positional)<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="classCustomFormatter.html#a2cd26a35befd81c507255cc61f2ea0c6"> 89</a></span>&#160; <span class="keyword">virtual</span> std::string <a class="code" href="classCustomFormatter.html#a2cd26a35befd81c507255cc61f2ea0c6">make_option</a>(<span class="keyword">const</span> CLI::Option* opt, <span class="keyword">const</span> <span class="keywordtype">bool</span> is_positional)<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; </div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; std::string option = <span class="stringliteral">&quot;&quot;</span>, name = <span class="stringliteral">&quot;&quot;</span>, type = <span class="stringliteral">&quot;&quot;</span>, description = <span class="stringliteral">&quot;&quot;</span>, default_value = <span class="stringliteral">&quot;&quot;</span>, required = <span class="stringliteral">&quot;REQUIRED&quot;</span>, short_name = <span class="stringliteral">&quot;&quot;</span>;</div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; std::vector&lt;std::string&gt; options;</div>
......@@ -166,7 +166,7 @@ $(function() {
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; }</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; </div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; </div>
<div class="line"><a name="l00147"></a><span class="lineno"><a class="line" href="classCustomFormatter.html#a2545ecf41317fd8bc529daae51edad24"> 147</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classCustomFormatter.html#a2545ecf41317fd8bc529daae51edad24">set_column_widths</a>(CLI::App&amp; parser) {</div>
<div class="line"><a name="l00147"></a><span class="lineno"><a class="line" href="classCustomFormatter.html#a2578999ac91d0136d0349ebdeb3c6435"> 147</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classCustomFormatter.html#a2578999ac91d0136d0349ebdeb3c6435">set_column_widths</a>(<span class="keyword">const</span> CLI::App&amp; parser) {</div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; </div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; std::string tmp = <span class="stringliteral">&quot;&quot;</span>;</div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; </div>
......@@ -189,14 +189,14 @@ $(function() {
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;};</div>
</div><!-- fragment --></div><!-- contents -->
<div class="ttc" id="aclassCustomFormatter_html_a8976f459918d11b5696efdb76dc2cff2"><div class="ttname"><a href="classCustomFormatter.html#a8976f459918d11b5696efdb76dc2cff2">CustomFormatter::border_width</a></div><div class="ttdeci">uint border_width</div><div class="ttdoc">Define number of spaces between two columns.</div><div class="ttdef"><b>Definition:</b> arg_parser.h:75</div></div>
<div class="ttc" id="aclassCustomFormatter_html_a2545ecf41317fd8bc529daae51edad24"><div class="ttname"><a href="classCustomFormatter.html#a2545ecf41317fd8bc529daae51edad24">CustomFormatter::set_column_widths</a></div><div class="ttdeci">void set_column_widths(CLI::App &amp;parser)</div><div class="ttdoc">Set column widths in help message for a CLI::App.</div><div class="ttdef"><b>Definition:</b> arg_parser.h:147</div></div>
<div class="ttc" id="aclassCustomFormatter_html"><div class="ttname"><a href="classCustomFormatter.html">CustomFormatter</a></div><div class="ttdoc">Custom CLI11 Formatter.</div><div class="ttdef"><b>Definition:</b> arg_parser.h:70</div></div>
<div class="ttc" id="aclassCustomFormatter_html_a2de4066531a3f7cbdaeb6b1eab3b4bd5"><div class="ttname"><a href="classCustomFormatter.html#a2de4066531a3f7cbdaeb6b1eab3b4bd5">CustomFormatter::make_description</a></div><div class="ttdeci">virtual std::string make_description(const CLI::App *app) const</div><div class="ttdoc">Format command description.</div><div class="ttdef"><b>Definition:</b> arg_parser.h:133</div></div>
<div class="ttc" id="aclassCustomFormatter_html_a7c1d208d52c932ca0cb40b35b0b1c673"><div class="ttname"><a href="classCustomFormatter.html#a7c1d208d52c932ca0cb40b35b0b1c673">CustomFormatter::make_option</a></div><div class="ttdeci">virtual std::string make_option(const CLI::Option *opt, bool is_positional) const</div><div class="ttdoc">Format help message for an option.</div><div class="ttdef"><b>Definition:</b> arg_parser.h:89</div></div>
<div class="ttc" id="autils_8h_html"><div class="ttname"><a href="utils_8h.html">utils.h</a></div></div>
<div class="ttc" id="aarg__parser_8h_html_ada75fff12f517de0fbfeb1324100e16b"><div class="ttname"><a href="arg__parser_8h.html#ada75fff12f517de0fbfeb1324100e16b">failure_message</a></div><div class="ttdeci">std::string failure_message(const CLI::App *parser, const CLI::Error &amp;error)</div><div class="ttdoc">Print CLI parsing failure message.</div><div class="ttdef"><b>Definition:</b> arg_parser.h:40</div></div>
<div class="ttc" id="aparameters_8h_html"><div class="ttname"><a href="parameters_8h.html">parameters.h</a></div></div>
<div class="ttc" id="aclassCustomFormatter_html_a2578999ac91d0136d0349ebdeb3c6435"><div class="ttname"><a href="classCustomFormatter.html#a2578999ac91d0136d0349ebdeb3c6435">CustomFormatter::set_column_widths</a></div><div class="ttdeci">void set_column_widths(const CLI::App &amp;parser)</div><div class="ttdoc">Set column widths in help message for a CLI::App.</div><div class="ttdef"><b>Definition:</b> arg_parser.h:147</div></div>
<div class="ttc" id="aclassCustomFormatter_html_abbcaea7bc716a16ed5fe23ed8caf5c9b"><div class="ttname"><a href="classCustomFormatter.html#abbcaea7bc716a16ed5fe23ed8caf5c9b">CustomFormatter::column_widths</a></div><div class="ttdeci">uint column_widths[3]</div><div class="ttdoc">Maximum width of each column, in order: flags, type, description.</div><div class="ttdef"><b>Definition:</b> arg_parser.h:74</div></div>
<div class="ttc" id="aclassCustomFormatter_html_a2cd26a35befd81c507255cc61f2ea0c6"><div class="ttname"><a href="classCustomFormatter.html#a2cd26a35befd81c507255cc61f2ea0c6">CustomFormatter::make_option</a></div><div class="ttdeci">virtual std::string make_option(const CLI::Option *opt, const bool is_positional) const</div><div class="ttdoc">Format help message for an option.</div><div class="ttdef"><b>Definition:</b> arg_parser.h:89</div></div>
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
......
......@@ -71,8 +71,8 @@ $(function() {
<tr class="even"><td class="entry"><a class="el" href="classCustomFormatter.html#a8976f459918d11b5696efdb76dc2cff2">border_width</a></td><td class="entry"><a class="el" href="classCustomFormatter.html">CustomFormatter</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classCustomFormatter.html#abbcaea7bc716a16ed5fe23ed8caf5c9b">column_widths</a></td><td class="entry"><a class="el" href="classCustomFormatter.html">CustomFormatter</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classCustomFormatter.html#a2de4066531a3f7cbdaeb6b1eab3b4bd5">make_description</a>(const CLI::App *app) const</td><td class="entry"><a class="el" href="classCustomFormatter.html">CustomFormatter</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
<tr><td class="entry"><a class="el" href="classCustomFormatter.html#a7c1d208d52c932ca0cb40b35b0b1c673">make_option</a>(const CLI::Option *opt, bool is_positional) const</td><td class="entry"><a class="el" href="classCustomFormatter.html">CustomFormatter</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classCustomFormatter.html#a2545ecf41317fd8bc529daae51edad24">set_column_widths</a>(CLI::App &amp;parser)</td><td class="entry"><a class="el" href="classCustomFormatter.html">CustomFormatter</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classCustomFormatter.html#a2cd26a35befd81c507255cc61f2ea0c6">make_option</a>(const CLI::Option *opt, const bool is_positional) const</td><td class="entry"><a class="el" href="classCustomFormatter.html">CustomFormatter</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classCustomFormatter.html#a2578999ac91d0136d0349ebdeb3c6435">set_column_widths</a>(const CLI::App &amp;parser)</td><td class="entry"><a class="el" href="classCustomFormatter.html">CustomFormatter</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
......
......@@ -83,15 +83,15 @@ Inheritance diagram for CustomFormatter:</div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a7c1d208d52c932ca0cb40b35b0b1c673"><td class="memItemLeft" align="right" valign="top">virtual std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCustomFormatter.html#a7c1d208d52c932ca0cb40b35b0b1c673">make_option</a> (const CLI::Option *opt, bool is_positional) const</td></tr>
<tr class="memdesc:a7c1d208d52c932ca0cb40b35b0b1c673"><td class="mdescLeft">&#160;</td><td class="mdescRight">Format help message for an option. <a href="classCustomFormatter.html#a7c1d208d52c932ca0cb40b35b0b1c673">More...</a><br /></td></tr>
<tr class="separator:a7c1d208d52c932ca0cb40b35b0b1c673"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2cd26a35befd81c507255cc61f2ea0c6"><td class="memItemLeft" align="right" valign="top">virtual std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCustomFormatter.html#a2cd26a35befd81c507255cc61f2ea0c6">make_option</a> (const CLI::Option *opt, const bool is_positional) const</td></tr>
<tr class="memdesc:a2cd26a35befd81c507255cc61f2ea0c6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Format help message for an option. <a href="classCustomFormatter.html#a2cd26a35befd81c507255cc61f2ea0c6">More...</a><br /></td></tr>
<tr class="separator:a2cd26a35befd81c507255cc61f2ea0c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2de4066531a3f7cbdaeb6b1eab3b4bd5"><td class="memItemLeft" align="right" valign="top">virtual std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCustomFormatter.html#a2de4066531a3f7cbdaeb6b1eab3b4bd5">make_description</a> (const CLI::App *app) const</td></tr>
<tr class="memdesc:a2de4066531a3f7cbdaeb6b1eab3b4bd5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Format command description. <a href="classCustomFormatter.html#a2de4066531a3f7cbdaeb6b1eab3b4bd5">More...</a><br /></td></tr>
<tr class="separator:a2de4066531a3f7cbdaeb6b1eab3b4bd5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2545ecf41317fd8bc529daae51edad24"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCustomFormatter.html#a2545ecf41317fd8bc529daae51edad24">set_column_widths</a> (CLI::App &amp;parser)</td></tr>
<tr class="memdesc:a2545ecf41317fd8bc529daae51edad24"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set column widths in help message for a CLI::App. <a href="classCustomFormatter.html#a2545ecf41317fd8bc529daae51edad24">More...</a><br /></td></tr>
<tr class="separator:a2545ecf41317fd8bc529daae51edad24"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2578999ac91d0136d0349ebdeb3c6435"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCustomFormatter.html#a2578999ac91d0136d0349ebdeb3c6435">set_column_widths</a> (const CLI::App &amp;parser)</td></tr>
<tr class="memdesc:a2578999ac91d0136d0349ebdeb3c6435"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set column widths in help message for a CLI::App. <a href="classCustomFormatter.html#a2578999ac91d0136d0349ebdeb3c6435">More...</a><br /></td></tr>
<tr class="separator:a2578999ac91d0136d0349ebdeb3c6435"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
Public Attributes</h2></td></tr>
......@@ -144,8 +144,8 @@ uint&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
</div>
</div>
<a id="a7c1d208d52c932ca0cb40b35b0b1c673"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7c1d208d52c932ca0cb40b35b0b1c673">&#9670;&nbsp;</a></span>make_option()</h2>
<a id="a2cd26a35befd81c507255cc61f2ea0c6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2cd26a35befd81c507255cc61f2ea0c6">&#9670;&nbsp;</a></span>make_option()</h2>
<div class="memitem">
<div class="memproto">
......@@ -162,7 +162,7 @@ uint&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramtype">const bool&#160;</td>
<td class="paramname"><em>is_positional</em>&#160;</td>
</tr>
<tr>
......@@ -179,7 +179,7 @@ uint&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
</div><div class="memdoc">
<p>Format help message for an option. </p>
<p>Generate a nicely formatted help message for an option. Use column widths to align columns for all options properly.</p>
<p>Generate a nicely formatted help message for an option, using column widths to align columns for all options properly.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">opt</td><td>Pointer to an CLI::Option instance </td></tr>
......@@ -191,8 +191,8 @@ uint&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
</div>
</div>
<a id="a2545ecf41317fd8bc529daae51edad24"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2545ecf41317fd8bc529daae51edad24">&#9670;&nbsp;</a></span>set_column_widths()</h2>
<a id="a2578999ac91d0136d0349ebdeb3c6435"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2578999ac91d0136d0349ebdeb3c6435">&#9670;&nbsp;</a></span>set_column_widths()</h2>
<div class="memitem">
<div class="memproto">
......@@ -203,7 +203,7 @@ uint&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
<tr>
<td class="memname">void CustomFormatter::set_column_widths </td>
<td>(</td>
<td class="paramtype">CLI::App &amp;&#160;</td>
<td class="paramtype">const CLI::App &amp;&#160;</td>
<td class="paramname"><em>parser</em></td><td>)</td>
<td></td>
</tr>
......
......@@ -65,34 +65,39 @@ $(function() {
<div class="title">Class Index</div> </div>
</div><!--header-->
<div class="contents">
<div class="qindex"><a class="qindex" href="#letter_a">a</a>&#160;|&#160;<a class="qindex" href="#letter_c">c</a>&#160;|&#160;<a class="qindex" href="#letter_i">i</a>&#160;|&#160;<a class="qindex" href="#letter_m">m</a>&#160;|&#160;<a class="qindex" href="#letter_p">p</a></div>
<div class="qindex"><a class="qindex" href="#letter_a">a</a>&#160;|&#160;<a class="qindex" href="#letter_c">c</a>&#160;|&#160;<a class="qindex" href="#letter_d">d</a>&#160;|&#160;<a class="qindex" href="#letter_i">i</a>&#160;|&#160;<a class="qindex" href="#letter_m">m</a>&#160;|&#160;<a class="qindex" href="#letter_p">p</a></div>
<table class="classindex">
<tr><td rowspan="2" valign="bottom"><a name="letter_a"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;a&#160;&#160;</div></td></tr></table>
</td>
<td rowspan="2" valign="bottom"><a name="letter_i"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;i&#160;&#160;</div></td></tr></table>
<td rowspan="2" valign="bottom"><a name="letter_d"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;d&#160;&#160;</div></td></tr></table>
</td>
<td rowspan="2" valign="bottom"><a name="letter_m"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;m&#160;&#160;</div></td></tr></table>
</td>
<td valign="top"><a class="el" href="structMarkersQueue.html">MarkersQueue</a>&#160;&#160;&#160;</td>
<td valign="top"><a class="el" href="structPopmap.html">Popmap</a>&#160;&#160;&#160;</td>
</tr>
<tr><td rowspan="2" valign="bottom"><a name="letter_p"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;p&#160;&#160;</div></td></tr></table>
</td>
<td></td></tr>
<tr><td></td></tr>
<tr><td valign="top"><a class="el" href="structAlignedMarker.html">AlignedMarker</a>&#160;&#160;&#160;</td>
<td valign="top"><a class="el" href="structInputFile.html">InputFile</a>&#160;&#160;&#160;</td>
<td valign="top"><a class="el" href="structDepthResults.html">DepthResults</a>&#160;&#160;&#160;</td>
<td valign="top"><a class="el" href="structMarker.html">Marker</a>&#160;&#160;&#160;</td>
<td></td></tr>
<tr><td rowspan="2" valign="bottom"><a name="letter_c"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;c&#160;&#160;</div></td></tr></table>
</td>
<td rowspan="2" valign="bottom"><a name="letter_m"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;m&#160;&#160;</div></td></tr></table>
<td valign="top"><a class="el" href="structDistribResults.html">DistribResults</a>&#160;&#160;&#160;</td>
<td valign="top"><a class="el" href="structMarkersQueue.html">MarkersQueue</a>&#160;&#160;&#160;</td>
<td></td></tr>
<tr><td rowspan="2" valign="bottom"><a name="letter_i"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;i&#160;&#160;</div></td></tr></table>
</td>
<td rowspan="2" valign="bottom"><a name="letter_p"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;p&#160;&#160;</div></td></tr></table>
</td>
<td valign="top"><a class="el" href="structParameters.html">Parameters</a>&#160;&#160;&#160;</td>
<td></td></tr>
<tr><td></td><td></td></tr>
<tr><td valign="top"><a class="el" href="classCustomFormatter.html">CustomFormatter</a>&#160;&#160;&#160;</td>
<td valign="top"><a class="el" href="structMarker.html">Marker</a>&#160;&#160;&#160;</td>
<td></td><td></td></tr>
<td></td></tr>
<tr><td></td><td valign="top"><a class="el" href="structInputFile.html">InputFile</a>&#160;&#160;&#160;</td>
<td valign="top"><a class="el" href="structParameters.html">Parameters</a>&#160;&#160;&#160;</td>
<td></td></tr>
<tr><td></td><td></td><td></td><td></td></tr>
</table>
<div class="qindex"><a class="qindex" href="#letter_a">a</a>&#160;|&#160;<a class="qindex" href="#letter_c">c</a>&#160;|&#160;<a class="qindex" href="#letter_i">i</a>&#160;|&#160;<a class="qindex" href="#letter_m">m</a>&#160;|&#160;<a class="qindex" href="#letter_p">p</a></div>
<div class="qindex"><a class="qindex" href="#letter_a">a</a>&#160;|&#160;<a class="qindex" href="#letter_c">c</a>&#160;|&#160;<a class="qindex" href="#letter_d">d</a>&#160;|&#160;<a class="qindex" href="#letter_i">i</a>&#160;|&#160;<a class="qindex" href="#letter_m">m</a>&#160;|&#160;<a class="qindex" href="#letter_p">p</a></div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
......
......@@ -66,7 +66,7 @@ $(function() {
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#nested-classes">Classes</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">depth.h File Reference</div> </div>
......@@ -78,28 +78,105 @@ $(function() {
<code>#include &lt;string&gt;</code><br />
<code>#include &lt;unordered_map&gt;</code><br />
<code>#include &lt;vector&gt;</code><br />
<code>#include &quot;<a class="el" href="table__parser_8h_source.html">table_parser.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="parameters_8h_source.html">parameters.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="popmap_8h_source.html">popmap.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="stats_8h_source.html">stats.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="table__parser_8h_source.html">table_parser.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="utils_8h_source.html">utils.h</a>&quot;</code><br />
</div>
<p><a href="depth_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:a3d790b8555c01e48d110b318583efaf3"><td class="memItemLeft" align="right" valign="top"><a id="a3d790b8555c01e48d110b318583efaf3"></a>
typedef std::vector&lt; std::vector&lt; uint16_t &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>Depths</b></td></tr>
<tr class="separator:a3d790b8555c01e48d110b318583efaf3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structDepthResults.html">DepthResults</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">DepthsResults struct. <a href="structDepthResults.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a0afd690eb883d820eabed0ba0987c6eb"><td class="memItemLeft" align="right" valign="top"><a id="a0afd690eb883d820eabed0ba0987c6eb"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>depth</b> (<a class="el" href="structParameters.html">Parameters</a> &amp;parameters)</td></tr>
<tr class="separator:a0afd690eb883d820eabed0ba0987c6eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a53fe14bec2454937ecf9478c49f9daac"><td class="memItemLeft" align="right" valign="top"><a id="a53fe14bec2454937ecf9478c49f9daac"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>processor</b> (<a class="el" href="structMarkersQueue.html">MarkersQueue</a> &amp;markers_queue, <a class="el" href="structParameters.html">Parameters</a> &amp;parameters, std::mutex &amp;queue_mutex, Depths &amp;results, std::vector&lt; uint32_t &gt; &amp;n_markers, bool &amp;parsing_ended, ulong batch_size, uint n_individuals)</td></tr>
<tr class="separator:a53fe14bec2454937ecf9478c49f9daac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab2291110e5c4c1c90506c1cd6902e00e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="depth_8h.html#ab2291110e5c4c1c90506c1cd6902e00e">depth</a> (const <a class="el" href="structParameters.html">Parameters</a> &amp;parameters)</td></tr>
<tr class="memdesc:ab2291110e5c4c1c90506c1cd6902e00e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Main function called by the depth command. <a href="depth_8h.html#ab2291110e5c4c1c90506c1cd6902e00e">More...</a><br /></td></tr>
<tr class="separator:ab2291110e5c4c1c90506c1cd6902e00e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a050775c9b8c0513cf3ced6ac4350cdb4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="depth_8h.html#a050775c9b8c0513cf3ced6ac4350cdb4">processor</a> (<a class="el" href="structMarkersQueue.html">MarkersQueue</a> &amp;markers_queue, <a class="el" href="structDepthResults.html">DepthResults</a> &amp;results, bool &amp;parsing_ended)</td></tr>
<tr class="memdesc:a050775c9b8c0513cf3ced6ac4350cdb4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Process markers from a <a class="el" href="structMarkersQueue.html">MarkersQueue</a>. <a href="depth_8h.html#a050775c9b8c0513cf3ced6ac4350cdb4">More...</a><br /></td></tr>
<tr class="separator:a050775c9b8c0513cf3ced6ac4350cdb4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Function Documentation</h2>
<a id="ab2291110e5c4c1c90506c1cd6902e00e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab2291110e5c4c1c90506c1cd6902e00e">&#9670;&nbsp;</a></span>depth()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void depth </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structParameters.html">Parameters</a> &amp;&#160;</td>
<td class="paramname"><em>parameters</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Main function called by the depth command. </p>
<p>Compute the minimum, maximum, median, and average marker depth for each individual. <br />
This function creates a parsing thread which reads a markers table file and stores markers into a queue, and a processing thread which reads batches of markers from the queue and compute metrics. <br />
After all markers are processed, the function generates an tabulated output file with columns: <br />
Individual | Group | Markers | Retained | Min_depth | Max_depth | Median_depth | Average_depth</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">parameters</td><td><a class="el" href="structParameters.html">Parameters</a> object storing the value of all RADSex parameters </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a050775c9b8c0513cf3ced6ac4350cdb4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a050775c9b8c0513cf3ced6ac4350cdb4">&#9670;&nbsp;</a></span>processor()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void processor </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structMarkersQueue.html">MarkersQueue</a> &amp;&#160;</td>
<td class="paramname"><em>markers_queue</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structDepthResults.html">DepthResults</a> &amp;&#160;</td>
<td class="paramname"><em>results</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool &amp;&#160;</td>
<td class="paramname"><em>parsing_ended</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Process markers from a <a class="el" href="structMarkersQueue.html">MarkersQueue</a>. </p>
<p>Read batches of markers from a markers queue, store individual marker depths and update individual marker counts in results. Only retain markers present in &gt;75% of individuals to compute depth metrics.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">markers_queue</td><td><a class="el" href="structMarkersQueue.html">MarkersQueue</a> instance </td></tr>
<tr><td class="paramname">results</td><td><a class="el" href="structDepthResults.html" title="DepthsResults struct.">DepthResults</a> instance storing individual marker depths and individual marker counts </td></tr>
<tr><td class="paramname">parsing_ended</td><td>A flag indicating that the parsing ended, updated by the <a class="el" href="table__parser_8h.html#acae38db5e782a3fd35d349c195888fda" title="Read markers from a markers depth table and store them in a queue.">table_parser()</a> function </td></tr>
</table>
</dd>
</dl>
</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
......
......@@ -94,24 +94,47 @@ $(function() {
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#include &lt;string&gt;</span></div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor">#include &lt;unordered_map&gt;</span></div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="table__parser_8h.html">table_parser.h</a>&quot;</span></div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="parameters_8h.html">parameters.h</a>&quot;</span></div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="popmap_8h.html">popmap.h</a>&quot;</span></div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="utils_8h.html">utils.h</a>&quot;</span></div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; </div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="keyword">typedef</span> std::vector&lt;std::vector&lt;uint16_t&gt;&gt; Depths;</div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="parameters_8h.html">parameters.h</a>&quot;</span></div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="popmap_8h.html">popmap.h</a>&quot;</span></div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="stats_8h.html">stats.h</a>&quot;</span></div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="table__parser_8h.html">table_parser.h</a>&quot;</span></div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="utils_8h.html">utils.h</a>&quot;</span></div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; </div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; </div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="comment">// Calculate the number of reads retained in each individual</span></div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keywordtype">void</span> depth(<a class="code" href="structParameters.html">Parameters</a>&amp; parameters);</div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; </div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keywordtype">void</span> processor(<a class="code" href="structMarkersQueue.html">MarkersQueue</a>&amp; markers_queue, <a class="code" href="structParameters.html">Parameters</a>&amp; parameters, std::mutex&amp; queue_mutex, Depths&amp; results, std::vector&lt;uint32_t&gt;&amp; n_markers, <span class="keywordtype">bool</span>&amp; parsing_ended, ulong batch_size, uint n_individuals);</div>
<div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="structDepthResults.html"> 41</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structDepthResults.html">DepthResults</a> {</div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; </div>
<div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="structDepthResults.html#a5cc6408a27ba2fcd31ce3961a15b60a0"> 43</a></span>&#160; std::vector&lt;std::vector&lt;uint16_t&gt;&gt; <a class="code" href="structDepthResults.html#a5cc6408a27ba2fcd31ce3961a15b60a0">depths</a>; </div>
<div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="structDepthResults.html#a371ba5f5c8b3673f0574441163178461"> 44</a></span>&#160; std::vector&lt;uint32_t&gt; <a class="code" href="structDepthResults.html#a371ba5f5c8b3673f0574441163178461">individual_markers_count</a>; </div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; </div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; </div>
<div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="structDepthResults.html#aaf18af3541497ff8ab4fb95cfc924ba4"> 55</a></span>&#160; <a class="code" href="structDepthResults.html#aaf18af3541497ff8ab4fb95cfc924ba4">DepthResults</a>(<span class="keyword">const</span> uint16_t&amp; n_individuals) {</div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; </div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; this-&gt;depths = std::vector&lt;std::vector&lt;uint16_t&gt;&gt;(n_individuals);</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; this-&gt;individual_markers_count = std::vector&lt;uint32_t&gt;(n_individuals);</div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; </div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; };</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; </div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;};</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; </div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; </div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="keywordtype">void</span> <a class="code" href="depth_8h.html#ab2291110e5c4c1c90506c1cd6902e00e">depth</a>(<span class="keyword">const</span> <a class="code" href="structParameters.html">Parameters</a>&amp; parameters);</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; </div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; </div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<span class="keywordtype">void</span> <a class="code" href="depth_8h.html#a050775c9b8c0513cf3ced6ac4350cdb4">processor</a>(<a class="code" href="structMarkersQueue.html">MarkersQueue</a>&amp; markers_queue, <a class="code" href="structDepthResults.html">DepthResults</a>&amp; results, <span class="keywordtype">bool</span>&amp; parsing_ended);</div>
</div><!-- fragment --></div><!-- contents -->
<div class="ttc" id="astructDepthResults_html_aaf18af3541497ff8ab4fb95cfc924ba4"><div class="ttname"><a href="structDepthResults.html#aaf18af3541497ff8ab4fb95cfc924ba4">DepthResults::DepthResults</a></div><div class="ttdeci">DepthResults(const uint16_t &amp;n_individuals)</div><div class="ttdoc">DepthsResults constructor.</div><div class="ttdef"><b>Definition:</b> depth.h:55</div></div>
<div class="ttc" id="adepth_8h_html_a050775c9b8c0513cf3ced6ac4350cdb4"><div class="ttname"><a href="depth_8h.html#a050775c9b8c0513cf3ced6ac4350cdb4">processor</a></div><div class="ttdeci">void processor(MarkersQueue &amp;markers_queue, DepthResults &amp;results, bool &amp;parsing_ended)</div><div class="ttdoc">Process markers from a MarkersQueue.</div><div class="ttdef"><b>Definition:</b> depth.cpp:77</div></div>
<div class="ttc" id="atable__parser_8h_html"><div class="ttname"><a href="table__parser_8h.html">table_parser.h</a></div></div>
<div class="ttc" id="astructMarkersQueue_html"><div class="ttname"><a href="structMarkersQueue.html">MarkersQueue</a></div><div class="ttdef"><b>Definition:</b> table_parser.h:63</div></div>
<div class="ttc" id="astructMarkersQueue_html"><div class="ttname"><a href="structMarkersQueue.html">MarkersQueue</a></div><div class="ttdef"><b>Definition:</b> table_parser.h:67</div></div>
<div class="ttc" id="astructDepthResults_html"><div class="ttname"><a href="structDepthResults.html">DepthResults</a></div><div class="ttdoc">DepthsResults struct.</div><div class="ttdef"><b>Definition:</b> depth.h:41</div></div>
<div class="ttc" id="astats_8h_html"><div class="ttname"><a href="stats_8h.html">stats.h</a></div></div>
<div class="ttc" id="autils_8h_html"><div class="ttname"><a href="utils_8h.html">utils.h</a></div></div>
<div class="ttc" id="astructDepthResults_html_a371ba5f5c8b3673f0574441163178461"><div class="ttname"><a href="structDepthResults.html#a371ba5f5c8b3673f0574441163178461">DepthResults::individual_markers_count</a></div><div class="ttdeci">std::vector&lt; uint32_t &gt; individual_markers_count</div><div class="ttdoc">Vector of size individuals storing the number of markers retained in each individual.</div><div class="ttdef"><b>Definition:</b> depth.h:44</div></div>
<div class="ttc" id="aparameters_8h_html"><div class="ttname"><a href="parameters_8h.html">parameters.h</a></div></div>
<div class="ttc" id="astructParameters_html"><div class="ttname"><a href="structParameters.html">Parameters</a></div><div class="ttdef"><b>Definition:</b> parameters.h:24</div></div>
<div class="ttc" id="astructDepthResults_html_a5cc6408a27ba2fcd31ce3961a15b60a0"><div class="ttname"><a href="structDepthResults.html#a5cc6408a27ba2fcd31ce3961a15b60a0">DepthResults::depths</a></div><div class="ttdeci">std::vector&lt; std::vector&lt; uint16_t &gt; &gt; depths</div><div class="ttdoc">Vector of size n_individuals storing the depth of each marker in each individual.</div><div class="ttdef"><b>Definition:</b> depth.h:43</div></div>
<div class="ttc" id="apopmap_8h_html"><div class="ttname"><a href="popmap_8h.html">popmap.h</a></div></div>
<div class="ttc" id="adepth_8h_html_ab2291110e5c4c1c90506c1cd6902e00e"><div class="ttname"><a href="depth_8h.html#ab2291110e5c4c1c90506c1cd6902e00e">depth</a></div><div class="ttdeci">void depth(const Parameters &amp;parameters)</div><div class="ttdoc">Main function called by the depth command.</div></div>
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
......
......@@ -66,6 +66,7 @@ $(function() {
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">distrib.h File Reference</div> </div>
......@@ -83,15 +84,104 @@ $(function() {
</div>
<p><a href="distrib_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structDistribResults.html">DistribResults</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="structDistribResults.html" title="DistribResults struct.">DistribResults</a> struct. <a href="structDistribResults.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a531e432e384f0579eb6eaa9f12bbf08f"><td class="memItemLeft" align="right" valign="top"><a id="a531e432e384f0579eb6eaa9f12bbf08f"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>distrib</b> (<a class="el" href="structParameters.html">Parameters</a> &amp;parameters)</td></tr>
<tr class="memitem:a531e432e384f0579eb6eaa9f12bbf08f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="distrib_8h.html#a531e432e384f0579eb6eaa9f12bbf08f">distrib</a> (<a class="el" href="structParameters.html">Parameters</a> &amp;parameters)</td></tr>
<tr class="memdesc:a531e432e384f0579eb6eaa9f12bbf08f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Main function called by the distrib command. <a href="distrib_8h.html#a531e432e384f0579eb6eaa9f12bbf08f">More...</a><br /></td></tr>
<tr class="separator:a531e432e384f0579eb6eaa9f12bbf08f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af96b54cf2b3edf56c251c7b109989d13"><td class="memItemLeft" align="right" valign="top"><a id="af96b54cf2b3edf56c251c7b109989d13"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>processor</b> (<a class="el" href="structMarkersQueue.html">MarkersQueue</a> &amp;markers_queue, <a class="el" href="structParameters.html">Parameters</a> &amp;parameters, std::mutex &amp;queue_mutex, sd_table &amp;results, uint64_t &amp;n_markers, bool &amp;parsing_ended, ulong batch_size)</td></tr>
<tr class="separator:af96b54cf2b3edf56c251c7b109989d13"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a79b07da8680d163c920bc13827c8a836"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="distrib_8h.html#a79b07da8680d163c920bc13827c8a836">processor</a> (<a class="el" href="structMarkersQueue.html">MarkersQueue</a> &amp;markers_queue, <a class="el" href="structParameters.html">Parameters</a> &amp;parameters, <a class="el" href="structDistribResults.html">DistribResults</a> &amp;results, bool &amp;parsing_ended)</td></tr>
<tr class="memdesc:a79b07da8680d163c920bc13827c8a836"><td class="mdescLeft">&#160;</td><td class="mdescRight">Process markers from a <a class="el" href="structMarkersQueue.html">MarkersQueue</a>. <a href="distrib_8h.html#a79b07da8680d163c920bc13827c8a836">More...</a><br /></td></tr>
<tr class="separator:a79b07da8680d163c920bc13827c8a836"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Function Documentation</h2>
<a id="a531e432e384f0579eb6eaa9f12bbf08f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a531e432e384f0579eb6eaa9f12bbf08f">&#9670;&nbsp;</a></span>distrib()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void distrib </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structParameters.html">Parameters</a> &amp;&#160;</td>
<td class="paramname"><em>parameters</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Main function called by the distrib command. </p>
<p>Compute the distribution of markers between two groups. <br />
This function creates a parsing thread which reads a markers table file and stores markers into a queue, and a processing thread which reads batches of markers from the queue and compute metrics. <br />
After all markers are processed, the function generates an tabulated output file with columns: <br />
Group1 | Group2 | Markers | P | Signif Bias</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">parameters</td><td><a class="el" href="structParameters.html">Parameters</a> object storing the value of all RADSex parameters </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a79b07da8680d163c920bc13827c8a836"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a79b07da8680d163c920bc13827c8a836">&#9670;&nbsp;</a></span>processor()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void processor </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structMarkersQueue.html">MarkersQueue</a> &amp;&#160;</td>
<td class="paramname"><em>markers_queue</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structParameters.html">Parameters</a> &amp;&#160;</td>
<td class="paramname"><em>parameters</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structDistribResults.html">DistribResults</a> &amp;&#160;</td>
<td class="paramname"><em>results</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool &amp;&#160;</td>
<td class="paramname"><em>parsing_ended</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>