## 1 TODO List

- 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 \mathbb{V}_{\text{intra}} \approx \mathbb{V}_{\text{inter}}
  - Bonus: faire ça dans qmd et voir si forge permet gitlab pages

- ✅ Faire tourner un LBM sur Human Gut et voir si ça plante sinon, ça plante, la ram est surchargée.

  - TODO Faire LBM sur niveau taxonomique grossier, initialiser avec le résultat pour un niveau plus fin et ainsi de suite.

- ✅ Avec blockmodels, codé un LBM-Séquentiel. Des différences contrastées…

- ⌛ Prendre jeu de données exemple de phyloseq :

  - ✅ 😞 enterotype tourne mais pas bon résultats (semble deux blocs échantillons mais pas vu par le modèle).
  - ✅ des jeux de données de Mahendra ne tourne pas (phase forward interminable).

- Relire Peixoto (2014)

  - Regarder les gens qui citent les travaux de Peixoto

- Implémentation `blockmodels` LBM avec covariables sur proportions (voir Équation 1)

Idées

- Travailler sur Fungus Tree network
- 🔍Demander à PB et SD : Comparaison covar prop avec GREMLINS multipartite sur (log(dist_phylo), fungus-tree)
- 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 Abramov et al. (s. d.)

- 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.

### 1.1 Inférence et microbes

- ✅ En préparation d’un fichier (réu avec JBL à 10h45 le 06/02/2026). 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.

#### 1.1.1 Modèle avec covariables sur probas d’appartenances aux groupes

\begin{align*} \pmb{\beta}_{r}& = \begin{pmatrix} \beta_{r,0}\\ \vdots\\ \beta_{r,p} \end{pmatrix}, & X_{:,j} = \begin{pmatrix} 1\\ x_{1}\\ \vdots\\ x_p \end{pmatrix}\\ \pmb{\beta}_r^{\top} X_{:,j}& = \beta_{r,0} + \beta_{r,1} x_{1} + \dots + \beta_{r,p} x_p & \approx \log(\rho_r^j) \\ \pmb{B} & = \begin{pmatrix} \pmb{\beta}_1 \dots \pmb{\beta}_r \dots \pmb{\beta}_R \end{pmatrix} & \pmb{B}^{\top} X_{:,j} \approx \log(\pmb{\rho}^j) \\ \pmb{B}^{\top} \pmb{X} & \approx \log((\pmb{\rho}^j)_{j=1,\dots,n_2}) = \log(\pmb{\Rho})\\ \end{align*} Et pour les probas en lignes du LBM \begin{align*} \pmb{\gamma}_{q}& = \begin{pmatrix} \gamma_{q,0}\\ \vdots\\ \gamma_{q,d} \end{pmatrix}, & V_{:,i} = \begin{pmatrix} 1\\ v_{1}\\ \vdots\\ v_d \end{pmatrix}\\ \pmb{\gamma}_q^{\top} V_{:,i}& = \gamma_{q,0} + \gamma_{q,1} x_{1} + \dots + \gamma_{q,p} x_p & \approx \log(\pi_q^i) \\ \pmb{\Gamma} & = \begin{pmatrix} \pmb{\gamma}_1 \dots \pmb{\gamma}_q \dots \pmb{\gamma}_Q \end{pmatrix} & \pmb{\Gamma}^{\top} V_{:,i} \approx \log(\pmb{\pi}^i) \\ \pmb{\Gamma}^{\top} \pmb{X} & \approx \log((\pmb{\pi}^i)_{i=1,\dots,n_1}) = \log(\pmb{\Pi}) \end{align*}

#### 1.1.2 Note sur l’identifiabilité (par JBL)

Soient X : (p+1, n_2), B : (p+1, R) avec X de plein rang, i.e., rg(X) = p+1\implies XX^{\top} est inversible.

On veut qu’il existe B^{\prime} et B avec B_{:,R} = \vec 0_p, par les propriétés de la fonction softmax, \sigma(.) :

