IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

R Discussion :

Utilisation du package R/mpMap


Sujet :

R

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2013
    Messages : 2
    Par défaut Utilisation du package R/mpMap
    Bonjour à tous,

    Je suis étudiante en dernière année de formation ingénieur agronome et je réalise un stage dans une boîte de semences. Je fais actuellement des études génétiques sur des lignées de maïs. Mon croisement de départ est un type 4 voies, et j'étudie la descendance de ce croisement, soit 275 individus. D'un point de vue génétique, j'aimerais pouvoir identifier les fragments d'ADN ou haplotypes, qui se sont transmis des parents à leur descendance.

    Pour cela j'ai trouvé le package R/mpMap Il permet une analyse des haplotypes pour des croisements de type 4 ou 8 voies (ça colle avec mon cas). Voici mon problème :

    J'ai réussi à créer l'objet de classe mpcross, avec mes fichiers de départ (founders, finals, pedigree, map et pheno). J'ai vérifié chaque fichier, ils semblent qu'ils ont bien la même forme/dimensions que les data données en exemple par la commande "sim.dat".

    Cependant, lorsque je souhaite exporter cet objet de class mpcross, une erreur survient :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    > write.mpcross(mpc, filestem="mp", format="qtl")
    Error in names(vec) <- colnames(ril) : 
      'names' attribute [625] must be the same length as the vector [2]
    Idem, lorsque je souhaite calculer les haplotypes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    > mppr<-mpprob(mpc,program="qtl")
    [1] "No chromosomes specified, will default to all"
    Error in names(vec) <- colnames(ril) : 
      'names' attribute [625] must be the same length as the vector [2]
    Mes fichier map, founders et finals comportent 623 marqueurs, je pense donc que l'erreur vient des marqueurs. Pourtant ils sont identiques dans chacun de mes fichiers, et ils sont bien au nombre de 623 (et non 625).

    Je ne comprends donc pas d'où vient cette erreur ? Qu'est-ce que le "vector[2]" ? Je n'arrive pas à l'identifier.

    Est-ce que l'un d'entre vous a déjà pu utiliser ce package ?

    Je trouve très peu de personnes sur le net l'ayant déjà utilisé, votre aide, même si elle ne concerne pas directement le package mais juste la compréhension de cette erreur, me serait très précieuse.

    N'hésitez pas à me partager vos idées !

    Merci beaucoup !

    Julie

  2. #2
    Modératrice

    Femme Profil pro
    Statisticienne, Fondatrice de la société DACTA
    Inscrit en
    Juin 2010
    Messages
    893
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Statisticienne, Fondatrice de la société DACTA

    Informations forums :
    Inscription : Juin 2010
    Messages : 893
    Par défaut
    Bonjour,

    Je n'ai jamais utilisé le package dont vous parlez.

    Cependant, peut-être pourriez-vous poster un extrait de ce à quoi ressemble les éléments posant problème (mpc ?).

    Ensuite, le problème semble venir des noms de colonnes/éléments de l'objet utilisé. Avez-vous moyen d'y jeter un oeil (via la fonction "names") ?

    Je ne sais pas si ça va permettre de faire avancer les choses mais bon...

    Bonne continuation


    Cordialement,

    A.D.

    Forum R
    Fournir le code utilisé (pensez aux balises code !), les packages nécessaires, ainsi qu'un court mais représentatif extrait du jeu de données et les éventuels messages d'erreur.
    Recherche d'informations concernant R : RSiteSearch / tutoriels : http://r.developpez.com/cours/ .

    Pensez également au bouton "Résolu" et à voter (en bas à droite des messages) lorsque vous avez obtenu une réponse satisfaisante.

  3. #3
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2013
    Messages : 2
    Par défaut
    Bonjour A.D.,

    Merci pour votre rappel sur les "balises codes", j'avais complétement oublié !

    Pour le détail de mon objet mpcross :

    1) J'ai un fichier avec les marqueurs snp de mes 4 parents - Je l'appelle "founders" (parents fondateurs) Les noms sont en lignes, les marqueurs en colonne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    fou <- read.table('Numeric_Founders.csv', sep=";", h=T, row.names=1)
    #Transpose
    founders <- t(fou)
    > founders[1:4,1:4]
      D1M1 D1M2 D1M3 D1M4
    A    0    0    1    0
    B    1    1    0    1
    C    0    1    0    0
    D    0    0    1    0
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    > dim(founders)
    [1]   4 623
    2) Un fichier avec les marqueurs snp de mes 275 descendants - Je l'appelle "finals". Les noms des individus sont en lignes, les marqueurs en colonne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    fin <- read.table('Numeric_Finals.csv', sep=";", h=T, row.names=1)
    #Transpose
    finals <- t(fin)
    > finals[1:5,1:5]
       D1M2 D1M3 D1M4 D1M5 D1M6
    L1    1    0    0    1    0
    L2    1    0    0    1    0
    L3    0    0    0    0    0
    L4    1    0    0    1    0
    L6    0    0    0    0    1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    > dim(finals)
    [1] 275 623

    3) La carte génétique, cad la position de chacun de mes marqueurs sur leur chromosomes respectifs :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    #Map 
    map <- read.table("MAP.csv", sep=";", h=T)
    map[1:5,1:3]
    #Restructuration
    map1 <- list()
    for (i in unique(map[,2]))  {  
      map1[[i]] <- map[which(map[,2]==i), 3]
      names(map1[[i]]) <- map[which(map[,2]==i), 1]
    } 
    class(map1) <- "map"
    map1
    > length(map1)
    [1] 10
    4) Un fichier pedigree, qui indique le plan de croisement (qui on a croisé avec qui et combien d'autofécondation). Comme mon schéma de croisement est dit classique, j'indique que mon pedigree est le même que celui simulé par les données pour un croisement 4 parents :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ped<-sim.mpped(4,1,275,6,1)
    > dim(ped)
    [1] 1931    4

    Maintenant j'ai les bases pour créer mon object de classe mpcross, qui va me regrouper ou concaténer toutes ces données (c'est bien celà qu'il fait ?) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mpc <- mpcross(finals=finals, founders=founders, pedigree=ped, fid=fid, id=id)
    Note : "Fid" est juste la liste des quatre noms pour les founders (soit A, B, C et D) et "id" la liste des noms des 275 lignées (L1, L2, L3...)

    Je rajoute à cet objet :

    ==> Un fichier phéno, qui correspond à la notation d'un caractère en champ, par exemple "hauteur de la plante". Une mesure est donnée à chaque lignée descendante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    #Add Pheno
            phein=read.table('pheno.csv', sep=";", header=TRUE)
    	  head(phein)
            rownames(phein)=phein$names
            phein$names=NULL
            head(phein)
            m <- match(rownames(mpc$finals), rownames(phein))
            if (sum(is.na(m)) > 0) 
                cat("Lines in finals data which are not in phenotypes")
            if (length(m) < nrow(phein)) 
                cat("Lines in phenotypes which are not in finals data")
            m <- m[!is.na(m)]
            pheno <- phein[m, ]
    	  mpc$pheno <- as.data.frame(pheno)
            rownames(mpc$pheno) <- rownames(phein)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    > head(mpc$pheno)
       pheno
    L1     4
    L2    -2
    L3     0
    L4    -4
    L6    -4
    L7    -2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    > dim(mpc$pheno)
    [1] 275   1
    ==> et je rajoute la carte génétique :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    #Add map
    mpc$map <- map1
    mpc
    Ce qui est étrange c'est que sur certaines fonctions, comme summary(mpc), que j'appelle par la suite pour vérifier mes données, il lit très bien l'objet. Mais lorsque je souhaite l'exporter ou aller plus loin, notamment avec le calcul des probabilités par mpprob() il me sort l'erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    > mppr<-mpprob(mpc,program="qtl")
    [1] "No chromosomes specified, will default to all"
    Error in names(vec) <- colnames(ril) : 
      'names' attribute [625] must be the same length as the vector [2]
    Je soupçonne le choix du programme "qtl" d'y être pour quelque chose, car en utilisant l'argument "happy" pour l'exportation des données, cela semble marcher :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    > #Test
    > write.mpcross(mpc, filestem="mp", format="qtl")
    Error in names(vec) <- colnames(ril) : 
      'names' attribute [625] must be the same length as the vector [2]
    > write.mpcross(mpc, filestem="mp", format="happy")
    Cependant, je n'ai pas le choix, il me faut utiliser l'argument "qtl" qui est beaucoup plus adapté que "happy" (de plus pour aller plus loin avec happy, j'ai un probème de version avec le package happy.hbrem qui n'est pas à jour)

    Le but ultime de mon analyse est vraiment d'utiliser la fonction "mpprob()", il semble que je sois proche d'y arriver, mais un petit truc coince. Si vous avez la moindre idée n'hésitez pas.

    J'espère avoir été claire dans le détail de l'objet et du code, si ce n'est pas le cas faites le moi savoir

    Merci pour vos réponses !

Discussions similaires

  1. Réponses: 4
    Dernier message: 17/07/2009, 17h25
  2. Pb d'utilisation de package !!
    Par Senia31 dans le forum Langage
    Réponses: 2
    Dernier message: 28/12/2005, 17h45
  3. [SAX] Utilisation du package contenant org.apache.xerces.par
    Par Sphost dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 17/01/2005, 11h07
  4. [CR] Utilisation des package Oracle ??
    Par sboober dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 06/12/2004, 07h37
  5. prob avec utilisation de package
    Par martijan dans le forum Modules
    Réponses: 13
    Dernier message: 11/07/2003, 09h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo