gl.ld.haplotype {dartR.popgen} | R Documentation |
Visualize patterns of linkage disequilibrium and identification of haplotypes
Description
This function plots a Linkage disequilibrium (LD) heatmap, where the colour shading indicates the strength of LD. Chromosome positions (Mbp) are shown on the horizontal axis, and haplotypes appear as triangles and delimited by dark yellow vertical lines. Numbers identifying each haplotype are shown in the upper part of the plot.
The heatmap also shows heterozygosity for each SNP.
The function identifies haplotypes based on contiguous SNPs that are in
linkage disequilibrium using as threshold ld_threshold_haplo
and
containing more than min_snps
SNPs.
Usage
gl.ld.haplotype(
x,
pop_name = NULL,
chrom_name = NULL,
ld_max_pairwise = 1e+07,
maf = 0.05,
ld_stat = "R.squared",
ind.limit = 10,
haplo_id = FALSE,
min_snps = 10,
ld_threshold_haplo = 0.5,
target_snp = NULL,
coordinates = NULL,
color_haplo = "viridis",
color_het = "deeppink",
plot.out = TRUE,
plot.save = FALSE,
plot.dir = NULL,
verbose = NULL
)
Arguments
x |
Name of the genlight object containing the SNP data [required]. |
pop_name |
Name of the population to analyse. If NULL all the populations are analised [default NULL]. |
chrom_name |
Nme of the chromosome to analyse. If NULL all the chromosomes are analised [default NULL]. |
ld_max_pairwise |
Maximum distance in number of base pairs at which LD should be calculated [default 10000000]. |
maf |
Minor allele frequency (by population) threshold to filter out loci. If a value > 1 is provided it will be interpreted as MAC (i.e. the minimum number of times an allele needs to be observed) [default 0.05]. |
ld_stat |
The LD measure to be calculated: "LLR", "OR", "Q", "Covar",
"D.prime", "R.squared", and "R". See |
ind.limit |
Minimum number of individuals that a population should contain to take it in account to report loci in LD [default 10]. |
haplo_id |
Whether to identify haplotypes [default FALSE]. |
min_snps |
Minimum number of SNPs that should have a haplotype to call it [default 10]. |
ld_threshold_haplo |
Minimum LD between adjacent SNPs to call a haplotype [default 0.5]. |
target_snp |
Position of target SNP [default NULL]. |
coordinates |
A vector of two elements with the start and end coordinates in base pairs to which restrict the analysis e.g. c(1,1000000) [default NULL]. |
color_haplo |
Color palette for haplotype plot. See details [default "viridis"]. |
color_het |
Color for heterozygosity [default "deeppink"]. |
plot.out |
Specify if heatmap plot is to be produced [default TRUE]. |
plot.save |
Whethwr to save the plot in pdf format [default FALSE]. |
plot.dir |
Directory in which to save files [default = working directory] |
verbose |
Verbosity: 0, silent or fatal errors; 1, begin and end; 2, progress log; 3, progress and results summary; 5, full report [default 2, unless specified using gl.set.verbosity]. |
Details
The information for SNP's position should be stored in the genlight accessor "@position" and the SNP's chromosome name in the accessor "@chromosome" (see examples). The function will then calculate LD within each chromosome.
The output of the function includes a table with the haplotypes that were identified and their location.
Colors of the heatmap (color_haplo
) are based on the function
scale_fill_viridis
from package viridis
.
Other color palettes options are "magma", "inferno", "plasma", "viridis",
"cividis", "rocket", "mako" and "turbo".
Value
A table with the haplotypes that were identified.
Author(s)
Custodian: Luis Mijangos – Post to https://groups.google.com/d/forum/dartr
See Also
Other ld functions:
gl.ld.distance()
Examples
require("dartR.data")
x <- platypus.gl
x <- gl.filter.callrate(x, threshold = 1)
# only the first 15 individuals because of speed during tests
x <- gl.keep.pop(x, pop.list = "TENTERFIELD")[1:15, ]
x$chromosome <- as.factor(x$other$loc.metrics$Chrom_Platypus_Chrom_NCBIv1)
x$position <- x$other$loc.metrics$ChromPos_Platypus_Chrom_NCBIv1
ld_res <- gl.ld.haplotype(x,
chrom_name = "NC_041728.1_chromosome_1",
ld_max_pairwise = 10000000
)