Nothing
########################################################################/**
# @RdocFunction cdfMergeStrands
#
# @title "Function to join CDF groups with the same names"
#
# \description{
# @get "title".
#
# This @function is design to be used with @see "applyCdfGroups"
# on an Affymetrix Mapping (SNP) CDF @list structure.
#
# This can be used to join the sense and anti-sense groups of the same
# allele in SNP arrays.
# }
#
# @synopsis
#
# \arguments{
# \item{groups}{A @list structure with groups.}
# \item{...}{Not used.}
# }
#
# \value{
# Returns a @list structure with only two groups.
# }
#
# \details{
# If a unit has two strands, they are merged such that the elements
# for the second strand are concatenated to the end of the elements
# of first strand (This is done separately for the two alleles).
# }
#
# \seealso{
# @see "applyCdfGroups".
# }
#
# @author "HB"
#
# \references{
# [1] Affymetrix, \emph{Understanding Genotyping Probe Set Structure}, 2005.
# \url{http://www.affymetrix.com/support/developer/whitepapers/genotyping_probe_set_structure.affx}\cr
# }
#
# @keyword programming
# @keyword internal
#**/#######################################################################
cdfMergeStrands <- function(groups, ...) {
nbrOfGroups <- length(groups);
if (nbrOfGroups != 2 && nbrOfGroups != 4 && nbrOfGroups %% 2 != 0)
return(groups);
names <- names(groups);
unames <- unique(names);
res <- list();
# For each allele...
for (name in unames) {
idx <- which(name == names);
group <- .subset2(groups, idx[1]);
nfields <- length(group);
if (nfields > 0) {
ffs <- 1:nfields;
idx <- idx[-1];
while(length(idx) > 0) {
groupNext <- .subset2(groups, idx[1]);
# For each field...
for (ff in ffs) {
fields <- .subset2(group, ff);
fieldsNext <- .subset2(groupNext, ff);
ndim <- length(dim(fields));
if (ndim <= 1) {
fields <- c(fields, fieldsNext);
} else if (ndim == 2) {
fields <- cbind(fields, fieldsNext);
} else {
# This should never occur for a normal CDF structure.
fields <- c(fields, fieldsNext);
}
group[[ff]] <- fields;
}
idx <- idx[-1];
} # while(...)
}
res[[name]] <- group;
} # for (name ...)
res;
} # cdfMergeStrands()
############################################################################
# HISTORY:
# 2008-02-22
# o Updated so it now merges any unit with a even number of groups;
# a custom SNP CDF had three pairs of groups in part of their units.
# 2006-03-07
# o Renamed from cdfStandJoiner() to cdfMergeStrands().
# 2006-02-23
# o Created.
############################################################################
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.