165 lines
No EOL
8.9 KiB
Text
165 lines
No EOL
8.9 KiB
Text
---
|
|
title: "Bilan semaine 9 2026 : 16 mars - 20 mars"
|
|
categories: [colBiSBM, inférence, GNN]
|
|
date: 2026 03 16
|
|
date-modified: last-modified
|
|
bibliography: references.bib
|
|
# from: markdown+latex_macros
|
|
---
|
|
{{< include /_macros.tex >}}
|
|
|
|
## TODO List
|
|
|
|
### Mes priorités de la semaine
|
|
|
|
- Faire tourner clustering colBiSBM sur les clusters dégagés par Mona et l'accompagner sur la rédaction de son poster
|
|
- Préparer ma présentation (voir le bloc ci-après) pour Rochebrune et donner un titre :
|
|
- "Comparing networks, a challenging task?" (NUL/20)
|
|
- "High and low: comparing networks, ~~a burden for the mind~~ what works and what don't(?)"
|
|
- Finir implémentation dans sbm de blockmodels avec covariables sur les noeuds
|
|
- Bricoler une pipeline sbm |> nnet::multinom comme performance de référence pour l'introduction de covariables
|
|
- Comprendre pourquoi l'idée géniale de Sophie est remise en question
|
|
- Corriger les copies des 1As
|
|
|
|
:::{.callout-note title="Idées présentation Rochebrune"}
|
|
|
|
- colBiSBM: ce qui marche (et à la fin la galère du clustering)
|
|
- Transition sur les OTUs et motivations de pourquoi c'est galère (#OTU>>#Sample, dépendance par la phylogénie ...)
|
|
- Motivation du co-clustering (LBM), trouver des groupes d'échantillons et d'OTUs qui exhibent des comportement différents (pathologies, sols particuliers, échantillon alimentaire avec une flore d'intérêt ...)
|
|
- Première idée: LBM séquentiel, faire repartir des $\tau^{l}$ pour initialiser les $\tau^{l+1}$ selon l'arbre phylogénétique
|
|
- Idées: faciliter l'exploration du paysage de l'ELBO en se plaçant dans une région de paramètres qui a du sens phylo et donc en sortir indiquerait un signal dans les données.
|
|
- Problèmes: ne résout pas le problème de la dimensionnalité en les OTUs
|
|
- Comme implém., performances pas incroyable et signal peu clair.
|
|
- Deuxième idée: SBM et LBM avec covariables sur les noeuds. Reconstruire des positions dans un espace phylogénétique à partir des matrices de distances phylogénétique (et donc en accord avec l'arbre). Mais aussi modèle plus large pour prendre en compte diverses situations (trouver des exemples d'autres données?).
|
|
- Idées: possible de former les groupes a priori selon les tendances dans les covariables (reflet de la phylogénie) et mettre à jour selon les données
|
|
- Quasiment implémenté dans `{blockmodels}` et dans `{sbm}` (j'aimerai pouvoir dire le jour de ma présentation que c'est dispo sur la version de développement, il va falloir charbonner de mon côté).
|
|
- Théoriquement: on a l'identifiabilité (ou pas vu la pratique?)
|
|
- Problèmes: Ne résoud pas les problèmes de calculs, en pratique on ne retrouve pas les bons coefficients (label-switching?)
|
|
- Troisième idée: Utiliser la structure de l'arbre phylogénétique pour encoder une relation des positions latentes dans un *Latent Position Model* (LPM).
|
|
- Détail: pour chaque couche $l$, chaque individu de la couche $i$ et son ancêtre $j=Ancestor(i)$ (CITER LES PAPIERS A L'ORIGINE DE L'IDEE), on écrit $\gamma_{l,i} = \gamma_{l-1,j=Ancestor(i)} + \delta_{l,i} = \gamma_{0} + \sum_{k\in Ancestry(i)} \delta_{l,k}$ (puisque qu'on a un unique ancêtre dans chaque couche $l$), les noeuds qui partagent un ancêtre commun
|
|
partage la position latente à ce niveau et lui ajoute un décalage $\delta$.
|
|
- Remarque: Peut-être possible de gérer les cas de transferts horizontaux en élargissant le concept de lignée ancestrale?
|
|
- Idée: (casquette de biologiste) possible d'avoir dans une même lignée phylogénétique des individus qui se spécialisent voire qui développent une convergence évolutive et acquièrent des traits phénotypiques qui ressemblent à d'autres familles.
|
|
Dans ce cas, le $\delta_{l,i}$ rapprochent le $\gamma_{l,i}$ d'un $\gamma_{l, i^{\prime}}$ qui a le trait commun.
|
|
- Problème: les calculs seraient ils simplifiés? pas sûr. Et je n'y ai pas encore touché.
|
|
- Utiliser les Hierarchical SBM et LBM de Peixoto dans son package `graphtools` pour initialiser l'arbre liant les couches avec l'arbre phylogénétique.
|
|
|
|
:::
|
|
|
|
### Les autres tâches
|
|
|
|
- Petites opérations sur les OTUs (regarder la matrice dans les yeux):
|
|
- Ranger les OTUs par variances (i.e. `sd(OTU_j)`)
|
|
- HMC sur-dispersés (au-dessus bissectrice)
|
|
- Enterotype phyloseq sous-disp
|
|
- Regarder la proportion de 1. taxon rares, 2. zeros.
|
|
- Faire des coupures selon niveaux taxonomiques et regarder si $\Var_{\text{intra}} \approx \Var_{\text{inter}}$
|
|
- *Bonus*: faire ça dans qmd et voir si forge permet gitlab pages
|
|
|
|
- Relire @peixotoHierarchicalBlockStructures2014
|
|
- Regarder les gens qui citent les travaux de Peixoto
|
|
- Utiliser graphtools en initialisant la recherche Nested avec le partitionnement donné par l'arbre phylogénétique.
|
|
|
|
:::{.callout-note title="Idées"}
|
|
|
|
- Trouver manière de faire un compromis : $\ell(Y,Z,W;\theta) - \lambda d(C(W),C_0)$ avec $C(W)$ le clustering seulement sur la base de la structure LBM et $C_0$ le clustering de l'arbre. Problème $d$ est une distance entre partition, comment optimiser dessus ?
|
|
- ⌛ Mise à jour partielle des $\tau$ : ce qui pose soucis c'est les gros calculs matriciels (c'est vraiment vrai?). Donc sorte de "stochastic" VEM où on update seulement une partie des $\tau$ à chaque itération. Et échantillonnage stratifié selon l'arbre ?
|
|
- ⌛ Simulations avec $n_2$ croissant lancée sur Migale
|
|
- Réimplementé VE Bernoulli dans colSBM pour Bipartite et début implémentation Stochastic VE. En fait le problème des calculs matriciels $Y\times(\tau^{(1)})^{\top}$ ($n_2^2$) donc besoin de sous-échantillonner les noeuds de l'autre dimension à mettre à jour.
|
|
|
|
|
|
:::
|
|
|
|
- Clustering unipartite j'ai cassé une fonction de distance à vérifier et réparer
|
|
|
|
- Codes pour le papier :
|
|
- Nettoyer les scripts
|
|
- Faire un joli README
|
|
- ❓Faire des notebooks
|
|
|
|
- Réussir à reproduire résultat de @abramovStructureKnowsBest
|
|
|
|
- Maitriser graphtools de Peixoto pour essayer d'utiliser l'arbre taxonomique sur graphe de cooccurence inférer par SparCC
|
|
|
|
- Maitriser SparCC
|
|
|
|
- 👶 (délégué à Mona) Clustering sur Doré :
|
|
- Ajouter Chao1 et 2, colonne par colonne (site par site), et faire indice moyen et la variance.
|
|
|
|
### Inférence et microbes
|
|
|
|
- ⌛ (En cours) Possible en modifiant lbm.h et sbm.h d'obtenir un modèle utilisant les covariables de groupes (de blocs ?).
|
|
Car besoin de changer `membership.m_step()` pour mettre à jour $\pmb\pi$ et $\pmb{\rho}$ en utilisant les $\pmb B^{\top}\pmb X$
|
|
et en renvoyant l'ELBO adaptée.
|
|
- 😄 Avantage s'inscrit directement dans blockmodels et permet d'avoir toutes les lois d'émissions déjà codées et compatibles !
|
|
|
|
- 😢 Besoin de réfléchir a une bonne implémentation.
|
|
|
|
J'ai codé l'optimisation et les transferts mais il faut que je vérifie que tout fonctionne
|
|
|
|
- ✅ Appliqué multipartite sur $\forall i, OTU_i \times Sample$:
|
|

|
|
|
|
#### Bibliographie: à lire, à faire
|
|
|
|
- Lire article multi-niveaux Saint-Clair
|
|
- 🆕 🔎 Trouver des papiers:
|
|
- LBM Negative Binomial
|
|
- Network inference through sample comparison
|
|
|
|
- Idée des groupes sur la base de distance phylogénétique:
|
|
- En train de comprendre les distances que phyloseq permet de calculer sur notre exemple
|
|
- En train de lire sur Principle coordinate analysis : https://openplantpathology.github.io/OPP_Workshop_Multivariate/2-MV_PCO.html
|
|
- Parametric t-SNE pour avoir une unique représentation latente (inconvénient utilise du Deep Learning)
|
|
- Lire Papier UniFrac
|
|
|
|
|
|
#### Écrire et faire tourner
|
|
|
|
- 🆕 SparCC à différent niveaux
|
|
- 🆕⌛ Tree-PLN à différents niveaux
|
|
|
|
|
|
#### Causalité
|
|
|
|
Plus sur le temps long, à regarder
|
|
|
|
- GT causalité
|
|
- Daria Bystrova lire présentation @bystrovaCausalDiscovery (Meek rules, V-structure)
|
|
|
|
## A discuter
|
|
|
|
- 🆕 Voir pour des Réseaux / GDR ou aller
|
|
- 🆕 Chercher des cours à suivre
|
|
|
|
## Biblio à faire
|
|
|
|
- Regarder Transport optimal graphes bipartite.
|
|
|
|
|
|
## Lectures en cours 📚
|
|
|
|
### HDR Vincent Brault
|
|
|
|
- ⌛ Chap 2 : Creuser l'idé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
|
|
- Chap 3
|
|
|
|
### OT
|
|
- ⌛ @mazeletUnsupervisedLearningOptimal Intéressant pour le transport optimal entre graphes de tailles différentes | Regarder si regularization entropique ne marche pas bien pour le graphe.
|
|
- ⌛ @nennaLecture2Entropic Pour comprendre le problème d'OT régularisé pour l'entropie.
|
|
- ⌛ @nennaLecture1Monge
|
|
|
|
### Inférence de graphes
|
|
|
|
- ⌛ @aitchisonStatisticalAnalysisCompositional1982a, en cours
|
|
|
|
- ❗📖 @payneFiniteMixturesMultivariate2023 sur MixMPLN
|
|
|
|
### Causalité
|
|
|
|
- ❗📖 @bystrovaCausalDiscovery
|
|
|
|
### Largest Gaps
|
|
|
|
- ❗📖 @braultFastConsistentAlgorithm2023
|
|
- ❗📖 @channarondClassificationEstimationStochastic2012 le papier qui introduit le *Largest Gaps* |