Skip to content

Commit

Permalink
[skip ci] Updates
Browse files Browse the repository at this point in the history
  • Loading branch information
miquelduranfrigola committed Jun 20, 2024
1 parent 65f3538 commit c6dc2e1
Show file tree
Hide file tree
Showing 6 changed files with 36 additions and 52 deletions.
68 changes: 35 additions & 33 deletions _modules/ersilia/core/tracking.html
Original file line number Diff line number Diff line change
Expand Up @@ -425,45 +425,49 @@ <h1>Source code for ersilia.core.tracking</h1><div class="highlight"><pre>
<span class="n">tracemalloc</span><span class="o">.</span><span class="n">start</span><span class="p">()</span>
<span class="bp">self</span><span class="o">.</span><span class="n">memory_usage_start</span> <span class="o">=</span> <span class="n">tracemalloc</span><span class="o">.</span><span class="n">get_traced_memory</span><span class="p">()[</span><span class="mi">0</span><span class="p">]</span></div>


<div class="viewcode-block" id="RunTracker.stats"><a class="viewcode-back" href="../../../source/autodoc/ersilia.core.html#ersilia.core.tracking.RunTracker.stats">[docs]</a> <span class="k">def</span> <span class="nf">stats</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">result</span><span class="p">):</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Stats function: calculates the basic statistics of the output file from a model. This includes the</span>
<span class="sd"> mode (if applicable), minimum, maximum, and standard deviation.</span>


<span class="c1"># TODO: see the following link for more details</span>
<span class="c1"># https://github.com/ersilia-os/ersilia/issues/1165?notification_referrer_id=NT_kwDOAsB0trQxMTEyNTc5MDIxNzo0NjE2NzIyMg#issuecomment-2178596998</span>

<span class="c1"># def stats(self, result):</span>
<span class="c1"># &quot;&quot;&quot;</span>
<span class="c1"># Stats function: calculates the basic statistics of the output file from a model. This includes the</span>
<span class="c1"># mode (if applicable), minimum, maximum, and standard deviation.</span>

<span class="sd"> :param result: The path to the model&#39;s output file.</span>
<span class="sd"> :return: A dictionary containing the stats for each column of the result.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="c1"># :param result: The path to the model&#39;s output file.</span>
<span class="c1"># :return: A dictionary containing the stats for each column of the result.</span>
<span class="c1"># &quot;&quot;&quot;</span>

<span class="n">data</span> <span class="o">=</span> <span class="n">read_csv</span><span class="p">(</span><span class="n">result</span><span class="p">)</span>
<span class="c1"># data = read_csv(result)</span>

<span class="c1"># drop first two columns (key, input)</span>
<span class="k">for</span> <span class="n">row</span> <span class="ow">in</span> <span class="n">data</span><span class="p">:</span>
<span class="n">row</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="s1">&#39;key&#39;</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span>
<span class="n">row</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="s1">&#39;input&#39;</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span>
<span class="c1"># for row in data:</span>
<span class="c1"># row.pop(&#39;key&#39;, None)</span>
<span class="c1"># row.pop(&#39;input&#39;, None)</span>

<span class="c1"># Convert data to a column-oriented format</span>
<span class="n">columns</span> <span class="o">=</span> <span class="n">defaultdict</span><span class="p">(</span><span class="nb">list</span><span class="p">)</span>
<span class="k">for</span> <span class="n">row</span> <span class="ow">in</span> <span class="n">data</span><span class="p">:</span>
<span class="k">for</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span> <span class="ow">in</span> <span class="n">row</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
<span class="n">columns</span><span class="p">[</span><span class="n">key</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="nb">float</span><span class="p">(</span><span class="n">value</span><span class="p">))</span>
<span class="c1"># columns = defaultdict(list)</span>
<span class="c1"># for row in data:</span>
<span class="c1"># for key, value in row.items():</span>
<span class="c1"># columns[key].append(float(value))</span>

<span class="c1"># Calculate statistics</span>
<span class="n">stats</span> <span class="o">=</span> <span class="p">{}</span>
<span class="k">for</span> <span class="n">column</span><span class="p">,</span> <span class="n">values</span> <span class="ow">in</span> <span class="n">columns</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
<span class="n">column_stats</span> <span class="o">=</span> <span class="p">{}</span>
<span class="n">column_stats</span><span class="p">[</span><span class="s2">&quot;mean&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">statistics</span><span class="o">.</span><span class="n">mean</span><span class="p">(</span><span class="n">values</span><span class="p">)</span>
<span class="k">try</span><span class="p">:</span>
<span class="n">column_stats</span><span class="p">[</span><span class="s2">&quot;mode&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">statistics</span><span class="o">.</span><span class="n">mode</span><span class="p">(</span><span class="n">values</span><span class="p">)</span>
<span class="k">except</span> <span class="n">statistics</span><span class="o">.</span><span class="n">StatisticsError</span><span class="p">:</span>
<span class="n">column_stats</span><span class="p">[</span><span class="s2">&quot;mode&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>
<span class="n">column_stats</span><span class="p">[</span><span class="s2">&quot;min&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="nb">min</span><span class="p">(</span><span class="n">values</span><span class="p">)</span>
<span class="n">column_stats</span><span class="p">[</span><span class="s2">&quot;max&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="nb">max</span><span class="p">(</span><span class="n">values</span><span class="p">)</span>
<span class="n">column_stats</span><span class="p">[</span><span class="s2">&quot;std&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">statistics</span><span class="o">.</span><span class="n">stdev</span><span class="p">(</span><span class="n">values</span><span class="p">)</span> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">values</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">1</span> <span class="k">else</span> <span class="mi">0</span>

<span class="n">stats</span><span class="p">[</span><span class="n">column</span><span class="p">]</span> <span class="o">=</span> <span class="n">column_stats</span>

<span class="k">return</span> <span class="n">stats</span></div>
<span class="c1"># stats = {}</span>
<span class="c1"># for column, values in columns.items():</span>
<span class="c1"># column_stats = {}</span>
<span class="c1"># column_stats[&quot;mean&quot;] = statistics.mean(values)</span>
<span class="c1"># try:</span>
<span class="c1"># column_stats[&quot;mode&quot;] = statistics.mode(values)</span>
<span class="c1"># except statistics.StatisticsError:</span>
<span class="c1"># column_stats[&quot;mode&quot;] = None</span>
<span class="c1"># column_stats[&quot;min&quot;] = min(values)</span>
<span class="c1"># column_stats[&quot;max&quot;] = max(values)</span>
<span class="c1"># column_stats[&quot;std&quot;] = statistics.stdev(values) if len(values) &gt; 1 else 0</span>
<span class="c1">#</span>
<span class="c1"># stats[column] = column_stats</span>

<span class="c1"># return stats</span>


<div class="viewcode-block" id="RunTracker.get_file_sizes"><a class="viewcode-back" href="../../../source/autodoc/ersilia.core.html#ersilia.core.tracking.RunTracker.get_file_sizes">[docs]</a> <span class="k">def</span> <span class="nf">get_file_sizes</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">input_file</span><span class="p">,</span> <span class="n">output_file</span><span class="p">):</span>
Expand Down Expand Up @@ -590,8 +594,6 @@ <h1>Source code for ersilia.core.tracking</h1><div class="highlight"><pre>
<span class="n">json_dict</span><span class="p">[</span><span class="s2">&quot;nan_count&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">nan_count</span>

<span class="n">json_dict</span><span class="p">[</span><span class="s2">&quot;check_types&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">check_types</span><span class="p">(</span><span class="n">result_data</span><span class="p">,</span> <span class="n">meta</span><span class="p">[</span><span class="s2">&quot;metadata&quot;</span><span class="p">])</span>

<span class="n">json_dict</span><span class="p">[</span><span class="s2">&quot;stats&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">stats</span><span class="p">(</span><span class="n">result</span><span class="p">)</span>

<span class="n">json_dict</span><span class="p">[</span><span class="s2">&quot;file_sizes&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_file_sizes</span><span class="p">(</span><span class="n">input_data</span><span class="p">,</span> <span class="n">result_data</span><span class="p">)</span>

Expand Down
2 changes: 0 additions & 2 deletions genindex.html
Original file line number Diff line number Diff line change
Expand Up @@ -4051,8 +4051,6 @@ <h2 id="S">S</h2>
<li><a href="source/autodoc/ersilia.core.html#ersilia.core.tracking.RunTracker.start_tracking">start_tracking() (ersilia.core.tracking.RunTracker method)</a>
</li>
<li><a href="source/autodoc/ersilia.utils.html#ersilia.utils.conda.SimpleConda.startswith">startswith() (ersilia.utils.conda.SimpleConda method)</a>
</li>
<li><a href="source/autodoc/ersilia.core.html#ersilia.core.tracking.RunTracker.stats">stats() (ersilia.core.tracking.RunTracker method)</a>
</li>
<li><a href="source/autodoc/ersilia.hub.content.html#ersilia.hub.content.card.BaseInformation.status">status (ersilia.hub.content.card.BaseInformation property)</a>
</li>
Expand Down
Binary file modified objects.inv
Binary file not shown.
2 changes: 1 addition & 1 deletion searchindex.js

Large diffs are not rendered by default.

15 changes: 0 additions & 15 deletions source/autodoc/ersilia.core.html
Original file line number Diff line number Diff line change
Expand Up @@ -358,21 +358,6 @@ <h2>Submodules<a class="headerlink" href="#submodules" title="Permalink to this
Currently necessary for tracking the runtime and memory usage of a run.</p>
</dd></dl>

<dl class="py method">
<dt class="sig sig-object py" id="ersilia.core.tracking.RunTracker.stats">
<span class="sig-name descname"><span class="pre">stats</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">result</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/ersilia/core/tracking.html#RunTracker.stats"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#ersilia.core.tracking.RunTracker.stats" title="Permalink to this definition"></a></dt>
<dd><p>Stats function: calculates the basic statistics of the output file from a model. This includes the
mode (if applicable), minimum, maximum, and standard deviation.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>result</strong> – The path to the model’s output file.</p>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>A dictionary containing the stats for each column of the result.</p>
</dd>
</dl>
</dd></dl>

<dl class="py method">
<dt class="sig sig-object py" id="ersilia.core.tracking.RunTracker.track">
<span class="sig-name descname"><span class="pre">track</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">input</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">result</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">meta</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/ersilia/core/tracking.html#RunTracker.track"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#ersilia.core.tracking.RunTracker.track" title="Permalink to this definition"></a></dt>
Expand Down
1 change: 0 additions & 1 deletion source/autodoc/ersilia.html
Original file line number Diff line number Diff line change
Expand Up @@ -287,7 +287,6 @@ <h2>Subpackages<a class="headerlink" href="#subpackages" title="Permalink to thi
<li class="toctree-l4"><a class="reference internal" href="ersilia.core.html#ersilia.core.tracking.RunTracker.log_meta"><code class="docutils literal notranslate"><span class="pre">RunTracker.log_meta()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="ersilia.core.html#ersilia.core.tracking.RunTracker.log_result"><code class="docutils literal notranslate"><span class="pre">RunTracker.log_result()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="ersilia.core.html#ersilia.core.tracking.RunTracker.start_tracking"><code class="docutils literal notranslate"><span class="pre">RunTracker.start_tracking()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="ersilia.core.html#ersilia.core.tracking.RunTracker.stats"><code class="docutils literal notranslate"><span class="pre">RunTracker.stats()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="ersilia.core.html#ersilia.core.tracking.RunTracker.track"><code class="docutils literal notranslate"><span class="pre">RunTracker.track()</span></code></a></li>
</ul>
</li>
Expand Down

0 comments on commit c6dc2e1

Please sign in to comment.