\begin{align*} & \sigma(B^{\top}X) = \sigma({B^{\prime}}^{\top}X)\\ & \iff \exists C \in \mathbb{R}^{n_2}, B^{\top} X = {B^{\prime}}^{\top} X + \pmb{1}_R C^{\top}\\ & \iff \exists C \in \mathbb{R}^{n_2}, B^{\top} X - \pmb{1}_R C^{\top} = {B^{\prime}}^{\top} X\\ & \iff \exists C \in \mathbb{R}^{n_2}, (B^{\top} X - \pmb{1}_R C^{\top}) X^{\top} = {B^{\prime}}^{\top} X X^{\top}\\ & \iff \exists C \in \mathbb{R}^{n_2}, (B^{\top} X - \pmb{1}_R C^{\top}) X^{\top}(X X^{\top})^{-1} = {B^{\prime}}^{\top}\\ \end{align*}

#### 1.1.3 Description du modèle hiérarchique

Toujours modèle LBM mais avec probas d’appartenance pour les colonnes variables:

\begin{align*} Z_i &\sim \mathcal{M}(1; \pi_1, \dots, \pi_Q), \sum_{q=1}^{Q} \pi_q = 1\\ W_j &\sim \mathcal{M}(1; \rho_1^j, \dots, \rho_R^j), \sum_{r=1}^{R} \rho_r^j = 1\\ Y_{i,j}&\mid Z_i = q, W_j = r \sim \mathcal{F}(\alpha_{qr}) \end{align*}

Inférence variationnelle donc \ell(Y;\pmb{\theta}) \geq \mathcal{J}(\mathcal{R},\pmb{\theta}) avec

\mathcal{J}(\mathcal{R},\pmb{\theta})= \sum_{i = 1}^{n_1}\sum_{j=1}^{n_2}\sum_{q \in \mathcal{Q}_1} \sum_{r \in \mathcal{Q}_2} \tau_{iq}^{1} \tau_{jr}^{2} \log f(Y_{ij}; \alpha_{qr}) + \sum_{i=1}^{n_1} \sum_{q \in \mathcal{Q}_1} \tau_{iq}^{1} \log \pi_{\color{black}q} + \sum_{j=1}^{n_2} \sum_{r \in \mathcal{Q}_2} \tau_{jr}^{2} \log \rho_{\color{black}r} \\ - \sum_{i=1}^{n_1} \tau_{iq}^{1} \log \tau_{iq}^{1} - \sum_{j=1}^{n_2} \tau_{jr}^{2} \log \tau_{jr}^{2}

##### 1.1.3.1 Modèle Sophie

Avec \rho_r^j = \frac{\exp{\beta_r X_j}}{\sum_{s=1}^{R} \exp{\beta_s X_j}} = \sigma(\pmb{\beta} \pmb{X})_{r,j}, où \sigma désigne le softmax. Mais il y a besoin de poser une contrainte sur l’un des (\beta_r)_{r=1,\dots,R}, ici \beta_R = 0.

La partie pertinente de l’ELBO devient: P((\beta_r)_{r=1,\dots,R}, (X_j)_{j=1,\dots,n_2}, (\tau_{jr})_{\substack{j=1,\dots,n_2\\r=1,\dots,R}} ) = \sum_{j=1}^{n_2} \sum_{r=1}^{R} [\tau_{jr} (\beta_r X_j - \log (\sum_{s=1}^{R} \exp{\beta_s X_j}))] \tag{1}

Et on obtient la dérivée partielle par rapport à \beta_t comme: \begin{align*} \dfrac{\partial P}{\partial \beta_t}&((\beta_r)_{r=1,\dots,R}, (X_j)_{j=1,\dots,n_2}, (\tau_{jr})_{\substack{j=1,\dots,n_2\\r=1,\dots,R}} ) = \sum_{j=1}^{n_2} \biggl[ \tau_{jt} X_j - \frac{X_j \exp{\beta_t X_j}}{\sum_{s=1}^{R} \exp{\beta_s X_j}} \biggr]\\ & = \sum_{j=1}^{n_2} \biggl[\bigl(\tau_{jt} - \sigma(\pmb{\beta} \pmb{X})_{t,j}\bigr) X_j\biggr] = \sum_{j=1}^{n_2} \biggl[\bigl(\tau_{jt} - \rho_t^j \bigr) X_j\biggr] \end{align*}

