Learn R Programming

beadarrayMSV (version 1.0.3)

unmixParalogues: Partially resolve the paralogs of MSV-5s

Description

Based on parental and offspring MSV-5 marker genotypes, the paternal and maternal alleles in offspring are partally deduced. Those calls that can be split into two individual paralogs are returned. As the chromosome numbers of the individual paralogs are not known, the individual genotype calls are assigned assuming known location of the paralogs of each parent separately.

Usage

unmixParalogues(BSRed, singleCalls = getSingleCalls(BSRed))

Arguments

BSRed
"AlleleSetIllumina" (or "MultiSet") object containing only MSV-5 markers, with an assayData entry call (see
singleCalls
Matrix holding the calls for all markers whose both paralogs are AA, AB, or BB (see getSingleCalls)

Value

  • A list with elements
  • motherMatrix of calls representing maternal inherited alleles
  • fatherMatrix of calls representing paternal inherited alleles
  • The number of rows in both matrices is twice the number of markers, and the names of the paralogs are appended with _Para1 or _Para2. Critically, these names are NOT consistent between the tables

Details

This is the first step towards resolving MSV-5 paralogs, in the sense that the mixed signal from a duplicated marker is split into two paralogue-specific signals. Within the half-sib family of one parent at the time, the individual paralogs are arbitrarily named. Then, for each informative meiosis, the offspring genotype call for each paralogue is set to be either zero or one, depending on whether the allele inherited from the parent in question is A or B, respectively. This is repeated for all parents, yielding two sparse data-tables, one for the male and one for the female parent half-sib families. The alternate parents' calls are set to missing. The data-tables may separately be used for linkage mapping using other software, however better results are expected if the tables can be merged first. This involves positioning of the paralogs on their respective chromosomes and requires a linkage map (see assignParalogues).

See Also

AlleleSetIllumina, callGenotypes, assignParalogues, getSingleCalls, translateTheta

Examples

Run this code
#Read markers into an AlleleSetIllumina object
rPath <- system.file("extdata", package="beadarrayMSV")
normOpts <- setNormOptions()
dataFiles <- makeFilenames('testdata',normOpts,rPath)
beadFile <- paste(rPath,'beadData_testdata.txt',sep='/')
beadInfo <- read.table(beadFile,sep='\t',header=TRUE,as.is=TRUE)
BSRed <- createAlleleSetFromFiles(dataFiles[1:4],beadInfo=beadInfo)

#Genotype calling and selection of some MSV-5s
BSRed <- callGenotypes(BSRed)
BSRed <- validateCallsPedigree(BSRed)
iMSV5 <- fData(BSRed)$Classification %in% 'MSV-5' & fData(BSRed)$Ped.Errors %in% 0
plotGenotypes(BSRed,markers=which(iMSV5))

#Partial resolving of paralogs
paraCalls <- unmixParalogues(BSRed[iMSV5,])

#Compare for an arbitrary, single triplet
iOffspring <- 1
iFather <- which(pData(BSRed)$PedigreeID %in% pData(BSRed)$Parent2[iOffspring])
iMother <- which(pData(BSRed)$PedigreeID %in% pData(BSRed)$Parent1[iOffspring])
print(assayData(BSRed)$call[iMSV5,c(iMother,iFather,iOffspring)])
print(paraCalls$mother[,c(iMother,iFather,iOffspring)])
print(paraCalls$father[,c(iMother,iFather,iOffspring)])

Run the code above in your browser using DataLab