1 TODO List
✅ C’est fait Passer version article flat dans Gitlab du papier et nettoyer au minimum sur une branche clean.
✅ Corrigée !⚠️ IL Y A UNE TYPO SUR LE SIGNE DE L’ENTROPIE POUR LE PAPIER: - \mathcal{H} au lieu de +\mathcal{H}
✅ Faire tourner clustering sur Trojelsgaard. Fait mais ne sépare personne.
Petites opérations sur les OTUs (regarder la matrice dans les yeux):
- Ranger les OTUs par variances (i.e.
sd(OTU_j)) - ✅ Dans un RMD sur Human Microbiome Compendium Dessiner les graphiques : \mathbb{V}[OTU] = f(\mathbb{E}[OTU]), \frac{\mathbb{V}[OTU]}{\mathbb{E}[OTU]^2} = f(\mathbb{E}[OTU]) et \frac{\mathbb{V}[OTU]}{\mathbb{E}[OTU]} = f(\mathbb{E}[OTU]) (\approx 1) si les données suivent une loi de Poisson.
- 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
- Ranger les OTUs par variances (i.e.
✅ Faire tourner un LBM sur Human Gut et voir si ça plante sinon, ça plante, la ram est surchargée.
- ❎⌛ Je tente avec SparseBM de JBL sur Python. Ne gère pas le Poisson
- Faire LBM sur niveau taxonomique grossier, initialiser avec le résultat pour un niveau plus fin et ainsi de suite.
Increasing size :

⌛ 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
blockmodelsLBM avec covariables sur proportions (voir Équation 1)
- Travailler sur Fungus Tree network
- 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.
- ✅ Inutile car besoin du primal Chercher à formuler le problème dual (s’il existe?) de l’optimisation du LBM. Peut-être possible d’aller plus vite alors ? Équation 2
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é :
Regarder pour les couples date+nom les études et le nombre de réseaux analysables (Possible demander à Élisa)
- ⌛ Chamberlain et al semble intéressant à regarder ! Voir le Rmarkdown
Clusteriser sur la base des noms et voir parmi les réseaux Européens (désagrégés ?)
Si M > 10, alors voir si je retrouve les mêmes résultats que dans les études.
Regarder Largest gap sur réseaux Doré
⌛ Essayer clustering sur
supinfo- CAH et Kmeans tendent vers faire K = 13 clusters sur les supinfos
- Enrichir avec des métriques sur les réseaux (nestedness, connectance autres ?)
- Demander à Elisa pour la signification des métadonnées
- Demander à Elisa une fois vu cohérences de groupe voir pour interprétation écologiques ?
- Algo de clustering sur les groupes trouvés
1.1 Inférence et microbes
1.1.1 Modèle avec covariables sur probas d’appartenances aux groupes
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}
Plusieurs possibilités pour la définition de \rho_r^j
1.1.1.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.2 Idée du problème dual
Les distributions variationnelles sont définies par :
q(Z,W) = \prod_{i=1}^{n_1} q_i(Z_i) \prod_{j=1}^{n_2} q_j(W_j),
avec q_i(Z_i=q)=\tau_{iq}^{(1)}, \qquad q_j(W_j=r)=\tau_{jr}^{(2)}.
Les contraintes de normalisation sont : \sum_{q=1}^Q \tau_{iq}^{(1)} = 1, \qquad \sum_{r=1}^R \tau_{jr}^{(2)} = 1.
1.1.2.1 Lagrangien
Le lagrangien du problème variationnel s’écrit : \mathcal{L}\!\left( \tau^{(1)},\tau^{(2)},(\lambda_i)_{i=1}^{n_1},(\mu_j)_{j=1}^{n_2} \right) = \mathcal{J}(\mathcal{R},\pmb{\theta}) + \sum_{i=1}^{n_1} \lambda_i \left(1-\sum_{q=1}^Q \tau_{iq}^{(1)}\right) + \sum_{j=1}^{n_2} \mu_j \left(1-\sum_{r=1}^R \tau_{jr}^{(2)}\right), où \mathcal{J}(\mathcal{R},\pmb{\theta}) désigne la borne inférieure variationnelle associée au modèle et aux paramètres \Theta.
1.1.2.2 Problème primal (conditions d’optimalité)
En dérivant le lagrangien par rapport aux variables variationnelles \tau^{(1)} et \tau^{(2)}, puis en égalisant à zéro, on obtient les équations de point fixe suivantes :
\tau_{iq}^{(1)} \propto \pi_q^{(t)} \prod_{j=1}^{n_2} \prod_{r=1}^{R} f\!\left(Y_{ij};\alpha_{qr}^{(t)}\right)^{\tau_{jr}^{(2),(t+1)}}, \quad \forall i=1,\dots,n_1,\; q=1,\dots,Q,
\tau_{jr}^{(2)} \propto \rho_r^{(t)} \prod_{i=1}^{n_1} \prod_{q=1}^{Q} f\!\left(Y_{ij};\alpha_{qr}^{(t)}\right)^{\tau_{iq}^{(1),(t+1)}}, \quad \forall j=1,\dots,n_2,\; r=1,\dots,R, où :
- \pi_q^{(t)} et \rho_r^{(t)} sont les proportions de classes,
- f(\cdot;\alpha_{qr}) est la loi d’émission du modèle,
- \alpha_{qr}^{(t)} désigne les paramètres de bloc à l’itération t.
1.1.2.3 Constantes de normalisation
Les constantes de normalisation associées sont données par :
T^{(1),(t)}_i = \sum_{q=1}^{Q} \pi_q^{(t)} \exp\!\left( \sum_{j=1}^{n_2} \sum_{r=1}^{R} \tau_{jr}^{(2)} \log f\!\left(Y_{ij};\alpha_{qr}^{(t)}\right) \right),
T^{(2),(t)}_j = \sum_{r=1}^{R} \rho_r^{(t)} \exp\!\left( \sum_{i=1}^{n_1} \sum_{q=1}^{Q} \tau_{iq}^{(1)} \log f\!\left(Y_{ij};\alpha_{qr}^{(t)}\right) \right).
Ainsi, les mises à jour normalisées s’écrivent : \tau_{iq}^{(1)} = \frac{1}{T^{(1),(t)}_i}(\cdots), \qquad \tau_{jr}^{(2)} = \frac{1}{T^{(2),(t)}_j}(\cdots).
1.1.2.4 Interprétation duale
Les multiplicateurs de Lagrange s’identifient alors à : \lambda_i = -\log T^{(1),(t)}_i - 1, \qquad \mu_j = -\log T^{(2),(t)}_j - 1, \tag{2} et le problème dual consiste à minimiser une somme de fonctions de log-partition, ce qui montre que l’algorithme VEM réalise implicitement une descente sur le dual.
1.1.3 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.4 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.5 É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.6 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
4.3 Inférence de graphes
4.4 Causalité
- ❗📖 Bystrova (s. d.)