Skip to content

[Bioc-devel] S4 Method of ExpressionSet Signature Not Found

6 messages · Dario Strbenac, Bernd Klaus, Michael Lawrence

#
Hello,

How is it possible to have the method implemented for a particular signature, but not found ? The problem I am having is :

Browse[2]> showMethods("DMDselection")
Function: DMDselection (package ClassifyR)
expression="ExpressionSet"
expression="matrix"
Browse[2]> selectParams at featureSelection
nonstandardGenericFunction for "DMDselection" defined from package "ClassifyR"

function (expression, ...) 
{
    standardGeneric("DMDselection")
}
<environment: 0x4ed8ca8>
Methods may be defined for arguments: expression
Use  showMethods("DMDselection")  for currently available ones.
Browse[2]> do.call(selectParams at featureSelection, paramList)
Error in (function (classes, fdef, mtable)  : 
  unable to find an inherited method for function 'DMDselection' for signature '"ExpressionSet"'

--------------------------------------
Dario Strbenac
PhD Student
University of Sydney
Camperdown NSW 2050
Australia
#
Is getGeneric("DMDselection") identical to your
selectParams at featureSelection?  You'll want to get rid of the { } in your
generic definition in order to avoid the non-standard generic.

On Thu, Oct 22, 2015 at 6:00 PM, Dario Strbenac <dstr7320 at uni.sydney.edu.au>
wrote:

  
  
#
Good day,

The variables have the same contents.

Browse[1]> selectParams at featureSelection
nonstandardGenericFunction for "DMDselection" defined from package "ClassifyR"

function (expression, ...) 
{
??? standardGeneric("DMDselection")
}
<environment: 0x4452b00>
Methods may be defined for arguments: expression
Use? showMethods("DMDselection")? for currently available ones.
Browse[1]> getGeneric("DMDselection")
nonstandardGenericFunction for "DMDselection" defined from package "ClassifyR"

function (expression, ...) 
{
??? standardGeneric("DMDselection")
}
<environment: 0xb4996c8>
Methods may be defined for arguments: expression
Use? showMethods("DMDselection")? for currently available ones.
Browse[1]> c
Error in (function (classes, fdef, mtable)? : 
? unable to find an inherited method for function 'DMDselection' for signature '"ExpressionSet"'

It only happens after I use :

detach("package:ClassifyR", unload = TRUE)
install.packages("ClassifyR/", repos = NULL)
library(ClassifyR)

because I'm modifying the package code and installing it repeatedly, to find a bug.

--------------------------------------
Dario Strbenac
PhD Student
University of Sydney
Camperdown NSW 2050
Australia
#
They're enclosed in different environments, for one. Basically, all bets
are off if you're doing the unload, reinstall library cycle.

On Thu, Oct 22, 2015 at 7:00 PM, Dario Strbenac <dstr7320 at uni.sydney.edu.au>
wrote:

  
  
#
Hi Dario,

side note: if you want to find a bug and load the updated package over and
over again 
it is much easier to use use devtools::load_all()!

It directly loads the updated version 
using the source package directory without the need to detach / recompile /
reinstall.

So you can e.g. do:

1.) change the R code 
2.) load updated package via load_all() from the source (specify pkg dir if
it is not the wd)
3.) check if bug is gone
4.) repeat

Hope that helps,

Bernd



-----Original Message-----
From: Bioc-devel [mailto:bioc-devel-bounces at r-project.org] On Behalf Of
Michael Lawrence
Sent: Friday, October 23, 2015 4:07 AM
To: Dario Strbenac <dstr7320 at uni.sydney.edu.au>
Cc: bioc-devel at r-project.org
Subject: Re: [Bioc-devel] S4 Method of ExpressionSet Signature Not Found

They're enclosed in different environments, for one. Basically, all bets are
off if you're doing the unload, reinstall library cycle.

On Thu, Oct 22, 2015 at 7:00 PM, Dario Strbenac <dstr7320 at uni.sydney.edu.au>
wrote:
_______________________________________________
Bioc-devel at r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/bioc-devel
#
Beware that load_all attaches the entire package namespace to the search
path, so its effect is not consistent with actual usage of the package. I
think devtools has other functionality that is more consistent with Dario's
original approach, and it might work better. But it is also known to break
S4.
On Fri, Oct 23, 2015 at 1:43 AM, Bernd Klaus <bernd.klaus at embl.de> wrote: