[Bioc-devel] topGO and cat() and print() statements in program code

Witold E Wolski wewolski at gmail.com
Thu Feb 4 11:56:16 CET 2016


Hi Dan,

Excellent suggestion. This is very similar to how I am plan to do the
refactoring. Write a function cat2message which has a signature like
cat but uses message in the implementation and than replace all calls
to cat in the topGO package.

best

On 4 February 2016 at 00:56, Dan Tenenbaum <dtenenba at fredhutch.org> wrote:
> Another dirty hack is to redefine cat() in your own code to do nothing:
>
> cat <- function(....) {}
>
> Dan
>
>
> ----- Original Message -----
>> From: "James W. MacDonald" <jmacdon at uw.edu>
>> To: "Witold E Wolski" <wewolski at gmail.com>
>> Cc: "bioc-devel" <bioc-devel at r-project.org>
>> Sent: Tuesday, February 2, 2016 6:50:21 AM
>> Subject: Re: [Bioc-devel] topGO and cat() and print() statements in program   code
>
>> I can't speak to the issue of changing somebody else's code without forking
>> (which you are free to do), or getting their OK. But do note that there are
>> usually ways around this. First, you can use include = FALSE in your chunk
>> options statement, which will run all the code, but silence everything.
>> This isn't a good use case if you need to print, but that can usually be
>> split out. Something like
>>
>> ```r{noisypart, include = FALSE}
>>
>> noisy code goes here
>>
>> ```
>>
>> ```r{quietpart, echo = FALSE, fig.cap = ""}
>>
>> plots go here
>>
>> ```
>>
>> An alternative is to use GOstats, which may be less noisy, but which still
>> has 18 calls to cat() (vs 121 for topGO) and 2 calls to print() (vs 29 for
>> topGO).
>>
>> Best,
>>
>> Jim
>>
>>
>>
>> On Tue, Feb 2, 2016 at 5:19 AM, Witold E Wolski <wewolski at gmail.com> wrote:
>>
>>> Hi,
>>>
>>> I am using the very usefull package topGO to generate a report (R
>>> markdown). There is not much to complain about topGO (on the contrary)
>>> except that the package uses cat instead of message to display
>>> progress information. which ruins the report.
>>>
>>> Also the bioconductor package guidelines state:
>>> cat() or print() are used only when displaying an object to the user,
>>> e.g., in a show method.
>>>
>>> This makes it difficult to integrate topGO.
>>>
>>> I did contact the maintainer asking to update topGO. However I did not
>>> get an reply. It seems that the maintainer is occupied with other
>>> problems. I did offer to replace the cat with message for these
>>> functions I am using myself. No reply.
>>>
>>> So what I am wondering is... If I do the corrections, and would like
>>> to commit the code... Sure I could create a branch but since I do not
>>> have write access to svn no chance to push (commit) it for review.
>>> And who is going to review it if the maintainer does not have time?
>>>
>>> best
>>> Witold
>>>
>>>
>>>
>>>
>>>
>>> --
>>> Witold Eryk Wolski
>>>
>>> _______________________________________________
>>> Bioc-devel at r-project.org mailing list
>>> https://stat.ethz.ch/mailman/listinfo/bioc-devel
>>>
>>
>>
>>
>> --
>> James W. MacDonald, M.S.
>> Biostatistician
>> University of Washington
>> Environmental and Occupational Health Sciences
>> 4225 Roosevelt Way NE, # 100
>> Seattle WA 98105-6099
>>
>>       [[alternative HTML version deleted]]
>>
>> _______________________________________________
>> Bioc-devel at r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/bioc-devel



-- 
Witold Eryk Wolski



More information about the Bioc-devel mailing list