[Bioc-devel] How to recreate R CMD BUILD environment in interactive session?
Martin Morgan
martin.morgan at roswellpark.org
Mon Oct 23 22:42:33 CEST 2017
On 10/23/2017 04:40 PM, Hervé Pagès wrote:
> Hi Elizabeth,
>
> Thanks for troubleshooting this.
>
> Note that testing with identical()/checkIdentical() is safer than with
> 'any(sort(colnames1) != sort(colnames2))'. The latter won't do the
> right thing if 'colnames1' and 'colnames2' have different lengths.
...but in this case it sounds like you're aiming for a set comparison,
setequal(colnames1, colnames2)
Martin
>
> Cheers,
> H.
>
>
> On 10/23/2017 01:06 PM, Elizabeth Purdom wrote:
>> Dear Martin,
>>
>> Just for completeness, I figured out the discrepancy and solved my
>> problem. In my check, I check that the column names contain the
>> expected names and I didn’t want to make the order required in a
>> certain way so I used sort -- but only of one side because I naively
>> assumed the other side would be fixed:
>>
>> any(sort(colnames(object at merge_nodeMerge)) !=
>> c('Contrast','isMerged','mergeClusterId','Node’)
>>
>> But the different environments are sorting differently!
>>
>> In my normal interactive R session:
>>> sort(c("Contrast", "isMerged", "mergeClusterId", "Node"))
>> [1] "Contrast" "isMerged" "mergeClusterId" "Node"
>>
>> In the build version of R however:
>> Browse[2]> sort(c("Contrast", "isMerged", "mergeClusterId", "Node"))
>> [1] "Contrast" "Node" "isMerged" "mergeClusterId"
>>
>> Thank you very much for your help in getting an interactive session in
>> the build environment!
>>
>> Elizabeth
>>
>>> On Oct 23, 2017, at 4:35 PM, Martin Morgan
>>> <martin.morgan at roswellpark.org> wrote:
>>>
>>> On 10/23/2017 09:59 AM, Elizabeth Purdom wrote:
>>>>> On Oct 23, 2017, at 3:47 PM, Martin Morgan
>>>>> <martin.morgan at roswellpark.org
>>>>> <mailto:martin.morgan at roswellpark.org>> wrote:
>>>>>
>>>>> On 10/23/2017 09:26 AM, Elizabeth Purdom wrote:
>>>>>> Hello,
>>>>>> I am updating an existing package and I am getting an error in
>>>>>> running my vignette (and a similar error in an example in help
>>>>>> pages) but ONLY when I run R CMD BUILD. I can’t recreate the error
>>>>>> in any session where I can debug and figure out what is happening.
>>>>>> So my question is how can I recreate the exact environment of R
>>>>>> CMD BUILD that runs the vignette but in an interactive session so
>>>>>> that I can figure out what is going on?
>>>>>> I have tried reproducing the error in other environments:
>>>>>> * Running R —vanilla interactively and trying the code manually
>>>>>> * running purl on my vignette to get pure R code and running just
>>>>>> the R code with R CMD BATCH —vanilla
>>>>>
>>>>> hint on the specific package and / or error message?
>>>>>
>>>>> My approach would be to install the package, Stangle / purl the
>>>>> vignette, and R -f vignette.R, then trim the vignette to a fast
>>>>> reproducible case. But it sounds like you're doing that...
>>>>>
>>>>> Martin
>>>>>
>>>> Yes, that is what I tried but did not get the error from the R code.
>>>> And I apologize, it’s the `clusterExperiment` package. My error was
>>>> so specific to the class created by my package that I didn’t think
>>>> it would be useful, but here is the relevant error message:
>>>> Quitting from lines 271-272 (clusterExperimentTutorial.Rmd)
>>>> Error: processing vignette 'clusterExperimentTutorial.Rmd' failed
>>>> with diagnostics:
>>>> invalid class "ClusterExperiment" object: merge_nodeMerge must have
>>>> 4 columns and column names equal to:
>>>> 'Node','Contrast','isMerged','mergeClusterId'
>>>> Execution halted
>>>> I would note that my vignette calls an object that is saved as a
>>>> data object as part of my package to speed up compilation. But I
>>>> experimented and you can also switch it so that it creates the
>>>> object from scratch and doesn’t load the object, and it runs into
>>>> the same error. There is a `LazyData: false` in my DESCRIPTION File,
>>>> because I was having problems with my R data object, because it is
>>>> of the class I make with my package, and without the package loaded
>>>> there was some problem loading it.
>>>
>>> I can reproduce the error with
>>>
>>> clusterExperiment/vignettes master$ R_DEFAULT_PACKAGES= LC_COLLATE=C
>>> R -f clusterExperimentTutorial.R
>>>
>>> leading to
>>>
>>>> ##
>>>> ----recallRSEC------------------------------------------------------------
>>>>
>>>> rsecFluidigm<-RSEC(rsecFluidigm,isCount=TRUE,combineProportion=0.6,mergeMethod="JC",mergeCutoff=0.05)
>>>>
>>> Error in validObject(.Object) :
>>> invalid class "ClusterExperiment" object: merge_nodeMerge must be
>>> data.frame with 4 columns and column names equal to:
>>> 'Node','Contrast','isMerged','mergeClusterId'
>>> Calls: RSEC ... .local -> new -> initialize -> initialize -> validObject
>>> Execution halted
>>>
>>> and then for work inside R
>>>
>>>
>>> clusterExperiment/vignettes$ R_DEFAULT_PACKAGES= LC_COLLATE=C R
>>> Bioconductor version 3.6 (BiocInstaller 1.27.7), ?biocLite for help
>>>> source("clusterExperimentTutorial.R", echo=TRUE, max=Inf)
>>>
>>> Does that set you down the right path?
>>>
>>> Martin
>>>
>>>
>>>
>>> This email message may contain legally privileged and/or confidential
>>> information. If you are not the intended recipient(s), or the
>>> employee or agent responsible for the delivery of this message to the
>>> intended recipient(s), you are hereby notified that any disclosure,
>>> copying, distribution, or use of this email message is prohibited.
>>> If you have received this message in error, please notify the sender
>>> immediately by e-mail and delete this email message from your
>>> computer. Thank you.
>>
>>
>> [[alternative HTML version deleted]]
>>
>> _______________________________________________
>> Bioc-devel at r-project.org mailing list
>> https://urldefense.proofpoint.com/v2/url?u=https-3A__stat.ethz.ch_mailman_listinfo_bioc-2Ddevel&d=DwIGaQ&c=eRAMFD45gAfqt84VtBcfhQ&r=BK7q3XeAvimeWdGbWY_wJYbW0WYiZvSXAJJKaaPhzWA&m=3O1928D4_siHrVAZeKxKOXOeKeLFslkcQGPRdXb_YSk&s=_-4eL50gxWxWGFjisSH08OY5LgD1bmPVPvowL13m7_E&e=
>>
>>
>
This email message may contain legally privileged and/or...{{dropped:2}}
More information about the Bioc-devel
mailing list