Skip to content

Linkage disequilibrium estimation

4 messages · Felipe Hernández, Vikram Chhatre, Emmanuel Paradis +1 more

#
Hello everyone,

I would like to estimate if some of the alleles of my hog loci dataset (n=
59 loci) may be in linkage disequilibrium. I tried using the pegas package.
I used the LD2 function (for unphased genotypes). In general, I got pretty
low Delta correlation values for the loci pairwise-comparisons, but
p-values associated with T2 were consistently significant (just trying a
few loci comparisons). So, may I just conclude LD based on this p-value
confidently? If that's the case, is it possible to compare loci that are
not contiguous in the dataset? For example, when I tried comparing loci
that are not contiguous (e.g., 50 and 59), I got this warning message:
"Error in LD2(hogs, locus = 50:59, details = TRUE) : you must specify two
loci to compute linkage disequilibrium"

On the other hand, I wonder is there is another package to test LD between
several multi-allelic loci at the same time (not only two loci)? Thanks for
your feedback!

Best,
Felipe
#
You should be able to compute LD between any two loci located anywhere in
the genome, including those on different chromosomes (although the latter
usually indicates other causes than linkage).  By 'contiguous', do you mean
'sequential' or 'consecutive'?  If so, that is not necessary.  Though I
will agree that from the Pegas documentation, it is not clear what numbers
the "locus=x:y" argument is referring to.  Is it an internal number?  Have
you tried computing another combination? locus=20:25, in case Pegas
starting the locus count at 0 and then 59 is non-existent?

V
On Mon, Nov 21, 2016 at 7:27 AM, Felipe Hern?ndez <fhernandeu at uc.cl> wrote:

            

  
  
#
Hi Vikram & Felipe,

The default for both LD() and LD2() is locus = 1:2 but this is meant to 
be locus = c(1, 2), only two values should be given and these values are 
the colum numbers of the "loci" data. So what Felipe wants is:

LD2(x, locus = c(50, 59))

50:59 is similar to c(50, 51, ....... 59)

I have changed the definitions of these two functions so that they are now:

      LD(x, locus = c(1, 2), details = TRUE)
      LD2(x, locus = c(1, 2), details = TRUE)

and the help page has been slightly changed to be (hopefully) clearer:

      locus: a vector of two integers giving the loci to analyse.

For the record, LDscan() can analyse several loci at the same time but 
it works only with phased genotypes and loci must be biallelic.

Best,

Emmanuel

Le 21/11/2016 ? 15:52, Vikram Chhatre a ?crit :
#
Hi Felipe,

There IS another method that can test LD between several loci. The index of association is a measure of multilocus linkage disequilibrium [0] and is implemented in the poppr R package with the function ia(). You can use it on a genind object, which can be converted from loci with the function loci2genind().

Best,
Zhian

[0]: http://onlinelibrary.wiley.com/doi/10.1046/j.1471-8278.2000.00014.x/abstract