Données redondantes

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

Coraline BRIS
Messages : 6
Enregistré le : 26 Oct 2017, 13:14

Données redondantes

Messagepar Coraline BRIS » 26 Oct 2017, 14:02

Bonjour

J'ai un jeu de données du type
ind1 ind2 ind3 ind4 ind5 ind6 ind7
mk1 A A G A A A G
mk2 C G G C G C G
mk3 T A A T A T A
mk4 A T T T T T T
mk5 G G A G G G G
mk6 T C C C C C C

Je souhaite supprimer les données qui me donnent des informations redondantes. Par exemple, le marqueur 4 me donne la même information que le marqueur 6, pareil pour les marqueurs 2 et 3.
La fonction duplicate() ne peut donc pas m'aider ici puisque les données ne sont pas à proprement parler dupliquées.

Quelqu'un aurait une idée?

Merci d'avance

Coraline

Pierre-Yves Berrard
Messages : 1029
Enregistré le : 12 Jan 2016, 23:30

Re: Données redondantes

Messagepar Pierre-Yves Berrard » 26 Oct 2017, 14:17

Bonjour,
Coraline BRIS a écrit :Par exemple, le marqueur 4 me donne la même information que le marqueur 6, pareil pour les marqueurs 2 et 3.

Pourquoi ?

(j'ai bien une idée que je pourrais confirmer en relisant mes cours de SVT de lycée...)
PY

Coraline BRIS
Messages : 6
Enregistré le : 26 Oct 2017, 13:14

Re: Données redondantes

Messagepar Coraline BRIS » 26 Oct 2017, 14:31

Je travaille sur des données de génotypage donc sur les bases de l'ADN. J'ai donc de nombreuses données (plusieurs millions de lignes) donc la première raison est que j'aimerai diminuer la taille du jeu de données. Ensuite, quand je cherche à détecter des QTL/gènes associés à ces marqueurs, ils m'apportent tous la même information. Avoir une seule copie de cette information me suffit donc. Enfin, certains logiciels d'analyse ne supportent pas ces données redondantes et bloquent quand ils les rencontrent.

Pierre-Yves Berrard
Messages : 1029
Enregistré le : 12 Jan 2016, 23:30

Re: Données redondantes

Messagepar Pierre-Yves Berrard » 26 Oct 2017, 15:03

ok, mais ça n'explique pas pourquoi les lignes 4 et 6 sont redondantes
PY

Coraline BRIS
Messages : 6
Enregistré le : 26 Oct 2017, 13:14

Re: Données redondantes

Messagepar Coraline BRIS » 26 Oct 2017, 15:08

Pardon, je n'avais pas compris la question!

Les séquences changent de lettres aux mêmes endroits.
Je ne peux avoir que 2 lettres dans chaque séquence et la lettre importe peu en réalité. Ce qui compte ici c'est le fait de changer de lettre. Deux marqueurs qui changent de lettre toujours aux mêmes endroits sont donc considérés comme me donnant la même information.

J'espère être assez claire

Coraline

Pierre-Yves Berrard
Messages : 1029
Enregistré le : 12 Jan 2016, 23:30

Re: Données redondantes

Messagepar Pierre-Yves Berrard » 26 Oct 2017, 15:20

Oui, c'est plus clair !

Une idée en utilsant la fonction rle sur chaque ligne (MARGIN = 1) du tableau de donnees.

Code : Tout sélectionner

longueurs_sequences <-
  apply(
    donnees,
    MARGIN = 1,
    function(x) paste(rle(x)$lengths, collapse = ",")
  )
donnees[!duplicated(longueurs_sequences), ]

#     ind1 ind2 ind3 ind4 ind5 ind6 ind7
# mk1    A    A    G    A    A    A    G
# mk2    C    G    G    C    G    C    G
# mk4    A    T    T    T    T    T    T
# mk5    G    G    A    G    G    G    G
PY

Coraline BRIS
Messages : 6
Enregistré le : 26 Oct 2017, 13:14

Re: Données redondantes

Messagepar Coraline BRIS » 26 Oct 2017, 15:44

Ca fonctionne!
J'ai tout de même un problème avec les données manquantes...
Si j'ai
A A NA A T T
A A T A T T
les deux séquences sont considérées comme identiques.

Coraline

Pierre-Yves Berrard
Messages : 1029
Enregistré le : 12 Jan 2016, 23:30

Re: Données redondantes

Messagepar Pierre-Yves Berrard » 26 Oct 2017, 20:53

Coraline BRIS a écrit :J'ai tout de même un problème avec les données manquantes...

Avec une fonction plus élaborée ?

Code : Tout sélectionner

function(x) {
  rlex <- rle(x)
  rlex$lengths[is.na(rlex$values)] <- 0
  paste(rlex$lengths, collapse = ",")
}

À tester.
PY

Coraline BRIS
Messages : 6
Enregistré le : 26 Oct 2017, 13:14

Re: Données redondantes

Messagepar Coraline BRIS » 27 Oct 2017, 06:58

J'avais réussi à faire quelque chose d'assez semblable.
Nos deux méthodes fonctionnent parfaitement. C'est un peu moins rapide en se préoccupant des NA mais plus juste!

Merci pour votre aide

Coraline


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité