Boucle For

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

Marine Dupont
Messages : 10
Enregistré le : 14 Jan 2019, 07:54

Boucle For

Messagepar Marine Dupont » 05 Mar 2019, 08:29

Bonjour,

J'ai deux tableaux.
1er tableau : contient mes sous groupes de référence avec plusieurs paramètres
nom_du_groupe/longueur_sequence/sequence/statut_mutationnel/nom_du_gene/...

2ème tableau : mon tableau patient

Mon but est que dans mon tableau patient je retrouve mes sous groupes de référence. Pour cela, j'essaie de réaliser une boucle for pour qui screen chaque ligne de mon patient et qu'il les compare avec mon tableau de référence.
Pour éviter qu'il le fasse 2 à 2 je voulais qu'il ne screen par exemple que les lignes où la longueur de séquence est la même dans les deux tableaux, qu'il calcul une similarité entre mes séquences screené et qu'il puisse m'ajouter le nom du sous groupe dans une colonne ajoutée.

Il me calcul la similarité par rapport la première séquence de mon tableau 1 (référence).
for (j in 1:nrow(tableau1)){
tableau2$longueur_sequence == tableau1$longueur_sequence[j]
score <- sum(strsplit(tableau1$sequence, split = "")[[1]] == strsplit(tableau$sequence[i], split = "")[[1]])
homology <- score/(length(strsplit(tableau1$sequence, "")[[1]]))
tableau2$similarite[i] <- homology
}

Merci d'avance de vos réponses

Marine

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

Re: Boucle For

Messagepar Pierre-Yves Berrard » 05 Mar 2019, 09:50

Bonjour,

Un exemple reproductible serait le bienvenu.
PY

Marine Dupont
Messages : 10
Enregistré le : 14 Jan 2019, 07:54

Re: Boucle For

Messagepar Marine Dupont » 05 Mar 2019, 10:59

Voici un exemple de ce qui se trouve dans mes tableaux
Tableau 1(référence) :
nom_du_groupe/longueur_sequence/sequence/statut_mutationnel
Groupe_1 / 7 / AAEZRET / mutated
Groupe_2 / 7 / RETAAEZ / mutated
Groupe_3 / 10 / AAETEZREZR / mutated
Groupe_4 / 11 / AARETEZRETE / unmutated


Tableau 2 (patient) :
7 / AAEZRET / mutated
7 / RETAAEZ / mutated
10 / AAETEZREZR / mutated
11 / AARETEZRETE / unmutated

Le but étant que dans mon tableau 2 je puisse assigner à chaque ligne le groupe correspondant (dans ma référence).

Merci d'avance

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

Re: Boucle For

Messagepar Pierre-Yves Berrard » 05 Mar 2019, 11:06

Code : Tout sélectionner

merge(
  tableau_2,
  tableau_1,
  by = "sequence", # clé d'appariement (sous réserve d'avoir bien compris)
  all.x = TRUE # pour ne garder que les lignes de tableau_2
)
PY

Marine Dupont
Messages : 10
Enregistré le : 14 Jan 2019, 07:54

Re: Boucle For

Messagepar Marine Dupont » 05 Mar 2019, 11:40

Merci de votre réponse.
En effet, j'ai l'impression que ça fonctionne.
De cette manière, on est d'accord que ça me regroupe toutes les lignes de mes deux tableaux avec la ligne "séquence" identique.

Est-ce que je peux réaliser la même chose en ayant une similarité > 60% entre mes deux lignes de séquence ?

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

Re: Boucle For

Messagepar Pierre-Yves Berrard » 05 Mar 2019, 12:55

Marine Dupont a écrit :Est-ce que je peux réaliser la même chose en ayant une similarité > 60% entre mes deux lignes de séquence ?

J'ai l'impression que non, puisque la clé ne sera pas une variable identifiante.
Il faudrait trouver un moyen de créer des groupes dans la table de référence.
PY

Marine Dupont
Messages : 10
Enregistré le : 14 Jan 2019, 07:54

Re: Boucle For

Messagepar Marine Dupont » 05 Mar 2019, 13:40

Tanpis, je vais essayer de trouver une solution.
Je vous remercie pour votre aide.


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Google [Bot] et 1 invité