[adegenet-forum] Simulated hybridization from same locus but different alleles with hybridize function and

Jombart, Thibaut t.jombart at imperial.ac.uk
Mon Feb 23 18:29:08 CET 2015


Hi there,
yes, sorry there was a typo - the one you flagged. Fixed now.
Cheers
Thibaut
________________________________
From: Benjamin Alric [benjamin.alric at univ-lyon1.fr]
Sent: 23 February 2015 15:28
To: Jombart, Thibaut
Subject: Re: [adegenet-forum] Simulated hybridization from same locus but different alleles with hybridize function and

Dear Thibault,

Thanks a lot for your response.
I load the new version of hybridize function by the patch founde here:

https://github.com/thibautjombart/adegenet/blob/master/pkg/R/hybridize.R

However, the function does not work and there was the followinf error message:

hybrids<-hybridize(Dg,Dl,n=100,pop="hybrids")
Erreur dans nLoc(x) :
  erreur d'évaluation de l'argument 'x' lors de la sélection d'une méthode pour la fonction 'nLoc' : Erreur : objet 'x' introuvable

In the source code there is:
## used variables
n1 <- nInd(x1)
n2 <- nInd(x2)
k <- nLoc(x)
I found no specification of "x" in your command.
nLoc corresponds to number of loci, is it right?
But, we should specify where go search the number of loci, is it right?
Therefore, I replaced x by x1 in k<-nLoc(x1) and I run the analysis.
Now, it works with the results below:

hybrids<-hybridize(Dg,Dl,n=100,pop="hybrids")
g1<-genind2df(hybrids)
g1
         pop  10_14  Dp512 SwiD10  SwiD1 SwiD12 SwiD14 SwiD15  SwiD5
h001 hybrids 223226 129137 184201 134150 112116 185187 080089 129153
h002 hybrids 223226 129138 184194 138138 114119 185185 076098 129161
h003 hybrids 223226 129133 191201 126150 112114 175183 076093 137163
h004 hybrids 226226 129138 184194 138138 114119 179187 076093 129165
h005 hybrids 223226 129133 184194 118138 116123 181187 076093 129161
h006 hybrids 223226 129138 190201 118134 114123 183185 076093 129161
h007 hybrids 226226 129133 190201 143150 114123 181185 076089 129161
h008 hybrids 223226 129133 190201 118136 114123 181185 076093 129161
h009 hybrids 223226 129138 184201 138143 114123 185185 076093 129163
h010 hybrids 223226 129137 182201 138138 114119 179187 076089 129163

So, I don't know if you have leave deliberately x instead of x1 but could you tell me if put x1 instead fo x in the function is right.

Sorry for the goings and comings.

Best regards,

Benjamin


Le 23/02/2015 14:30, Jombart, Thibaut a écrit :

Hi there,

it was indeed a bug - fixed now. It will be part of the next release, but meanwhile a patch can be found here:
https://github.com/thibautjombart/adegenet/blob/master/pkg/R/hybridize.R

Alternatively, you can install the devel version on github using:
library(devtools)
install_github("thibautjombart/adegenet/pkg")

BTW, you probably know this already but Sebastien Devillard, in your department, is the expert of hybridization & STRUCTURE. He can usually be bribed by coffee.

Cheers
Thibaut

________________________________________
From: Benjamin Alric [benjamin.alric at univ-lyon1.fr<mailto:benjamin.alric at univ-lyon1.fr>]
Sent: 23 February 2015 12:41
To: Jombart, Thibaut
Subject: Re: [adegenet-forum] Simulated hybridization from same locus but different alleles with hybridize function and

Dear Thibaut,

Thank you for your response.
Firstly, in the dataste example for hybridize function, there is the
same number of allele among the two population.
Moreover, on other of my dataset, where I have not the same number of
allele in eahc loci, I can not made the analysis.
A error message said that the two genind object had not the same size.

 > Dg_1<-import2genind("B_Dg_1.gtx",package="adegenet")

  Converting data from GENETIX to a genind object...

...done.

 > Dl_1<-import2genind("B_Dl_1.gtx",package="adegenet")

  Converting data from GENETIX to a genind object...

...done.

 > Dg_1

    #####################
    ### Genind object ###
    #####################
- genotypes of individuals -

S4 class:  genind
@call: read.genetix(file = file, missing = missing, quiet = quiet)

@tab:  30 x 33 matrix of genotypes

@ind.names: vector of  30 individual names
@loc.names: vector of  8 locus names
@loc.nall: number of alleles per locus
@loc.fac: locus factor for the  33 columns of @tab
@all.names: list of  8 components yielding allele names for each locus
@ploidy:  2
@type:  codom

Optional contents:
@pop:  factor giving the population of each individual
@pop.names:  factor giving the population of each individual

@other: - empty -

 > Dl_1

    #####################
    ### Genind object ###
    #####################
- genotypes of individuals -

S4 class:  genind
@call: read.genetix(file = file, missing = missing, quiet = quiet)

@tab:  30 x 32 matrix of genotypes

@ind.names: vector of  30 individual names
@loc.names: vector of  8 locus names
@loc.nall: number of alleles per locus
@loc.fac: locus factor for the  32 columns of @tab
@all.names: list of  8 components yielding allele names for each locus
@ploidy:  2
@type:  codom

Optional contents:
@pop:  factor giving the population of each individual
@pop.names:  factor giving the population of each individual

@other: - empty -

 > F1<-hybridize(Dg_1,Dl_1,n=100,pop="Hybrids")
Erreur dans Ops.data.frame(tab1, tab2) :
   ‘+’ only defined for equally-sized data frames

Otherwise, you will find in attached file, a reproductible example
dataset in .gtx (B_Dg.gtx and B_Dl.gtx) and commands which reproduced
the error.

I used adegenet version 1.4-2 on RStudio.
Using RStudio can be the source of the problem, for example, because
adegraphics for the moment is less supported on RStudio than R.

Best regards,

Benjamin ALRIC

Le 23/02/2015 12:52, Jombart, Thibaut a écrit :


Hi there,

the number of alleles shouldn't have to be the same, so I'm not sure what is going on but this might be a bug.

May you send a minimum reproducible example (data and commands reproducing the error)? Also, what version of adegenet are you using?

Cheers
Thibaut


________________________________________
From: adegenet-forum-bounces at lists.r-forge.r-project.org<mailto:adegenet-forum-bounces at lists.r-forge.r-project.org> [adegenet-forum-bounces at lists.r-forge.r-project.org<mailto:adegenet-forum-bounces at lists.r-forge.r-project.org>] on behalf of Benjamin Alric [benjamin.alric at univ-lyon1.fr<mailto:benjamin.alric at univ-lyon1.fr>]
Sent: 21 February 2015 16:59
To: adegenet-forum at lists.r-forge.r-project.org<mailto:adegenet-forum at lists.r-forge.r-project.org>
Subject: [adegenet-forum] Simulated hybridization from same locus but different alleles with hybridize function and

Dear all,

I would like simulated hybridization between two population to assess
the power of admixture analysis (STRUCTURE).
I built two subsamples consisting of 30 indivudals showing the highest q
values for the cluster1 or cluster2 of previously STRUCTURE analysis.
  From these two subsamples I would like simulated hybridization (using
hybridize function of the adegenet R package) to assess the power of
admixture analysis.
For each population, genotype were determined through 8 microsatellite
loci for wichi one allele is code by a character string of 3 numbers.
Here you are the command:

Dg<-import2genind("B_Dg.gtx",package="adegenet")
Dl<-import2genind("B_Dl.gtx",package="adegenet")
Dg<- #####################
     ### Genind object ###
     #####################
- genotypes of individuals -

S4 class:  genind
@call: read.genetix(file = file, missing = missing, quiet = quiet)

@tab:  30 x 33 matrix of genotypes

@ind.names: vector of  30 individual names
@loc.names: vector of  8 locus names
@loc.nall: number of alleles per locus
@loc.fac: locus factor for the  33 columns of @tab
@all.names: list of  8 components yielding allele names for each locus
@ploidy:  2
@type:  codom

Optional contents:
@pop:  factor giving the population of each individual
@pop.names:  factor giving the population of each individual

