Deploy site [CI SKIP]

This commit is contained in:
Woodpecker CI 2025-06-10 10:01:55 +00:00
parent f30a6294ca
commit 86f52bbafa
4 changed files with 942 additions and 54 deletions

View file

@ -180,7 +180,7 @@ window.Quarto = {
<!-- margin-sidebar -->
<div id="quarto-margin-sidebar" class="sidebar margin-sidebar">
<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">(10)</span></div><div class="category" data-category="Y29sQmlTQk0=">colBiSBM <span class="quarto-category-count">(10)</span></div><div class="category" data-category="R05O">GNN <span class="quarto-category-count">(3)</span></div><div class="category" data-category="aW5mJUMzJUE5cmVuY2U=">inférence <span class="quarto-category-count">(5)</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">(11)</span></div><div class="category" data-category="Y29sQmlTQk0=">colBiSBM <span class="quarto-category-count">(11)</span></div><div class="category" data-category="R05O">GNN <span class="quarto-category-count">(4)</span></div><div class="category" data-category="aW5mJUMzJUE5cmVuY2U=">inférence <span class="quarto-category-count">(6)</span></div></div></div>
<!-- main -->
<main class="content" id="quarto-document-content">
@ -210,7 +210,7 @@ window.Quarto = {
<div>
<div class="quarto-title-meta-heading">Date de publication</div>
<div class="quarto-title-meta-contents">
<p class="date">28 mai 2025</p>
<p class="date">10 juin 2025</p>
</div>
</div>
@ -228,7 +228,42 @@ window.Quarto = {
<div class="quarto-listing quarto-listing-container-default" id="listing-listing">
<div class="list quarto-listing-default">
<div class="quarto-post image-right" data-index="0" data-categories="Y29sQmlTQk0lMkNpbmYlQzMlQTlyZW5jZSUyQ0dOTg==" data-listing-date-sort="1748390400000" data-listing-file-modified-sort="1748439479467" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="4" data-listing-word-count-sort="785">
<div class="quarto-post image-right" data-index="0" data-categories="Y29sQmlTQk0lMkNpbmYlQzMlQTlyZW5jZSUyQ0dOTg==" data-listing-date-sort="1749772800000" data-listing-file-modified-sort="1749549668920" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="5" data-listing-word-count-sort="807">
<div class="thumbnail"><a href="./suivi/2025-24/2025-24.html" class="no-external">
<div class="listing-item-img-placeholder card-img-top" >&nbsp;</div>
</a></div>
<div class="body">
<h3 class="no-anchor listing-title">
<a href="./suivi/2025-24/2025-24.html" class="no-external">Bilan semaine 24 2025 : 10 juin - 13 juin</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/2025-24/2025-24.html" class="no-external">
Pour clustering de collections sur données réelles :<br>
→ Lintuition de Pierre semble être confirmé, les dissimilarités semblent arrêter de varier sensiblement pour de grandes…<span class="math inline"></span>
</a></div>
</div>
<div class="metadata">
<a href="./suivi/2025-24/2025-24.html" class="no-external">
<div class="listing-date">
13 juin 2025
</div>
<div class="listing-author">
Louis Lacoste
</div>
</a>
</div>
</div>
<div class="quarto-post image-right" data-index="1" data-categories="Y29sQmlTQk0lMkNpbmYlQzMlQTlyZW5jZSUyQ0dOTg==" data-listing-date-sort="1748390400000" data-listing-file-modified-sort="1749549668920" data-listing-date-modified-sort="NaN" 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>
@ -263,7 +298,7 @@ Louis Lacoste
</a>
</div>
</div>
<div class="quarto-post image-right" data-index="1" data-categories="Y29sQmlTQk0lMkNpbmYlQzMlQTlyZW5jZSUyQ0dOTg==" data-listing-date-sort="1747958400000" data-listing-file-modified-sort="1748439479466" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="5" data-listing-word-count-sort="919">
<div class="quarto-post image-right" data-index="2" data-categories="Y29sQmlTQk0lMkNpbmYlQzMlQTlyZW5jZSUyQ0dOTg==" data-listing-date-sort="1747958400000" data-listing-file-modified-sort="1749549668919" data-listing-date-modified-sort="NaN" 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>
@ -297,7 +332,7 @@ Louis Lacoste
</a>
</div>
</div>
<div class="quarto-post image-right" data-index="2" data-categories="Y29sQmlTQk0lMkNpbmYlQzMlQTlyZW5jZSUyQ0dOTg==" data-listing-date-sort="1747353600000" data-listing-file-modified-sort="1748439479466" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="6" data-listing-word-count-sort="1030">
<div class="quarto-post image-right" data-index="3" data-categories="Y29sQmlTQk0lMkNpbmYlQzMlQTlyZW5jZSUyQ0dOTg==" data-listing-date-sort="1747353600000" data-listing-file-modified-sort="1749549668919" data-listing-date-modified-sort="NaN" 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>
@ -331,7 +366,7 @@ Louis Lacoste
</a>
</div>
</div>
<div class="quarto-post image-right" data-index="3" data-categories="Y29sQmlTQk0lMkNpbmYlQzMlQTlyZW5jZQ==" data-listing-date-sort="1746748800000" data-listing-file-modified-sort="1748439479466" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="5" data-listing-word-count-sort="814">
<div class="quarto-post image-right" data-index="4" data-categories="Y29sQmlTQk0lMkNpbmYlQzMlQTlyZW5jZQ==" data-listing-date-sort="1746748800000" data-listing-file-modified-sort="1749549668919" data-listing-date-modified-sort="NaN" 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>
@ -363,7 +398,7 @@ Louis Lacoste
</a>
</div>
</div>
<div class="quarto-post image-right" data-index="4" data-categories="Y29sQmlTQk0lMkNpbmYlQzMlQTlyZW5jZQ==" data-listing-date-sort="1746144000000" data-listing-file-modified-sort="1748439479465" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="3" data-listing-word-count-sort="521">
<div class="quarto-post image-right" data-index="5" data-categories="Y29sQmlTQk0lMkNpbmYlQzMlQTlyZW5jZQ==" data-listing-date-sort="1746144000000" data-listing-file-modified-sort="1749549668918" data-listing-date-modified-sort="NaN" 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>
@ -395,7 +430,7 @@ Louis Lacoste
</a>
</div>
</div>
<div class="quarto-post image-right" data-index="5" data-categories="Y29sQmlTQk0=" data-listing-date-sort="1745539200000" data-listing-file-modified-sort="1748439479375" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="4" data-listing-word-count-sort="714">
<div class="quarto-post image-right" data-index="6" data-categories="Y29sQmlTQk0=" data-listing-date-sort="1745539200000" data-listing-file-modified-sort="1749549668909" data-listing-date-modified-sort="NaN" 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>
@ -425,7 +460,7 @@ Louis Lacoste
</a>
</div>
</div>
<div class="quarto-post image-right" data-index="6" data-categories="Y29sQmlTQk0=" data-listing-date-sort="1744934400000" data-listing-file-modified-sort="1748439479349" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="2" data-listing-word-count-sort="352">
<div class="quarto-post image-right" data-index="7" data-categories="Y29sQmlTQk0=" data-listing-date-sort="1744934400000" data-listing-file-modified-sort="1749549668908" data-listing-date-modified-sort="NaN" 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>
@ -455,7 +490,7 @@ Louis Lacoste
</a>
</div>
</div>
<div class="quarto-post image-right" data-index="7" data-categories="Y29sQmlTQk0=" data-listing-date-sort="1743724800000" data-listing-file-modified-sort="1748439479346" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="2" data-listing-word-count-sort="353">
<div class="quarto-post image-right" data-index="8" data-categories="Y29sQmlTQk0=" data-listing-date-sort="1743724800000" data-listing-file-modified-sort="1749549668906" data-listing-date-modified-sort="NaN" 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>
@ -485,7 +520,7 @@ Louis Lacoste
</a>
</div>
</div>
<div class="quarto-post image-right" data-index="8" data-categories="Y29sQmlTQk0=" data-listing-date-sort="1743120000000" data-listing-file-modified-sort="1748439479344" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="3" data-listing-word-count-sort="413">
<div class="quarto-post image-right" data-index="9" data-categories="Y29sQmlTQk0=" data-listing-date-sort="1743120000000" data-listing-file-modified-sort="1749549668906" data-listing-date-modified-sort="NaN" 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>
@ -515,7 +550,7 @@ Louis Lacoste
</a>
</div>
</div>
<div class="quarto-post image-right" data-index="9" data-categories="Y29sQmlTQk0=" data-listing-date-sort="1742169600000" data-listing-file-modified-sort="1748439479325" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="3" data-listing-word-count-sort="426">
<div class="quarto-post image-right" data-index="10" data-categories="Y29sQmlTQk0=" data-listing-date-sort="1742169600000" data-listing-file-modified-sort="1749549668899" data-listing-date-modified-sort="NaN" 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 src="suivi/2025-13/figs/baldock_meso_iid.png" class="thumbnail-image card-img"/></p>

View file

@ -2,6 +2,7 @@
{
"listing": "/index.html",
"items": [
"/suivi/2025-24/2025-24.html",
"/suivi/2025-22/2025-22.html",
"/suivi/2025-21/2025-21.html",
"/suivi/2025-20/2025-20.html",

View file

@ -112,46 +112,67 @@
"text": "A continuer\n\nRésultats simus NA Erreur pour certaines conditions : Pour NA robustness générer nb_rep collections de taille M=2 et prélever \\epsilon_{max}n_r n_c liens à retirer puis pour les \\epsilon &lt; \\epsilon_{max} prélever dans la liste des indices afin davoir des perturbations emboitées. Il faut que jajoute un mécanisme pour reprendre des conditions qui ont plantés et que je skip dans le future_lapply les conditions déjà traitées (pour avoir la même seed quand je vais exécuter le code). Implémenté les missing steps en attente des résultats MIGALE.\nPour sub doré en attente MIGALE augmenter le nbre de répèt de la procédure."
},
{
"objectID": "suivi/2025-18/2025-18.html",
"href": "suivi/2025-18/2025-18.html",
"title": "Bilan semaine 18 2025 : 28 avril - 2 mai",
"objectID": "suivi/2025-24/2025-24.html",
"href": "suivi/2025-24/2025-24.html",
"title": "Bilan semaine 24 2025 : 10 juin - 13 juin",
"section": "",
"text": "Lire biblio fournie Julie, Inférence de réseaux : co-occurence\nPapier pour comprendre données\npbs : variance, bcp de zero, covariables, offset et taxonomie (Reseaux arretes differents niveaux : Genre, OTU …)\n\n\nCombine networks at different taxonomic levels\n\n\nInférence + GREMLINS\n\n\n\n\n\nRelire intro St Clair\nSinspirer structure pour mon intro\nTrouver biblio intro\nRédiger lintro\nRegarder les applications pour les collections de réseaux recommender system\nLire les papiers de Baldock Traveset Souza Cordeniz Trojelsgaard et Gibson\nDire résultats nettement meilleurs et variabilités inférieures.\nIntégrer les retours de Sophie\n\n\n\n\n\nComparer sur clustering unipartite avec versions symétriser des par blocs des matrices dadjacences.\nCorriger structure de simus :\n\nPour noisy \\alpha :\n\nLogit pour envoyer la gaussienne vers (0,1)\nBeta contrainte dans (0,1)\n\nPour noisy links : Générer nb_clustering collections de taille M puis prélever \\epsilon_{max}n_r n_c liens à inverser puis pour les \\epsilon &lt; \\epsilon_{max} prélever dans la liste des indices afin davoir des perturbations emboitées.\n\n\n\n\n\n\nKmeans sur la densité des réseaux subdoré pour pré-partitionner et clusteriser. Car densités déséquilibrées.\n\n\n\n\n\n\nCréer des vignettes illustrant par exemple des cas de simulations. Possible de mettre lexemple dapplication de Sophie sur les réseaux avec gradient durbanisation."
"text": "Pour clustering de collections sur données réelles :\n→ Lintuition de Pierre semble être confirmé, les dissimilarités semblent arrêter de varier sensiblement pour de grandes valeurs (Q_1,Q_2).\n\nFaire le hclust avec diverses distances et voir si les coupes proposées diffèrent sensiblement\nSi plusieurs clustering possibles les tester et sélectionner le meilleur\nRé-ajuster les bonnes partitions.\n▶ Je commence à coder ça\n\nIdée de Sophie : alterner descendant et ascendant → prometteur aussi\n\nJai codé le fichier de simulations et débugguer le vecteur de clustering ▶️ à voir les performances.\n\nPour les deux propositions données simulées tester diverses distances.\nDé-bugger les simulations :\n\nInférence : Relancer simus dinférence avec n = 240 pour voir si la qualité augmenter (se rassurer). En fait on est déjà à 240, jai relancé avec M = 4 au lieu de M = 2. En attente résultats MIGALE -&gt; BUG, dois creuser mais juste des problèmes techniques -&gt; Visiblement il y a dautres problèmes que juste le plan de parallélisation.\n\nVérifier si problème de version tidyverse pour vapply sur linférence.\nSi problème de parallélisation vient de pb de version future.callr le signaler à MIGALE.\n\n\n\n\nKmeans sur la densité des réseaux subdoré pour pré-partitionner et clusteriser. Car densités déséquilibrées.\n\n\n\n\n\nFaire GNN-VAE Doré et sub-Doré avec kmeans et clustering sur lespace latent Jai commencé à regarder un peu\n\n\n\nReference 1\n\n\n\n\nComparer les perfs du VAE sur Baldock avec colBiSBM par exemple\n\n\n\n\n\nLancer colBiSBM sur OTU\\times Sample → problème du chargement en mémoire des données à voir\nSe renseigner techniques dinférence de réseaux :\n\ncovariance (base corrélation et seuil)\nGraphicalLASSO\nCo-occurence\n\nLancer colSBM sur OTU\\times OTU\nCreuser TabNet de Christophe Regouby et les exercices\nRegarder SPARTA Rennes\nLire Papiers compositional data (Aitchison et al. intro)\nLire article multi-niveaux Saint-Clair\nDemander à JA si elle connaît des réseaux dinteractions connus par les experts (idée dintégrer une connaissance experte et de voir les différences de structure par rapport à celle attendue)\nEcrire et étudier les modèles pour différents niveaux taxonomiques. \\begin{align*}\ni \\rightarrow &~N^1_i \\subseteq N^2_i \\subseteq N^3_i & \\text{Taxonomie}\\\\\nZ^0_i \\overset{?}{=} & Z^1_i \\overset{?}{=} Z^2_i \\overset{?}{=} Z^3_i & \\text{Groupes fonctionnels}\n\\end{align*}"
},
{
"objectID": "suivi/2025-18/2025-18.html#a-faire",
"href": "suivi/2025-18/2025-18.html#a-faire",
"title": "Bilan semaine 18 2025 : 28 avril - 2 mai",
"objectID": "suivi/2025-24/2025-24.html#todo-list",
"href": "suivi/2025-24/2025-24.html#todo-list",
"title": "Bilan semaine 24 2025 : 10 juin - 13 juin",
"section": "",
"text": "Lire biblio fournie Julie, Inférence de réseaux : co-occurence\nPapier pour comprendre données\npbs : variance, bcp de zero, covariables, offset et taxonomie (Reseaux arretes differents niveaux : Genre, OTU …)\n\n\nCombine networks at different taxonomic levels\n\n\nInférence + GREMLINS\n\n\n\n\n\nRelire intro St Clair\nSinspirer structure pour mon intro\nTrouver biblio intro\nRédiger lintro\nRegarder les applications pour les collections de réseaux recommender system\nLire les papiers de Baldock Traveset Souza Cordeniz Trojelsgaard et Gibson\nDire résultats nettement meilleurs et variabilités inférieures.\nIntégrer les retours de Sophie\n\n\n\n\n\nComparer sur clustering unipartite avec versions symétriser des par blocs des matrices dadjacences.\nCorriger structure de simus :\n\nPour noisy \\alpha :\n\nLogit pour envoyer la gaussienne vers (0,1)\nBeta contrainte dans (0,1)\n\nPour noisy links : Générer nb_clustering collections de taille M puis prélever \\epsilon_{max}n_r n_c liens à inverser puis pour les \\epsilon &lt; \\epsilon_{max} prélever dans la liste des indices afin davoir des perturbations emboitées.\n\n\n\n\n\n\nKmeans sur la densité des réseaux subdoré pour pré-partitionner et clusteriser. Car densités déséquilibrées.\n\n\n\n\n\n\nCréer des vignettes illustrant par exemple des cas de simulations. Possible de mettre lexemple dapplication de Sophie sur les réseaux avec gradient durbanisation."
"text": "Pour clustering de collections sur données réelles :\n→ Lintuition de Pierre semble être confirmé, les dissimilarités semblent arrêter de varier sensiblement pour de grandes valeurs (Q_1,Q_2).\n\nFaire le hclust avec diverses distances et voir si les coupes proposées diffèrent sensiblement\nSi plusieurs clustering possibles les tester et sélectionner le meilleur\nRé-ajuster les bonnes partitions.\n▶ Je commence à coder ça\n\nIdée de Sophie : alterner descendant et ascendant → prometteur aussi\n\nJai codé le fichier de simulations et débugguer le vecteur de clustering ▶️ à voir les performances.\n\nPour les deux propositions données simulées tester diverses distances.\nDé-bugger les simulations :\n\nInférence : Relancer simus dinférence avec n = 240 pour voir si la qualité augmenter (se rassurer). En fait on est déjà à 240, jai relancé avec M = 4 au lieu de M = 2. En attente résultats MIGALE -&gt; BUG, dois creuser mais juste des problèmes techniques -&gt; Visiblement il y a dautres problèmes que juste le plan de parallélisation.\n\nVérifier si problème de version tidyverse pour vapply sur linférence.\nSi problème de parallélisation vient de pb de version future.callr le signaler à MIGALE.\n\n\n\n\nKmeans sur la densité des réseaux subdoré pour pré-partitionner et clusteriser. Car densités déséquilibrées.\n\n\n\n\n\nFaire GNN-VAE Doré et sub-Doré avec kmeans et clustering sur lespace latent Jai commencé à regarder un peu\n\n\n\nReference 1\n\n\n\n\nComparer les perfs du VAE sur Baldock avec colBiSBM par exemple\n\n\n\n\n\nLancer colBiSBM sur OTU\\times Sample → problème du chargement en mémoire des données à voir\nSe renseigner techniques dinférence de réseaux :\n\ncovariance (base corrélation et seuil)\nGraphicalLASSO\nCo-occurence\n\nLancer colSBM sur OTU\\times OTU\nCreuser TabNet de Christophe Regouby et les exercices\nRegarder SPARTA Rennes\nLire Papiers compositional data (Aitchison et al. intro)\nLire article multi-niveaux Saint-Clair\nDemander à JA si elle connaît des réseaux dinteractions connus par les experts (idée dintégrer une connaissance experte et de voir les différences de structure par rapport à celle attendue)\nEcrire et étudier les modèles pour différents niveaux taxonomiques. \\begin{align*}\ni \\rightarrow &~N^1_i \\subseteq N^2_i \\subseteq N^3_i & \\text{Taxonomie}\\\\\nZ^0_i \\overset{?}{=} & Z^1_i \\overset{?}{=} Z^2_i \\overset{?}{=} Z^3_i & \\text{Groupes fonctionnels}\n\\end{align*}"
},
{
"objectID": "suivi/2025-18/2025-18.html#jai-fait",
"href": "suivi/2025-18/2025-18.html#jai-fait",
"title": "Bilan semaine 18 2025 : 28 avril - 2 mai",
"section": "Jai fait",
"text": "Jai fait\n\nJdS\n\ncolDEM CSE\n\n\n\nClustering exhaustif Baldock\n\nLe clustering de toutes les 52 partitions sest fait en 5h30 ! (Mémoïsation)\nPour iid la meilleure partition avec BICL=-9466.911 contre BICL_{algo} = -9466.873 \\pm 0.02205 trouvé avec lalgo \nPour \\pi\\rho la meilleure partition avec BICL = -9497.92 contre BICL_{algo} =-9497.92 \\pm 0.00009"
"objectID": "suivi/2025-24/2025-24.html#a-discuter",
"href": "suivi/2025-24/2025-24.html#a-discuter",
"title": "Bilan semaine 24 2025 : 10 juin - 13 juin",
"section": "A discuter",
"text": "A discuter\n\nInférence\n\nPapier pour comprendre données\n\nFaust et al.\nAbdill et al.\nBashan et al.\n\npbs : variance, bcp de zero, covariables, offset et taxonomie (Reseaux arretes differents niveaux : Genre, OTU …)\n\n\nCombine networks at different taxonomic levels\n\n\nInférence + GREMLINS\n\n\n\nRédaction article\n\nRelire intro St Clair\nSinspirer structure pour mon intro\nTrouver biblio intro\nRédiger lintro\nDire résultats nettement meilleurs et variabilités inférieures."
},
{
"objectID": "suivi/2025-18/2025-18.html#a-continuer",
"href": "suivi/2025-18/2025-18.html#a-continuer",
"title": "Bilan semaine 18 2025 : 28 avril - 2 mai",
"objectID": "suivi/2025-24/2025-24.html#a-continuer",
"href": "suivi/2025-24/2025-24.html#a-continuer",
"title": "Bilan semaine 24 2025 : 10 juin - 13 juin",
"section": "A continuer",
"text": "A continuer\n\nRésultats simus NA Erreur pour certaines conditions : Pour NA robustness générer nb_rep collections de taille M=2 et prélever \\epsilon_{max}n_r n_c liens à retirer puis pour les \\epsilon &lt; \\epsilon_{max} prélever dans la liste des indices afin davoir des perturbations emboitées. Il faut que jajoute un mécanisme pour reprendre des conditions qui ont plantés et que je skip dans le future_lapply les conditions déjà traitées (pour avoir la même seed quand je vais exécuter le code). Implémenté les missing steps en attente des résultats MIGALE.\nLire Biological Networks - François Képès\nRelancer simus dinférence avec n = 240 pour voir si la qualité augmenter (se rassurer). En fait on est déjà à 240, jai relancé avec M = 4 au lieu de M = 2. En attente résultats MIGALE\n\n\nApplications\n\nIdée Sophie: Regarder clustering de données plantes-pollinisateur selon gradient durbanisation\n\n\nSophie a fait une appli qui marche bien et va dans le sens de lanalyse faite (à savoir pas deffet du gradien durbanisation). À continuer pour lintégrer dans larticle !\n\n\n\nSimulations article\n\nRelancer simulations de clustering avec M = 30 où M_i = 10, \\forall i. En attente retour MIGALE Relancer simus clustering avec VEM steps = 10 000 et plus nombreux init pour spectral. Ajouter simu clustering métriques nb sous-collections obtenues. Vérifier les résultats obtenus si ARI = 0. Et augmenter la taille M = 30 avec M_1 = M_2 = M_3 = 10."
"text": "A continuer\n\nApplications\n\nIdée Sophie: Regarder clustering de données plantes-pollinisateur selon gradient durbanisation\n\n\nSophie a fait une appli qui marche bien et va dans le sens de lanalyse faite (à savoir pas deffet du gradien durbanisation). À continuer pour lintégrer dans larticle !\n\n\n\nAxe inférence\n\nLire biblio fournie Julie, Inférence de réseaux : co-occurence\n\n\nJai lu Faust et al.  Je lis Abdill et al."
},
{
"objectID": "suivi/2025-13/2025-13.html",
"href": "suivi/2025-13/2025-13.html",
"title": "Bilan semaine 13 2025 : 17-21 mars",
"section": "",
"text": "Cette semaine jai :\n\nFini dintégrer à colSBM tous les changements (clustering dérecursifier pour uni et bipartites& cli …) et contacter Saint-Clair pour passer colSBM sous GrossSBM.\nRelancer et obtenus les résultats pour le clustering sur les réseaux Baldock\n\n\n\n\nBaldock iid\n\n\n\n\n\nBaldock pi\n\n\n\n\n\nBaldock rho\n\n\n\n\n\nBaldock pirho\n\n\n\nRelancer et obtenus les résultats pour les simus ajoutant du bruits sur les structures et liens\n\nPour noisy \\alpha:\n\nPlan de simulation 2 collections (d\\in (1,2)) avec M = 30 soit 15 réseaux par type. n_r = n_c = 120 et \\pi_1 = \\begin{pmatrix} 0.5, 0.3, 0.2\\end{pmatrix},~\n \\rho_1 = \\begin{pmatrix}0.4, 0.3, 0.2, 0.1\\end{pmatrix},~\n \\alpha_1 = \\begin{pmatrix}\n 0.85& 0.4& 0.2& 0.15\\\\\n 0.6& 0.2& 0.15& 0.15\\\\\n 0.2& 0.15& 0.15& 0.7\n \\end{pmatrix}\n \\pi_2 = (0.5, 0.3, 0.2),~\n \\rho_2 = (0.45, 0.3, 0.25),~\n \\alpha_2 = \\begin{pmatrix}\n 0.65& 0.15& 0.15\\\\\n 0.15& 0.8& 0.15\\\\\n 0.15& 0.15& 0.4\n \\end{pmatrix}\n\\epsilon \\in (0, 0.01, \\dots 0.05) qui est lécart-type dune \\mathcal{N}_{Q_1^d \\times Q_2^d}(0,\\epsilon^2) = vec(N^m), \\forall m \\in (1,\\dots, M). Et \\forall m, X^m \\sim LBM_{n_r,n_c}(Q_1^d, Q_2^d, \\alpha_d + N^m, \\pi_d, \\rho_d)\nRésultats : \n\nPour noisy links:\n\nPlan de simu M = 30, n_r = n_c = 120. \\pi_1 = \\begin{pmatrix} 0.5, 0.3, 0.2\\end{pmatrix},~\n \\rho_1 = \\begin{pmatrix}0.4, 0.3, 0.2, 0.1\\end{pmatrix},~\n \\alpha_1 = \\begin{pmatrix}\n 0.85& 0.4& 0.2& 0.05\\\\\n 0.6& 0.2& 0.05& 0.05\\\\\n 0.2& 0.05& 0.05& 0.7\n \\end{pmatrix}\n \\pi_2 = (0.5, 0.3, 0.2),~\n \\rho_2 = (0.45, 0.3, 0.25),~\n \\alpha_2 = \\begin{pmatrix}\n 0.65& 0.05& 0.05\\\\\n 0.05& 0.8& 0.05\\\\\n 0.05& 0.05& 0.4\n \\end{pmatrix}\n\\epsilon \\in (0, 0.05, \\dots 0.5), indices de la matrice = sample.int(n_r \\times n_c, size = n_r \\times n_c \\times \\epsilon). Les indices tirés inverse la valeur du lien (1 -&gt; 0, 0 -&gt; 1)\n\n\n\n\n\n\n\n\n\nClear links\n\n\n\n\n\n\n\nNoisy links\n\n\n\n\n\n\nFigure 1\n\n\n\n\nRelancer simulations robustesse aux NAs\nChanger les plots résultats NAs pour faire sous-plots comparant sep vs model."
"objectID": "suivi/2025-24/2025-24.html#repoussés-ou-abandonnés",
"href": "suivi/2025-24/2025-24.html#repoussés-ou-abandonnés",
"title": "Bilan semaine 24 2025 : 10 juin - 13 juin",
"section": "Repoussés ou abandonnés",
"text": "Repoussés ou abandonnés\n\n\n\n\n\n\nDéplier pour voir\n\n\n\n\n\n\nRésultats simus NA Erreur pour certaines conditions : Pour NA robustness générer nb_rep collections de taille M=2 et prélever \\epsilon_{max}n_r n_c liens à retirer puis pour les \\epsilon &lt; \\epsilon_{max} prélever dans la liste des indices afin davoir des perturbations emboitées. Il faut que jajoute un mécanisme pour reprendre des conditions qui ont plantés et que je skip dans le future_lapply les conditions déjà traitées (pour avoir la même seed quand je vais exécuter le code). Implémenté les missing steps.\n\n\nJe narrive pas à comprendre les erreurs qui arrivent\n\n\nLire Biological Networks - François Képès\nRegarder les applications pour les collections de réseaux recommender system Pas pertinents et trop gros\n\n\n\n\nListing 1: Recommender systems data\n\n\nPar exemple :\n\nListe de recommendation data\n\n\n\n\n\nPapier plus multi-applications\n\nDonnées dElisa herbivore ?\nDonnées urbanisations ?\n\n\n\nAutour de larticle et du package\n\nCréer des vignettes illustrant par exemple des cas de simulations. Possible de mettre lexemple dapplication de Sophie sur les réseaux avec gradient durbanisation.\n\n\n\nSimulations article\n\nComparer sur clustering unipartite avec versions symétriser des par blocs des matrices dadjacences.\nCorriger structure de simus :\n\nPour noisy \\alpha :\n\nLogit pour envoyer la gaussienne vers (0,1)\nBeta contrainte dans (0,1)\n\nPour noisy links : Générer nb_clustering collections de taille M puis prélever \\epsilon_{max}n_r n_c liens à inverser puis pour les \\epsilon &lt; \\epsilon_{max} prélever dans la liste des indices afin davoir des perturbations emboitées."
},
{
"objectID": "index.html",
"href": "index.html",
"title": "Journal suivi de la thèse",
"objectID": "suivi/2025-17/2025-17.html",
"href": "suivi/2025-17/2025-17.html",
"title": "Bilan semaine 17 2025 : 24 avril - 25 avril",
"section": "",
"text": "Bilan semaine 22 2025 : 26 mai - 30 mai\n\n\n\ncolBiSBM\n\ninférence\n\nGNN\n\n\n\n\n\n\n\n\n\n28 mai 2025\n\n\nLouis Lacoste\n\n\n\n\n\n\n\n\n\n\n\n\nBilan semaine 21 2025 : 26 mai - 30 mai\n\n\n\ncolBiSBM\n\ninférence\n\nGNN\n\n\n\n\n\n\n\n\n\n23 mai 2025\n\n\nLouis Lacoste\n\n\n\n\n\n\n\n\n\n\n\n\nBilan semaine 20 2025 : 12 mai - 16 mai\n\n\n\ncolBiSBM\n\ninférence\n\nGNN\n\n\n\n\n\n\n\n\n\n16 mai 2025\n\n\nLouis Lacoste\n\n\n\n\n\n\n\n\n\n\n\n\nBilan semaine 19 2025 : 5 mai - 9 mai\n\n\n\ncolBiSBM\n\ninférence\n\n\n\n\n\n\n\n\n\n9 mai 2025\n\n\nLouis Lacoste\n\n\n\n\n\n\n\n\n\n\n\n\nBilan semaine 18 2025 : 28 avril - 2 mai\n\n\n\ncolBiSBM\n\ninférence\n\n\n\n\n\n\n\n\n\n2 mai 2025\n\n\nLouis Lacoste\n\n\n\n\n\n\n\n\n\n\n\n\nBilan semaine 17 2025 : 24 avril - 25 avril\n\n\n\ncolBiSBM\n\n\n\n\n\n\n\n\n\n25 avr. 2025\n\n\nLouis Lacoste\n\n\n\n\n\n\n\n\n\n\n\n\nBilan semaine 16 2025\n\n\n\ncolBiSBM\n\n\n\n\n\n\n\n\n\n18 avr. 2025\n\n\nLouis Lacoste\n\n\n\n\n\n\n\n\n\n\n\n\nBilan semaine 15 2025 : 31 mars-4 avril\n\n\n\ncolBiSBM\n\n\n\n\n\n\n\n\n\n4 avr. 2025\n\n\nLouis Lacoste\n\n\n\n\n\n\n\n\n\n\n\n\nBilan semaine 14 2025 : 24-28 mars\n\n\n\ncolBiSBM\n\n\n\n\n\n\n\n\n\n28 mars 2025\n\n\nLouis Lacoste\n\n\n\n\n\n\n\n\n\n\n\n\nBilan semaine 13 2025 : 17-21 mars\n\n\n\ncolBiSBM\n\n\n\n\n\n\n\n\n\n17 mars 2025\n\n\nLouis Lacoste\n\n\n\n\n\nAucun article correspondant"
"text": "Relire intro St Clair\nSinspirer structure pour mon intro\nTrouver biblio intro\nRédiger lintro\nRegarder les applications pour les collections de réseaux recommender system\nLire les papiers de Baldock Traveset Souza Cordeniz Trojelsgaard et Gibson\nDire résultats nettement meilleurs et variabilités inférieures.\n\n\n\n\n\nRelancer simus clustering avec VEM steps = 10 000 et plus nombreux init pour spectral\nAjouter simu clustering métriques nb sous-collections obtenues. Vérifier les résultats obtenus si ARI = 0. Et augmenter la taille M = 30 avec M_1 = M_2 = M_3 = 10.\nComparer sur clustering unipartite avec versions symétriser des par blocs des matrices dadjacences.\nCorriger structure de simus :\n\nPour noisy \\alpha :\n\nLogit pour envoyer la gaussienne vers (0,1)\nBeta contrainte dans (0,1)\n\nPour noisy links : Générer nb_clustering collections de taille M puis prélever \\epsilon_{max}n_r n_c liens à inverser puis pour les \\epsilon &lt; \\epsilon_{max} prélever dans la liste des indices afin davoir des perturbations emboitées.\n\n\n\n\n\n\nKmeans sur la densité des réseaux subdoré pour pré-partitionner et clusteriser.\n\n\n\n\n\nCréer des vignettes illustrant par exemple des cas de simulations. Possible de mettre lexemple dapplication de Sophie sur les réseaux avec gradient durbanisation."
},
{
"objectID": "suivi/2025-17/2025-17.html#a-faire",
"href": "suivi/2025-17/2025-17.html#a-faire",
"title": "Bilan semaine 17 2025 : 24 avril - 25 avril",
"section": "",
"text": "Relire intro St Clair\nSinspirer structure pour mon intro\nTrouver biblio intro\nRédiger lintro\nRegarder les applications pour les collections de réseaux recommender system\nLire les papiers de Baldock Traveset Souza Cordeniz Trojelsgaard et Gibson\nDire résultats nettement meilleurs et variabilités inférieures.\n\n\n\n\n\nRelancer simus clustering avec VEM steps = 10 000 et plus nombreux init pour spectral\nAjouter simu clustering métriques nb sous-collections obtenues. Vérifier les résultats obtenus si ARI = 0. Et augmenter la taille M = 30 avec M_1 = M_2 = M_3 = 10.\nComparer sur clustering unipartite avec versions symétriser des par blocs des matrices dadjacences.\nCorriger structure de simus :\n\nPour noisy \\alpha :\n\nLogit pour envoyer la gaussienne vers (0,1)\nBeta contrainte dans (0,1)\n\nPour noisy links : Générer nb_clustering collections de taille M puis prélever \\epsilon_{max}n_r n_c liens à inverser puis pour les \\epsilon &lt; \\epsilon_{max} prélever dans la liste des indices afin davoir des perturbations emboitées.\n\n\n\n\n\n\nKmeans sur la densité des réseaux subdoré pour pré-partitionner et clusteriser.\n\n\n\n\n\nCréer des vignettes illustrant par exemple des cas de simulations. Possible de mettre lexemple dapplication de Sophie sur les réseaux avec gradient durbanisation."
},
{
"objectID": "suivi/2025-17/2025-17.html#jai-fait",
"href": "suivi/2025-17/2025-17.html#jai-fait",
"title": "Bilan semaine 17 2025 : 24 avril - 25 avril",
"section": "Jai fait",
"text": "Jai fait\n\nCréer un README descriptif du dépôt des codes pour larticle.\nRemonter figure sélection de modèle dans le corps de larticle\nEnrichir légende de la figure 7 et 8\nSupprimer p_NA des autres cadrans des proportions de NA\nBasculer le code du clustering pour utiliser hclust et mis largument method de hclust avec single par défaut\nAjouter pipeline qui knit README.Rmd à chaque merge dans main colSBM"
},
{
"objectID": "suivi/2025-17/2025-17.html#a-continuer",
"href": "suivi/2025-17/2025-17.html#a-continuer",
"title": "Bilan semaine 17 2025 : 24 avril - 25 avril",
"section": "A continuer",
"text": "A continuer\n\nRésultats simus NA Erreur pour certaines conditions : Pour NA robustness générer nb_rep collections de taille M=2 et prélever \\epsilon_{max}n_r n_c liens à retirer puis pour les \\epsilon &lt; \\epsilon_{max} prélever dans la liste des indices afin davoir des perturbations emboitées. Il faut que jajoute un mécanisme pour reprendre des conditions qui ont plantés et que je skip dans le future_lapply les conditions déjà traitées (pour avoir la même seed quand je vais exécuter le code). Implémenté les missing steps en attente des résultats MIGALE.\nLire Biological Networks - François Képès\nJai esquissé des bouts dintro\nRelancer simus dinférence avec n = 240 pour voir si la qualité augmenter (se rassurer). En fait on est déjà à 240, jai relancé avec M = 4 au lieu de M = 2. En attente résultats MIGALE\n\n\nCorrection méthodo\n\nIdée Pierre : Regarder la contribution au BICL de la collection des réseaux et comparer au sep BICL pour essayer de repérer les outliers. En regardant la vbound (pas la pénalité) de chaque réseau dans le joint vs sa vbound dans le sep -&gt; Résultats : pas de différences majeures entre les réseaux avec le rapport vbound_joint/vbound_sep, les outliers ne sont pas marqués.\nRegarder si plutôt que k médioid possible meilleurs résultats avec dautres distances hclust avec min, max etc… -&gt; Lalgo PAM donne des clusters équilibrés sans séparer les outliers Je regarde avec plutôt des hclust avec métrique single pour séparer les outliers.\nVoir si in fine possible de repérer des outliers à partir de ces nouvelles métriques\nRegarder la répartition de densité dans les réseaux sub-doré -&gt; déséquilibrée\n\n\nEn faisant des clusterings par densité on constate qu'avec un modèle iid pour des réseaux dont la densité est entre :\n- 0 et 0.05 : Baldock et Souza tout le monde se retrouvait ensemble avec *Partitioning around medoids*\n\n\nApplications\n\nIdée Sophie: Regarder clustering de données plantes-pollinisateur selon gradient durbanisation\n\n\nSophie a fait une appli qui marche bien et va dans le sens de lanalyse faite (à savoir pas deffet du gradien durbanisation). À continuer pour lintégrer dans larticle !\n\n\n\nLancer clustering auteur par auteur du sub-Doré : 5 collections différentes dans lidée.\nUne fois fait, Sophie ne trouve pas que ce soit le plus pertinent pour illustrer le clustering. Plus intéressant de garder le clustering de données simulées (M = 30) et se servir des exemples dessous et des parcours exhaustif des possibilités de partitionnement comme comparatif.\n\nBaldock\n\n\n\nAlluvial Baldock\n\n\n\n\nGibson\n\n\n\nAlluvial Gibson\n\n\n\n\nSouza\n\n\n\nAlluvial Souza\n\n\n\n\nTraveset\n\n\n\nAlluvial Traveset\n\n\n\n\nTrojelsgaard\n\n\n\nAlluvial Trojelgaard"
},
{
"objectID": "suivi/2025-19/2025-19.html",
@ -203,32 +224,46 @@
"text": "Repoussés ou abandonnés\n\nRésultats simus NA Erreur pour certaines conditions : Pour NA robustness générer nb_rep collections de taille M=2 et prélever \\epsilon_{max}n_r n_c liens à retirer puis pour les \\epsilon &lt; \\epsilon_{max} prélever dans la liste des indices afin davoir des perturbations emboitées. Il faut que jajoute un mécanisme pour reprendre des conditions qui ont plantés et que je skip dans le future_lapply les conditions déjà traitées (pour avoir la même seed quand je vais exécuter le code). Implémenté les missing steps.\n\n\nJe narrive pas à comprendre les erreurs qui arrivent\n\n\nLire Biological Networks - François Képès\nRegarder les applications pour les collections de réseaux recommender system Pas pertinents et trop gros\n\n\n\n\nListing 1: Recommender systems data\n\n\nPar exemple :\n\nListe de recommendation data\n\n\n\n\n\nPapier plus multi-applications\n\nDonnées dElisa herbivore ?\nDonnées urbanisations ?\n\n\n\nAutour de larticle et du package\n\nCréer des vignettes illustrant par exemple des cas de simulations. Possible de mettre lexemple dapplication de Sophie sur les réseaux avec gradient durbanisation.\n\n\n\nSimulations article\n\nComparer sur clustering unipartite avec versions symétriser des par blocs des matrices dadjacences.\nCorriger structure de simus :\n\nPour noisy \\alpha :\n\nLogit pour envoyer la gaussienne vers (0,1)\nBeta contrainte dans (0,1)\n\nPour noisy links : Générer nb_clustering collections de taille M puis prélever \\epsilon_{max}n_r n_c liens à inverser puis pour les \\epsilon &lt; \\epsilon_{max} prélever dans la liste des indices afin davoir des perturbations emboitées."
},
{
"objectID": "suivi/2025-17/2025-17.html",
"href": "suivi/2025-17/2025-17.html",
"title": "Bilan semaine 17 2025 : 24 avril - 25 avril",
"objectID": "index.html",
"href": "index.html",
"title": "Journal suivi de la thèse",
"section": "",
"text": "Relire intro St Clair\nSinspirer structure pour mon intro\nTrouver biblio intro\nRédiger lintro\nRegarder les applications pour les collections de réseaux recommender system\nLire les papiers de Baldock Traveset Souza Cordeniz Trojelsgaard et Gibson\nDire résultats nettement meilleurs et variabilités inférieures.\n\n\n\n\n\nRelancer simus clustering avec VEM steps = 10 000 et plus nombreux init pour spectral\nAjouter simu clustering métriques nb sous-collections obtenues. Vérifier les résultats obtenus si ARI = 0. Et augmenter la taille M = 30 avec M_1 = M_2 = M_3 = 10.\nComparer sur clustering unipartite avec versions symétriser des par blocs des matrices dadjacences.\nCorriger structure de simus :\n\nPour noisy \\alpha :\n\nLogit pour envoyer la gaussienne vers (0,1)\nBeta contrainte dans (0,1)\n\nPour noisy links : Générer nb_clustering collections de taille M puis prélever \\epsilon_{max}n_r n_c liens à inverser puis pour les \\epsilon &lt; \\epsilon_{max} prélever dans la liste des indices afin davoir des perturbations emboitées.\n\n\n\n\n\n\nKmeans sur la densité des réseaux subdoré pour pré-partitionner et clusteriser.\n\n\n\n\n\nCréer des vignettes illustrant par exemple des cas de simulations. Possible de mettre lexemple dapplication de Sophie sur les réseaux avec gradient durbanisation."
"text": "Bilan semaine 24 2025 : 10 juin - 13 juin\n\n\n\ncolBiSBM\n\ninférence\n\nGNN\n\n\n\n\n\n\n\n\n\n13 juin 2025\n\n\nLouis Lacoste\n\n\n\n\n\n\n\n\n\n\n\n\nBilan semaine 22 2025 : 26 mai - 30 mai\n\n\n\ncolBiSBM\n\ninférence\n\nGNN\n\n\n\n\n\n\n\n\n\n28 mai 2025\n\n\nLouis Lacoste\n\n\n\n\n\n\n\n\n\n\n\n\nBilan semaine 21 2025 : 26 mai - 30 mai\n\n\n\ncolBiSBM\n\ninférence\n\nGNN\n\n\n\n\n\n\n\n\n\n23 mai 2025\n\n\nLouis Lacoste\n\n\n\n\n\n\n\n\n\n\n\n\nBilan semaine 20 2025 : 12 mai - 16 mai\n\n\n\ncolBiSBM\n\ninférence\n\nGNN\n\n\n\n\n\n\n\n\n\n16 mai 2025\n\n\nLouis Lacoste\n\n\n\n\n\n\n\n\n\n\n\n\nBilan semaine 19 2025 : 5 mai - 9 mai\n\n\n\ncolBiSBM\n\ninférence\n\n\n\n\n\n\n\n\n\n9 mai 2025\n\n\nLouis Lacoste\n\n\n\n\n\n\n\n\n\n\n\n\nBilan semaine 18 2025 : 28 avril - 2 mai\n\n\n\ncolBiSBM\n\ninférence\n\n\n\n\n\n\n\n\n\n2 mai 2025\n\n\nLouis Lacoste\n\n\n\n\n\n\n\n\n\n\n\n\nBilan semaine 17 2025 : 24 avril - 25 avril\n\n\n\ncolBiSBM\n\n\n\n\n\n\n\n\n\n25 avr. 2025\n\n\nLouis Lacoste\n\n\n\n\n\n\n\n\n\n\n\n\nBilan semaine 16 2025\n\n\n\ncolBiSBM\n\n\n\n\n\n\n\n\n\n18 avr. 2025\n\n\nLouis Lacoste\n\n\n\n\n\n\n\n\n\n\n\n\nBilan semaine 15 2025 : 31 mars-4 avril\n\n\n\ncolBiSBM\n\n\n\n\n\n\n\n\n\n4 avr. 2025\n\n\nLouis Lacoste\n\n\n\n\n\n\n\n\n\n\n\n\nBilan semaine 14 2025 : 24-28 mars\n\n\n\ncolBiSBM\n\n\n\n\n\n\n\n\n\n28 mars 2025\n\n\nLouis Lacoste\n\n\n\n\n\n\n\n\n\n\n\n\nBilan semaine 13 2025 : 17-21 mars\n\n\n\ncolBiSBM\n\n\n\n\n\n\n\n\n\n17 mars 2025\n\n\nLouis Lacoste\n\n\n\n\n\nAucun article correspondant"
},
{
"objectID": "suivi/2025-17/2025-17.html#a-faire",
"href": "suivi/2025-17/2025-17.html#a-faire",
"title": "Bilan semaine 17 2025 : 24 avril - 25 avril",
"objectID": "suivi/2025-13/2025-13.html",
"href": "suivi/2025-13/2025-13.html",
"title": "Bilan semaine 13 2025 : 17-21 mars",
"section": "",
"text": "Relire intro St Clair\nSinspirer structure pour mon intro\nTrouver biblio intro\nRédiger lintro\nRegarder les applications pour les collections de réseaux recommender system\nLire les papiers de Baldock Traveset Souza Cordeniz Trojelsgaard et Gibson\nDire résultats nettement meilleurs et variabilités inférieures.\n\n\n\n\n\nRelancer simus clustering avec VEM steps = 10 000 et plus nombreux init pour spectral\nAjouter simu clustering métriques nb sous-collections obtenues. Vérifier les résultats obtenus si ARI = 0. Et augmenter la taille M = 30 avec M_1 = M_2 = M_3 = 10.\nComparer sur clustering unipartite avec versions symétriser des par blocs des matrices dadjacences.\nCorriger structure de simus :\n\nPour noisy \\alpha :\n\nLogit pour envoyer la gaussienne vers (0,1)\nBeta contrainte dans (0,1)\n\nPour noisy links : Générer nb_clustering collections de taille M puis prélever \\epsilon_{max}n_r n_c liens à inverser puis pour les \\epsilon &lt; \\epsilon_{max} prélever dans la liste des indices afin davoir des perturbations emboitées.\n\n\n\n\n\n\nKmeans sur la densité des réseaux subdoré pour pré-partitionner et clusteriser.\n\n\n\n\n\nCréer des vignettes illustrant par exemple des cas de simulations. Possible de mettre lexemple dapplication de Sophie sur les réseaux avec gradient durbanisation."
"text": "Cette semaine jai :\n\nFini dintégrer à colSBM tous les changements (clustering dérecursifier pour uni et bipartites& cli …) et contacter Saint-Clair pour passer colSBM sous GrossSBM.\nRelancer et obtenus les résultats pour le clustering sur les réseaux Baldock\n\n\n\n\nBaldock iid\n\n\n\n\n\nBaldock pi\n\n\n\n\n\nBaldock rho\n\n\n\n\n\nBaldock pirho\n\n\n\nRelancer et obtenus les résultats pour les simus ajoutant du bruits sur les structures et liens\n\nPour noisy \\alpha:\n\nPlan de simulation 2 collections (d\\in (1,2)) avec M = 30 soit 15 réseaux par type. n_r = n_c = 120 et \\pi_1 = \\begin{pmatrix} 0.5, 0.3, 0.2\\end{pmatrix},~\n \\rho_1 = \\begin{pmatrix}0.4, 0.3, 0.2, 0.1\\end{pmatrix},~\n \\alpha_1 = \\begin{pmatrix}\n 0.85& 0.4& 0.2& 0.15\\\\\n 0.6& 0.2& 0.15& 0.15\\\\\n 0.2& 0.15& 0.15& 0.7\n \\end{pmatrix}\n \\pi_2 = (0.5, 0.3, 0.2),~\n \\rho_2 = (0.45, 0.3, 0.25),~\n \\alpha_2 = \\begin{pmatrix}\n 0.65& 0.15& 0.15\\\\\n 0.15& 0.8& 0.15\\\\\n 0.15& 0.15& 0.4\n \\end{pmatrix}\n\\epsilon \\in (0, 0.01, \\dots 0.05) qui est lécart-type dune \\mathcal{N}_{Q_1^d \\times Q_2^d}(0,\\epsilon^2) = vec(N^m), \\forall m \\in (1,\\dots, M). Et \\forall m, X^m \\sim LBM_{n_r,n_c}(Q_1^d, Q_2^d, \\alpha_d + N^m, \\pi_d, \\rho_d)\nRésultats : \n\nPour noisy links:\n\nPlan de simu M = 30, n_r = n_c = 120. \\pi_1 = \\begin{pmatrix} 0.5, 0.3, 0.2\\end{pmatrix},~\n \\rho_1 = \\begin{pmatrix}0.4, 0.3, 0.2, 0.1\\end{pmatrix},~\n \\alpha_1 = \\begin{pmatrix}\n 0.85& 0.4& 0.2& 0.05\\\\\n 0.6& 0.2& 0.05& 0.05\\\\\n 0.2& 0.05& 0.05& 0.7\n \\end{pmatrix}\n \\pi_2 = (0.5, 0.3, 0.2),~\n \\rho_2 = (0.45, 0.3, 0.25),~\n \\alpha_2 = \\begin{pmatrix}\n 0.65& 0.05& 0.05\\\\\n 0.05& 0.8& 0.05\\\\\n 0.05& 0.05& 0.4\n \\end{pmatrix}\n\\epsilon \\in (0, 0.05, \\dots 0.5), indices de la matrice = sample.int(n_r \\times n_c, size = n_r \\times n_c \\times \\epsilon). Les indices tirés inverse la valeur du lien (1 -&gt; 0, 0 -&gt; 1)\n\n\n\n\n\n\n\n\n\nClear links\n\n\n\n\n\n\n\nNoisy links\n\n\n\n\n\n\nFigure 1\n\n\n\n\nRelancer simulations robustesse aux NAs\nChanger les plots résultats NAs pour faire sous-plots comparant sep vs model."
},
{
"objectID": "suivi/2025-17/2025-17.html#jai-fait",
"href": "suivi/2025-17/2025-17.html#jai-fait",
"title": "Bilan semaine 17 2025 : 24 avril - 25 avril",
"objectID": "suivi/2025-18/2025-18.html",
"href": "suivi/2025-18/2025-18.html",
"title": "Bilan semaine 18 2025 : 28 avril - 2 mai",
"section": "",
"text": "Lire biblio fournie Julie, Inférence de réseaux : co-occurence\nPapier pour comprendre données\npbs : variance, bcp de zero, covariables, offset et taxonomie (Reseaux arretes differents niveaux : Genre, OTU …)\n\n\nCombine networks at different taxonomic levels\n\n\nInférence + GREMLINS\n\n\n\n\n\nRelire intro St Clair\nSinspirer structure pour mon intro\nTrouver biblio intro\nRédiger lintro\nRegarder les applications pour les collections de réseaux recommender system\nLire les papiers de Baldock Traveset Souza Cordeniz Trojelsgaard et Gibson\nDire résultats nettement meilleurs et variabilités inférieures.\nIntégrer les retours de Sophie\n\n\n\n\n\nComparer sur clustering unipartite avec versions symétriser des par blocs des matrices dadjacences.\nCorriger structure de simus :\n\nPour noisy \\alpha :\n\nLogit pour envoyer la gaussienne vers (0,1)\nBeta contrainte dans (0,1)\n\nPour noisy links : Générer nb_clustering collections de taille M puis prélever \\epsilon_{max}n_r n_c liens à inverser puis pour les \\epsilon &lt; \\epsilon_{max} prélever dans la liste des indices afin davoir des perturbations emboitées.\n\n\n\n\n\n\nKmeans sur la densité des réseaux subdoré pour pré-partitionner et clusteriser. Car densités déséquilibrées.\n\n\n\n\n\n\nCréer des vignettes illustrant par exemple des cas de simulations. Possible de mettre lexemple dapplication de Sophie sur les réseaux avec gradient durbanisation."
},
{
"objectID": "suivi/2025-18/2025-18.html#a-faire",
"href": "suivi/2025-18/2025-18.html#a-faire",
"title": "Bilan semaine 18 2025 : 28 avril - 2 mai",
"section": "",
"text": "Lire biblio fournie Julie, Inférence de réseaux : co-occurence\nPapier pour comprendre données\npbs : variance, bcp de zero, covariables, offset et taxonomie (Reseaux arretes differents niveaux : Genre, OTU …)\n\n\nCombine networks at different taxonomic levels\n\n\nInférence + GREMLINS\n\n\n\n\n\nRelire intro St Clair\nSinspirer structure pour mon intro\nTrouver biblio intro\nRédiger lintro\nRegarder les applications pour les collections de réseaux recommender system\nLire les papiers de Baldock Traveset Souza Cordeniz Trojelsgaard et Gibson\nDire résultats nettement meilleurs et variabilités inférieures.\nIntégrer les retours de Sophie\n\n\n\n\n\nComparer sur clustering unipartite avec versions symétriser des par blocs des matrices dadjacences.\nCorriger structure de simus :\n\nPour noisy \\alpha :\n\nLogit pour envoyer la gaussienne vers (0,1)\nBeta contrainte dans (0,1)\n\nPour noisy links : Générer nb_clustering collections de taille M puis prélever \\epsilon_{max}n_r n_c liens à inverser puis pour les \\epsilon &lt; \\epsilon_{max} prélever dans la liste des indices afin davoir des perturbations emboitées.\n\n\n\n\n\n\nKmeans sur la densité des réseaux subdoré pour pré-partitionner et clusteriser. Car densités déséquilibrées.\n\n\n\n\n\n\nCréer des vignettes illustrant par exemple des cas de simulations. Possible de mettre lexemple dapplication de Sophie sur les réseaux avec gradient durbanisation."
},
{
"objectID": "suivi/2025-18/2025-18.html#jai-fait",
"href": "suivi/2025-18/2025-18.html#jai-fait",
"title": "Bilan semaine 18 2025 : 28 avril - 2 mai",
"section": "Jai fait",
"text": "Jai fait\n\nCréer un README descriptif du dépôt des codes pour larticle.\nRemonter figure sélection de modèle dans le corps de larticle\nEnrichir légende de la figure 7 et 8\nSupprimer p_NA des autres cadrans des proportions de NA\nBasculer le code du clustering pour utiliser hclust et mis largument method de hclust avec single par défaut\nAjouter pipeline qui knit README.Rmd à chaque merge dans main colSBM"
"text": "Jai fait\n\nJdS\n\ncolDEM CSE\n\n\n\nClustering exhaustif Baldock\n\nLe clustering de toutes les 52 partitions sest fait en 5h30 ! (Mémoïsation)\nPour iid la meilleure partition avec BICL=-9466.911 contre BICL_{algo} = -9466.873 \\pm 0.02205 trouvé avec lalgo \nPour \\pi\\rho la meilleure partition avec BICL = -9497.92 contre BICL_{algo} =-9497.92 \\pm 0.00009"
},
{
"objectID": "suivi/2025-17/2025-17.html#a-continuer",
"href": "suivi/2025-17/2025-17.html#a-continuer",
"title": "Bilan semaine 17 2025 : 24 avril - 25 avril",
"objectID": "suivi/2025-18/2025-18.html#a-continuer",
"href": "suivi/2025-18/2025-18.html#a-continuer",
"title": "Bilan semaine 18 2025 : 28 avril - 2 mai",
"section": "A continuer",
"text": "A continuer\n\nRésultats simus NA Erreur pour certaines conditions : Pour NA robustness générer nb_rep collections de taille M=2 et prélever \\epsilon_{max}n_r n_c liens à retirer puis pour les \\epsilon &lt; \\epsilon_{max} prélever dans la liste des indices afin davoir des perturbations emboitées. Il faut que jajoute un mécanisme pour reprendre des conditions qui ont plantés et que je skip dans le future_lapply les conditions déjà traitées (pour avoir la même seed quand je vais exécuter le code). Implémenté les missing steps en attente des résultats MIGALE.\nLire Biological Networks - François Képès\nJai esquissé des bouts dintro\nRelancer simus dinférence avec n = 240 pour voir si la qualité augmenter (se rassurer). En fait on est déjà à 240, jai relancé avec M = 4 au lieu de M = 2. En attente résultats MIGALE\n\n\nCorrection méthodo\n\nIdée Pierre : Regarder la contribution au BICL de la collection des réseaux et comparer au sep BICL pour essayer de repérer les outliers. En regardant la vbound (pas la pénalité) de chaque réseau dans le joint vs sa vbound dans le sep -&gt; Résultats : pas de différences majeures entre les réseaux avec le rapport vbound_joint/vbound_sep, les outliers ne sont pas marqués.\nRegarder si plutôt que k médioid possible meilleurs résultats avec dautres distances hclust avec min, max etc… -&gt; Lalgo PAM donne des clusters équilibrés sans séparer les outliers Je regarde avec plutôt des hclust avec métrique single pour séparer les outliers.\nVoir si in fine possible de repérer des outliers à partir de ces nouvelles métriques\nRegarder la répartition de densité dans les réseaux sub-doré -&gt; déséquilibrée\n\n\nEn faisant des clusterings par densité on constate qu'avec un modèle iid pour des réseaux dont la densité est entre :\n- 0 et 0.05 : Baldock et Souza tout le monde se retrouvait ensemble avec *Partitioning around medoids*\n\n\nApplications\n\nIdée Sophie: Regarder clustering de données plantes-pollinisateur selon gradient durbanisation\n\n\nSophie a fait une appli qui marche bien et va dans le sens de lanalyse faite (à savoir pas deffet du gradien durbanisation). À continuer pour lintégrer dans larticle !\n\n\n\nLancer clustering auteur par auteur du sub-Doré : 5 collections différentes dans lidée.\nUne fois fait, Sophie ne trouve pas que ce soit le plus pertinent pour illustrer le clustering. Plus intéressant de garder le clustering de données simulées (M = 30) et se servir des exemples dessous et des parcours exhaustif des possibilités de partitionnement comme comparatif.\n\nBaldock\n\n\n\nAlluvial Baldock\n\n\n\n\nGibson\n\n\n\nAlluvial Gibson\n\n\n\n\nSouza\n\n\n\nAlluvial Souza\n\n\n\n\nTraveset\n\n\n\nAlluvial Traveset\n\n\n\n\nTrojelsgaard\n\n\n\nAlluvial Trojelgaard"
"text": "A continuer\n\nRésultats simus NA Erreur pour certaines conditions : Pour NA robustness générer nb_rep collections de taille M=2 et prélever \\epsilon_{max}n_r n_c liens à retirer puis pour les \\epsilon &lt; \\epsilon_{max} prélever dans la liste des indices afin davoir des perturbations emboitées. Il faut que jajoute un mécanisme pour reprendre des conditions qui ont plantés et que je skip dans le future_lapply les conditions déjà traitées (pour avoir la même seed quand je vais exécuter le code). Implémenté les missing steps en attente des résultats MIGALE.\nLire Biological Networks - François Képès\nRelancer simus dinférence avec n = 240 pour voir si la qualité augmenter (se rassurer). En fait on est déjà à 240, jai relancé avec M = 4 au lieu de M = 2. En attente résultats MIGALE\n\n\nApplications\n\nIdée Sophie: Regarder clustering de données plantes-pollinisateur selon gradient durbanisation\n\n\nSophie a fait une appli qui marche bien et va dans le sens de lanalyse faite (à savoir pas deffet du gradien durbanisation). À continuer pour lintégrer dans larticle !\n\n\n\nSimulations article\n\nRelancer simulations de clustering avec M = 30 où M_i = 10, \\forall i. En attente retour MIGALE Relancer simus clustering avec VEM steps = 10 000 et plus nombreux init pour spectral. Ajouter simu clustering métriques nb sous-collections obtenues. Vérifier les résultats obtenus si ARI = 0. Et augmenter la taille M = 30 avec M_1 = M_2 = M_3 = 10."
},
{
"objectID": "suivi/2025-15/2025-15.html",

817
suivi/2025-24/2025-24.html Normal file
View file

@ -0,0 +1,817 @@
<!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 24 2025 : 10 juin - 13 juin 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;
}
</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-b7709e3ceabf99e2647fc5ea1b9a158c.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">
<span class="menu-text">Liste des semaines</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 24 2025 : 10 juin - 13 juin</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">13 juin 2025</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="#applications" id="toc-applications" class="nav-link" data-scroll-target="#applications">Applications</a></li>
<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>
<ul class="collapse">
<li><a href="#inférence" id="toc-inférence" class="nav-link" data-scroll-target="#inférence">Inférence</a></li>
<li><a href="#rédaction-article" id="toc-rédaction-article" class="nav-link" data-scroll-target="#rédaction-article">Rédaction article</a></li>
</ul></li>
<li><a href="#a-continuer" id="toc-a-continuer" class="nav-link" data-scroll-target="#a-continuer">A continuer</a>
<ul class="collapse">
<li><a href="#applications-1" id="toc-applications-1" class="nav-link" data-scroll-target="#applications-1">Applications</a></li>
<li><a href="#axe-inférence" id="toc-axe-inférence" class="nav-link" data-scroll-target="#axe-inférence">Axe inférence</a></li>
</ul></li>
<li><a href="#repoussés-ou-abandonnés" id="toc-repoussés-ou-abandonnés" class="nav-link" data-scroll-target="#repoussés-ou-abandonnés">Repoussés ou abandonnés</a></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><p>Pour clustering de collections sur données réelles :<br>
→ Lintuition de Pierre semble être confirmé, les dissimilarités semblent arrêter de varier sensiblement pour de grandes valeurs <span class="math inline">(Q_1,Q_2)</span>.</p>
<ul>
<li>Faire le <code>hclust</code> avec diverses distances et voir si les coupes proposées diffèrent sensiblement</li>
<li>Si plusieurs clustering possibles les tester et sélectionner le meilleur</li>
<li>Ré-ajuster les bonnes partitions.</li>
<li>▶️ Je commence à coder ça</li>
</ul></li>
<li><p>Idée de Sophie : alterner descendant et ascendant → prometteur aussi</p>
<ul>
<li>Jai codé le fichier de simulations et débugguer le vecteur de clustering ▶️ à voir les performances.</li>
</ul></li>
<li><p>Pour les deux propositions données simulées tester diverses distances.</p></li>
<li><p>Dé-bugger les simulations :</p>
<ul>
<li>Inférence : Relancer simus dinférence avec n = 240 pour voir si la qualité augmenter (se rassurer). En fait on est déjà à 240, jai relancé avec M = 4 au lieu de M = 2. En attente résultats MIGALE -&gt; BUG, dois creuser mais juste des problèmes techniques -&gt; Visiblement il y a dautres problèmes que juste le plan de parallélisation.</li>
</ul></li>
<li><p>Vérifier si problème de version tidyverse pour vapply sur l<strong>inférence</strong>.</p></li>
<li><p>Si problème de parallélisation vient de pb de version <em>future.callr</em> le signaler à MIGALE.</p></li>
</ul>
<section id="applications" class="level3">
<h3 class="anchored" data-anchor-id="applications">Applications</h3>
<ul>
<li>Kmeans sur la densité des réseaux subdoré pour pré-partitionner et <em>clusteriser</em>. Car densités déséquilibrées.</li>
</ul>
<div id="ref-kmeans-vae" class="quarto-float quarto-figure quarto-figure-center anchored">
<figure class="quarto-float quarto-float-ref figure">
<div aria-describedby="ref-kmeans-vae-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
<ul>
<li>Faire GNN-VAE Doré et sub-Doré avec kmeans et clustering sur lespace latent Jai commencé à regarder un peu</li>
</ul>
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-ref quarto-uncaptioned" id="ref-kmeans-vae-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Reference&nbsp;1
</figcaption>
</figure>
</div>
<ul>
<li>Comparer les perfs du VAE sur Baldock avec colBiSBM par exemple</li>
</ul>
</section>
<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>Lancer <em>colBiSBM</em> sur <span class="math inline">OTU\times Sample</span> → problème du chargement en mémoire des données à voir</li>
<li>Se renseigner techniques dinférence de réseaux :
<ul>
<li>covariance (base corrélation et seuil)</li>
<li>GraphicalLASSO</li>
<li>Co-occurence</li>
</ul></li>
<li>Lancer <em>colSBM</em> sur <span class="math inline">OTU\times OTU</span></li>
<li>Creuser <a href="https://raw.githubusercontent.com/cregouby/R-toulouse-tabnet/main/Tabnet_RR2023_fr_pdf.pdf">TabNet</a> de Christophe Regouby et les <a href="https://github.com/cregouby/Tutoriel_torch">exercices</a></li>
<li>Regarder <strong>SPARTA</strong> Rennes</li>
<li>Lire Papiers compositional data (Aitchison et al.&nbsp;intro)</li>
<li>Lire article multi-niveaux Saint-Clair</li>
<li>Demander à JA si elle connaît des réseaux dinteractions connus par les experts (idée dintégrer une connaissance experte et de voir les différences de structure par rapport à celle attendue)</li>
<li>Ecrire et étudier les modèles pour différents niveaux taxonomiques. <span class="math display">\begin{align*}
i \rightarrow &amp;~N^1_i \subseteq N^2_i \subseteq N^3_i &amp; \text{Taxonomie}\\
Z^0_i \overset{?}{=} &amp; Z^1_i \overset{?}{=} Z^2_i \overset{?}{=} Z^3_i &amp; \text{Groupes fonctionnels}
\end{align*}</span></li>
</ul>
</section>
</section>
<section id="a-discuter" class="level2">
<h2 class="anchored" data-anchor-id="a-discuter">A discuter</h2>
<section id="inférence" class="level3">
<h3 class="anchored" data-anchor-id="inférence">Inférence</h3>
<ul>
<li>Papier pour comprendre données
<ul>
<li><del>Faust et al.</del></li>
<li>Abdill et al.</li>
<li>Bashan et al.</li>
</ul></li>
<li>pbs : variance, bcp de zero, covariables, offset et taxonomie (Reseaux arretes differents niveaux : Genre, OTU …)</li>
</ul>
<blockquote class="blockquote">
<p>Combine networks at different taxonomic levels</p>
</blockquote>
<ul>
<li>Inférence + GREMLINS</li>
</ul>
</section>
<section id="rédaction-article" class="level3">
<h3 class="anchored" data-anchor-id="rédaction-article">Rédaction article</h3>
<ul>
<li>Relire intro St Clair</li>
<li>Sinspirer structure pour mon intro</li>
<li>Trouver biblio intro</li>
<li>Rédiger lintro</li>
<li>Dire résultats nettement meilleurs et variabilités inférieures.</li>
</ul>
</section>
</section>
<section id="a-continuer" class="level2">
<h2 class="anchored" data-anchor-id="a-continuer">A continuer</h2>
<section id="applications-1" class="level3">
<h3 class="anchored" data-anchor-id="applications-1">Applications</h3>
<ul>
<li>Idée Sophie: Regarder clustering de données plantes-pollinisateur selon gradient durbanisation</li>
</ul>
<blockquote class="blockquote">
<p>Sophie a fait une appli qui marche bien et va dans le sens de lanalyse faite (à savoir pas deffet du gradien durbanisation). À continuer pour lintégrer dans larticle !</p>
</blockquote>
</section>
<section id="axe-inférence" class="level3">
<h3 class="anchored" data-anchor-id="axe-inférence">Axe inférence</h3>
<ul>
<li>Lire biblio fournie Julie, Inférence de réseaux : co-occurence</li>
</ul>
<blockquote class="blockquote">
<p>Jai lu Faust et al.&nbsp; Je lis Abdill et al.</p>
</blockquote>
</section>
</section>
<section id="repoussés-ou-abandonnés" class="level2">
<h2 class="anchored" data-anchor-id="repoussés-ou-abandonnés">Repoussés ou abandonnés</h2>
<div class="callout callout-style-default callout-note callout-titled">
<div class="callout-header d-flex align-content-center" data-bs-toggle="collapse" data-bs-target=".callout-1-contents" aria-controls="callout-1" aria-expanded="false" aria-label="Toggle callout">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
Déplier pour voir
</div>
<div class="callout-btn-toggle d-inline-block border-0 py-1 ps-1 pe-0 float-end"><i class="callout-toggle"></i></div>
</div>
<div id="callout-1" class="callout-1-contents callout-collapse collapse">
<div class="callout-body-container callout-body">
<ul>
<li>Résultats simus NA <strong>Erreur pour certaines conditions</strong> : Pour NA robustness générer <code>nb_rep</code> collections de taille <span class="math inline">M=2</span> et prélever <span class="math inline">\epsilon_{max}n_r n_c</span> liens à retirer puis pour les <span class="math inline">\epsilon &lt; \epsilon_{max}</span> prélever dans la liste des indices afin davoir des perturbations emboitées. Il faut que jajoute un mécanisme pour reprendre des conditions qui ont plantés et que je skip dans le future_lapply les conditions déjà traitées (pour avoir la même seed quand je vais exécuter le code). Implémenté les missing steps.</li>
</ul>
<blockquote class="blockquote">
<p>Je narrive pas à comprendre les erreurs qui arrivent</p>
</blockquote>
<ul>
<li><p>Lire Biological Networks - François Képès</p></li>
<li><p>Regarder les applications pour les collections de réseaux recommender system <em>Pas pertinents et trop gros</em></p></li>
</ul>
<div id="lst-reco-systems" class="listing quarto-float quarto-figure quarto-figure-left anchored">
<figure class="quarto-float quarto-float-lst figure">
<figcaption class="quarto-float-caption-top quarto-float-caption quarto-float-lst" id="lst-reco-systems-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Listing&nbsp;1: Recommender systems data
</figcaption>
<div aria-describedby="lst-reco-systems-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
<p>Par exemple :</p>
<ul>
<li><a href="https://cseweb.ucsd.edu/~jmcauley/datasets.html">Liste de recommendation data</a></li>
</ul>
</div>
</figure>
</div>
<section id="papier-plus-multi-applications" class="level3">
<h3 class="anchored" data-anchor-id="papier-plus-multi-applications">Papier plus multi-applications</h3>
<ul>
<li>Données dElisa herbivore ?</li>
<li>Données urbanisations ?</li>
</ul>
</section>
<section id="autour-de-larticle-et-du-package" class="level3">
<h3 class="anchored" data-anchor-id="autour-de-larticle-et-du-package">Autour de larticle et du package</h3>
<ul>
<li>Créer des vignettes illustrant par exemple des cas de simulations. <strong>Possible de mettre lexemple dapplication de Sophie sur les réseaux avec gradient durbanisation</strong>.</li>
</ul>
</section>
<section id="simulations-article" class="level3">
<h3 class="anchored" data-anchor-id="simulations-article">Simulations article</h3>
<ul>
<li><p>Comparer sur clustering unipartite avec versions symétriser des par blocs des matrices dadjacences.</p></li>
<li><p>Corriger structure de simus :</p>
<ul>
<li>Pour noisy <span class="math inline">\alpha</span> :
<ul>
<li>Logit pour envoyer la gaussienne vers (0,1)</li>
<li>Beta contrainte dans (0,1)</li>
</ul></li>
<li>Pour noisy links : Générer <code>nb_clustering</code> collections de taille M puis prélever <span class="math inline">\epsilon_{max}n_r n_c</span> liens à inverser puis pour les <span class="math inline">\epsilon &lt; \epsilon_{max}</span> prélever dans la liste des indices afin davoir des perturbations emboitées.</li>
</ul></li>
</ul>
</section>
</div>
</div>
</div>
</section>
</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>