[BioC] rTANDEM package -- An R encapsulation of the X!Tandem algorithm

Martin Morgan mtmorgan at fhcrc.org
Thu Dec 20 01:37:21 CET 2012


On 12/19/2012 08:32 AM, Steve Lianoglou wrote:
> Hi Frederic,
>
> On Wed, Dec 19, 2012 at 10:36 AM, Frederic Fournier
> <frederic.bioinfo at gmail.com> wrote:
>> Dear Bioconductor users,
>>
>> I would like to announce the release of the new package rTANDEM on
>> bioconductor.
>> This package encapsulates the mass spectrometry indentification algorithm
>> X!Tandem in R, making it possible to conduct a full ms-ms analysis in R and
>> to use R datamining capacities to search the results. We hope that rTANDEM
>> can become the center of a viable pipeline for ms-ms proteomics in R.
>>
>> Questions, suggestions, bug-reports, and feedback of any kind is more than
>> welcome.
>
> Really cool!
>
> Thanks for putting this together ... I checked out the source code to
> skim the package and notice that you use data.table (good choice :-) I
> see, however, that you felt that you needed to resort to some hacks to
> get it to work correctly, for instance in `GetPeptides`, you have:
>
>    ## Dummy declaration to prevent "no visible binding" note when using
> data.table subset:
>    pep.id=prot.uid=uid=NULL
>    rm(pep.id, prot.uid, uid)
>    ...
>
> But this shouldn't be necessary, so if there's a problem in data.table
> I'd like to fix it.
>
> I'm curious if you list data.table in your "Imports" field in your
> DESCRIPTION file, then `import(data.table)` in your NAMESPACE, is this
> still necessary?
>
> I don't think I've run into this problem before, so I'm hoping these
> small changes should do the trick.

I'm not sure, but I think this cannot be solved by import'ing data.table. Here

   df <- data.frame(xx=1:5)
   subset(df, xx > 2)

would trigger the same kind of warning about "no visible binding for global 
variable ‘xx’" because codetools (used by R CMD check) doesn't know about the 
local environment in which subset is being evaluated and xx is to be found, as 
illustrated with

 > library(codetools)
 > f = function() { df = data.frame(xx=1:5); subset(df, xx > 2) }
 > f()
   xx
3  3
4  4
5  5
 > findGlobals(f)
[1] "="          ">"          ":"          "{"          "data.frame"
[6] "subset"     "xx"

utils::globalVariables is another solution to this problem, but in some ways not 
very satisfactory (it excludes named variables from the warning, but at 
package-level scope instead of the function in which the variable is being used).

Martin


>
> HTH,
> -steve
>


-- 
Computational Biology / Fred Hutchinson Cancer Research Center
1100 Fairview Ave. N.
PO Box 19024 Seattle, WA 98109

Location: Arnold Building M1 B861
Phone: (206) 667-2793



More information about the Bioconductor mailing list