[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 14:30:44 CET 2015


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]
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 [adegenet-forum-bounces at lists.r-forge.r-project.org] on behalf of Benjamin Alric [benjamin.alric at univ-lyon1.fr]
> Sent: 21 February 2015 16:59
> To: 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
> $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
> $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
> 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
__________________________________________



More information about the adegenet-forum mailing list