hapFabia (version 1.14.0)

IBDsegment-class: IBDsegment instances and methods

Description

IBDsegment is a class to store characteristics of an IBD segment in one of its instances. Characteristics of an IBD segment include its genomic position, its length, the individuals/chromosomes that belong to it, the tagSNVs that tag/mark it, etc.

Usage

"plot"(x,filename, ...)
"plotLarger"(x,filename,fact=1.0,addSamp=c(), ...)
"summary"(object, ...)

Arguments

x
object of the class IBDsegment.
object
object of the class IBDsegment.
filename
filename of the file that contains the genotyping data. Call of readSamplesSpfabia from the package fabia to read genotype data for the plot. ATTENTION: without file type ".txt"!
fact
factor by which the IBD segment is extended. The extension is done both at the left and at the right hand side.
addSamp
vector giving additional individuals, e.g. for adding 10 individuals out of N the code sample(N,10) may be used.
...
further arguments.

Value

no value.

Slots

Objects of class IBDsegment have the following slots:
ID
number of the IBD segment in the current extraction.
bicluster_id
ID of the bicluster the IBD segment was found in.
chromosome
the chromosome.
IBDsegmentPos
genomic location of the IBD segment.
IBDsegmentLength
length of the IBD segment in the number of SNVs. For the length in bp: max(tagSNVPositions(x))-min(tagSNVPositions(x)).
numberIndividuals
number of samples belonging to the IBD segment.
numbertagSNVs
number tagSNVs marking the IBD segment.
individuals
IDs of individuals or chromosomes belonging to the IBD segment.
tagSNVs
IDs of SNVs that mark the IBD segment (tagSNVs).
populationIndividuals
the population each individual belongs to.
idIndividuals
IDs of the individuals or chromosomes.
labelIndividuals
label of the individuals.
platformIndividuals
for each individual the technology/platform that was used to genotype it.
coreClusterIndividuals
IDs of individuals that constitute the core of the IBD segment.
tagSNVPositions
physical positions of the tagSNVs on the chromosome in base pairs.
tagSNVAlleles
alleles of the tagSNVs in the form Ref:Alt where Ref denotes reference allele and Alt the alternative allele.
tagSNVNames
name of the tagSNVs according to a given annotation.
tagSNVFreq
frequency of tagSNVs in the whole data set.
tagSNVGroupFreq
frequency of tagSNVs in the population that is considered.
tagSNVChange
if the minor allele was more frequent than the major, then both were switched. Switching is marked by a 1 and otherwise it is 0.
tagSNVsPerIndividual
for each sample: tagSNVs are counted for which the sample has the minor allele.
individualPerTagSNV
for each tagSNV: samples are counted for which the SNV has its minor allele.
tagSNVAnno
the functional annotation of tagSNVs for each tagSNV: like stop-loss, stop-gain, non-synonymous, synonymous, promoter, exonic, intronic, intergenic, etc.

Constructor

Constructor of class IBDsegment. IBDsegment(ID=0,bicluster_id=0,chromosome="",IBDsegmentPos=0,IBDsegmentLength=0,numberIndividuals=0,numbertagSNVs=0,individuals=as.vector(0),tagSNVs=as.vector(0),populationIndividuals=as.vector(""),idIndividuals=as.vector(0),labelIndividuals=as.vector(""),platformIndividuals=as.vector(""),coreClusterIndividuals=as.vector(0),tagSNVPositions=as.vector(0),tagSNVAlleles=as.vector(""),tagSNVNames=as.vector(""),tagSNVFreq=as.vector(0),tagSNVGroupFreq=as.vector(0),tagSNVChange=as.vector(0),tagSNVsPerIndividual=as.vector(0),individualPerTagSNV=as.vector(0),tagSNVAnno=as.vector(c(list(""))))

Accessors

In the following x denotes an IBDsegment object.
ID(x), ID(x) <- value: Returns or sets ID, where the return value and value are both numeric.
bicluster_id(x), bicluster_id(x) <- value: Returns or sets bicluster_id, where the return value and value are both numeric.
chromosome(x), chromosome(x) <- value: Returns or sets chromosome, where the return value and value are both strings.
IBDsegmentPos(x), IBDsegmentPos(x) <- value: Returns or sets IBDsegmentPos, where the return value and value are both numeric.
IBDsegmentLength(x), IBDsegmentLength(x) <- value: Returns or sets IBDsegmentLength, where the return value and value are both numeric.
numberIndividuals(x), numberIndividuals(x) <- value: Returns or sets numberIndividuals, where the return value and value are both numeric.
numbertagSNVs(x), numbertagSNVs(x) <- value: Returns or sets numbertagSNVs, where the return value and value are both numeric.
individuals(x), individuals(x) <- value: Returns or sets individuals, where the return value and value are both vectors.
tagSNVs(x), tagSNVs(x) <- value: Returns or sets tagSNVs, where the return value and value are both vectors.
populationIndividuals(x), populationIndividuals(x) <- value: Returns or sets populationIndividuals, where the return value and value are both vectors.
idIndividuals(x), idIndividuals(x) <- value: Returns or sets idIndividuals, where the return value and value are both vectors.
labelIndividuals(x), labelIndividuals(x) <- value: Returns or sets labelIndividuals, where the return value and value are both vectors.
platformIndividuals(x), platformIndividuals(x) <- value: Returns or sets platformIndividuals, where the return value and value are both vectors.
coreClusterIndividuals(x), coreClusterIndividuals(x) <- value: Returns or sets coreClusterIndividuals, where the return value and value are both vectors.
tagSNVPositions(x), tagSNVPositions(x) <- value: Returns or sets tagSNVPositions, where the return value and value are both vectors.
tagSNVAlleles(x), tagSNVAlleles(x) <- value: Returns or sets tagSNVAlleles, where the return value and value are both vectors.
tagSNVNames(x), tagSNVNames(x) <- value: Returns or sets tagSNVNames, where the return value and value are both vectors.
tagSNVFreq(x), tagSNVFreq(x) <- value: Returns or sets tagSNVFreq, where the return value and value are both vectors.
tagSNVGroupFreq(x), tagSNVGroupFreq(x) <- value: Returns or sets tagSNVGroupFreq, where the return value and value are both vectors.
tagSNVChange(x), tagSNVChange(x) <- value: Returns or sets tagSNVChange, where the return value and value are both vectors.
tagSNVsPerIndividual(x), tagSNVsPerIndividual(x) <- value: Returns or sets tagSNVsPerIndividual, where the return value and value are both vectors.
individualPerTagSNV(x), individualPerTagSNV(x) <- value: Returns or sets individualPerTagSNV, where the return value and value are both vectors.
tagSNVAnno(x), tagSNVAnno(x) <- value: Returns or sets tagSNVAnno, where the return value and value are both vectors.

Signatures

plot
signature(x = "IBDsegment", y = "missing")
Plot of an IBD segment, where tagSNVs, minor and major alleles are plotted.
plotLarger
signature(x="IBDsegment", filename="character",fact="numeric",addSamp="ANY")
Plot of an IBD segment with additional individuals and the IBD segment extended to the left and to the right.
summary
signature(object = "IBDsegment")
Summary of IBD segment object.

Details

plot
Plots an IBD segment where the SNVs within the cluster are shown. In the plot the $y$-axis gives the individuals or the chromosomes and the $x$-axis consecutive SNVs. Minor alleles of tagSNVs are marked by a particular color. Minor alleles of other SNVs (private, common, from other clusters, etc) are marked by a different color. The model from fabia is also shown. The default color coding uses yellow for major alleles, violet for minor alleles of tagSNVs, and blue for minor alleles of other SNVs. model L indicates tagSNVs identified by hapFabia in violet.

plotLarger
Plots an IBD segment where the SNVs within the cluster are shown, however additional individuals that do not possess the IBD segment can be added. Further the range can be increased by a certain factor. Additional arguments are fact and addSamp. fact gives the factor by which the IBD segment should be extended to both the left and the right. addSamp is a vector of individuals/haplotypes which are added to the individuals that possess the IBD segment. The plot allows to view the IBD segment in the context of its DNA location and additional individuals.

summary
Prints the ID of the IBD segment, the bicluster it is derived from, the chromosome and position where it is located, its length, the number of individuals/chromosomes that belong to it, the number of tagSNVs that mark it.

Implementation in R.

References

