From 809e008e0bf0623a37378976621d6693246b8627 Mon Sep 17 00:00:00 2001 From: Louis Date: Wed, 6 May 2026 17:11:25 +0200 Subject: [PATCH] Working on phylogeny --- _macros.tex | 7 ++- .../figs/projets-phylo/dag-simple.pdf | Bin 0 -> 28446 bytes .../figs/projets-phylo/dag-simple.tex | 54 ++++++++++++++++++ knowledge_base/projets-phylo.qmd | 54 +++++++++++++++++- 4 files changed, 111 insertions(+), 4 deletions(-) create mode 100644 knowledge_base/figs/projets-phylo/dag-simple.pdf create mode 100644 knowledge_base/figs/projets-phylo/dag-simple.tex diff --git a/_macros.tex b/_macros.tex index d15791f..46830af 100644 --- a/_macros.tex +++ b/_macros.tex @@ -4,4 +4,9 @@ \newcommand{\Var}{\mathbb{V}} \newcommand{\Esp}{\mathbb{E}} \newcommand{\Prob}{\mathbb{P}} -\newcommand{\calL}{\mathcal{L}} \ No newline at end of file +\newcommand{\calL}{\mathcal{L}} +\newcommand{\Normal}{\mathcal{N}} +\newcommand{\R}{\mathbb{R}} +\DeclareMathOperator{\ilr}{ilr} +\DeclareMathOperator{\clr}{clr} +\DeclareMathOperator{\Cat}{Cat} \ No newline at end of file diff --git a/knowledge_base/figs/projets-phylo/dag-simple.pdf b/knowledge_base/figs/projets-phylo/dag-simple.pdf new file mode 100644 index 0000000000000000000000000000000000000000..bca23075e9c4a323496c3db9648cbdebaf940e49 GIT binary patch literal 28446 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 F{|EOc!1DkA literal 0 HcmV?d00001 diff --git a/knowledge_base/figs/projets-phylo/dag-simple.tex b/knowledge_base/figs/projets-phylo/dag-simple.tex new file mode 100644 index 0000000..3b20568 --- /dev/null +++ b/knowledge_base/figs/projets-phylo/dag-simple.tex @@ -0,0 +1,54 @@ +\documentclass{standalone} + +\usepackage{tikz} + +\usetikzlibrary{positioning,shapes.arrows, arrows.meta,shapes.geometric} +\begin{document} +\begin{tikzpicture} + \tikzset{ + every path/.append style = { + arrows = ->, + > = stealth, + }, + every node/.append style = { + shape = circle, + draw = black, + minimum size=3em + }, + latent/.style = { + fill = lightgray + }, + prior/.style = { + fill = red + }, + moral/.style = { + dashed, + > = {}, % remove arrow tip + arrows = -, % ensure no arrows + } + } + + \node (y) {$Y$}; + \node[latent] (z) [above left = of y] {$Z$}; + \node[latent] (w) [above right = of y] {$W$}; + + \node[latent] (P) [above = of z] {$P$}; + \node[prior] (sigma2) [above = of P] {$\sigma^2$}; + \node[prior] (rho) [above = of w] {$\rho_{1:R}$}; + \node[prior] (alpha) [below = of y] {$\pmb{\alpha}$}; + + \path (z) edge (y); + \path (w) edge (y); + \path (rho) edge (w); + \path (alpha) edge (y); + \path (P) edge (z); + \path (sigma2) edge (P); + + % moral + \path[moral] (z) edge (alpha); + \path[moral] (w) edge (alpha); + \path[moral] (z) edge (w); + +\end{tikzpicture} + +\end{document} \ No newline at end of file diff --git a/knowledge_base/projets-phylo.qmd b/knowledge_base/projets-phylo.qmd index 84e1a13..a790adc 100644 --- a/knowledge_base/projets-phylo.qmd +++ b/knowledge_base/projets-phylo.qmd @@ -11,12 +11,39 @@ Dans le 3e axe de ma thèse nous souhaitons inclure de l'information phylogéné 1. Ces réseaux se présentent sous la forme de matrice des comptages hautement rectangulaire, c'est-à-dire avec un grand nombre de microorganismes et, en comparaison, peu d'échantillons (de sols, d'aliments, de patients...). Cette haute dimensionnalité met en échec les méthodes classiques non concues pour gérer autant de noeuds (SBM). Il s'agit donc d'un **premier enjeu** -2. Les données de comptages de ces matrices sont compositionnelles : la profondeur de séquençage (le nombre de séquences lues) étant finie, cela implique une dépendance entre les comptages observés. Si une séquence est surexprimée par rapport aux autres, alors que l'abondance réelle des autres n'a pas changée, les comptages observés des autres séquences vont diminuer. Voir [@note-donnees-compo]. +2. Les données de comptages de ces matrices sont compositionnelles : la profondeur de séquençage (le nombre de séquences lues) étant finie, cela implique une dépendance entre les comptages observés. Si une séquence est surexprimée par rapport aux autres, alors que l'abondance réelle des autres n'a pas changée, les comptages observés des autres séquences vont diminuer. Voir [la note sur les données compositionnelles](#note-donnees-compo). ::: {#note-donnees-compo .callout-note title="Données compositionelles"} -Soit $N$ la profondeur de séquençage, $\forall s \in \{1,\dots,s\}, n_s$ le nombre réel de fois où la séquence $s$ est présente. Les comptages observés $o_s$ pour la séquence $s$ sont $o_s = \dfrac{n_s}{N}$, et on a $\sum_{s} o_s = N$ par construction. +Soit $N$ la profondeur de séquençage, $\forall s \in \{1,\dots,s\}, n_s$ le nombre réel de fois où la séquence $s$ est présente, $t = \sum_s n_s$ la somme des séquences totale. Les comptages observés $o_s$ pour la séquence $s$ sont $o_s = \dfrac{n_s}{N}$, et on a $\sum_{s} o_s = \dfrac{1}{N} \sum_{s} n_s$ par construction. + +Et donc à pour un $S$ quelconque on a $o_S = \dfrac{t}{N} - \sum_{s, s\neq S} o_s$ et donc une contrainte sur les $o_s$. ::: +Diverses autres enjeux se posent quand on considère ce type de données. Par exemple, l'arbre phylogénétique peut ne pas être directement accessible, ou bien être dominé par un certain clade. Il peut aussi exploser en nombre d'individu à chaque niveau (à relier au point 1). + +## Formalisme commun + +Dans la suite, nous considèrerons $\mathcal{T}$ l'arbre ayant $L$ niveaux, indexés de $l = 0,\dots,L$ avec $0$ la racine commune et $L$ les feuilles de l'arbre. + +$Y$ la matrice de bi-adjacence encodant le graphe et modélisant les interactions, de taille $n_1\times n_2$. + +$V, X$ les matrices de covariable sur les noeuds en ligne et en colonnes de $Y$. $V$ est de taille $n_1 \times d$ et $X$ est de taille $n_2 \times p$ + +# SBM (ou LBM) Séquentiel + +## Formalisation de l'idée + +Ici on utilise l'arbre phylogénétique afin d'initialiser l'EM variationnel du niveau suivant. + +Concrètement, on ajuste un LBM au niveau $l$, sur la matrice de comptage aggrégées à ce niveau $Y^l$, ce qui donne des probabilités variationnelles $\pmb{\tau}^{1,l},\pmb{\tau}^{2,l}$ qui sont de tailles respectives $n_{1,l} \times Q_{l}$ et $n_{2,l} \times R_{l}$. + +Puis pour tout individu $u\in \text{Child}(i)$, on initialise ses probas $\widetilde{\tau}^{1,l+1}_u = \tau^{1,l}_u + \varepsilon_{u}$, avec $\varepsilon_u \sim \mathcal{N}_{Q_l}(0,\sigma^2)$ et on renormalise $\tau^{1,l+1}_{u} = \dfrac{\widetilde{\tau}^{1,l+1}_u}{\sum_q \widetilde{\tau}^{1,l+1}_{u,q}}$. On ajoute une perturbation afin de ne pas rester bloqué sur le point fixe précédent et de pouvoir donc obtenir les $\tau^{1,l+1}$ à l'issue de l'optimisation. + +## Limites de l'approche + +Le passage d'information selon l'arbre nous semble intuitivement être une bonne approche et les résultats que nous avons obtenues indique qu'un peu d'information semble passer mais il faut aller profondément dans l'arbre et alors on rencontre le problème du coût computationnel. +En effet cette méthode ne diminue pas le coût en calcul puisqu'elle calcule un LBM à chacun des $L$ niveaux, au mieux elle donne un point d'initialisation intelligent mais cela semble difficilement applicable à des données réelles. + # SBM et LBM avec covariables sur les noeuds @@ -120,4 +147,25 @@ Maintenant, Sophie et Pierre gèrent la rédaction de vignettes et de simulation Nous attendons de voir si l'on trouve un jeu de données adaptées pour cette méthode. -**Limites** : Ce modèle ne permet pas le passage à l'échelle pour les gros réseaux que représentent les matrices de comptage. \ No newline at end of file +**Limites** : Ce modèle ne permet pas le passage à l'échelle pour les gros réseaux que représentent les matrices de comptage. + +# LBM avec dépendance latente entre les probabilités *a priori* + +## Formalisation du modèle + +Pierre a proposé que l'on pose une structure latente sur les $\pmb{Z}$. C'est à dire + \begin{align*} + & P \sim \Normal_{n_1, K-1} (O_{n_1, K-1}, \Sigma, \sigma^2 Id_{K-1}), \\ + \forall i \in \{1,\dots,n_1\}, & Z_i \mid P_i \overset{ind}{\sim} \Cat_{K} ({\ilr}^{-1}(P_i) = \pi_{1:K}^{(i)}), \\ + \forall j \in \{1,\dots,n_2\}, & W_j \overset{iid}{\sim} \Cat_R (\rho_{1:R}),\\ + \forall i,j \in \{1,\dots,n_1\}\times\{1,\dots,n_2\}, & Y_{ij} \mid Z_i = k, W_j = r \overset{ind}{\sim} \mathcal{F}(\alpha_{qr}), + \end{align*} + avec $\Sigma$, la matrice de variance-covariance déterminée en fonction de l'apparentement (phylogénétique) des noeuds. + +![Le DAG simplifié du modèle](figs/projets-phylo/dag-simple.pdf) + +# Échantillonnage selon l'arbre + +Afin d'affronter le coût computationnel que représente l'ajustement + +# *Latent Position Model* (LPM) avec phylogénie des représentations latentes selon la phylogénie \ No newline at end of file