@other: - empty -

Dl<-#####################
     ### Genind object ###
     #####################
- genotypes of individuals -

S4 class:  genind
@call: read.genetix(file = file, missing = missing, quiet = quiet)

@tab:  30 x 33 matrix of genotypes

@ind.names: vector of  30 individual names
@loc.names: vector of  8 locus names
@loc.nall: number of alleles per locus
@loc.fac: locus factor for the  33 columns of @tab
@all.names: list of  8 components yielding allele names for each locus
@ploidy:  2
@type:  codom

Optional contents:
@pop:  factor giving the population of each individual
@pop.names:  factor giving the population of each individual

@other: - empty -

hybrdis<-hybridize(Dg,Dl,n=100,pop="Hybrids")
g1<-genind2df(hybrids)
g1<-
           pop       10_14      Dp512     SwiD1            SwiD10
SwiD12    SwiD14    SwiD15    SwiD5
h001 Hybrids 226226    129         131143          194201 112119
181185   093098    161161165
h002 Hybrids 220226    129         126138          200201    112 175
181181   089098    151153165
h003 Hybrids 220226    129         126134143    200 123123    185185
093098    153163165
h004 Hybrids 220226    129         126131          200201 119123
185185   093098    153153165
h005 Hybrids 220226    129         126136136    199 123123    181185
089098    153161165
h006 Hybrids 226226    129129   136136          194 112112    181181
089098    153161165
h007 Hybrids 220226    129133   134143          194          119 175
181185   093          151153163165
....

We would expect to see two allele for each locus but it is not the case
for all microsatellite loci.
Somebody know why and where does the problem?

I checked the example dataset "microbov" for hybridize function, and I
see that temp$Salers and temp$Zebu (used to perform simulated
hybridization with hybridize function) presented the same count of
alleles at each locus.
When I check now my two datasets, I see that there are not the same
number of allele between the two populations. such a difference in the
number of allele between the two population could be the origne of the
problem...

Dg at all.names<mailto:Dg at all.names>
$L1
      1     2     3
"220" "226" "231"

$L2
      1     2     3
"125" "129" "133"

$L3
      1     2     3     4     5     6
"126" "131" "134" "136" "138" "143"

Dl at all.names<mailto:Dl at all.names>
$L1
      1     2     3
"223" "226" "229"

$L2
      1     2     3     4     5     6
"129" "133" "136" "137" "138" "139"

$L3
      1     2     3     4     5     6     7
"118" "134" "136" "138" "145" "150" "152"

Thank in advence for your help.

Sincerely yours,

Benjamin ALRIC



--
__________________________________________
Benjamin Alric, Post-Doc
UMR CNRS 5558 - LBBE
"Biométrie et Biologie Evolutive"
UCB Lyon1
Equipe Ecologie Quantitative et Evolutive des Communautés
Bâtiment Grégor Mendel
43 bd du 11 novembre 1918
69622 Villeurbanne Cedex
FRANCE
__________________________________________

_______________________________________________
adegenet-forum mailing list
adegenet-forum at lists.r-forge.r-project.org<mailto:adegenet-forum at lists.r-forge.r-project.org>
https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/adegenet-forum


--
__________________________________________
Benjamin Alric, Post-Doc
UMR CNRS 5558 - LBBE
"Biométrie et Biologie Evolutive"
UCB Lyon1
Equipe Ecologie Quantitative et Evolutive des Communautés
Bâtiment Grégor Mendel
43 bd du 11 novembre 1918
69622 Villeurbanne Cedex
FRANCE
__________________________________________




--
__________________________________________
Benjamin Alric, Post-Doc
UMR CNRS 5558 - LBBE
"Biométrie et Biologie Evolutive"
UCB Lyon1
Equipe Ecologie Quantitative et Evolutive des Communautés
Bâtiment Grégor Mendel
43 bd du 11 novembre 1918
69622 Villeurbanne Cedex
FRANCE
__________________________________________
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.r-forge.r-project.org/pipermail/adegenet-forum/attachments/20150223/365ecb4a/attachment-0001.html>


More information about the adegenet-forum mailing list