Deploy site [CI SKIP]

This commit is contained in:
Woodpecker CI 2026-02-24 13:31:19 +00:00
parent 5ba620c54f
commit 3b51459895
30 changed files with 52120 additions and 414 deletions

View file

@ -195,7 +195,7 @@ window.Quarto = {
<li><a href="#journaux" id="toc-journaux" class="nav-link active" data-scroll-target="#journaux">Journaux</a></li>
</ul>
</nav>
<h5 class="quarto-listing-category-title">Catégories</h5><div class="quarto-listing-category category-default"><div class="category" data-category="">Tous <span class="quarto-category-count">(26)</span></div><div class="category" data-category="Y29sQmlTQk0=">colBiSBM <span class="quarto-category-count">(26)</span></div><div class="category" data-category="Y292YXJpYWJsZXM=">covariables <span class="quarto-category-count">(1)</span></div><div class="category" data-category="R05O">GNN <span class="quarto-category-count">(19)</span></div><div class="category" data-category="aWRlbnRpZmlhYmlsaXQlQzMlQTk=">identifiabilité <span class="quarto-category-count">(1)</span></div><div class="category" data-category="aW5mJUMzJUE5cmVuY2U=">inférence <span class="quarto-category-count">(21)</span></div></div></div>
<h5 class="quarto-listing-category-title">Catégories</h5><div class="quarto-listing-category category-default"><div class="category" data-category="">Tous <span class="quarto-category-count">(27)</span></div><div class="category" data-category="Y29sQmlTQk0=">colBiSBM <span class="quarto-category-count">(27)</span></div><div class="category" data-category="Y292YXJpYWJsZXM=">covariables <span class="quarto-category-count">(1)</span></div><div class="category" data-category="R05O">GNN <span class="quarto-category-count">(20)</span></div><div class="category" data-category="aWRlbnRpZmlhYmlsaXQlQzMlQTk=">identifiabilité <span class="quarto-category-count">(1)</span></div><div class="category" data-category="aW5mJUMzJUE5cmVuY2U=">inférence <span class="quarto-category-count">(22)</span></div></div></div>
<!-- main -->
<main class="content" id="quarto-document-content">
@ -225,14 +225,14 @@ window.Quarto = {
<div>
<div class="quarto-title-meta-heading">Date de publication</div>
<div class="quarto-title-meta-contents">
<p class="date">17 février 2026</p>
<p class="date">24 février 2026</p>
</div>
</div>
<div>
<div class="quarto-title-meta-heading">Modifié</div>
<div class="quarto-title-meta-contents">
<p class="date-modified">17 février 2026</p>
<p class="date-modified">24 février 2026</p>
</div>
</div>
@ -264,7 +264,41 @@ Agenda
<h2 class="anchored" data-anchor-id="journaux">Journaux</h2>
<div id="listing-journal-these" class="quarto-listing quarto-listing-container-default">
<div class="list quarto-listing-default">
<div class="quarto-post image-right" data-index="0" data-categories="Y29sQmlTQk0lMkNpbmYlQzMlQTlyZW5jZSUyQ0dOTiUyQ2NvdmFyaWFibGVzJTJDaWRlbnRpZmlhYmlsaXQlQzMlQTk=" data-listing-date-sort="1770940800000" data-listing-file-modified-sort="1771335629635" data-listing-date-modified-sort="1771335629000" data-listing-reading-time-sort="7" data-listing-word-count-sort="1306">
<div class="quarto-post image-right" data-index="0" data-categories="Y29sQmlTQk0lMkNpbmYlQzMlQTlyZW5jZSUyQ0dOTg==" data-listing-date-sort="1771804800000" data-listing-file-modified-sort="1771939815310" data-listing-date-modified-sort="1771939815000" data-listing-reading-time-sort="4" data-listing-word-count-sort="752">
<div class="thumbnail"><a href="./suivi/2026-9/2026-9.html" class="no-external">
<p class="card-img-top"><img src="suivi/2026-9/figs/Multipartite.svg" alt="Le plot des groupes trouvés par le multipartite (2 pour tous les OTUs et 4 pour les échantillons.)" class="thumbnail-image card-img"/></p>
</a></div>
<div class="body">
<h3 class="no-anchor listing-title">
<a href="./suivi/2026-9/2026-9.html" class="no-external">Bilan semaine 9 2026 : 23 février - 27 février</a>
</h3>
<div class="listing-categories">
<div class="listing-category" onclick="window.quartoListingCategory('Y29sQmlTQk0='); return false;">colBiSBM</div>
<div class="listing-category" onclick="window.quartoListingCategory('aW5mJUMzJUE5cmVuY2U='); return false;">inférence</div>
<div class="listing-category" onclick="window.quartoListingCategory('R05O'); return false;">GNN</div>
</div>
<div class="delink listing-description"><a href="./suivi/2026-9/2026-9.html" class="no-external">
Clustering unipartite jai cassé une fonction de distance à vérifier et réparer
</a></div>
</div>
<div class="metadata">
<a href="./suivi/2026-9/2026-9.html" class="no-external">
<div class="listing-date">
23 févr. 2026
</div>
<div class="listing-author">
Louis Lacoste
</div>
</a>
</div>
</div>
<div class="quarto-post image-right" data-index="1" data-categories="Y29sQmlTQk0lMkNpbmYlQzMlQTlyZW5jZSUyQ0dOTiUyQ2NvdmFyaWFibGVzJTJDaWRlbnRpZmlhYmlsaXQlQzMlQTk=" data-listing-date-sort="1770940800000" data-listing-file-modified-sort="1771939815310" data-listing-date-modified-sort="1771939815000" data-listing-reading-time-sort="7" data-listing-word-count-sort="1306">
<div class="thumbnail"><a href="./suivi/2026-7/2026-7.html" class="no-external">
<div class="listing-item-img-placeholder card-img-top" >&nbsp;</div>
@ -302,7 +336,7 @@ Louis Lacoste
</a>
</div>
</div>
<div class="quarto-post image-right" data-index="1" data-categories="Y29sQmlTQk0lMkNpbmYlQzMlQTlyZW5jZSUyQ0dOTg==" data-listing-date-sort="1770940800000" data-listing-file-modified-sort="1771335629635" data-listing-date-modified-sort="1771335629000" data-listing-reading-time-sort="4" data-listing-word-count-sort="725">
<div class="quarto-post image-right" data-index="2" data-categories="Y29sQmlTQk0lMkNpbmYlQzMlQTlyZW5jZSUyQ0dOTg==" data-listing-date-sort="1770940800000" data-listing-file-modified-sort="1771939815310" data-listing-date-modified-sort="1771939815000" data-listing-reading-time-sort="4" data-listing-word-count-sort="725">
<div class="thumbnail"><a href="./suivi/2026-8/2026-8.html" class="no-external">
<div class="listing-item-img-placeholder card-img-top" >&nbsp;</div>
@ -336,7 +370,7 @@ Louis Lacoste
</a>
</div>
</div>
<div class="quarto-post image-right" data-index="2" data-categories="Y29sQmlTQk0lMkNpbmYlQzMlQTlyZW5jZSUyQ0dOTg==" data-listing-date-sort="1770336000000" data-listing-file-modified-sort="1771335629635" data-listing-date-modified-sort="1771335629000" data-listing-reading-time-sort="7" data-listing-word-count-sort="1333">
<div class="quarto-post image-right" data-index="3" data-categories="Y29sQmlTQk0lMkNpbmYlQzMlQTlyZW5jZSUyQ0dOTg==" data-listing-date-sort="1770336000000" data-listing-file-modified-sort="1771939815310" data-listing-date-modified-sort="1771939815000" data-listing-reading-time-sort="7" data-listing-word-count-sort="1333">
<div class="thumbnail"><a href="./suivi/2026-6/2026-6.html" class="no-external">
<div class="listing-item-img-placeholder card-img-top" >&nbsp;</div>
@ -370,7 +404,7 @@ Louis Lacoste
</a>
</div>
</div>
<div class="quarto-post image-right" data-index="3" data-categories="Y29sQmlTQk0lMkNpbmYlQzMlQTlyZW5jZSUyQ0dOTg==" data-listing-date-sort="1766102400000" data-listing-file-modified-sort="1771335629634" data-listing-date-modified-sort="1771335629000" data-listing-reading-time-sort="8" data-listing-word-count-sort="1466">
<div class="quarto-post image-right" data-index="4" data-categories="Y29sQmlTQk0lMkNpbmYlQzMlQTlyZW5jZSUyQ0dOTg==" data-listing-date-sort="1766102400000" data-listing-file-modified-sort="1771939815308" data-listing-date-modified-sort="1771939815000" data-listing-reading-time-sort="8" data-listing-word-count-sort="1466">
<div class="thumbnail"><a href="./suivi/2025-51/2025-51.html" class="no-external">
<p class="card-img-top"><img src="suivi/2025-51/figs/tendance_temps.png" class="thumbnail-image card-img"/></p>
@ -404,7 +438,7 @@ Louis Lacoste
</a>
</div>
</div>
<div class="quarto-post image-right" data-index="4" data-categories="Y29sQmlTQk0lMkNpbmYlQzMlQTlyZW5jZSUyQ0dOTg==" data-listing-date-sort="1765497600000" data-listing-file-modified-sort="1771335629633" data-listing-date-modified-sort="1771335629000" data-listing-reading-time-sort="6" data-listing-word-count-sort="1010">
<div class="quarto-post image-right" data-index="5" data-categories="Y29sQmlTQk0lMkNpbmYlQzMlQTlyZW5jZSUyQ0dOTg==" data-listing-date-sort="1765497600000" data-listing-file-modified-sort="1771939815308" data-listing-date-modified-sort="1771939815000" data-listing-reading-time-sort="6" data-listing-word-count-sort="1010">
<div class="thumbnail"><a href="./suivi/2025-50/2025-50.html" class="no-external">
<div class="listing-item-img-placeholder card-img-top" >&nbsp;</div>
@ -438,7 +472,7 @@ Louis Lacoste
</a>
</div>
</div>
<div class="quarto-post image-right" data-index="5" data-categories="Y29sQmlTQk0lMkNpbmYlQzMlQTlyZW5jZSUyQ0dOTg==" data-listing-date-sort="1762128000000" data-listing-file-modified-sort="1771335629633" data-listing-date-modified-sort="1771335629000" data-listing-reading-time-sort="4" data-listing-word-count-sort="724">
<div class="quarto-post image-right" data-index="6" data-categories="Y29sQmlTQk0lMkNpbmYlQzMlQTlyZW5jZSUyQ0dOTg==" data-listing-date-sort="1762128000000" data-listing-file-modified-sort="1771939815308" data-listing-date-modified-sort="1771939815000" data-listing-reading-time-sort="4" data-listing-word-count-sort="724">
<div class="thumbnail"><a href="./suivi/2025-45/2025-45.html" class="no-external">
<div class="listing-item-img-placeholder card-img-top" >&nbsp;</div>
@ -472,7 +506,7 @@ Louis Lacoste
</a>
</div>
</div>
<div class="quarto-post image-right" data-index="6" data-categories="Y29sQmlTQk0lMkNpbmYlQzMlQTlyZW5jZSUyQ0dOTg==" data-listing-date-sort="1761523200000" data-listing-file-modified-sort="1771335629633" data-listing-date-modified-sort="1771335629000" data-listing-reading-time-sort="4" data-listing-word-count-sort="645">
<div class="quarto-post image-right" data-index="7" data-categories="Y29sQmlTQk0lMkNpbmYlQzMlQTlyZW5jZSUyQ0dOTg==" data-listing-date-sort="1761523200000" data-listing-file-modified-sort="1771939815308" data-listing-date-modified-sort="1771939815000" data-listing-reading-time-sort="4" data-listing-word-count-sort="645">
<div class="thumbnail"><a href="./suivi/2025-44/2025-44.html" class="no-external">
<div class="listing-item-img-placeholder card-img-top" >&nbsp;</div>
@ -506,7 +540,7 @@ Louis Lacoste
</a>
</div>
</div>
<div class="quarto-post image-right" data-index="7" data-categories="Y29sQmlTQk0lMkNpbmYlQzMlQTlyZW5jZSUyQ0dOTg==" data-listing-date-sort="1760918400000" data-listing-file-modified-sort="1771335629633" data-listing-date-modified-sort="1771335629000" data-listing-reading-time-sort="5" data-listing-word-count-sort="903">
<div class="quarto-post image-right" data-index="8" data-categories="Y29sQmlTQk0lMkNpbmYlQzMlQTlyZW5jZSUyQ0dOTg==" data-listing-date-sort="1760918400000" data-listing-file-modified-sort="1771939815308" data-listing-date-modified-sort="1771939815000" data-listing-reading-time-sort="5" data-listing-word-count-sort="903">
<div class="thumbnail"><a href="./suivi/2025-43/2025-43.html" class="no-external">
<div class="listing-item-img-placeholder card-img-top" >&nbsp;</div>
@ -540,7 +574,7 @@ Louis Lacoste
</a>
</div>
</div>
<div class="quarto-post image-right" data-index="8" data-categories="Y29sQmlTQk0lMkNpbmYlQzMlQTlyZW5jZSUyQ0dOTg==" data-listing-date-sort="1758240000000" data-listing-file-modified-sort="1771335629633" data-listing-date-modified-sort="1771335629000" data-listing-reading-time-sort="4" data-listing-word-count-sort="668">
<div class="quarto-post image-right" data-index="9" data-categories="Y29sQmlTQk0lMkNpbmYlQzMlQTlyZW5jZSUyQ0dOTg==" data-listing-date-sort="1758240000000" data-listing-file-modified-sort="1771939815307" data-listing-date-modified-sort="1771939815000" data-listing-reading-time-sort="4" data-listing-word-count-sort="668">
<div class="thumbnail"><a href="./suivi/2025-38/2025-38.html" class="no-external">
<div class="listing-item-img-placeholder card-img-top" >&nbsp;</div>
@ -574,7 +608,7 @@ Louis Lacoste
</a>
</div>
</div>
<div class="quarto-post image-right" data-index="9" data-categories="Y29sQmlTQk0lMkNpbmYlQzMlQTlyZW5jZSUyQ0dOTg==" data-listing-date-sort="1756425600000" data-listing-file-modified-sort="1771335629633" data-listing-date-modified-sort="1771335629000" data-listing-reading-time-sort="4" data-listing-word-count-sort="699">
<div class="quarto-post image-right" data-index="10" data-categories="Y29sQmlTQk0lMkNpbmYlQzMlQTlyZW5jZSUyQ0dOTg==" data-listing-date-sort="1756425600000" data-listing-file-modified-sort="1771939815307" data-listing-date-modified-sort="1771939815000" data-listing-reading-time-sort="4" data-listing-word-count-sort="699">
<div class="thumbnail"><a href="./suivi/2025-35/2025-35.html" class="no-external">
<div class="listing-item-img-placeholder card-img-top" >&nbsp;</div>
@ -608,7 +642,7 @@ Louis Lacoste
</a>
</div>
</div>
<div class="quarto-post image-right" data-index="10" data-categories="Y29sQmlTQk0lMkNpbmYlQzMlQTlyZW5jZSUyQ0dOTg==" data-listing-date-sort="1755129600000" data-listing-file-modified-sort="1771335629632" data-listing-date-modified-sort="1771335629000" data-listing-reading-time-sort="4" data-listing-word-count-sort="792">
<div class="quarto-post image-right" data-index="11" data-categories="Y29sQmlTQk0lMkNpbmYlQzMlQTlyZW5jZSUyQ0dOTg==" data-listing-date-sort="1755129600000" data-listing-file-modified-sort="1771939815307" data-listing-date-modified-sort="1771939815000" data-listing-reading-time-sort="4" data-listing-word-count-sort="792">
<div class="thumbnail"><a href="./suivi/2025-33/2025-33.html" class="no-external">
<p class="card-img-top"><img src="suivi/2025-33/figs/auc-model.png" class="thumbnail-image card-img"/></p>
@ -643,7 +677,7 @@ Louis Lacoste
</a>
</div>
</div>
<div class="quarto-post image-right" data-index="11" data-categories="Y29sQmlTQk0lMkNpbmYlQzMlQTlyZW5jZSUyQ0dOTg==" data-listing-date-sort="1752537600000" data-listing-file-modified-sort="1771335629632" data-listing-date-modified-sort="1771335629000" data-listing-reading-time-sort="14" data-listing-word-count-sort="2709">
<div class="quarto-post image-right" data-index="12" data-categories="Y29sQmlTQk0lMkNpbmYlQzMlQTlyZW5jZSUyQ0dOTg==" data-listing-date-sort="1752537600000" data-listing-file-modified-sort="1771939815307" data-listing-date-modified-sort="1771939815000" data-listing-reading-time-sort="14" data-listing-word-count-sort="2709">
<div class="thumbnail"><a href="./suivi/2025-29/2025-29.html" class="no-external">
<div class="listing-item-img-placeholder card-img-top" >&nbsp;</div>
@ -678,7 +712,7 @@ Louis Lacoste
</a>
</div>
</div>
<div class="quarto-post image-right" data-index="12" data-categories="Y29sQmlTQk0lMkNpbmYlQzMlQTlyZW5jZSUyQ0dOTg==" data-listing-date-sort="1751846400000" data-listing-file-modified-sort="1771335629632" data-listing-date-modified-sort="1752192000000" data-listing-reading-time-sort="4" data-listing-word-count-sort="619">
<div class="quarto-post image-right" data-index="13" data-categories="Y29sQmlTQk0lMkNpbmYlQzMlQTlyZW5jZSUyQ0dOTg==" data-listing-date-sort="1751846400000" data-listing-file-modified-sort="1771939815306" data-listing-date-modified-sort="1752192000000" data-listing-reading-time-sort="4" data-listing-word-count-sort="619">
<div class="thumbnail"><a href="./suivi/2025-28/2025-28.html" class="no-external">
<div class="listing-item-img-placeholder card-img-top" >&nbsp;</div>
@ -713,7 +747,7 @@ Louis Lacoste
</a>
</div>
</div>
<div class="quarto-post image-right" data-index="13" data-categories="Y29sQmlTQk0lMkNpbmYlQzMlQTlyZW5jZSUyQ0dOTg==" data-listing-date-sort="1751241600000" data-listing-file-modified-sort="1771335629632" data-listing-date-modified-sort="1771335629000" data-listing-reading-time-sort="3" data-listing-word-count-sort="519">
<div class="quarto-post image-right" data-index="14" data-categories="Y29sQmlTQk0lMkNpbmYlQzMlQTlyZW5jZSUyQ0dOTg==" data-listing-date-sort="1751241600000" data-listing-file-modified-sort="1771939815306" data-listing-date-modified-sort="1771939815000" data-listing-reading-time-sort="3" data-listing-word-count-sort="519">
<div class="thumbnail"><a href="./suivi/2025-27/2025-27.html" class="no-external">
<div class="listing-item-img-placeholder card-img-top" >&nbsp;</div>
@ -748,7 +782,7 @@ Louis Lacoste
</a>
</div>
</div>
<div class="quarto-post image-right" data-index="14" data-categories="Y29sQmlTQk0lMkNpbmYlQzMlQTlyZW5jZSUyQ0dOTg==" data-listing-date-sort="1750377600000" data-listing-file-modified-sort="1771335629631" data-listing-date-modified-sort="1771335629000" data-listing-reading-time-sort="4" data-listing-word-count-sort="691">
<div class="quarto-post image-right" data-index="15" data-categories="Y29sQmlTQk0lMkNpbmYlQzMlQTlyZW5jZSUyQ0dOTg==" data-listing-date-sort="1750377600000" data-listing-file-modified-sort="1771939815306" data-listing-date-modified-sort="1771939815000" data-listing-reading-time-sort="4" data-listing-word-count-sort="691">
<div class="thumbnail"><a href="./suivi/2025-25/2025-25.html" class="no-external">
<div class="listing-item-img-placeholder card-img-top" >&nbsp;</div>
@ -783,7 +817,7 @@ Louis Lacoste
</a>
</div>
</div>
<div class="quarto-post image-right" data-index="15" data-categories="Y29sQmlTQk0lMkNpbmYlQzMlQTlyZW5jZSUyQ0dOTg==" data-listing-date-sort="1749772800000" data-listing-file-modified-sort="1771335629631" data-listing-date-modified-sort="1771335629000" data-listing-reading-time-sort="6" data-listing-word-count-sort="1009">
<div class="quarto-post image-right" data-index="16" data-categories="Y29sQmlTQk0lMkNpbmYlQzMlQTlyZW5jZSUyQ0dOTg==" data-listing-date-sort="1749772800000" data-listing-file-modified-sort="1771939815305" data-listing-date-modified-sort="1771939815000" data-listing-reading-time-sort="6" data-listing-word-count-sort="1009">
<div class="thumbnail"><a href="./suivi/2025-24/2025-24.html" class="no-external">
<p class="card-img-top"><img src="suivi/2025-24/figs/ari-clustering-desc&asc9.png" alt="9 réseaux - ARI pour le clustering avec modèles iid, procédure descendante et descendante&ascendante" class="thumbnail-image card-img"/></p>
@ -817,7 +851,7 @@ Louis Lacoste
</a>
</div>
</div>
<div class="quarto-post image-right" data-index="16" data-categories="Y29sQmlTQk0lMkNpbmYlQzMlQTlyZW5jZSUyQ0dOTg==" data-listing-date-sort="1748390400000" data-listing-file-modified-sort="1771335629630" data-listing-date-modified-sort="1771335629000" data-listing-reading-time-sort="4" data-listing-word-count-sort="785">
<div class="quarto-post image-right" data-index="17" data-categories="Y29sQmlTQk0lMkNpbmYlQzMlQTlyZW5jZSUyQ0dOTg==" data-listing-date-sort="1748390400000" data-listing-file-modified-sort="1771939815305" data-listing-date-modified-sort="1771939815000" data-listing-reading-time-sort="4" data-listing-word-count-sort="785">
<div class="thumbnail"><a href="./suivi/2025-22/2025-22.html" class="no-external">
<div class="listing-item-img-placeholder card-img-top" >&nbsp;</div>
@ -852,7 +886,7 @@ Louis Lacoste
</a>
</div>
</div>
<div class="quarto-post image-right" data-index="17" data-categories="Y29sQmlTQk0lMkNpbmYlQzMlQTlyZW5jZSUyQ0dOTg==" data-listing-date-sort="1747958400000" data-listing-file-modified-sort="1771335629630" data-listing-date-modified-sort="1771335629000" data-listing-reading-time-sort="5" data-listing-word-count-sort="919">
<div class="quarto-post image-right" data-index="18" data-categories="Y29sQmlTQk0lMkNpbmYlQzMlQTlyZW5jZSUyQ0dOTg==" data-listing-date-sort="1747958400000" data-listing-file-modified-sort="1771939815305" data-listing-date-modified-sort="1771939815000" data-listing-reading-time-sort="5" data-listing-word-count-sort="919">
<div class="thumbnail"><a href="./suivi/2025-21/2025-21.html" class="no-external">
<div class="listing-item-img-placeholder card-img-top" >&nbsp;</div>
@ -886,7 +920,7 @@ Louis Lacoste
</a>
</div>
</div>
<div class="quarto-post image-right" data-index="18" data-categories="Y29sQmlTQk0lMkNpbmYlQzMlQTlyZW5jZSUyQ0dOTg==" data-listing-date-sort="1747353600000" data-listing-file-modified-sort="1771335629630" data-listing-date-modified-sort="1771335629000" data-listing-reading-time-sort="6" data-listing-word-count-sort="1030">
<div class="quarto-post image-right" data-index="19" data-categories="Y29sQmlTQk0lMkNpbmYlQzMlQTlyZW5jZSUyQ0dOTg==" data-listing-date-sort="1747353600000" data-listing-file-modified-sort="1771939815305" data-listing-date-modified-sort="1771939815000" data-listing-reading-time-sort="6" data-listing-word-count-sort="1030">
<div class="thumbnail"><a href="./suivi/2025-20/2025-20.html" class="no-external">
<div class="listing-item-img-placeholder card-img-top" >&nbsp;</div>
@ -920,7 +954,7 @@ Louis Lacoste
</a>
</div>
</div>
<div class="quarto-post image-right" data-index="19" data-categories="Y29sQmlTQk0lMkNpbmYlQzMlQTlyZW5jZQ==" data-listing-date-sort="1746748800000" data-listing-file-modified-sort="1771335629630" data-listing-date-modified-sort="1771335629000" data-listing-reading-time-sort="5" data-listing-word-count-sort="814">
<div class="quarto-post image-right" data-index="20" data-categories="Y29sQmlTQk0lMkNpbmYlQzMlQTlyZW5jZQ==" data-listing-date-sort="1746748800000" data-listing-file-modified-sort="1771939815305" data-listing-date-modified-sort="1771939815000" data-listing-reading-time-sort="5" data-listing-word-count-sort="814">
<div class="thumbnail"><a href="./suivi/2025-19/2025-19.html" class="no-external">
<div class="listing-item-img-placeholder card-img-top" >&nbsp;</div>
@ -952,7 +986,7 @@ Louis Lacoste
</a>
</div>
</div>
<div class="quarto-post image-right" data-index="20" data-categories="Y29sQmlTQk0lMkNpbmYlQzMlQTlyZW5jZQ==" data-listing-date-sort="1746144000000" data-listing-file-modified-sort="1771335629629" data-listing-date-modified-sort="1771335629000" data-listing-reading-time-sort="3" data-listing-word-count-sort="521">
<div class="quarto-post image-right" data-index="21" data-categories="Y29sQmlTQk0lMkNpbmYlQzMlQTlyZW5jZQ==" data-listing-date-sort="1746144000000" data-listing-file-modified-sort="1771939815304" data-listing-date-modified-sort="1771939815000" data-listing-reading-time-sort="3" data-listing-word-count-sort="521">
<div class="thumbnail"><a href="./suivi/2025-18/2025-18.html" class="no-external">
<p class="card-img-top"><img src="suivi/2025-18/figs/density-subdore.png" class="thumbnail-image card-img"/></p>
@ -984,7 +1018,7 @@ Louis Lacoste
</a>
</div>
</div>
<div class="quarto-post image-right" data-index="21" data-categories="Y29sQmlTQk0=" data-listing-date-sort="1745539200000" data-listing-file-modified-sort="1771335629620" data-listing-date-modified-sort="1771335629000" data-listing-reading-time-sort="4" data-listing-word-count-sort="714">
<div class="quarto-post image-right" data-index="22" data-categories="Y29sQmlTQk0=" data-listing-date-sort="1745539200000" data-listing-file-modified-sort="1771939815295" data-listing-date-modified-sort="1771939815000" data-listing-reading-time-sort="4" data-listing-word-count-sort="714">
<div class="thumbnail"><a href="./suivi/2025-17/2025-17.html" class="no-external">
<p class="card-img-top"><img src="suivi/2025-17/figs/density-subdore.png" class="thumbnail-image card-img"/></p>
@ -1014,7 +1048,7 @@ Louis Lacoste
</a>
</div>
</div>
<div class="quarto-post image-right" data-index="22" data-categories="Y29sQmlTQk0=" data-listing-date-sort="1744934400000" data-listing-file-modified-sort="1771335629619" data-listing-date-modified-sort="1771335629000" data-listing-reading-time-sort="2" data-listing-word-count-sort="352">
<div class="quarto-post image-right" data-index="23" data-categories="Y29sQmlTQk0=" data-listing-date-sort="1744934400000" data-listing-file-modified-sort="1771939815293" data-listing-date-modified-sort="1771939815000" data-listing-reading-time-sort="2" data-listing-word-count-sort="352">
<div class="thumbnail"><a href="./suivi/2025-16/2025-16.html" class="no-external">
<div class="listing-item-img-placeholder card-img-top" >&nbsp;</div>
@ -1044,7 +1078,7 @@ Louis Lacoste
</a>
</div>
</div>
<div class="quarto-post image-right" data-index="23" data-categories="Y29sQmlTQk0=" data-listing-date-sort="1743724800000" data-listing-file-modified-sort="1771335629617" data-listing-date-modified-sort="1771335629000" data-listing-reading-time-sort="2" data-listing-word-count-sort="353">
<div class="quarto-post image-right" data-index="24" data-categories="Y29sQmlTQk0=" data-listing-date-sort="1743724800000" data-listing-file-modified-sort="1771939815292" data-listing-date-modified-sort="1771939815000" data-listing-reading-time-sort="2" data-listing-word-count-sort="353">
<div class="thumbnail"><a href="./suivi/2025-15/2025-15.html" class="no-external">
<p class="card-img-top"><img src="suivi/2025-15/figs/alluvial-clusterings.png" class="thumbnail-image card-img"/></p>
@ -1074,7 +1108,7 @@ Louis Lacoste
</a>
</div>
</div>
<div class="quarto-post image-right" data-index="24" data-categories="Y29sQmlTQk0=" data-listing-date-sort="1743120000000" data-listing-file-modified-sort="1771335629617" data-listing-date-modified-sort="1771335629000" data-listing-reading-time-sort="3" data-listing-word-count-sort="413">
<div class="quarto-post image-right" data-index="25" data-categories="Y29sQmlTQk0=" data-listing-date-sort="1743120000000" data-listing-file-modified-sort="1771939815292" data-listing-date-modified-sort="1771939815000" data-listing-reading-time-sort="3" data-listing-word-count-sort="413">
<div class="thumbnail"><a href="./suivi/2025-14/2025-14.html" class="no-external">
<div class="listing-item-img-placeholder card-img-top" >&nbsp;</div>
@ -1104,7 +1138,7 @@ Louis Lacoste
</a>
</div>
</div>
<div class="quarto-post image-right" data-index="25" data-categories="Y29sQmlTQk0=" data-listing-date-sort="1742169600000" data-listing-file-modified-sort="1771335629612" data-listing-date-modified-sort="1771335629000" data-listing-reading-time-sort="3" data-listing-word-count-sort="426">
<div class="quarto-post image-right" data-index="26" data-categories="Y29sQmlTQk0=" data-listing-date-sort="1742169600000" data-listing-file-modified-sort="1771939815286" data-listing-date-modified-sort="1771939815000" data-listing-reading-time-sort="3" data-listing-word-count-sort="426">
<div class="thumbnail"><a href="./suivi/2025-13/2025-13.html" class="no-external">
<p class="card-img-top"><img data-src="suivi/2025-13/figs/baldock_meso_iid.png" alt="Baldock iid" class="thumbnail-image card-img"/></p>

View file

@ -2,6 +2,7 @@
{
"listing": "/index.html",
"items": [
"/suivi/2026-9/2026-9.html",
"/suivi/2026-7/2026-7.html",
"/suivi/2026-8/2026-8.html",
"/suivi/2026-6/2026-6.html",

File diff suppressed because one or more lines are too long

View file

@ -192,7 +192,7 @@ window.Quarto = {
<div>
<div class="quarto-title-meta-heading">Modifié</div>
<div class="quarto-title-meta-contents">
<p class="date-modified">17 février 2026</p>
<p class="date-modified">24 février 2026</p>
</div>
</div>

View file

@ -189,7 +189,7 @@ window.Quarto = {
<div>
<div class="quarto-title-meta-heading">Modifié</div>
<div class="quarto-title-meta-contents">
<p class="date-modified">17 février 2026</p>
<p class="date-modified">24 février 2026</p>
</div>
</div>

View file

@ -189,7 +189,7 @@ window.Quarto = {
<div>
<div class="quarto-title-meta-heading">Modifié</div>
<div class="quarto-title-meta-contents">
<p class="date-modified">17 février 2026</p>
<p class="date-modified">24 février 2026</p>
</div>
</div>

View file

@ -189,7 +189,7 @@ window.Quarto = {
<div>
<div class="quarto-title-meta-heading">Modifié</div>
<div class="quarto-title-meta-contents">
<p class="date-modified">17 février 2026</p>
<p class="date-modified">24 février 2026</p>
</div>
</div>

View file

@ -192,7 +192,7 @@ window.Quarto = {
<div>
<div class="quarto-title-meta-heading">Modifié</div>
<div class="quarto-title-meta-contents">
<p class="date-modified">17 février 2026</p>
<p class="date-modified">24 février 2026</p>
</div>
</div>

View file

@ -193,7 +193,7 @@ window.Quarto = {
<div>
<div class="quarto-title-meta-heading">Modifié</div>
<div class="quarto-title-meta-contents">
<p class="date-modified">17 février 2026</p>
<p class="date-modified">24 février 2026</p>
</div>
</div>

View file

@ -190,7 +190,7 @@ window.Quarto = {
<div>
<div class="quarto-title-meta-heading">Modifié</div>
<div class="quarto-title-meta-contents">
<p class="date-modified">17 février 2026</p>
<p class="date-modified">24 février 2026</p>
</div>
</div>

View file

@ -191,7 +191,7 @@ window.Quarto = {
<div>
<div class="quarto-title-meta-heading">Modifié</div>
<div class="quarto-title-meta-contents">
<p class="date-modified">17 février 2026</p>
<p class="date-modified">24 février 2026</p>
</div>
</div>

View file

@ -191,7 +191,7 @@ window.Quarto = {
<div>
<div class="quarto-title-meta-heading">Modifié</div>
<div class="quarto-title-meta-contents">
<p class="date-modified">17 février 2026</p>
<p class="date-modified">24 février 2026</p>
</div>
</div>

View file

@ -191,7 +191,7 @@ window.Quarto = {
<div>
<div class="quarto-title-meta-heading">Modifié</div>
<div class="quarto-title-meta-contents">
<p class="date-modified">17 février 2026</p>
<p class="date-modified">24 février 2026</p>
</div>
</div>

View file

@ -214,7 +214,7 @@ window.Quarto = {
<div>
<div class="quarto-title-meta-heading">Modifié</div>
<div class="quarto-title-meta-contents">
<p class="date-modified">17 février 2026</p>
<p class="date-modified">24 février 2026</p>
</div>
</div>

View file

@ -211,7 +211,7 @@ window.Quarto = {
<div>
<div class="quarto-title-meta-heading">Modifié</div>
<div class="quarto-title-meta-contents">
<p class="date-modified">17 février 2026</p>
<p class="date-modified">24 février 2026</p>
</div>
</div>

View file

@ -211,7 +211,7 @@ window.Quarto = {
<div>
<div class="quarto-title-meta-heading">Modifié</div>
<div class="quarto-title-meta-contents">
<p class="date-modified">17 février 2026</p>
<p class="date-modified">24 février 2026</p>
</div>
</div>

View file

@ -211,7 +211,7 @@ window.Quarto = {
<div>
<div class="quarto-title-meta-heading">Modifié</div>
<div class="quarto-title-meta-contents">
<p class="date-modified">17 février 2026</p>
<p class="date-modified">24 février 2026</p>
</div>
</div>

View file

@ -214,7 +214,7 @@ window.Quarto = {
<div>
<div class="quarto-title-meta-heading">Modifié</div>
<div class="quarto-title-meta-contents">
<p class="date-modified">17 février 2026</p>
<p class="date-modified">24 février 2026</p>
</div>
</div>

View file

@ -211,7 +211,7 @@ window.Quarto = {
<div>
<div class="quarto-title-meta-heading">Modifié</div>
<div class="quarto-title-meta-contents">
<p class="date-modified">17 février 2026</p>
<p class="date-modified">24 février 2026</p>
</div>
</div>

View file

@ -211,7 +211,7 @@ window.Quarto = {
<div>
<div class="quarto-title-meta-heading">Modifié</div>
<div class="quarto-title-meta-contents">
<p class="date-modified">17 février 2026</p>
<p class="date-modified">24 février 2026</p>
</div>
</div>

View file

@ -211,7 +211,7 @@ window.Quarto = {
<div>
<div class="quarto-title-meta-heading">Modifié</div>
<div class="quarto-title-meta-contents">
<p class="date-modified">17 février 2026</p>
<p class="date-modified">24 février 2026</p>
</div>
</div>

View file

@ -211,7 +211,7 @@ window.Quarto = {
<div>
<div class="quarto-title-meta-heading">Modifié</div>
<div class="quarto-title-meta-contents">
<p class="date-modified">17 février 2026</p>
<p class="date-modified">24 février 2026</p>
</div>
</div>

View file

@ -211,7 +211,7 @@ window.Quarto = {
<div>
<div class="quarto-title-meta-heading">Modifié</div>
<div class="quarto-title-meta-contents">
<p class="date-modified">17 février 2026</p>
<p class="date-modified">24 février 2026</p>
</div>
</div>

View file

@ -211,7 +211,7 @@ window.Quarto = {
<div>
<div class="quarto-title-meta-heading">Modifié</div>
<div class="quarto-title-meta-contents">
<p class="date-modified">17 février 2026</p>
<p class="date-modified">24 février 2026</p>
</div>
</div>

View file

@ -211,7 +211,7 @@ window.Quarto = {
<div>
<div class="quarto-title-meta-heading">Modifié</div>
<div class="quarto-title-meta-contents">
<p class="date-modified">17 février 2026</p>
<p class="date-modified">24 février 2026</p>
</div>
</div>

View file

@ -211,7 +211,7 @@ window.Quarto = {
<div>
<div class="quarto-title-meta-heading">Modifié</div>
<div class="quarto-title-meta-contents">
<p class="date-modified">17 février 2026</p>
<p class="date-modified">24 février 2026</p>
</div>
</div>

View file

@ -213,7 +213,7 @@ window.Quarto = {
<div>
<div class="quarto-title-meta-heading">Modifié</div>
<div class="quarto-title-meta-contents">
<p class="date-modified">17 février 2026</p>
<p class="date-modified">24 février 2026</p>
</div>
</div>

View file

@ -211,7 +211,7 @@ window.Quarto = {
<div>
<div class="quarto-title-meta-heading">Modifié</div>
<div class="quarto-title-meta-contents">
<p class="date-modified">17 février 2026</p>
<p class="date-modified">24 février 2026</p>
</div>
</div>

853
suivi/2026-9/2026-9.html Normal file
View file

@ -0,0 +1,853 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head>
<meta charset="utf-8">
<meta name="generator" content="quarto-1.7.22">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
<meta name="author" content="Louis Lacoste">
<title>Bilan semaine 9 2026 : 23 février - 27 février Suivi de la thèse</title>
<style>
code{white-space: pre-wrap;}
span.smallcaps{font-variant: small-caps;}
div.columns{display: flex; gap: min(4vw, 1.5em);}
div.column{flex: auto; overflow-x: auto;}
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
ul.task-list{list-style: none;}
ul.task-list li input[type="checkbox"] {
width: 0.8em;
margin: 0 0.8em 0.2em -1em; /* quarto-specific, see https://github.com/quarto-dev/quarto-cli/issues/4556 */
vertical-align: middle;
}
/* CSS for citations */
div.csl-bib-body { }
div.csl-entry {
clear: both;
margin-bottom: 0em;
}
.hanging-indent div.csl-entry {
margin-left:2em;
text-indent:-2em;
}
div.csl-left-margin {
min-width:2em;
float:left;
}
div.csl-right-inline {
margin-left:2em;
padding-left:1em;
}
div.csl-indent {
margin-left: 2em;
}</style>
<script src="../../site_libs/quarto-nav/quarto-nav.js"></script>
<script src="../../site_libs/quarto-nav/headroom.min.js"></script>
<script src="../../site_libs/clipboard/clipboard.min.js"></script>
<script src="../../site_libs/quarto-search/autocomplete.umd.js"></script>
<script src="../../site_libs/quarto-search/fuse.min.js"></script>
<script src="../../site_libs/quarto-search/quarto-search.js"></script>
<meta name="quarto:offset" content="../../">
<script src="../../site_libs/quarto-html/quarto.js" type="module"></script>
<script src="../../site_libs/quarto-html/tabsets/tabsets.js" type="module"></script>
<script src="../../site_libs/quarto-html/popper.min.js"></script>
<script src="../../site_libs/quarto-html/tippy.umd.min.js"></script>
<script src="../../site_libs/quarto-html/anchor.min.js"></script>
<link href="../../site_libs/quarto-html/tippy.css" rel="stylesheet">
<link href="../../site_libs/quarto-html/quarto-syntax-highlighting-7b4406b7675125bc2ba204020e191172.css" rel="stylesheet" id="quarto-text-highlighting-styles">
<script src="../../site_libs/bootstrap/bootstrap.min.js"></script>
<link href="../../site_libs/bootstrap/bootstrap-icons.css" rel="stylesheet">
<link href="../../site_libs/bootstrap/bootstrap-c3e95e02e727cc1eb63534e29640e14d.min.css" rel="stylesheet" append-hash="true" id="quarto-bootstrap" data-mode="light">
<script id="quarto-search-options" type="application/json">{
"location": "navbar",
"copy-button": false,
"collapse-after": 3,
"panel-placement": "end",
"type": "overlay",
"limit": 50,
"keyboard-shortcut": [
"f",
"/",
"s"
],
"show-item-context": false,
"language": {
"search-no-results-text": "Pas de résultats",
"search-matching-documents-text": "documents trouvés",
"search-copy-link-title": "Copier le lien vers la recherche",
"search-hide-matches-text": "Cacher les correspondances additionnelles",
"search-more-match-text": "correspondance de plus dans ce document",
"search-more-matches-text": "correspondances de plus dans ce document",
"search-clear-button-title": "Effacer",
"search-text-placeholder": "",
"search-detached-cancel-button-title": "Annuler",
"search-submit-button-title": "Envoyer",
"search-label": "Recherche"
}
}</script>
<script>window.backupDefine = window.define; window.define = undefined;</script><script src="https://cdn.jsdelivr.net/npm/katex@latest/dist/katex.min.js"></script>
<script>document.addEventListener("DOMContentLoaded", function () {
var mathElements = document.getElementsByClassName("math");
var macros = [];
for (var i = 0; i < mathElements.length; i++) {
var texText = mathElements[i].firstChild;
if (mathElements[i].tagName == "SPAN") {
katex.render(texText.data, mathElements[i], {
displayMode: mathElements[i].classList.contains('display'),
throwOnError: false,
macros: macros,
fleqn: false
});
}}});
</script>
<script>window.define = window.backupDefine; window.backupDefine = undefined;</script><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@latest/dist/katex.min.css">
<script type="text/javascript">
const typesetMath = (el) => {
if (window.MathJax) {
// MathJax Typeset
window.MathJax.typeset([el]);
} else if (window.katex) {
// KaTeX Render
var mathElements = el.getElementsByClassName("math");
var macros = [];
for (var i = 0; i < mathElements.length; i++) {
var texText = mathElements[i].firstChild;
if (mathElements[i].tagName == "SPAN") {
window.katex.render(texText.data, mathElements[i], {
displayMode: mathElements[i].classList.contains('display'),
throwOnError: false,
macros: macros,
fleqn: false
});
}
}
}
}
window.Quarto = {
typesetMath
};
</script>
</head>
<body class="nav-fixed quarto-light">
<div id="quarto-search-results"></div>
<header id="quarto-header" class="headroom fixed-top quarto-banner">
<nav class="navbar navbar-expand-lg " data-bs-theme="dark">
<div class="navbar-container container-fluid">
<div class="navbar-brand-container mx-auto">
<a class="navbar-brand" href="../../index.html">
<span class="navbar-title">Suivi de la thèse</span>
</a>
</div>
<div id="quarto-search" class="" title="Recherche"></div>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarCollapse" aria-controls="navbarCollapse" role="menu" aria-expanded="false" aria-label="Basculer la navigation" onclick="if (window.quartoToggleHeadroom) { window.quartoToggleHeadroom(); }">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarCollapse">
<ul class="navbar-nav navbar-nav-scroll me-auto">
<li class="nav-item">
<a class="nav-link" href="../../index.html"> <i class="bi bi-journals" role="img">
</i>
<span class="menu-text">Liste des semaines</span></a>
</li>
</ul>
<ul class="navbar-nav navbar-nav-scroll ms-auto">
<li class="nav-item compact">
<a class="nav-link" href="https://git.polarolouis.fr/polarolouis/these-recap-hebdo"> <i class="bi bi-git" role="img" aria-label="Dépôt Git du journal">
</i>
<span class="menu-text"></span></a>
</li>
</ul>
</div> <!-- /navcollapse -->
<div class="quarto-navbar-tools">
</div>
</div> <!-- /container-fluid -->
</nav>
</header>
<!-- content -->
<header id="title-block-header" class="quarto-title-block default page-columns page-full">
<div class="quarto-title-banner page-columns page-full">
<div class="quarto-title column-body">
<h1 class="title">Bilan semaine 9 2026 : 23 février - 27 février</h1>
<div class="quarto-categories">
<div class="quarto-category">colBiSBM</div>
<div class="quarto-category">inférence</div>
<div class="quarto-category">GNN</div>
</div>
</div>
</div>
<div class="quarto-title-meta-author">
<div class="quarto-title-meta-heading">Auteur·rice</div>
<div class="quarto-title-meta-heading">Affiliation</div>
<div class="quarto-title-meta-contents">
<p class="author">Louis Lacoste <a href="mailto:louis.lacoste@agroparistech.fr" class="quarto-title-author-email"><i class="bi bi-envelope"></i></a> <a href="https://orcid.org/0009-0004-0178-9821" class="quarto-title-author-orcid"> <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2ZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo1N0NEMjA4MDI1MjA2ODExOTk0QzkzNTEzRjZEQTg1NyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDozM0NDOEJGNEZGNTcxMUUxODdBOEVCODg2RjdCQ0QwOSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDozM0NDOEJGM0ZGNTcxMUUxODdBOEVCODg2RjdCQ0QwOSIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IE1hY2ludG9zaCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkZDN0YxMTc0MDcyMDY4MTE5NUZFRDc5MUM2MUUwNEREIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjU3Q0QyMDgwMjUyMDY4MTE5OTRDOTM1MTNGNkRBODU3Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+84NovQAAAR1JREFUeNpiZEADy85ZJgCpeCB2QJM6AMQLo4yOL0AWZETSqACk1gOxAQN+cAGIA4EGPQBxmJA0nwdpjjQ8xqArmczw5tMHXAaALDgP1QMxAGqzAAPxQACqh4ER6uf5MBlkm0X4EGayMfMw/Pr7Bd2gRBZogMFBrv01hisv5jLsv9nLAPIOMnjy8RDDyYctyAbFM2EJbRQw+aAWw/LzVgx7b+cwCHKqMhjJFCBLOzAR6+lXX84xnHjYyqAo5IUizkRCwIENQQckGSDGY4TVgAPEaraQr2a4/24bSuoExcJCfAEJihXkWDj3ZAKy9EJGaEo8T0QSxkjSwORsCAuDQCD+QILmD1A9kECEZgxDaEZhICIzGcIyEyOl2RkgwAAhkmC+eAm0TAAAAABJRU5ErkJggg=="></a></p>
</div>
<div class="quarto-title-meta-contents">
<p class="affiliation">
MIA Paris-Saclay, INRAE, AgroParisTech, Université Paris-Saclay
</p>
</div>
</div>
<div class="quarto-title-meta">
<div>
<div class="quarto-title-meta-heading">Date de publication</div>
<div class="quarto-title-meta-contents">
<p class="date">23 février 2026</p>
</div>
</div>
<div>
<div class="quarto-title-meta-heading">Modifié</div>
<div class="quarto-title-meta-contents">
<p class="date-modified">24 février 2026</p>
</div>
</div>
</div>
</header><div id="quarto-content" class="quarto-container page-columns page-rows-contents page-layout-article page-navbar">
<!-- sidebar -->
<!-- margin-sidebar -->
<div id="quarto-margin-sidebar" class="sidebar margin-sidebar">
<nav id="TOC" role="doc-toc" class="toc-active">
<h2 id="toc-title">Sur cette page</h2>
<ul>
<li><a href="#todo-list" id="toc-todo-list" class="nav-link active" data-scroll-target="#todo-list">TODO List</a>
<ul class="collapse">
<li><a href="#inférence-et-microbes" id="toc-inférence-et-microbes" class="nav-link" data-scroll-target="#inférence-et-microbes">Inférence et microbes</a></li>
</ul></li>
<li><a href="#a-discuter" id="toc-a-discuter" class="nav-link" data-scroll-target="#a-discuter">A discuter</a></li>
<li><a href="#biblio-à-faire" id="toc-biblio-à-faire" class="nav-link" data-scroll-target="#biblio-à-faire">Biblio à faire</a></li>
<li><a href="#lectures-en-cours" id="toc-lectures-en-cours" class="nav-link" data-scroll-target="#lectures-en-cours">Lectures en cours 📚</a>
<ul class="collapse">
<li><a href="#hdr-vincent-brault" id="toc-hdr-vincent-brault" class="nav-link" data-scroll-target="#hdr-vincent-brault">HDR Vincent Brault</a></li>
<li><a href="#ot" id="toc-ot" class="nav-link" data-scroll-target="#ot">OT</a></li>
<li><a href="#inférence-de-graphes" id="toc-inférence-de-graphes" class="nav-link" data-scroll-target="#inférence-de-graphes">Inférence de graphes</a></li>
<li><a href="#causalité-1" id="toc-causalité-1" class="nav-link" data-scroll-target="#causalité-1">Causalité</a></li>
<li><a href="#largest-gaps" id="toc-largest-gaps" class="nav-link" data-scroll-target="#largest-gaps">Largest Gaps</a></li>
</ul></li>
</ul>
</nav>
</div>
<!-- main -->
<main class="content quarto-banner-title-block" id="quarto-document-content">
<section id="todo-list" class="level2">
<h2 class="anchored" data-anchor-id="todo-list">TODO List</h2>
<ul>
<li>Petites opérations sur les OTUs (regarder la matrice dans les yeux):
<ul>
<li>Ranger les OTUs par variances (i.e.&nbsp;<code>sd(OTU_j)</code>)
<ul>
<li>HMC sur-dispersés (au-dessus bissectrice)</li>
<li>Enterotype phyloseq sous-disp</li>
</ul></li>
<li>Regarder la proportion de 1. taxon rares, 2. zeros.</li>
<li>Faire des coupures selon niveaux taxonomiques et regarder si <span class="math inline">\mathbb{V}_{\text{intra}} \approx \mathbb{V}_{\text{inter}}</span></li>
<li><em>Bonus</em>: faire ça dans qmd et voir si forge permet gitlab pages</li>
</ul></li>
<li>✅ Avec blockmodels, codé un LBM-Séquentiel. <em>Des différences contrastées…</em>
<ul>
<li>TODO Ajouter lien vers notebooks résultats</li>
</ul></li>
<li>Relire <span class="citation" data-cites="peixotoHierarchicalBlockStructures2014">Peixoto (<a href="#ref-peixotoHierarchicalBlockStructures2014" role="doc-biblioref">2014</a>)</span>
<ul>
<li>Regarder les gens qui citent les travaux de Peixoto</li>
<li>Utiliser graphtools en initialisant la recherche Nested avec le partitionnement donné par larbre phylogénétique.</li>
</ul></li>
<li><strong>En cours</strong> Implémentation <code>blockmodels</code> LBM avec covariables sur proportions (voir <strong>?@eq-modele-covar-prop</strong>)</li>
</ul>
<div class="callout callout-style-default callout-note callout-titled" title="Idées">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
Idées
</div>
</div>
<div class="callout-body-container callout-body">
<ul>
<li>Trouver manière de faire un compromis : <span class="math inline">\ell(Y,Z,W;\theta) - \lambda d(C(W),C_0)</span> avec <span class="math inline">C(W)</span> le clustering seulement sur la base de la structure LBM et <span class="math inline">C_0</span> le clustering de larbre. Problème <span class="math inline">d</span> est une distance entre partition, comment optimiser dessus ?</li>
<li>⌛ Mise à jour partielle des <span class="math inline">\tau</span> : ce qui pose soucis cest les gros calculs matriciels (cest vraiment vrai?). Donc sorte de “stochastic” VEM où on update seulement une partie des <span class="math inline">\tau</span> à chaque itération. Et échantillonnage stratifié selon larbre ?
<ul>
<li>⌛ Simulations avec <span class="math inline">n_2</span> croissant lancée sur Migale</li>
<li>Réimplementé VE Bernoulli dans colSBM pour Bipartite et début implémentation Stochastic VE. En fait le problème des calculs matriciels <span class="math inline">Y\times(\tau^{(1)})^{\top}</span> (<span class="math inline">n_2^2</span>) donc besoin de sous-échantillonner les noeuds de lautre dimension à mettre à jour.</li>
</ul></li>
</ul>
</div>
</div>
<ul>
<li><p>Clustering unipartite jai cassé une fonction de distance à vérifier et réparer</p></li>
<li><p>Codes pour le papier :</p>
<ul>
<li>Nettoyer les scripts</li>
<li>Faire un joli README</li>
<li>❓Faire des notebooks</li>
</ul></li>
<li><p>Réussir à reproduire résultat de <span class="citation" data-cites="abramovStructureKnowsBest">Abramov et al. (<a href="#ref-abramovStructureKnowsBest" role="doc-biblioref">s.&nbsp;d.</a>)</span></p></li>
<li><p>Maitriser graphtools de Peixoto pour essayer dutiliser larbre taxonomique sur graphe de cooccurence inférer par SparCC</p></li>
<li><p>Maitriser SparCC</p></li>
<li><p>👶 (délégué à Mona) Clustering sur Doré :</p>
<ul>
<li>Ajouter Chao1 et 2, colonne par colonne (site par site), et faire indice moyen et la variance.</li>
</ul></li>
</ul>
<section id="inférence-et-microbes" class="level3">
<h3 class="anchored" data-anchor-id="inférence-et-microbes">Inférence et microbes</h3>
<ul>
<li>⌛ (En cours) Possible en modifiant lbm.h et sbm.h dobtenir un modèle utilisant les covariables de groupes (de blocs ?). Car besoin de changer <code>membership.m_step()</code> pour mettre à jour <span class="math inline">\pmb\pi</span> et <span class="math inline">\pmb{\rho}</span> en utilisant les <span class="math inline">\pmb B^{\top}\pmb X</span> et en renvoyant lELBO adaptée.
<ul>
<li><p>😄 Avantage sinscrit directement dans blockmodels et permet davoir toutes les lois démissions déjà codées et compatibles !</p></li>
<li><p>😢 Besoin de réfléchir a une bonne implémentation.</p></li>
</ul></li>
</ul>
<p>Jai codé loptimisation et les transferts mais il faut que je vérifie que tout fonctionne</p>
<ul>
<li>✅ Appliqué multipartite sur <span class="math inline">\forall i, OTU_i \times Sample</span>: <img src="figs/Multipartite.svg" class="img-fluid" alt="Le plot des groupes trouvés par le multipartite (2 pour tous les OTUs et 4 pour les échantillons.)"></li>
</ul>
<section id="bibliographie-à-lire-à-faire" class="level4">
<h4 class="anchored" data-anchor-id="bibliographie-à-lire-à-faire">Bibliographie: à lire, à faire</h4>
<ul>
<li>Lire article multi-niveaux Saint-Clair</li>
<li>🆕 🔎 Trouver des papiers:
<ul>
<li>LBM Negative Binomial</li>
<li>Network inference through sample comparison</li>
</ul></li>
<li>Idée des groupes sur la base de distance phylogénétique:
<ul>
<li>En train de comprendre les distances que phyloseq permet de calculer sur notre exemple</li>
<li>En train de lire sur Principle coordinate analysis : https://openplantpathology.github.io/OPP_Workshop_Multivariate/2-MV_PCO.html</li>
<li>Parametric t-SNE pour avoir une unique représentation latente (inconvénient utilise du Deep Learning)</li>
<li>Lire Papier UniFrac</li>
</ul></li>
</ul>
</section>
<section id="écrire-et-faire-tourner" class="level4">
<h4 class="anchored" data-anchor-id="écrire-et-faire-tourner">Écrire et faire tourner</h4>
<ul>
<li>🆕 SparCC à différent niveaux</li>
<li>🆕⌛ Tree-PLN à différents niveaux</li>
</ul>
</section>
<section id="causalité" class="level4">
<h4 class="anchored" data-anchor-id="causalité">Causalité</h4>
<p>Plus sur le temps long, à regarder</p>
<ul>
<li>GT causalité</li>
<li>Daria Bystrova lire présentation <span class="citation" data-cites="bystrovaCausalDiscovery">Bystrova (<a href="#ref-bystrovaCausalDiscovery" role="doc-biblioref">s.&nbsp;d.</a>)</span> (Meek rules, V-structure)</li>
</ul>
</section>
</section>
</section>
<section id="a-discuter" class="level2">
<h2 class="anchored" data-anchor-id="a-discuter">A discuter</h2>
<ul>
<li>🆕 Voir pour des Réseaux / GDR ou aller</li>
<li>🆕 Chercher des cours à suivre</li>
</ul>
</section>
<section id="biblio-à-faire" class="level2">
<h2 class="anchored" data-anchor-id="biblio-à-faire">Biblio à faire</h2>
<ul>
<li>Regarder Transport optimal graphes bipartite.</li>
</ul>
</section>
<section id="lectures-en-cours" class="level2">
<h2 class="anchored" data-anchor-id="lectures-en-cours">Lectures en cours 📚</h2>
<section id="hdr-vincent-brault" class="level3">
<h3 class="anchored" data-anchor-id="hdr-vincent-brault">HDR Vincent Brault</h3>
<ul>
<li>⌛ Chap 2 : Creuser lidée de maximiser lénergie libre, très intéressant regarder le critère CARI et lire Robert et al 2021. Actuellement p32 du manuscrit</li>
<li>Chap 3</li>
</ul>
</section>
<section id="ot" class="level3">
<h3 class="anchored" data-anchor-id="ot">OT</h3>
<ul>
<li><span class="citation" data-cites="mazeletUnsupervisedLearningOptimal">Mazelet, Flamary, et Thirion (<a href="#ref-mazeletUnsupervisedLearningOptimal" role="doc-biblioref">s.&nbsp;d.</a>)</span> Intéressant pour le transport optimal entre graphes de tailles différentes | Regarder si regularization entropique ne marche pas bien pour le graphe.</li>
<li><span class="citation" data-cites="nennaLecture2Entropic">Nenna (<a href="#ref-nennaLecture2Entropic" role="doc-biblioref">s.&nbsp;d.b</a>)</span> Pour comprendre le problème dOT régularisé pour lentropie.</li>
<li><span class="citation" data-cites="nennaLecture1Monge">Nenna (<a href="#ref-nennaLecture1Monge" role="doc-biblioref">s.&nbsp;d.a</a>)</span></li>
</ul>
</section>
<section id="inférence-de-graphes" class="level3">
<h3 class="anchored" data-anchor-id="inférence-de-graphes">Inférence de graphes</h3>
<ul>
<li><p><span class="citation" data-cites="aitchisonStatisticalAnalysisCompositional1982a">Aitchison (<a href="#ref-aitchisonStatisticalAnalysisCompositional1982a" role="doc-biblioref">1982</a>)</span>, en cours</p></li>
<li><p>❗📖 <span class="citation" data-cites="payneFiniteMixturesMultivariate2023">Payne et al. (<a href="#ref-payneFiniteMixturesMultivariate2023" role="doc-biblioref">2023</a>)</span> sur MixMPLN</p></li>
</ul>
</section>
<section id="causalité-1" class="level3">
<h3 class="anchored" data-anchor-id="causalité-1">Causalité</h3>
<ul>
<li>❗📖 <span class="citation" data-cites="bystrovaCausalDiscovery">Bystrova (<a href="#ref-bystrovaCausalDiscovery" role="doc-biblioref">s.&nbsp;d.</a>)</span></li>
</ul>
</section>
<section id="largest-gaps" class="level3">
<h3 class="anchored" data-anchor-id="largest-gaps">Largest Gaps</h3>
<ul>
<li>❗📖 <span class="citation" data-cites="braultFastConsistentAlgorithm2023">Brault et Channarond (<a href="#ref-braultFastConsistentAlgorithm2023" role="doc-biblioref">2023</a>)</span></li>
<li>❗📖 <span class="citation" data-cites="channarondClassificationEstimationStochastic2012">Channarond, Daudin, et Robin (<a href="#ref-channarondClassificationEstimationStochastic2012" role="doc-biblioref">2012</a>)</span> le papier qui introduit le <em>Largest Gaps</em></li>
</ul>
</section>
</section>
<div id="quarto-appendix" class="default"><section class="quarto-appendix-contents" role="doc-bibliography" id="quarto-bibliography"><h2 class="anchored quarto-appendix-heading">Les références</h2><div id="refs" class="references csl-bib-body hanging-indent" data-entry-spacing="0" role="list">
<div id="ref-abramovStructureKnowsBest" class="csl-entry" role="listitem">
Abramov, Kesem, Barry Biton, Geut Galai, Rami Puzis, et Shai Pilosof. s.&nbsp;d. <span>«&nbsp;Structure Knows Best: Predicting Ecological Interactions Across Space Through Pairwise Integration of Latent Network Patterns&nbsp;»</span>.
</div>
<div id="ref-aitchisonStatisticalAnalysisCompositional1982a" class="csl-entry" role="listitem">
Aitchison, J. 1982. <span>«&nbsp;The <span>Statistical Analysis</span> of <span>Compositional Data</span>&nbsp;»</span>. <em>Journal of the Royal Statistical Society. Series B (Methodological)</em> 44 (2): 13977. <a href="https://www.jstor.org/stable/2345821">https://www.jstor.org/stable/2345821</a>.
</div>
<div id="ref-braultFastConsistentAlgorithm2023" class="csl-entry" role="listitem">
Brault, Vincent, et Antoine Channarond. 2023. <span>«&nbsp;Fast and <span>Consistent Algorithm</span> for the <span>Latent Block Model</span>&nbsp;»</span>. 9 mars 2023. <a href="https://doi.org/10.48550/arXiv.1610.09005">https://doi.org/10.48550/arXiv.1610.09005</a>.
</div>
<div id="ref-bystrovaCausalDiscovery" class="csl-entry" role="listitem">
Bystrova, Daria. s.&nbsp;d. <span>«&nbsp;Causal Discovery&nbsp;»</span>.
</div>
<div id="ref-channarondClassificationEstimationStochastic2012" class="csl-entry" role="listitem">
Channarond, Antoine, Jean-Jacques Daudin, et Stéphane Robin. 2012. <span>«&nbsp;Classification and Estimation in the <span>Stochastic Blockmodel</span> Based on the Empirical Degrees&nbsp;»</span>. <em>Electronic Journal of Statistics</em> 6 (janvier). <a href="https://doi.org/10.1214/12-ejs753">https://doi.org/10.1214/12-ejs753</a>.
</div>
<div id="ref-mazeletUnsupervisedLearningOptimal" class="csl-entry" role="listitem">
Mazelet, Sonia, Rémi Flamary, et Bertrand Thirion. s.&nbsp;d. <span>«&nbsp;Unsupervised <span>Learning</span> for <span>Optimal Transport</span> Plan Prediction Between Unbalanced Graphs&nbsp;»</span>.
</div>
<div id="ref-nennaLecture1Monge" class="csl-entry" role="listitem">
Nenna, Luca. s.&nbsp;d.a. <span>«&nbsp;Lecture 1 <span>Monge</span> and <span>Kantorovich</span> Problems: From Primal to Dual&nbsp;»</span>.
</div>
<div id="ref-nennaLecture2Entropic" class="csl-entry" role="listitem">
———. s.&nbsp;d.b. <span>«&nbsp;Lecture 2: <span>Entropic Optimal Transport</span>&nbsp;»</span>.
</div>
<div id="ref-payneFiniteMixturesMultivariate2023" class="csl-entry" role="listitem">
Payne, Andrea, Anjali Silva, Steven J. Rothstein, Paul D. McNicholas, et Sanjeena Subedi. 2023. <span>«&nbsp;Finite <span>Mixtures</span> of <span>Multivariate Poisson-Log Normal Factor Analyzers</span> for <span>Clustering Count Data</span>&nbsp;»</span>. 13 novembre 2023. <a href="https://doi.org/10.48550/arXiv.2311.07762">https://doi.org/10.48550/arXiv.2311.07762</a>.
</div>
<div id="ref-peixotoHierarchicalBlockStructures2014" class="csl-entry" role="listitem">
Peixoto, Tiago P. 2014. <span>«&nbsp;Hierarchical <span>Block Structures</span> and <span>High-Resolution Model Selection</span> in <span>Large Networks</span>&nbsp;»</span>. <em>Physical Review X</em> 4 (1): 011047. <a href="https://doi.org/10.1103/PhysRevX.4.011047">https://doi.org/10.1103/PhysRevX.4.011047</a>.
</div>
</div></section></div></main> <!-- /main -->
<script id="quarto-html-after-body" type="application/javascript">
window.document.addEventListener("DOMContentLoaded", function (event) {
const icon = "";
const anchorJS = new window.AnchorJS();
anchorJS.options = {
placement: 'right',
icon: icon
};
anchorJS.add('.anchored');
const isCodeAnnotation = (el) => {
for (const clz of el.classList) {
if (clz.startsWith('code-annotation-')) {
return true;
}
}
return false;
}
const onCopySuccess = function(e) {
// button target
const button = e.trigger;
// don't keep focus
button.blur();
// flash "checked"
button.classList.add('code-copy-button-checked');
var currentTitle = button.getAttribute("title");
button.setAttribute("title", "Copié");
let tooltip;
if (window.bootstrap) {
button.setAttribute("data-bs-toggle", "tooltip");
button.setAttribute("data-bs-placement", "left");
button.setAttribute("data-bs-title", "Copié");
tooltip = new bootstrap.Tooltip(button,
{ trigger: "manual",
customClass: "code-copy-button-tooltip",
offset: [0, -8]});
tooltip.show();
}
setTimeout(function() {
if (tooltip) {
tooltip.hide();
button.removeAttribute("data-bs-title");
button.removeAttribute("data-bs-toggle");
button.removeAttribute("data-bs-placement");
}
button.setAttribute("title", currentTitle);
button.classList.remove('code-copy-button-checked');
}, 1000);
// clear code selection
e.clearSelection();
}
const getTextToCopy = function(trigger) {
const codeEl = trigger.previousElementSibling.cloneNode(true);
for (const childEl of codeEl.children) {
if (isCodeAnnotation(childEl)) {
childEl.remove();
}
}
return codeEl.innerText;
}
const clipboard = new window.ClipboardJS('.code-copy-button:not([data-in-quarto-modal])', {
text: getTextToCopy
});
clipboard.on('success', onCopySuccess);
if (window.document.getElementById('quarto-embedded-source-code-modal')) {
const clipboardModal = new window.ClipboardJS('.code-copy-button[data-in-quarto-modal]', {
text: getTextToCopy,
container: window.document.getElementById('quarto-embedded-source-code-modal')
});
clipboardModal.on('success', onCopySuccess);
}
var localhostRegex = new RegExp(/^(?:http|https):\/\/localhost\:?[0-9]*\//);
var mailtoRegex = new RegExp(/^mailto:/);
var filterRegex = new RegExp('/' + window.location.host + '/');
var isInternal = (href) => {
return filterRegex.test(href) || localhostRegex.test(href) || mailtoRegex.test(href);
}
// Inspect non-navigation links and adorn them if external
var links = window.document.querySelectorAll('a[href]:not(.nav-link):not(.navbar-brand):not(.toc-action):not(.sidebar-link):not(.sidebar-item-toggle):not(.pagination-link):not(.no-external):not([aria-hidden]):not(.dropdown-item):not(.quarto-navigation-tool):not(.about-link)');
for (var i=0; i<links.length; i++) {
const link = links[i];
if (!isInternal(link.href)) {
// undo the damage that might have been done by quarto-nav.js in the case of
// links that we want to consider external
if (link.dataset.originalHref !== undefined) {
link.href = link.dataset.originalHref;
}
}
}
function tippyHover(el, contentFn, onTriggerFn, onUntriggerFn) {
const config = {
allowHTML: true,
maxWidth: 500,
delay: 100,
arrow: false,
appendTo: function(el) {
return el.parentElement;
},
interactive: true,
interactiveBorder: 10,
theme: 'quarto',
placement: 'bottom-start',
};
if (contentFn) {
config.content = contentFn;
}
if (onTriggerFn) {
config.onTrigger = onTriggerFn;
}
if (onUntriggerFn) {
config.onUntrigger = onUntriggerFn;
}
window.tippy(el, config);
}
const noterefs = window.document.querySelectorAll('a[role="doc-noteref"]');
for (var i=0; i<noterefs.length; i++) {
const ref = noterefs[i];
tippyHover(ref, function() {
// use id or data attribute instead here
let href = ref.getAttribute('data-footnote-href') || ref.getAttribute('href');
try { href = new URL(href).hash; } catch {}
const id = href.replace(/^#\/?/, "");
const note = window.document.getElementById(id);
if (note) {
return note.innerHTML;
} else {
return "";
}
});
}
const xrefs = window.document.querySelectorAll('a.quarto-xref');
const processXRef = (id, note) => {
// Strip column container classes
const stripColumnClz = (el) => {
el.classList.remove("page-full", "page-columns");
if (el.children) {
for (const child of el.children) {
stripColumnClz(child);
}
}
}
stripColumnClz(note)
if (id === null || id.startsWith('sec-')) {
// Special case sections, only their first couple elements
const container = document.createElement("div");
if (note.children && note.children.length > 2) {
container.appendChild(note.children[0].cloneNode(true));
for (let i = 1; i < note.children.length; i++) {
const child = note.children[i];
if (child.tagName === "P" && child.innerText === "") {
continue;
} else {
container.appendChild(child.cloneNode(true));
break;
}
}
if (window.Quarto?.typesetMath) {
window.Quarto.typesetMath(container);
}
return container.innerHTML
} else {
if (window.Quarto?.typesetMath) {
window.Quarto.typesetMath(note);
}
return note.innerHTML;
}
} else {
// Remove any anchor links if they are present
const anchorLink = note.querySelector('a.anchorjs-link');
if (anchorLink) {
anchorLink.remove();
}
if (window.Quarto?.typesetMath) {
window.Quarto.typesetMath(note);
}
if (note.classList.contains("callout")) {
return note.outerHTML;
} else {
return note.innerHTML;
}
}
}
for (var i=0; i<xrefs.length; i++) {
const xref = xrefs[i];
tippyHover(xref, undefined, function(instance) {
instance.disable();
let url = xref.getAttribute('href');
let hash = undefined;
if (url.startsWith('#')) {
hash = url;
} else {
try { hash = new URL(url).hash; } catch {}
}
if (hash) {
const id = hash.replace(/^#\/?/, "");
const note = window.document.getElementById(id);
if (note !== null) {
try {
const html = processXRef(id, note.cloneNode(true));
instance.setContent(html);
} finally {
instance.enable();
instance.show();
}
} else {
// See if we can fetch this
fetch(url.split('#')[0])
.then(res => res.text())
.then(html => {
const parser = new DOMParser();
const htmlDoc = parser.parseFromString(html, "text/html");
const note = htmlDoc.getElementById(id);
if (note !== null) {
const html = processXRef(id, note);
instance.setContent(html);
}
}).finally(() => {
instance.enable();
instance.show();
});
}
} else {
// See if we can fetch a full url (with no hash to target)
// This is a special case and we should probably do some content thinning / targeting
fetch(url)
.then(res => res.text())
.then(html => {
const parser = new DOMParser();
const htmlDoc = parser.parseFromString(html, "text/html");
const note = htmlDoc.querySelector('main.content');
if (note !== null) {
// This should only happen for chapter cross references
// (since there is no id in the URL)
// remove the first header
if (note.children.length > 0 && note.children[0].tagName === "HEADER") {
note.children[0].remove();
}
const html = processXRef(null, note);
instance.setContent(html);
}
}).finally(() => {
instance.enable();
instance.show();
});
}
}, function(instance) {
});
}
let selectedAnnoteEl;
const selectorForAnnotation = ( cell, annotation) => {
let cellAttr = 'data-code-cell="' + cell + '"';
let lineAttr = 'data-code-annotation="' + annotation + '"';
const selector = 'span[' + cellAttr + '][' + lineAttr + ']';
return selector;
}
const selectCodeLines = (annoteEl) => {
const doc = window.document;
const targetCell = annoteEl.getAttribute("data-target-cell");
const targetAnnotation = annoteEl.getAttribute("data-target-annotation");
const annoteSpan = window.document.querySelector(selectorForAnnotation(targetCell, targetAnnotation));
const lines = annoteSpan.getAttribute("data-code-lines").split(",");
const lineIds = lines.map((line) => {
return targetCell + "-" + line;
})
let top = null;
let height = null;
let parent = null;
if (lineIds.length > 0) {
//compute the position of the single el (top and bottom and make a div)
const el = window.document.getElementById(lineIds[0]);
top = el.offsetTop;
height = el.offsetHeight;
parent = el.parentElement.parentElement;
if (lineIds.length > 1) {
const lastEl = window.document.getElementById(lineIds[lineIds.length - 1]);
const bottom = lastEl.offsetTop + lastEl.offsetHeight;
height = bottom - top;
}
if (top !== null && height !== null && parent !== null) {
// cook up a div (if necessary) and position it
let div = window.document.getElementById("code-annotation-line-highlight");
if (div === null) {
div = window.document.createElement("div");
div.setAttribute("id", "code-annotation-line-highlight");
div.style.position = 'absolute';
parent.appendChild(div);
}
div.style.top = top - 2 + "px";
div.style.height = height + 4 + "px";
div.style.left = 0;
let gutterDiv = window.document.getElementById("code-annotation-line-highlight-gutter");
if (gutterDiv === null) {
gutterDiv = window.document.createElement("div");
gutterDiv.setAttribute("id", "code-annotation-line-highlight-gutter");
gutterDiv.style.position = 'absolute';
const codeCell = window.document.getElementById(targetCell);
const gutter = codeCell.querySelector('.code-annotation-gutter');
gutter.appendChild(gutterDiv);
}
gutterDiv.style.top = top - 2 + "px";
gutterDiv.style.height = height + 4 + "px";
}
selectedAnnoteEl = annoteEl;
}
};
const unselectCodeLines = () => {
const elementsIds = ["code-annotation-line-highlight", "code-annotation-line-highlight-gutter"];
elementsIds.forEach((elId) => {
const div = window.document.getElementById(elId);
if (div) {
div.remove();
}
});
selectedAnnoteEl = undefined;
};
// Handle positioning of the toggle
window.addEventListener(
"resize",
throttle(() => {
elRect = undefined;
if (selectedAnnoteEl) {
selectCodeLines(selectedAnnoteEl);
}
}, 10)
);
function throttle(fn, ms) {
let throttle = false;
let timer;
return (...args) => {
if(!throttle) { // first call gets through
fn.apply(this, args);
throttle = true;
} else { // all the others get throttled
if(timer) clearTimeout(timer); // cancel #2
timer = setTimeout(() => {
fn.apply(this, args);
timer = throttle = false;
}, ms);
}
};
}
// Attach click handler to the DT
const annoteDls = window.document.querySelectorAll('dt[data-target-cell]');
for (const annoteDlNode of annoteDls) {
annoteDlNode.addEventListener('click', (event) => {
const clickedEl = event.target;
if (clickedEl !== selectedAnnoteEl) {
unselectCodeLines();
const activeEl = window.document.querySelector('dt[data-target-cell].code-annotation-active');
if (activeEl) {
activeEl.classList.remove('code-annotation-active');
}
selectCodeLines(clickedEl);
clickedEl.classList.add('code-annotation-active');
} else {
// Unselect the line
unselectCodeLines();
clickedEl.classList.remove('code-annotation-active');
}
});
}
const findCites = (el) => {
const parentEl = el.parentElement;
if (parentEl) {
const cites = parentEl.dataset.cites;
if (cites) {
return {
el,
cites: cites.split(' ')
};
} else {
return findCites(el.parentElement)
}
} else {
return undefined;
}
};
var bibliorefs = window.document.querySelectorAll('a[role="doc-biblioref"]');
for (var i=0; i<bibliorefs.length; i++) {
const ref = bibliorefs[i];
const citeInfo = findCites(ref);
if (citeInfo) {
tippyHover(citeInfo.el, function() {
var popup = window.document.createElement('div');
citeInfo.cites.forEach(function(cite) {
var citeDiv = window.document.createElement('div');
citeDiv.classList.add('hanging-indent');
citeDiv.classList.add('csl-entry');
var biblioDiv = window.document.getElementById('ref-' + cite);
if (biblioDiv) {
citeDiv.innerHTML = biblioDiv.innerHTML;
}
popup.appendChild(citeDiv);
});
return popup.innerHTML;
});
}
}
});
</script>
</div> <!-- /content -->
</body></html>

File diff suppressed because it is too large Load diff

After

Width:  |  Height:  |  Size: 7.5 MiB