travail complexe sur data frame
Salut!
Je travaille sur un data frame que je voudrais par la suite utiliser comme base de données. Pour le contexte, je dois récupérer des données sur des gènes à partir d'expériences de microarray, comme par exemple le symbole du gène, l'identifiant sonde, le GB_acc, le titre du gène, et son identifiant en base de données (entrez, unigene... en fonction de ce qui est dispo).
Je vous mets un exemple de deux morceaux de tableaux que j'obtiens à partir de 2 expériences différentes sur des technologies différentes:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| Tableau1
ID GeneSymbol GeneTitle GBAcc
4 Prr13 proline rich 13 NM_025385
9 Pla2g4d phospholipase A2, group IVD NM_001024137
10 Tmem59l transmembrane protein 59-like NM_182991
15 Spty2d1 SPT2, Suppressor of Ty, domain containing 1 (S. cerevisiae) NM_175318
25829 Copg coatomer protein complex, subunit gamma NM_017477
11826 Atp6v0d1 ATPase, H+ transporting, lysosomal V0 subunit D1 NM_013477
12269 Iigp1 interferon inducible GTPase 1 NM_001146275
12943 Agpat1 1-acylglycerol-3-phosphate O-acyltransferase 1 (lysophosphatidic acid acyltransferase, alpha) NM_001163379
Tableau2
ID GeneSymbol GeneTitle GBAcc ENTREZ
1415670_at Copg coatomer protein complex, subunit gamma BC024686 54161
1415671_at Atp6v0d ATPase, H+ transporting, lysosomal V0 subunit D1 NM_013477 11972
1415672_at Golga7 golgi autoantigen, golgin subfamily a, 7 NM_020585 57437
1415673_at Psph phosphoserine phosphatase NM_133900 100678
1423686_a_at Prr13 proline rich 13 BC016234 66151
1421024_at Agpat1 1-acylglycerol-3-phosphate O-acyltransferase 1 (lysophosphatidic acid acyltransferase, alpha) BB524140 55979
1421025_at Agpat1 1-acylglycerol-3-phosphate O-acyltransferase 1 (lysophosphatidic acid acyltransferase, alpha) BB524140 55979 |
J'ai utilisé la fonction merge et j'obtiens le résultat suivant:
Code:
1 2 3 4 5 6 7
|
GeneTitle ID.x GeneSymbol.x GBAcc.x ENTREZ ID.y GeneSymbol.y GBAcc.y
1-acylglycerol-3-phosphate O-acyltransferase 1 (lysophosphatidic acid acyltransferase, alpha) 1421024_at Agpat1 BB524140 55979 12943 Agpat1 NM_001163379
1-acylglycerol-3-phosphate O-acyltransferase 1 (lysophosphatidic acid acyltransferase, alpha) 1421025_at Agpat1 BB524140 55979 12943 Agpat1 NM_001163379
ATPase, H+ transporting, lysosomal V0 subunit D1 1415671_at Atp6v0d1 NM_013477 11972 11826 Atp6v0d1 NM_013477
coatomer protein complex, subunit gamma 1415670_at Copg BC024686 54161 25829 Copg NM_017477
proline rich 13 1423686_a_at Prr13 BC016234 66151 4 Prr13 NM_025385 |
D'un côté j'obtiens bien ce que je veux : ce sous-tableau mergé ne me renvoie que les entrées GeneTitle en commun entre les deux tableaux.
Maintenant mon problème c'est, dans cet exemple, le cas de Agpat1 que l'on retrouve avec 2 identifiants de sonde différents pour une même technologie.
Ce que je voudrais faire à ce moment-là (et par la suite je pense que ça sera le même principe pour des noms de gènes, ou des symboles)
c'est transformer ces deux lignes Agpat1 pour avoir le résultat suivant:
Code:
1 2 3 4 5 6 7
| Avant (Extrait)
GeneTitle ID.x GeneSymbol.x GBAcc.x ENTREZ ID.y GeneSymbol.y GBAcc.y
1-acylglycerol-3-phosphate O-acyltransferase 1 (lysophosphatidic acid acyltransferase, alpha) 1421024_at Agpat1 BB524140 55979 12943 Agpat1 NM_001163379
1-acylglycerol-3-phosphate O-acyltransferase 1 (lysophosphatidic acid acyltransferase, alpha) 1421025_at Agpat1 BB524140 55979 12943 Agpat1 NM_001163379
Après (le changement d'ordre des colonnes est involontaire, il n'a pas d'importance dans mon cas)
ID.x ID.y GeneSymbol GeneTitle GBAcc ENTREZ
1421024_at,1421025_at 12943 Agpat1 1-acylglycerol-3-phosphate O-acyltransferase 1 (lysophosphatidic acid acyltransferase, alpha) BB524140 55979 |
Et j'avoue que je ne vois pas comment faire. Est-ce que quelqu'un aurait une idée?
Merci d'avance!