S. Hochreiter et al., ‘FABIA: Factor Analysis for Bicluster Acquisition’, Bioinformatics 26(12):1520-1527, 2010.

See Also

IBDsegment-class, IBDsegmentList-class, analyzeIBDsegments, compareIBDsegmentLists, extractIBDsegments, findDenseRegions, hapFabia, hapFabiaVersion, hapRes, chr1ASW1000G, IBDsegmentList2excel, identifyDuplicates, iterateIntervals, makePipelineFile, matrixPlot, mergeIBDsegmentLists, mergedIBDsegmentList, plotIBDsegment, res, setAnnotation, setStatistics, sim, simu, simulateIBDsegmentsFabia, simulateIBDsegments, split_sparse_matrix, toolsFactorizationClass, vcftoFABIA

Examples

Run this code

old_dir <- getwd()
setwd(tempdir())

data(hapRes)
data(simu)
namesL <- simu[["namesL"]]
haploN <- simu[["haploN"]]
snvs <- simu[["snvs"]]
annot <- simu[["annot"]]
alleleIimp <- simu[["alleleIimp"]]
write.table(namesL,file="dataSim1fabia_individuals.txt",
   quote = FALSE,row.names = FALSE,col.names = FALSE)
write(as.integer(haploN),file="dataSim1fabia_annot.txt",
   ncolumns=100)
write(as.integer(snvs),file="dataSim1fabia_annot.txt",
   append=TRUE,ncolumns=100)
write.table(annot,file="dataSim1fabia_annot.txt",
   sep = " ", quote = FALSE,row.names = FALSE,
   col.names = FALSE,append=TRUE)
write(as.integer(haploN),file="dataSim1fabia_mat.txt",
   ncolumns=100)
write(as.integer(snvs),file="dataSim1fabia_mat.txt",
   append=TRUE,ncolumns=100)

for (i in 1:haploN) {

  a1 <- which(alleleIimp[i,]>0.01)

  al <- length(a1)
  b1 <- alleleIimp[i,a1]

  a1 <- a1 - 1
  dim(a1) <- c(1,al)
  b1 <- format(as.double(b1),nsmall=1)
  dim(b1) <- c(1,al)

  write.table(al,file="dataSim1fabia_mat.txt",
    sep = " ", quote = FALSE,row.names = FALSE,
    col.names = FALSE,append=TRUE)
  write.table(a1,file="dataSim1fabia_mat.txt",
    sep = " ", quote = FALSE,row.names = FALSE,
    col.names = FALSE,append=TRUE)
  write.table(b1,file="dataSim1fabia_mat.txt",
    sep = " ", quote = FALSE,row.names = FALSE,
    col.names = FALSE,append=TRUE)

}

mergedIBDsegmentList <- hapRes$mergedIBDsegmentList

IBDsegment <- mergedIBDsegmentList[[1]]


# Summary method
summary(IBDsegment)


# Plot method
plot(IBDsegment,filename="dataSim1fabia_mat")

# Extended plot: more examples and borders 
plotLarger(IBDsegment,filename="dataSim1fabia_mat",3,sample(100,10))


# ACCESSORS 

# IDs of the IBD segment
   ID(IBDsegment)
   bicluster_id(IBDsegment)

# General Information
    IBDsegmentPos(IBDsegment)
    IBDsegmentLength(IBDsegment)
    numberIndividuals(IBDsegment)
    numbertagSNVs(IBDsegment)
    coreClusterIndividuals(IBDsegment)

# Information on individuals / chromosomes
    individuals(IBDsegment)
    populationIndividuals(IBDsegment)
    idIndividuals(IBDsegment)
    labelIndividuals(IBDsegment)
    platformIndividuals(IBDsegment)
    tagSNVsPerIndividual(IBDsegment)

# Information on tagSNVs
    tagSNVs(IBDsegment)
    tagSNVPositions(IBDsegment)
    tagSNVAlleles(IBDsegment)
    tagSNVNames(IBDsegment)
    tagSNVFreq(IBDsegment)
    tagSNVGroupFreq(IBDsegment)
    tagSNVChange(IBDsegment)
    individualPerTagSNV(IBDsegment)
    tagSNVAnno(IBDsegment)


setwd(old_dir)


Run the code above in your browser using DataLab