Analyse de données biologiques

VI - Graphiques et corrélations (version 3.0)

Prof. Patrick E. Meyer

data.frame sur fichier

read.table(file, header = FALSE, sep = "", quote = "\",
  dec = ".", numerals = c("allow.loss", "warn.loss",
  row.names, col.names, as.is = !stringsAsFactors,
  na.strings = "NA", colClasses = NA, nrows = -1,
  skip = 0, check.names = TRUE, fill = !blank.lines.s
  strip.white = FALSE, blank.lines.skip = TRUE,
  comment.char = "#",
  allowEscapes = FALSE, flush = FALSE,
  stringsAsFactors = default.stringsAsFactors(),
  fileEncoding = "", encoding = "unknown", ...)
  • La fonction read.table() crée un dataframe à partir d’un fichier ASCII.
  • La première ligne du fichier peut contenir un header donnant les noms des variables (header=T).
  • Attention aux paramètres ‘sep=’, ‘dec=’

Exemple lecture fichier

  • Si fichier thuesen.txt avec les données suivantes:

    blood.glucose   short.velocity
    15.3            1.76
    10.8            1.34
    8.1             1.27
    alors:
    > thuesen <- read.table("thuesen.txt", header=T)

Valeurs manquantes

Gérer les valeurs manquantes (NA):

is.na(Y)
na.omit(Y)

Fonctions graphiques: scatter plots

Fonctions graphiques: bar plots

Fonctions graphiques avancées

Fonctions graphiques avancées (2)

Correlation de Pearson

\[\rho_{X,Y}=\frac{E[X-\mu_X]E[Y-\mu_Y]}{\sigma_X \sigma_Y}= E[Z_xZ_y]\]

Corrélation de Pearson 2

  • Non-impacté par une transformation linéaire \(X\) to \(a + bX\)
  • Impacté par une transformation non-linéaire
  • conçu pour des variables normales

Corrélation de Spearman

Corrélation de Pearson lorsque la valeur des points est transformée en rangs, (mieux pour variables non-normales mais attention aux valeurs extrêmes)

Corrélation de Spearman 2

Corrélation de Kendall

Exemples:

> correl <- cor(X,Y,methods="spearman") #two vectors
> correl2 <- cor(X, methods="pearson", 
+ na.rm="pairwise.complete.obs") #one data.frame
> correl3 <- cor(X[,1],X[,-1],methods="kendall")

\[\tau=\frac{nc-nd}{0.5n(n-1)}\]

  • Nombre de “swaps” pour transformer un vecteur en un autre.
  • Plus lent que la corrélation de Spearman.

Erreurs typiques

sort(cor(X[,1],X),decreasing=T)[2:4] #three most correlated

  • fonction anticor?
  • sort(cor(X[,1],X),decreasing=F)[2:4] #hmmm :(
  • Quid si on veut les plus indépendants?

Conclusion, vous avez appris:

  • A lire un fichier texte (ou R) contenant un dataset (d’expression par exemple)
  • A sélectionner des expériences du dataset qui remplissent des conditions voulues
  • A sélectionner des gènes pertinents (corrélées et/ou anti-corrélées) afin d’expliquer une autre variable
  • A déterminer si un gène donné est statistiquement significativement différentiellement exprimé entre deux conditions

Plus généralement vous aurez appris:

  • les grands principes de l’analyse de données (probabilité,corrélations,p-valeurs,…)
  • la logique du langage R
    • Adaptabilité à de nombreux packages que vous risquez d’utiliser (Bioconductor)
    • Comprendre les bases pour pouvoir intéragir avec une IA (ex:chatGPT)

Concernant les retours sur le cours

  • Rendre le cours plus intéressant (stat, info, bio)
  • Rendre les exercices plus intéressants (langage vs applications)
  • Présentiel vs distanciel
  • Mieux évaluer les connaissances acquises