> Modules non standards > Autres modules non standards > PyDESeq2
PyDESeq2
imports :
from pydeseq2.default_inference import DefaultInference
from pydeseq2.dds import DeseqDataSet
from pydeseq2.ds import DeseqStats
Principe :
- on construit un objet DeseqDataSet avec les data, metadata et en indiquant le facteur qui détermine les groupes :
inference = DefaultInference(n_cpus = 8)
dds = DeseqDataSet(counts = dfCounts, metadata = dfMetadata, design = '~day',
independent_filter = True, refit_cooks = True, inference = inference, quiet = True)
dfCounts doit être de type sample x gènes et dfMetadata doit être de type sample x attribut, dont ici l'attribut day.
- refit_cooks : enlève les outliers
- independent filtering : on écarte a priori les gènes qui n'ont aucune chance de ressortir comme significatifs parce que les comptes sont trop faibles. Ca permet de diminuer le nombre de tests et donc d'avoir des p-values ajustées moins hautes
- DeseqDataSet dérive en fait de AnnData.
- en fait, pour construire un DeseqDataSet, on peut donner simplement un objet AnnData qui a ses groupes dans le dataframe .obs, plutôt que un dataframe de counts et un dataframe de metadata.
- dds.deseq2() : calcule les facteurs de normalisation, fitte les dispersions et les log fold change.
- ds = DeseqStats(dds, contrast = ['day', 'treated', 'ref'], alpha = 0.05, inference = inference, quiet = True) : day est le nom de la variable, ref est le niveau de référence, treated est le traitement.
- ds.summary() : fait les calculs.
- le résultat est dans le dataframe ds.results_df avec notamment les champs baseMean, log2FoldChange, pvalue, padj (baseMean est la valeur moyenne globale de tous les samples (traités et contrôle).
- la p-value peut être NA quand il y a des outliers (du à cooks_filter = True, le défaut)
log fold change shrunken :
Copyright python-simple.com

programmer en python, tutoriel python, graphes en python, Aymeric Duclert