#### 1.1.4 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

#### 1.1.5 Réflexion

- easy16s : se renseigner sur
  - \alpha, \beta diversité
  - Heatmap
- Regarder SPARTA Rennes
- Ecrire et étudier les modèles pour différents niveaux taxonomiques.
- 🆕 Regarder NetComi
- 🆕 Regarder OneNet car aggrégation plus robuste
- 🆕 Réfléchir sens d’aggréger les données ou de les diviser

#### 1.1.6 Écrire et faire tourner

- Lancer colBiSBM sur OTU\times Sample → problème du chargement en mémoire des données à voir
- Lancer colSBM sur OTU\times OTU
- TabNet pratiquer les exercices
- 🆕 SparCC à différent niveaux
- 🆕 SBM à différent niveaux
- 🆕⌛ Tree-PLN à différents niveaux

#### 1.1.7 Causalité

Plus sur le temps long, à regarder

- GT causalité
- Daria Bystrova lire présentation Bystrova (s. d.) (Meek rules, V-structure)

## 2 A discuter

- 🆕 Voir pour des Réseaux / GDR ou aller
- 🆕 Chercher des cours à suivre

## 3 Biblio à faire

- Regarder Transport optimal graphes bipartite.

## 4 Lectures en cours 📚

### 4.1 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

### 4.2 OT

- ⌛ Mazelet, Flamary, et Thirion (s. d.) Intéressant pour le transport optimal entre graphes de tailles différentes | Regarder si regularization entropique ne marche pas bien pour le graphe.
- ⌛ Nenna (s. d.b) Pour comprendre le problème d’OT régularisé pour l’entropie.
- ⌛ Nenna (s. d.a)

### 4.3 Inférence de graphes

- ⌛ Aitchison (1982), en cours

- ❗📖 Payne et al. (2023) sur MixMPLN

### 4.4 Causalité

- ❗📖 Bystrova (s. d.)

### 4.5 Largest Gaps

- ❗📖 Brault et Channarond (2023)
- ❗📖 Channarond, Daudin, et Robin (2012) le papier qui introduit le Largest Gaps

## Les références

Abramov, Kesem, Barry Biton, Geut Galai, Rami Puzis, et Shai Pilosof. s. d. « Structure Knows Best: Predicting Ecological Interactions Across Space Through Pairwise Integration of Latent Network Patterns ».
Aitchison, J. 1982. « The Statistical Analysis of Compositional Data ». Journal of the Royal Statistical Society. Series B (Methodological) 44 (2): 139‑77. https://www.jstor.org/stable/2345821.
Brault, Vincent, et Antoine Channarond. 2023. « Fast and Consistent Algorithm for the Latent Block Model ». 9 mars 2023. https://doi.org/10.48550/arXiv.1610.09005.
Bystrova, Daria. s. d. « Causal Discovery ».
Channarond, Antoine, Jean-Jacques Daudin, et Stéphane Robin. 2012. « Classification and Estimation in the Stochastic Blockmodel Based on the Empirical Degrees ». Electronic Journal of Statistics 6 (janvier). https://doi.org/10.1214/12-ejs753.
Mazelet, Sonia, Rémi Flamary, et Bertrand Thirion. s. d. « Unsupervised Learning for Optimal Transport Plan Prediction Between Unbalanced Graphs ».
Nenna, Luca. s. d.a. « Lecture 1 Monge and Kantorovich Problems: From Primal to Dual ».
———. s. d.b. « Lecture 2: Entropic Optimal Transport ».
Payne, Andrea, Anjali Silva, Steven J. Rothstein, Paul D. McNicholas, et Sanjeena Subedi. 2023. « Finite Mixtures of Multivariate Poisson-Log Normal Factor Analyzers for Clustering Count Data ». 13 novembre 2023. https://doi.org/10.48550/arXiv.2311.07762.
Peixoto, Tiago P. 2014. « Hierarchical Block Structures and High-Resolution Model Selection in Large Networks ». Physical Review X 4 (1): 011047. https://doi.org/10.1103/PhysRevX.4.011047.