readCdfNbrOfCellsPerUnitGroup {affxparser} | R Documentation |
Gets the number of cells (probes) that each group of each unit in a CDF file.
readCdfNbrOfCellsPerUnitGroup(filename, units=NULL, verbose=0)
filename |
The filename of the CDF file. |
units |
An integer vector of unit indices specifying which units
to be read. If NULL , all units are read. |
verbose |
An integer specifying the verbose level. If 0, the
file is parsed quietly. The higher numbers, the more details. |
A named list
of named integer
vectors. The name of the list elements
are unit names and the names of the integer vector are group names.
Henrik Bengtsson (http://www.braju.com/R/)
for (zzz in 0) { cdfFile <- findCdf("Mapping50K_Xba240") if (is.null(cdfFile)) break groups <- readCdfNbrOfCellsPerUnitGroup(cdfFile) # Number of units read print(length(groups)) # 59015 # Details on two units print(groups[56:57]) # $`SNP_A-1650338` # C G C G # 8 8 12 12 # # $`SNP_A-1716667` # A G A G # 10 10 10 10 # Number of groups with different number of cells print(table(unlist(groups))) # 6 8 10 12 14 16 60 # 16348 59462 84344 59462 16348 20 4 # Number of cells per unit nbrOfCellsPerUnit <- unlist(lapply(groups, FUN=sum)) print(table(nbrOfCellsPerUnit)) # 16 40 60 # 20 58991 4 # Number of groups per unit nbrOfGroupsPerUnit <- unlist(lapply(groups, FUN=length)) # Details on a few units print(nbrOfGroupsPerUnit[20:30]) # AFFX-barcodeP AFFX-barcodeQ AFFX-barcodeR AFFX-barcodeS AFFX-barcodeT # 1 1 1 1 1 # AFFX-601964 AFFX-656757 AFFX-721431 AFFX-737848 AFFX-1329481 # 4 4 4 4 4 # AFFX-1375402 # 4 # Number of units for each unique number of groups print(table(nbrOfGroupsPerUnit)) # 1 4 # 24 58991 x <- list() for (size in unique(nbrOfGroupsPerUnit)) { subset <- groups[nbrOfGroupsPerUnit==size] t <- matrix(unlist(subset), nrow=size) colnames(t) <- names(subset) x[[as.character(size)]] <- t rm(subset, t) } # Check if there are any quartet units where the number # of cells in Group 1 & 2 or Group 3 & 4 does not have # the same number of cells. # Group 1 & 2 print(sum(x[["4"]][1,]-x[["4"]][2,] != 0)) # 0 # Group 3 & 4 print(sum(x[["4"]][3,]-x[["4"]][4,] != 0)) # 0 # Clean up rm(cdfFile, groups, nbrOfCellsPerUnit, nbrOfGroupsPerUnit, x) } # for (zzz in 0)