Entering edit mode
Benjamin Otto
▴
830
@benjamin-otto-1519
Last seen 10.3 years ago
Hi Benjamin, Jim, Martin,
Is this problem sorted out already? I seem to have the same/similar
problem with a code that has been working under R 2.12 and now breaks
under 2.14. However I do use the standard human HG-U133-Plus2 package,
so I don't think it's a non-Bioc-package problem. Rather I suppose
something has changed either in the current handling by R or in the
HG-U133-Plus2 package.
It's an old code originally posted by Ariel Chernomoretz here in the
mailing list. Basically, as with Benjamin's code it removes whole
probesets or single probes from the environment. The error code I get
is (translated from german to english):
>> cannot change value of locked binding for 'hgu133plus2probe'
As, in contrast to the CDF 'hgu133plus2cdf', the probe package is has
not environment class I cannot change/unlock any binding with
unlockBinding().
Here is my sessionInfo() ::
R version 2.14.1 (2011-12-22)
Platform: x86_64-apple-darwin9.8.0/x86_64 (64-bit)
locale:
[1] de_DE.UTF-8/de_DE.UTF-8/de_DE.UTF-8/C/de_DE.UTF-8/de_DE.UTF-8
attached base packages:
[1] tcltk stats graphics grDevices utils datasets
methods
[8] base
other attached packages:
[1] hgu133plus2probe_2.9.0 hgu133plus2cdf_2.9.1
AnnotationDbi_1.16.11
[4] altcdfenvs_2.16.0 hypergraph_1.26.0 graph_1.32.0
[7] Biostrings_2.22.0 IRanges_1.12.5 makecdfenv_1.32.0
[10] simpleaffy_2.30.0 gcrma_2.26.0 genefilter_1.36.0
[13] affydata_1.11.15 affy_1.32.1 Biobase_2.14.0
loaded via a namespace (and not attached):
[1] affyio_1.22.0 annotate_1.32.1 BiocInstaller_1.2.1
[4] DBI_0.2-5 preprocessCore_1.16.0 RSQLite_0.11.1
[7] splines_2.14.1 survival_2.36-10 tools_2.14.1
[10] xtable_1.6-0 zlibbioc_1.0.0
And here is Ariel's Code
#
# Ariel Chernomoretz, Ph.D.
# Centre de recherche du CHUL
# 2705 Blv Laurier, bloc T-367
# Sainte-Foy, Qc
# G1V 4G2
# (418)-525-4444 ext 46339
#
######################################################################
#########
#
# RemoveProbes
# goal: Modification of CDF and PROBE environments
# in :
# listOutProbes: list of probes to be removed from cdf and probe
# environments (e.g. c("1001_at1","1032_at6").
# If NULL no probe will be taken out.
# listOutProbeSets: list of probesets to be removed from cdf and probe
# environments (e.g. c("1006_at","1032_f_at").
# If NULL no probeset will be removed.
# cdfpackagename: (e.g. "hgu95av2cdf")
# probepackagename: (e.g. "hgu95av2probe")
# destructive: unimplemented option, see NOTE
#
# out : ---
#
# NOTE 1: After a call to RemoveProbes the probenames reported by
# pm and mm accessing functions implemented in the affy package, will
# be in general differents from the original ones in probesets where
# probes have been removed. This happens as in this functions the
probe names
# are always assigned sequentially.
# RemoveProbes modifies the specified CDF and PROBE environments
# in a consistent BUT destructive way. Take this in consideartion if
# your code relays on absolute references to probe names.
#
# A chunk of code to illustrate this
#
# library(affy)
# library(affydata)
# source("removeProbes.R")
#
# data(Dilution)
# Dilution@cdfName<-"hgu95av2" # fix cdf name
#
# cleancdf <- cleancdfname(Dilution@cdfName,addcdf=FALSE)
# cdfpackagename <- paste(cleancdf,"cdf",sep="")
# probepackagename <- paste(cleancdf,"probe",sep="")
#
# ResetEnvir(cdfpackagename,probepackagename)
# pm(Dilution,"1000_at")
# as.data.frame(get(probepackagename))[1:16,1:4]
#
# RemoveProbes(c("1000_at2"),NULL,cdfpackagename,probepackagename)
# pm(Dilution,"1000_at")
# as.data.frame(get(probepackagename))[1:15,1:4]
#
# NOTE2 : See my April 20 post to BioC mailing list (and eventually
its
# continuation) regarding differences reported
# between GCRMA 1.1.0 and GCRMA 1.1.3
#
RemoveProbes<-function(listOutProbes=NULL, listOutProbeSets=NULL,
cdfpackagename,probepackagename,cleancdf,destructive=TRUE){
require(tcltk)
# source("fixed.indexProbes.R")
#default probe dataset values
probe.env.orig <- get(probepackagename)
time <- system.time(
if(!is.null(listOutProbes)){
# taking probes out from CDF env
probes<-
unlist(lapply(listOutProbes,function(x){
a<-strsplit(x,"at")
aux1<-paste(a[[1]][1],"at",sep="")
aux2<-as.integer(a[[1]][2])
c(aux1,aux2)
}))
n1<-as.character(probes[seq(1,(length(probes)/2))*2-1])
n2<-as.integer(probes[seq(1,(length(probes)/2))*2])
probes<-data.frame(I(n1),n2)
probes[,1]<-as.character(probes[,1])
probes[,2]<-as.integer(probes[,2])
pset<-unique(probes[,1])
psetlen <- length(pset)
#pbt <- new("ProgressBarText",
as.integer(length(pset)), barsteps = as.integer(20))
pbt <- tkProgressBar(title = "Removing
probes from probesets", min = 0,
max = psetlen, width =
300)
#open(pbt)
for(i in seq(along=pset)){
ii
<-grep(paste("^",pset[i],sep=""),probes[,1])
iout<-probes[ii,2]
a<-get(pset[i],env=get(cdfpackagename))
a<-a[-iout,]
assign(pset[i],a,env=get(cdfpackagename))
setTkProgressBar(pbt, i,
label=paste( round(i/psetlen*100, 0), "% done"))
#update(pbt)
}
close(pbt)
}
)
cat("Time for removing ",length(listOutProbes)," Probes:
",time[3],"\n")
time <- system.time(
# taking probesets out from CDF env
if(!is.null(listOutProbeSets)){
rm(list=listOutProbeSets,envir=get(cdfpackagename))
}
)
cat("Time for removing ",length(listOutProbeSets)," ProbeSets:
",time[3],"\n")
# setting the PROBE env accordingly (idea from gcrma
compute.affinities.R)
cat("Setting the PROBE environment.\n ")
tmp <- get("xy2i",paste("package:",cdfpackagename,sep=""))
newAB <- new("AffyBatch",cdfName=cleancdf)
pmIndex <- unlist(indexProbes(newAB,"pm"))
subIndex<-
match(tmp(probe.env.orig$x,probe.env.orig$y),pmIndex)
rm(newAB)
iNA <- whichis.na(subIndex))
if(length(iNA)>0){
ipos<-grep(probepackagename,search())
# browser() -> Code breaks here !!!
assign(probepackagename,probe.env.orig[-iNA,],pos=ipos)
}
}
regards
Benjamin
___________________________________________
Benjamin Otto, PhD
University Medical Center Hamburg-Eppendorf
Center for Diagnostics
Institute For Clinical Chemistry / Central Laboratories
Center for Internal Medicine
I. Department of Internal Medicine
Campus Forschung N27
Martinistr. 52,
D-20246 Hamburg
Tel.: +49 40 7410 51908
Fax.: +49 40 7410 54971
___________________________________________
On 02/06/2012 07:35 AM, James W. MacDonald wrote:
> Hi Benjamin,
>
> You need to supply us with a small reproducible example of the
problem
> you are experiencing, so we can either track down the error, or
explain
> how you can fix things on your end.
The packages asprgdtua520520fcdf, asprgdtua520520fprobe are not
Bioconductor, and seem like a likely source of problems, so you will
want to make sure that these (a) have not changed unexpectedly and (b)
are available to people like Jim. Martin
>
> Best,
>
> Jim
>
>
>
> On 2/6/2012 7:43 AM, Benjamin Høyer wrote:
>> Hi
>>
>> I have made a pipeline for automating analysis of custom affymetrix
>> chips for a colleague. After an R-update, the pipeline no longer
>> runs. Working backwards from where the error occurs, I have found
>> that the structure produced by ReadAffy() is no longer the same. I
am
>> using exactly the same data set. (The error itself a failed
assign()
>> due to a locked binding, but I don't think that's related.)
>>
>> Below are the lists of packages installed before and after the
update,
>> with version numbers. The 'old' R version is 2.13.2, the 'new' one
is
>> 2.14.1.
>>
>> OldPackVers<- structure(c("1.30.0", "1.20.0", "1.28.5", "1.14.1",
>> "1.30.0",
>> "0.0.1", "0.0.1", "2.13.2", "2.12.2", "2.20.4", "1.0-4.1", "1.3-2",
>> "1.12", "7.3-3", "1.14.1", "0.2-8", "2.13.2", "1.6.2", "2.13.2",
>> "0.2-5", "1.30.0", "1.6", "1.2.8", "0.8-48", "2.24.1", "2.8.2",
>> "1.2.5", "2.10.1", "2.13.2", "2.13.2", "2.13.2", "2.6.2", "1.10.6",
>> "2.23-6", "0.19-33", "3.8.3", "1.1.7", "1.30.0", "1.30.0",
"7.3-14",
>> "1.0-3", "2.13.2", "2.10.0", "1.7-11", "3.1-103", "7.3-1",
"1.14.0",
>> "3.1-51", "0.11.1", "7.3-3", "2.13.2", "2.13.2", "2.13.2",
"2.36-10",
>> "2.13.2", "1.24.0", "1.30.0", "2.13.2", "2.13.2", "1.30.0"), .Names
=
>> c("affy",
>> "affyio", "affyPLM", "AnnotationDbi", "asprgdtua520520fcdf",
>> "asprgdtua520520fprobe", "bac01a520746fprobe", "base", "Biobase",
>> "Biostrings", "bitops", "boot", "caTools", "class", "cluster",
>> "codetools", "compiler", "corpcor", "datasets", "DBI", "DynDoc",
>> "e1071", "fdrtool", "foreign", "gcrma", "gdata", "GeneNet",
"gplots",
>> "graphics", "grDevices", "grid", "gtools", "IRanges", "KernSmooth",
>> "lattice", "limma", "longitudinal", "makecdfenv", "marray", "MASS",
>> "Matrix", "methods", "Mfuzz", "mgcv", "nlme", "nnet",
"preprocessCore",
>> "rpart", "RSQLite", "spatial", "splines", "stats", "stats4",
>> "survival", "tcltk", "timecourse", "tkWidgets", "tools", "utils",
>> "widgetTools"))
>>
>> NewPackVers<- structure(c("1.32.1", "1.22.0", "1.30.0", "1.16.11",
>> "1.32.0",
>> "0.0.1", "2.14.1", "2.14.0", "1.2.1", "2.22.0", "1.0-4.1", "1.3-4",
>> "1.12", "7.3-3", "1.14.1", "0.2-8", "2.14.1", "1.6.2", "2.14.1",
>> "0.2-5", "1.32.0", "1.6", "1.2.8", "0.8-48", "2.26.0", "2.8.2",
>> "1.2.5", "2.10.1", "2.14.1", "2.14.1", "2.14.1", "2.6.2", "1.12.5",
>> "2.23-7", "0.20-0", "3.10.2", "1.1.7", "1.32.0", "1.32.0",
"7.3-16",
>> "1.0-3", "2.14.1", "2.12.0", "1.7-13", "3.1-103", "7.3-1",
"2.14.1",
>> "1.16.0", "3.1-51", "0.11.1", "7.3-3", "2.14.1", "2.14.1",
"2.14.1",
>> "2.36-10", "2.14.1", "1.26.0", "1.32.0", "2.14.1", "2.14.1",
>> "1.32.0", "1.0.0"), .Names = c("affy", "affyio", "affyPLM",
>> "AnnotationDbi",
>> "asprgdtua520520fcdf", "asprgdtua520520fprobe", "base", "Biobase",
>> "BiocInstaller", "Biostrings", "bitops", "boot", "caTools",
"class",
>> "cluster", "codetools", "compiler", "corpcor", "datasets", "DBI",
>> "DynDoc", "e1071", "fdrtool", "foreign", "gcrma", "gdata",
"GeneNet",
>> "gplots", "graphics", "grDevices", "grid", "gtools", "IRanges",
>> "KernSmooth", "lattice", "limma", "longitudinal", "makecdfenv",
>> "marray", "MASS", "Matrix", "methods", "Mfuzz", "mgcv", "nlme",
>> "nnet", "parallel", "preprocessCore", "rpart", "RSQLite",
"spatial",
>> "splines", "stats", "stats4", "survival", "tcltk", "timecourse",
>> "tkWidgets", "tools", "utils", "widgetTools", "zlibbioc"))
>>
>> The differences in structure are thus:
>>
>> datOld<- ReadAffy(celfile.path=subdircel)
>> datOld
>>> AffyBatch object
>>> size of arrays=716x716 features (24 kb)
>>> cdf=AsprgDTUa520520F (11186 affyids)
>>> number of samples=27
>>> number of genes=11186
>>> annotation=asprgdtua520520f
>>> notes=
>> datNew<- ReadAffy(celfile.path=subdircel)
>> datNew
>>> AffyBatch object
>>> size of arrays=716x716 features (15 kb)
>>> cdf=AsprgDTUa520520F (11186 affyids)
>>> number of samples=27
>>> number of genes=11186
>>> annotation=asprgdtua520520f
>>> notes=
>>
>> The particular slot which causes trouble is phenoData;
>> datOld <at> phenoData
>>> An object of class "AnnotatedDataFrame"
>>> sampleNames: 1a_N6h_ t1.CEL, 1b_N6h_t2.CEL, ..., 9c_N192h_t3.CEL
(27
>>> total)
>>> varLabels and varMetadata description:
>>> sample: arbitrary numbering
>> datNew <at> phenoData
>>> An object of class "AnnotatedDataFrame"
>>> sampleNames: 1a_N6h_ t1.CEL 1b_N6h_t2.CEL ... 9c_N192h_t3.CEL (27
total)
>>> varLabels: sample
>>> varMetadata: labelDescription
>>
>> Is this a likely culprit? Another option could be how 'get' works.
>> Basically my function 'get's the probe package name (the script
>> follows Gillespie's doi:10.1186/1756-0500-3-81). In the first case,
I
>> get
>>
>> get(probepackagename)
>>> Object of class probetable data.frame with 121507 rows and 6
columns.
>> And in the second case, I get:
>>> Object of class probetable data.frame with 468384 rows and 6
columns.
>>> First 3 rows are:
>>> sequence x y Probe.Set.Name Probe.Interrogation.Position
>>> 1<seq1> 5 1<name1> 13
>>> 2<seq2> 6 1<name2> 13
>>> 3<seq3> 7 1<name3> 13
>>> Target.Strandedness
>>> 1 Antisense
>>> 2 Antisense
>>> 3 Antisense
>> Basically, I would like to know what has changed in the newer
versions
>> that I have! Could also be that the 'probepackagename' (which is
>> generated earlier in the script) has changed. This would be the
>> result of an update in makeProbePackage() in AnnotationDbi.
>>
>> I'll keep looking for ways to get round it, but thanks in advance!
>>
>> Regards,
>>
>> _______________________________________________
>> Bioconductor mailing list
>> Bioconductor@...
>> https://stat.ethz.ch/mailman/listinfo/bioconductor
>> Search the archives:
>> http://news.gmane.org/gmane.science.biology.informatics.conductor
>
--
Computational Biology
Fred Hutchinson Cancer Research Center
1100 Fairview Ave. N. PO Box 19024 Seattle, WA 98109
Location: M1-B861
Telephone: 206 667-2793
--
Pflichtangaben gemäß Gesetz über elektronische Handelsregister und
Genossenschaftsregister sowie das Unternehmensregister (EHUG):
Universitätsklinikum Hamburg-Eppendorf; Körperschaft des öffentlichen
Rechts; Gerichtsstand: Hamburg
Vorstandsmitglieder: Prof. Dr. Guido Sauter (Vertreter des
Vorsitzenden), Dr. Alexander Kirstein, Joachim Prölß, Prof. Dr. Dr.
Uwe Koch-Gromus
[[alternative HTML version deleted]]