Zbeta_rsq_over_expected: Runs the Zbeta function on the r-squared values over the...

Description Usage Arguments Details Value References See Also Examples

View source: R/Zbeta_rsq_over_expected.R

Description

Returns a Zbeta value for each SNP location supplied to the function, based on the expected r^2 values given an LD profile and genetic distances. For more information about the Zbeta statistic, please see Jacobs (2016). The Zbeta statistic is defined as:

Z_{β}^{r^2/E[r^2]}=\frac{∑_{i \in L,j \in R}r^2_{i,j}/E[r^2_{i,j}]}{|L||R|}

where |L| and |R| are the number of SNPs to the left and right of the current locus within the given window ws, r^2 is equal to the squared correlation between a pair of SNPs, and E[r^2] is equal to the expected squared correlation between a pair of SNPs, given an LD profile.

Usage

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
Zbeta_rsq_over_expected(
  pos,
  ws,
  x,
  dist,
  LDprofile_bins,
  LDprofile_rsq,
  minRandL = 4,
  minRL = 25,
  X = NULL
)

Arguments

pos

A numeric vector of SNP locations

ws

The window size which the Zbeta statistic will be calculated over. This should be on the same scale as the pos vector.

x

A matrix of SNP values. Columns represent chromosomes; rows are SNP locations. Hence, the number of rows should equal the length of the pos vector. SNPs should all be biallelic.

dist

A numeric vector of genetic distances (e.g. cM, LDU). This should be the same length as pos.

LDprofile_bins

A numeric vector containing the lower bound of the bins used in the LD profile. These should be of equal size.

LDprofile_rsq

A numeric vector containing the expected r^2 values for the corresponding bin in the LD profile. Must be between 0 and 1.

minRandL

Minimum number of SNPs in each set R and L for the statistic to be calculated. Default is 4.

minRL

Minimum value for the product of the set sizes for R and L. Default is 25.

X

Optional. Specify a region of the chromosome to calculate Zbeta for in the format c(startposition, endposition). The start position and the end position should be within the extremes of the positions given in the pos vector. If not supplied, the function will calculate Zbeta for every SNP in the pos vector.

Details

The LD profile describes the expected correlation between SNPs at a given genetic distance, generated using simulations or real data. Care should be taken to utilise an LD profile that is representative of the population in question. The LD profile should consist of evenly sized bins of distances (for example 0.0001 cM per bin), where the value given is the (inclusive) lower bound of the bin. Ideally, an LD profile would be generated using data from a null population with no selection, however one can be generated using this data. See the create_LDprofile function for more information on how to create an LD profile.

Value

A list containing the SNP positions and the Zbeta values for those SNPs

References

Jacobs, G.S., T.J. Sluckin, and T. Kivisild, Refining the Use of Linkage Disequilibrium as a Robust Signature of Selective Sweeps. Genetics, 2016. 203(4): p. 1807

See Also

create_LDprofile

Examples

1
2
3
4
5
6
7
8
9
## load the snps and LDprofile example datasets
data(snps)
data(LDprofile)
## run Zbeta_rsq_over_expected over all the SNPs with a window size of 3000 bp
Zbeta_rsq_over_expected(snps$bp_positions,3000,as.matrix(snps[,3:12]),snps$cM_distances,
 LDprofile$bin,LDprofile$rsq)
## only return results for SNPs between locations 600 and 1500 bp
Zbeta_rsq_over_expected(snps$bp_positions,3000,as.matrix(snps[,3:12]),snps$cM_distances,
 LDprofile$bin,LDprofile$rsq,X=c(600,1500))

zalpha documentation built on Nov. 27, 2021, 9:06 a.m.