Learn R Programming

RVsharing (version 1.7.0)

GeneDropSimExcessSharing.fn: Estimation of the probability of sharing of a rare variant by gene dropping in a pedigree

Description

Estimates the probability that all subjects in a subset of pedigree members share a rare variant (RV) given that it occured in any of them by performing a Monte Carlo simulation of the transmission of the genotypes of the variant from the founders down the pedigree.

Usage

GeneDropSimExcessSharing.fn(trio.list, id, dt.vec, fd.indices, phihat,
 RVfreq, carriers=dt.vec, ord=5, n = 1e3, k = 10)

Arguments

trio.list
a list of trio objects encoding the pedigree structure.
id
a vector of identifiers of the pedigree members.
dt.vec
a vector of identifiers of the subset of pedigree members for which to estimate the sharing probability. Must be a subset of the id vector.
fd.indices
a vector of the indices of the founders of the pedigree.
carriers
optional character vector of subjects carrying the rare variant among all final descendants. If null, all final descendants are assumed to carry the rare variant.
phihat
a vector of values of the mean kinship coefficient between founders. Must be non-negative.
RVfreq
frequency of the variant in the population (optional). When missing, the variant frequency tends to 0.
ord
order of the polynomial approximation of the number of distinct alleles among pedigree founders.
n
minimal number of gene dropping replicates where the rare variant occurs in at least one member of dt.vec.
k
this number times n gives the maximal number of gene dropping replicates.

Value

Estimate of the probability that all subjects in a subset of pedigree members share a rare variant given that it occured in any of them

Details

The function performs the following steps. It first determines the probability w that the RV was introduced only once in the pedigree and its complement 1-w that it was introduced twice based on the mean kinship among founders phi.hat. It then samples an indicator variable of whether one or two copies of the RV were introduced into the family with probability w and 1-w respectively. In practice, this is done by sampling the number of distinct alleles a from an approximate distribution derived from phi.hat, then sampling the RV among the $a$ alleles. The RV is introduced twice if it is one of the first 2n_f - a alleles, and introduced once otherwise. If it is introduced twice, the pair of founders introducing the RV is sampled with equal probability for all pairs. If it is introduced once, the sole founder introducing it is sampled instead. Then the transmission of the RV down the pedigree from the one or two founders introducing it is simulated according to Mendel's laws. The events that the variant was observed in any of the subjects from dt.vec and in all of them are then recorded. The simulation continues until the number of replicates where the RV was observed in any of the subjects from dt.vec reaches n or the number of replicates reaches k n. The RV sharing probability is then estimated as the number of replicates where the RV was observed in all subjects from dt.vec over n (or the number of replicates where the RV was observed in any of the subjects when k n replicates are reached).

References

Bureau, A., Younkin, S., Parker, M.M., Bailey-Wilson, J.E., Marazita, M.L., Murray, J.C., Mangold, E., Albacha-Hejazi, H., Beaty, T.H. and Ruczinski, I. (2014) Inferring rare disease risk variants based on exact probabilities of sharing by multiple affected relatives. Bioinformatics, 30(15): 2189-96, doi:10.1093/bioinformatics/btu198.

See Also

ped2trio, GeneDropSim.fn

Examples

Run this code
data(ped.list)
plot(ped.list[[54]])
trio.obj = ped2trio(ped.list[[54]])
         
GeneDropSimExcessSharing.fn(trio.list = trio.obj$object, id = ped.list[[54]]$id, 
 dt.vec = c("40","47"), fd.indices = trio.obj$fd.indices, phihat=0.005,RVfreq=0.01, 
 ord=5, n = 2e3)

# Result should be higher than exact value under the assumption of a variant frequency  
# tending to 0 and no unknown relationship among founders
RVsharing(ped.list[[54]])

Run the code above in your browser using DataLab