Recuperer des donnees d'une liste

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

Myriam Croze
Messages : 18
Enregistré le : 22 Jan 2013, 15:14

Recuperer des donnees d'une liste

Messagepar Myriam Croze » 07 Mai 2014, 16:50

Bonjour,

Voila j'ai deux tableaux qui se presente sous ce format:

Tableau1:
Start End
1 1185001 1186000
2 1199001 1200000
3 1537001 1538000
4 1610001 1611000
5 1611001 1612000
6 1732001 1733000
7 1969001 1970000
.. ... ...

Tableau 2:
Genes FB_Genes Start End
1 CG11023 FBgn0031208 7529 9484
2 l(2)gl FBgn0002121 9839 21376
3 CG12567 FBgn0039958 19633 32995
4 Ir21a FBgn0031209 21823 25155
5 CR43609 FBgn0263584 21952 24237
.. .... .... ... ....

Je voudrais recuperer une liste des Genes du Tableau 2 qui ont une region en commun avec la liste du tableau 1.
Par exemple, si j'ai un une region (tableau 1) qui va de 1200 (Start) a 2200 (End), je voudrais recuperer la liste des genes qui contiennent cette region comme par exemple un gene allant de 1500 (start) a 2600 (End).

J'espere que c'est assez claire.

Voila le script que j'ai fait, mais je pense que mon if est faux et je dois sans doute avoir d'autres erreurs:

Code : Tout sélectionner

# read in the data
Table_2L<-read.table("D:/PhD/ListeGenes/Genes_2L.csv", sep=",", header=TRUE)
Table_95_2L<-read.table("D:/PhD/ListeGenes/Regions_95_2L.csv", sep=",", header=TRUE)

Start95 <- Table_95_2L$Start
End95 <- Table_95_2L$End

Start <- Table_2L$Start
End <- Table_2L$End

Genes <- Table_2L$Genes

For (Start & End){
 
  if (Start95 > Start & End95 < End)
  {
    wtite.csv(Genes, file="ListeGenes")
  }
 
}



Quelqu'un aurait-il une amelioration de ce script a me proposer?
Ou une autre idee pour avoir ma liste.

Merci d'avance,
Myriam

Titouan Robert
Messages : 9
Enregistré le : 28 Fév 2014, 15:26

Messagepar Titouan Robert » 09 Mai 2014, 07:29

Bonjour,

Je ne suis pas sur d'avoir bien compris mais je pense que tu peux remplacer ta boucle par sa :

intersect(which(Start95 > Start) , which(End95 < End))

Titouan

Myriam Croze
Messages : 18
Enregistré le : 22 Jan 2013, 15:14

Messagepar Myriam Croze » 10 Mai 2014, 15:30

Merci pour ta reponse.
J'ai finalement reussi a faire le script.


Retourner vers « Questions en cours »

Qui est en ligne

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