froh: Calculation of genomic inbreeding (FROH)

ghap.frohR Documentation

Calculation of genomic inbreeding (FROH)

Description

Given runs of homozygosity (ROH) obtained with the ghap.roh function, this function computes the proportion of the genome covered by ROHs (FROH) of certain lengths.

Usage

 ghap.froh(object, roh, rohsizes = c(1, 2, 4, 8, 16),
           only.active.markers = TRUE, ncores = 1)

Arguments

object

A valid GHap object (phase or plink).

roh

A data frame containing runs of homozygosity, such as supplied by the ghap.roh function.

rohsizes

A numeric vector providing the minimum ROH length (in Mbp) to use in the calculation of ROH (default is 1, 2, 4, 8 and 16).

only.active.markers

A logical value specifying whether only active markers should be used in the calculation of genome size (default = TRUE).

ncores

A numeric value specifying the number of cores to be used in parallel computing (default = 1).

Details

This function takes runs of homozygosity obtained with ghap.roh and returns estimates of genomic inbreeding (FROH). The user can specify the minimum ROH length considered in the calculation using the rohsize argument. A vector of values will cause the function to add an extra column for each specified ROH size. Since the average size (measured in Morgans) of identical-by-descent segments after g generations of the inbreeding event is 1/2g, the default lengths 1, 2, 4, 8 adn 16 are proxies for inbreeding that occurred 50, 25, 13 6 and 3 generations in the past, respectively (assuming an average recombination rate of 1 Mbp ~ cM).

Value

The function returns a dataframe the following columns:

POP

Original population label.

ID

Individual name.

FROH...

A number of columns giving FROH calculated over runs of length greater than each of the sizes informed by the rohsize argument. Default values will return FROH1, FROH2, FROH4, FROH8 and FROH16.

Author(s)

Yuri Tani Utsunomiya <ytutsunomiya@gmail.com>

See Also

ghap.roh

Examples


# #### DO NOT RUN IF NOT NECESSARY ###
# 
# # Copy plink data in the current working directory
# exfiles <- ghap.makefile(dataset = "example",
#                          format = "plink",
#                          verbose = TRUE)
# file.copy(from = exfiles, to = "./")
# 
# # Load plink data
# plink <- ghap.loadplink("example")
# 
# ### RUN ###
# 
# # Subset pure1 population
# pure1 <- plink$id[which(plink$pop == "Pure1")]
# plink <- ghap.subset(object = plink, ids = pure1, variants = plink$marker)
# 
# # ROH via the 'naive' method
# roh1 <- ghap.roh(plink, method = "naive")
# froh1 <- ghap.froh(plink, roh1)
# 
# # ROH via the 'hmm' method
# freq <- ghap.freq(plink, type = 'A1')
# inbcoef <- froh1$FROH1; names(inbcoef) <- froh1$ID
# roh2 <- ghap.roh(plink, method = "hmm", freq = freq,
#                 inbcoef = inbcoef)
# froh2 <- ghap.froh(plink, roh2)
#
# # Method 'hmm' using Fhat3 as starting values
# inbcoef <- ibc$Fhat3; names(inbcoef) <- ibc$ID
# inbcoef[which(inbcoef < 0)] <- 0.01
# roh3 <- ghap.roh(plink, method = "hmm", freq = freq,
#                  inbcoef = inbcoef)
# froh3 <- ghap.froh(plink, roh3)


GHap documentation built on July 2, 2022, 1:07 a.m.