Working on phylogeny
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful

This commit is contained in:
Louis 2026-05-06 17:11:25 +02:00
parent ee6ea17a0d
commit 809e008e0b
4 changed files with 111 additions and 4 deletions

View file

@ -4,4 +4,9 @@
\newcommand{\Var}{\mathbb{V}} \newcommand{\Var}{\mathbb{V}}
\newcommand{\Esp}{\mathbb{E}} \newcommand{\Esp}{\mathbb{E}}
\newcommand{\Prob}{\mathbb{P}} \newcommand{\Prob}{\mathbb{P}}
\newcommand{\calL}{\mathcal{L}} \newcommand{\calL}{\mathcal{L}}
\newcommand{\Normal}{\mathcal{N}}
\newcommand{\R}{\mathbb{R}}
\DeclareMathOperator{\ilr}{ilr}
\DeclareMathOperator{\clr}{clr}
\DeclareMathOperator{\Cat}{Cat}

Binary file not shown.

View file

@ -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}

View file

@ -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** 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"} ::: {#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 # 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. 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. **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