FAQ
Dear maintainers and developers,

I am wondering, is there a way to use knitr to built my vignette, I am
trying to write a Makefile under my inst/doc, something like

# Makefile to use knitr for package vignettes
# put all PDF targets here, separated by spaces
PDFS= ggbio.pdf
all: $(PDFS)
clean:
rm -f *.tex *.bbl *.blg *.aux *.out *.log *.spl *tikzDictionary
%.pdf: %.Rnw
$(R_HOME)/bin/Rscript -e "library(knitr); knit2pdf('ggbio.Rnw')"

Then I realize the bioc maintained two branch, released and development, so
the R version it used to check each branch must be different, I don't
really know how to specify those in my Makefile, especially after next
Monday, the devel-branch become released version automatically, there must
be a problem if I set up a fixed point to some */bin/Rscript?

I don't really know how it works with bioconductor, the example above
should work for cran, but I guess things are very different between cran
and bioc.

thanks a lot!

Tengfei



--
Tengfei Yin
MCDB PhD student
1620 Howe Hall, 2274,
Iowa State University
Ames, IA,50011-2274

Search Discussions

  • Dan Tenenbaum at Sep 27, 2012 at 3:08 pm

    On Wed, Sep 26, 2012 at 11:41 PM, Tengfei Yin wrote:
    Dear maintainers and developers,

    I am wondering, is there a way to use knitr to built my vignette, I am
    trying to write a Makefile under my inst/doc, something like

    # Makefile to use knitr for package vignettes
    # put all PDF targets here, separated by spaces
    PDFS= ggbio.pdf
    all: $(PDFS)
    clean:
    rm -f *.tex *.bbl *.blg *.aux *.out *.log *.spl *tikzDictionary
    %.pdf: %.Rnw
    $(R_HOME)/bin/Rscript -e "library(knitr); knit2pdf('ggbio.Rnw')"

    Then I realize the bioc maintained two branch, released and development, so
    the R version it used to check each branch must be different, I don't
    really know how to specify those in my Makefile, especially after next
    Monday, the devel-branch become released version automatically, there must
    be a problem if I set up a fixed point to some */bin/Rscript?

    I don't really know how it works with bioconductor, the example above
    should work for cran, but I guess things are very different between cran
    and bioc.



    If you use "$(R_HOME)/bin/R" in your Makefile, as you do, the correct
    R will be used.
    Dan



    thanks a lot!

    Tengfei



    --
    Tengfei Yin
    MCDB PhD student
    1620 Howe Hall, 2274,
    Iowa State University
    Ames, IA,50011-2274

    [[alternative HTML version deleted]]

    _______________________________________________
    Bioc-devel at r-project.org mailing list
    https://stat.ethz.ch/mailman/listinfo/bioc-devel
  • Tengfei Yin at Sep 27, 2012 at 6:46 pm

    On Thu, Sep 27, 2012 at 10:08 AM, Dan Tenenbaum wrote:
    On Wed, Sep 26, 2012 at 11:41 PM, Tengfei Yin wrote:
    Dear maintainers and developers,

    I am wondering, is there a way to use knitr to built my vignette, I am
    trying to write a Makefile under my inst/doc, something like

    # Makefile to use knitr for package vignettes
    # put all PDF targets here, separated by spaces
    PDFS= ggbio.pdf
    all: $(PDFS)
    clean:
    rm -f *.tex *.bbl *.blg *.aux *.out *.log *.spl *tikzDictionary
    %.pdf: %.Rnw
    $(R_HOME)/bin/Rscript -e "library(knitr); knit2pdf('ggbio.Rnw')"

    Then I realize the bioc maintained two branch, released and development, so
    the R version it used to check each branch must be different, I don't
    really know how to specify those in my Makefile, especially after next
    Monday, the devel-branch become released version automatically, there must
    be a problem if I set up a fixed point to some */bin/Rscript?

    I don't really know how it works with bioconductor, the example above
    should work for cran, but I guess things are very different between cran
    and bioc.

    If you use "$(R_HOME)/bin/R" in your Makefile, as you do, the correct
    R will be used.
    Dan

    Hi Dan,
    Thanks a lot, I will give a try to see how it works.

    Tengfei
    thanks a lot!

    Tengfei



    --
    Tengfei Yin
    MCDB PhD student
    1620 Howe Hall, 2274,
    Iowa State University
    Ames, IA,50011-2274

    [[alternative HTML version deleted]]

    _______________________________________________
    bioc-devel@r-project.org mailing list
    https://stat.ethz.ch/mailman/listinfo/bioc-devel


    --
    Tengfei Yin
    MCDB PhD student
    1620 Howe Hall, 2274,
    Iowa State University
    Ames, IA,50011-2274
  • Martin Morgan at Sep 27, 2012 at 7:56 pm

    On 09/27/2012 11:46 AM, Tengfei Yin wrote:
    On Thu, Sep 27, 2012 at 10:08 AM, Dan Tenenbaum wrote:

    On Wed, Sep 26, 2012 at 11:41 PM, Tengfei Yin <yintengfei@gmail.com>
    wrote:
    Dear maintainers and developers,

    I am wondering, is there a way to use knitr to built my vignette, I am
    trying to write a Makefile under my inst/doc, something like

    # Makefile to use knitr for package vignettes
    # put all PDF targets here, separated by spaces
    PDFS= ggbio.pdf
    all: $(PDFS)
    clean:
    rm -f *.tex *.bbl *.blg *.aux *.out *.log *.spl *tikzDictionary
    %.pdf: %.Rnw
    $(R_HOME)/bin/Rscript -e "library(knitr); knit2pdf('ggbio.Rnw')"

    Then I realize the bioc maintained two branch, released and development, so
    the R version it used to check each branch must be different, I don't
    really know how to specify those in my Makefile, especially after next
    Monday, the devel-branch become released version automatically, there must
    be a problem if I set up a fixed point to some */bin/Rscript?

    I don't really know how it works with bioconductor, the example above
    should work for cran, but I guess things are very different between cran
    and bioc.

    If you use "$(R_HOME)/bin/R" in your Makefile, as you do, the correct
    R will be used.
    Dan

    Hi Dan,
    Thanks a lot, I will give a try to see how it works.

    I'm not 100% sure of the following.


    From 'Writing R Extensions' section 1.4.1, "By default R CMD build will
    run Sweave on all files in Sweave format in vignettes, or if that does
    not exist, inst/doc". R will then go on to evaluate the Makefile. So
    your 'Rnw' file will be processed (to .tex) by R, regardless of what
    your Makefile says -- you get to build your vignette twice, and discard
    once! (maybe knitr defines directives that are not consistent with
    evaluation by Sweave, and then your only choice is to avoid those
    directives). There aren't easy, non-hackish ways to avoid this that I
    know of; maybe the knitr community has this all worked out? I think the
    designers of Sweave thought that people wishing to offer alternative
    parsers would have used the hooks it provides, rather than reinventing
    it entirely.


    One other minor point is that $(R_HOME) can expand to a path with spaces
    in it, so enclose in quotations


    %.pdf: %.Rnw
    "$(R_HOME)/bin/R" -e "library(knitr); knit2pdf('ggbio.Rnw')"


    (I used bin/R instead of bin/Rscript because that is how most examples
    in Writing R Extensions are written; there is a warning on ?Rscript
    about availability only on systems with execv, but I don't really know
    how that translates into reality).


    Comments from Kasper in this thread (especially toward the end, where we
    get past my misleading comments)


    https://stat.ethz.ch/pipermail/bioc-devel/2012-June/003442.html


    might also be helpful.


    Martin

    Tengfei
    thanks a lot!

    Tengfei



    --
    Tengfei Yin
    MCDB PhD student
    1620 Howe Hall, 2274,
    Iowa State University
    Ames, IA,50011-2274

    [[alternative HTML version deleted]]

    _______________________________________________
    Bioc-devel at r-project.org mailing list
    https://stat.ethz.ch/mailman/listinfo/bioc-devel



    --
    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
  • Hervé Pagès at Sep 27, 2012 at 7:42 pm
    Hi Tengfei,


    Yes, as Dan said, that should work. Make sure you indent the Makefile
    properly though (normally with a tab), or it won't work:


    -----------------------------------------------------------------------
    PDFS= ggbio.pdf


    all: $(PDFS)


    clean:
    rm -f *.tex *.bbl *.blg *.aux *.out *.log *.spl *tikzDictionary


    %.pdf: %.Rnw
    $(R_HOME)/bin/Rscript -e "library(knitr); knit2pdf('$*.Rnw')"
    -----------------------------------------------------------------------


    Also note the use of a regexpr in the call to knit2pdf() so that all
    Sweave files in the folder will be processed.


    I would suggest 3 more things:


    1. Add *.toc to the rm command above.


    2. Don't forget to add knitr to the Suggests field of your package.


    3. If you've not done it already, add library(knitr) right before the
    knit_hooks$... line in the set-options code chunk in each of your
    Rnw files, so that people can still run Sweave() on them if they
    want.


    Cheers,
    H.



    On 09/27/2012 08:08 AM, Dan Tenenbaum wrote:
    On Wed, Sep 26, 2012 at 11:41 PM, Tengfei Yin wrote:
    Dear maintainers and developers,

    I am wondering, is there a way to use knitr to built my vignette, I am
    trying to write a Makefile under my inst/doc, something like

    # Makefile to use knitr for package vignettes
    # put all PDF targets here, separated by spaces
    PDFS= ggbio.pdf
    all: $(PDFS)
    clean:
    rm -f *.tex *.bbl *.blg *.aux *.out *.log *.spl *tikzDictionary
    %.pdf: %.Rnw
    $(R_HOME)/bin/Rscript -e "library(knitr); knit2pdf('ggbio.Rnw')"

    Then I realize the bioc maintained two branch, released and development, so
    the R version it used to check each branch must be different, I don't
    really know how to specify those in my Makefile, especially after next
    Monday, the devel-branch become released version automatically, there must
    be a problem if I set up a fixed point to some */bin/Rscript?

    I don't really know how it works with bioconductor, the example above
    should work for cran, but I guess things are very different between cran
    and bioc.

    If you use "$(R_HOME)/bin/R" in your Makefile, as you do, the correct
    R will be used.
    Dan

    thanks a lot!

    Tengfei



    --
    Tengfei Yin
    MCDB PhD student
    1620 Howe Hall, 2274,
    Iowa State University
    Ames, IA,50011-2274

    [[alternative HTML version deleted]]

    _______________________________________________
    Bioc-devel at r-project.org mailing list
    https://stat.ethz.ch/mailman/listinfo/bioc-devel
    _______________________________________________
    Bioc-devel at r-project.org mailing list
    https://stat.ethz.ch/mailman/listinfo/bioc-devel

    --
    Herv? Pag?s


    Program in Computational Biology
    Division of Public Health Sciences
    Fred Hutchinson Cancer Research Center
    1100 Fairview Ave. N, M1-B514
    P.O. Box 19024
    Seattle, WA 98109-1024


    E-mail: hpages at fhcrc.org
    Phone: (206) 667-5791
    Fax: (206) 667-1319
  • Tengfei Yin at Sep 27, 2012 at 8:05 pm

    On Thu, Sep 27, 2012 at 2:42 PM, Hervé Pagès wrote:

    Hi Tengfei,

    Yes, as Dan said, that should work. Make sure you indent the Makefile
    properly though (normally with a tab), or it won't work:

    ------------------------------**------------------------------**
    -----------

    PDFS= ggbio.pdf

    all: $(PDFS)

    clean:
    rm -f *.tex *.bbl *.blg *.aux *.out *.log *.spl *tikzDictionary

    %.pdf: %.Rnw
    $(R_HOME)/bin/Rscript -e "library(knitr); knit2pdf('$*.Rnw')"
    ------------------------------**------------------------------**
    -----------

    Also note the use of a regexpr in the call to knit2pdf() so that all
    Sweave files in the folder will be processed.

    I would suggest 3 more things:

    1. Add *.toc to the rm command above.

    2. Don't forget to add knitr to the Suggests field of your package.

    3. If you've not done it already, add library(knitr) right before the
    knit_hooks$... line in the set-options code chunk in each of your
    Rnw files, so that people can still run Sweave() on them if they
    want.

    Cheers,
    H.

    Hi Hervé,
    Thanks a lot for your suggestion, I haven't done that yet, so I could make
    all those changes.

    Potential issues is that(actually as Martin just mentioned), if my Rnw
    won't be running through sweave(sweave first run on my Rnw) which because
    knitr-specified tag is included in my Rnw file, and Sweave won't recognize,
    for example, may be tag, fig.cap = " with quotes", there is no such tag and
    I guess I cannot use quotes, I guess I am hitting a potential problem like
    that, one solution could be that I have to put a fake Rnw first, then
    remove fake vignette and run knitr on real Rnw file somewhere and copy it
    to the right location to replace the fake vignette...

    I am experimenting on my machine now... hope that would work, I heard from
    knitr designer that Rcpp did similar things like that.

    Tengfei


    On 09/27/2012 08:08 AM, Dan Tenenbaum wrote:

    On Wed, Sep 26, 2012 at 11:41 PM, Tengfei Yin <yintengfei@gmail.com>
    wrote:
    Dear maintainers and developers,

    I am wondering, is there a way to use knitr to built my vignette, I am
    trying to write a Makefile under my inst/doc, something like

    # Makefile to use knitr for package vignettes
    # put all PDF targets here, separated by spaces
    PDFS= ggbio.pdf
    all: $(PDFS)
    clean:
    rm -f *.tex *.bbl *.blg *.aux *.out *.log *.spl *tikzDictionary
    %.pdf: %.Rnw
    $(R_HOME)/bin/Rscript -e "library(knitr); knit2pdf('ggbio.Rnw')"

    Then I realize the bioc maintained two branch, released and development,
    so
    the R version it used to check each branch must be different, I don't
    really know how to specify those in my Makefile, especially after next
    Monday, the devel-branch become released version automatically, there
    must
    be a problem if I set up a fixed point to some */bin/Rscript?

    I don't really know how it works with bioconductor, the example above
    should work for cran, but I guess things are very different between cran
    and bioc.

    If you use "$(R_HOME)/bin/R" in your Makefile, as you do, the correct
    R will be used.
    Dan


    thanks a lot!

    Tengfei



    --
    Tengfei Yin
    MCDB PhD student
    1620 Howe Hall, 2274,
    Iowa State University
    Ames, IA,50011-2274

    [[alternative HTML version deleted]]

    ______________________________**_________________
    bioc-devel@r-project.org mailing list
    https://stat.ethz.ch/mailman/**listinfo/bioc-devel<https://stat.ethz.ch/mailman/listinfo/bioc-devel>
    ______________________________**_________________
    bioc-devel@r-project.org mailing list
    https://stat.ethz.ch/mailman/**listinfo/bioc-devel<https://stat.ethz.ch/mailman/listinfo/bioc-devel>
    --
    Hervé Pagès

    Program in Computational Biology
    Division of Public Health Sciences
    Fred Hutchinson Cancer Research Center
    1100 Fairview Ave. N, M1-B514
    P.O. Box 19024
    Seattle, WA 98109-1024

    E-mail: hpages@fhcrc.org
    Phone: (206) 667-5791
    Fax: (206) 667-1319


    --
    Tengfei Yin
    MCDB PhD student
    1620 Howe Hall, 2274,
    Iowa State University
    Ames, IA,50011-2274
  • Martin Morgan at Sep 27, 2012 at 8:10 pm

    On 09/27/2012 01:05 PM, Tengfei Yin wrote:

    On Thu, Sep 27, 2012 at 2:42 PM, Herv? Pag?s <hpages at fhcrc.org
    wrote:

    Hi Tengfei,

    Yes, as Dan said, that should work. Make sure you indent the Makefile
    properly though (normally with a tab), or it won't work:

    ------------------------------__------------------------------__-----------

    PDFS= ggbio.pdf

    all: $(PDFS)

    clean:
    rm -f *.tex *.bbl *.blg *.aux *.out *.log *.spl *tikzDictionary

    %.pdf: %.Rnw
    $(R_HOME)/bin/Rscript -e "library(knitr); knit2pdf('$*.Rnw')"
    ------------------------------__------------------------------__-----------

    Also note the use of a regexpr in the call to knit2pdf() so that all
    Sweave files in the folder will be processed.

    I would suggest 3 more things:

    1. Add *.toc to the rm command above.

    2. Don't forget to add knitr to the Suggests field of your package.

    3. If you've not done it already, add library(knitr) right before the
    knit_hooks$... line in the set-options code chunk in each of your
    Rnw files, so that people can still run Sweave() on them if they
    want.

    Cheers,
    H.

    Hi Herv?,

    Thanks a lot for your suggestion, I haven't done that yet, so I could
    make all those changes.
    Potential issues is that(actually as Martin just mentioned), if my Rnw
    won't be running through sweave(sweave first run on my Rnw) which
    because knitr-specified tag is included in my Rnw file, and Sweave won't
    recognize, for example, may be tag, fig.cap = " with quotes", there is
    no such tag and I guess I cannot use quotes, I guess I am hitting a
    potential problem like that, one solution could be that I have to put a
    fake Rnw first, then remove fake vignette and run knitr on real Rnw file
    somewhere and copy it to the right location to replace the fake vignette...

    As you go down that road, you'll want to make sure that
    vignette(package="ggbio") and help.start() pages for ggbio list
    appropriate files -- the pdf, Rnw, and R files for your real vignette.
    Also, although the Bioconductor build system runs R CMD check
    --no-vignettes, it seems like you'd like to have the R code in the
    vignette run as part of the check. Hacking might be quite painful! Martin

    I am experimenting on my machine now... hope that would work, I heard
    from knitr designer that Rcpp did similar things like that.

    Tengfei




    On 09/27/2012 08:08 AM, Dan Tenenbaum wrote:

    On Wed, Sep 26, 2012 at 11:41 PM, Tengfei Yin
    <yintengfei at gmail.com wrote:

    Dear maintainers and developers,

    I am wondering, is there a way to use knitr to built my
    vignette, I am
    trying to write a Makefile under my inst/doc, something like

    # Makefile to use knitr for package vignettes
    # put all PDF targets here, separated by spaces
    PDFS= ggbio.pdf
    all: $(PDFS)
    clean:
    rm -f *.tex *.bbl *.blg *.aux *.out *.log *.spl *tikzDictionary
    %.pdf: %.Rnw
    $(R_HOME)/bin/Rscript -e "library(knitr); knit2pdf('ggbio.Rnw')"

    Then I realize the bioc maintained two branch, released and
    development, so
    the R version it used to check each branch must be
    different, I don't
    really know how to specify those in my Makefile, especially
    after next
    Monday, the devel-branch become released version
    automatically, there must
    be a problem if I set up a fixed point to some */bin/Rscript?

    I don't really know how it works with bioconductor, the
    example above
    should work for cran, but I guess things are very different
    between cran
    and bioc.



    If you use "$(R_HOME)/bin/R" in your Makefile, as you do, the
    correct
    R will be used.
    Dan



    thanks a lot!

    Tengfei



    --
    Tengfei Yin
    MCDB PhD student
    1620 Howe Hall, 2274,
    Iowa State University
    Ames, IA,50011-2274

    [[alternative HTML version deleted]]

    _________________________________________________
    Bioc-devel at r-project.org <mailto:bioc-devel@r-project.org>
    mailing list
    https://stat.ethz.ch/mailman/__listinfo/bioc-devel
    <https://stat.ethz.ch/mailman/listinfo/bioc-devel>


    _________________________________________________
    Bioc-devel at r-project.org <mailto:bioc-devel@r-project.org>
    mailing list
    https://stat.ethz.ch/mailman/__listinfo/bioc-devel
    <https://stat.ethz.ch/mailman/listinfo/bioc-devel>


    --
    Herv? Pag?s

    Program in Computational Biology
    Division of Public Health Sciences
    Fred Hutchinson Cancer Research Center
    1100 Fairview Ave. N, M1-B514
    P.O. Box 19024
    Seattle, WA 98109-1024

    E-mail: hpages at fhcrc.org <mailto:hpages@fhcrc.org>
    Phone: (206) 667-5791 <tel:%28206%29%20667-5791>
    Fax: (206) 667-1319 <tel:%28206%29%20667-1319>




    --
    Tengfei Yin
    MCDB PhD student
    1620 Howe Hall, 2274,
    Iowa State University
    Ames, IA,50011-2274




    --
    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
  • Hervé Pagès at Sep 27, 2012 at 9:48 pm
    Tengfei,

    On 09/27/2012 01:05 PM, Tengfei Yin wrote:


    On Thu, Sep 27, 2012 at 2:42 PM, Herv? Pag?s <hpages at fhcrc.org
    wrote:

    Hi Tengfei,

    Yes, as Dan said, that should work. Make sure you indent the Makefile
    properly though (normally with a tab), or it won't work:

    ------------------------------__------------------------------__-----------

    PDFS= ggbio.pdf

    all: $(PDFS)

    clean:
    rm -f *.tex *.bbl *.blg *.aux *.out *.log *.spl *tikzDictionary

    %.pdf: %.Rnw
    $(R_HOME)/bin/Rscript -e "library(knitr); knit2pdf('$*.Rnw')"
    ------------------------------__------------------------------__-----------

    Also note the use of a regexpr in the call to knit2pdf() so that all
    Sweave files in the folder will be processed.

    I would suggest 3 more things:

    1. Add *.toc to the rm command above.

    2. Don't forget to add knitr to the Suggests field of your package.

    3. If you've not done it already, add library(knitr) right before the
    knit_hooks$... line in the set-options code chunk in each of your
    Rnw files, so that people can still run Sweave() on them if they
    want.

    Cheers,
    H.

    Hi Herv?,

    Thanks a lot for your suggestion, I haven't done that yet, so I could
    make all those changes.
    Potential issues is that(actually as Martin just mentioned), if my Rnw
    won't be running through sweave(sweave first run on my Rnw) which
    because knitr-specified tag is included in my Rnw file, and Sweave won't
    recognize, for example, may be tag, fig.cap = " with quotes", there is
    no such tag and I guess I cannot use quotes, I guess I am hitting a
    potential problem like that, one solution could be that I have to put a
    fake Rnw first, then remove fake vignette and run knitr on real Rnw file
    somewhere and copy it to the right location to replace the fake vignette...

    I am experimenting on my machine now... hope that would work, I heard
    from knitr designer that Rcpp did similar things like that.

    Note that the above Makefile is exactly (except for the package name
    itself) the file used in the knitr package (which vignettes are of
    course generated with knitr).


    All the details here:


    http://yihui.name/knitr/demo/vignette/


    The above document also covers the issue of "vignettes having to
    go through Sweave first anyway", and, as you figured it out, it
    seems that the workaround is required only if the syntax of your
    vignette is not compatible with Sweave. And yes the workaround
    involves putting a fake vignette first and do other kind of dark
    voodoo.


    BTW I'm assuming you have a good reason to not use a Sweave-compatible
    syntax, otherwise maybe you could reconsider, as that would make
    things much easier (and you already get some nice improvements to
    the rendering of your vignette, when using knitr in Sweave-compatible
    mode).


    Cheers,
    H.





    Tengfei




    On 09/27/2012 08:08 AM, Dan Tenenbaum wrote:

    On Wed, Sep 26, 2012 at 11:41 PM, Tengfei Yin
    <yintengfei at gmail.com wrote:

    Dear maintainers and developers,

    I am wondering, is there a way to use knitr to built my
    vignette, I am
    trying to write a Makefile under my inst/doc, something like

    # Makefile to use knitr for package vignettes
    # put all PDF targets here, separated by spaces
    PDFS= ggbio.pdf
    all: $(PDFS)
    clean:
    rm -f *.tex *.bbl *.blg *.aux *.out *.log *.spl *tikzDictionary
    %.pdf: %.Rnw
    $(R_HOME)/bin/Rscript -e "library(knitr); knit2pdf('ggbio.Rnw')"

    Then I realize the bioc maintained two branch, released and
    development, so
    the R version it used to check each branch must be
    different, I don't
    really know how to specify those in my Makefile, especially
    after next
    Monday, the devel-branch become released version
    automatically, there must
    be a problem if I set up a fixed point to some */bin/Rscript?

    I don't really know how it works with bioconductor, the
    example above
    should work for cran, but I guess things are very different
    between cran
    and bioc.



    If you use "$(R_HOME)/bin/R" in your Makefile, as you do, the
    correct
    R will be used.
    Dan



    thanks a lot!

    Tengfei



    --
    Tengfei Yin
    MCDB PhD student
    1620 Howe Hall, 2274,
    Iowa State University
    Ames, IA,50011-2274

    [[alternative HTML version deleted]]

    _________________________________________________
    Bioc-devel at r-project.org <mailto:bioc-devel@r-project.org>
    mailing list
    https://stat.ethz.ch/mailman/__listinfo/bioc-devel
    <https://stat.ethz.ch/mailman/listinfo/bioc-devel>


    _________________________________________________
    Bioc-devel at r-project.org <mailto:bioc-devel@r-project.org>
    mailing list
    https://stat.ethz.ch/mailman/__listinfo/bioc-devel
    <https://stat.ethz.ch/mailman/listinfo/bioc-devel>


    --
    Herv? Pag?s

    Program in Computational Biology
    Division of Public Health Sciences
    Fred Hutchinson Cancer Research Center
    1100 Fairview Ave. N, M1-B514
    P.O. Box 19024
    Seattle, WA 98109-1024

    E-mail: hpages at fhcrc.org <mailto:hpages@fhcrc.org>
    Phone: (206) 667-5791 <tel:%28206%29%20667-5791>
    Fax: (206) 667-1319 <tel:%28206%29%20667-1319>




    --
    Tengfei Yin
    MCDB PhD student
    1620 Howe Hall, 2274,
    Iowa State University
    Ames, IA,50011-2274


    --
    Herv? Pag?s


    Program in Computational Biology
    Division of Public Health Sciences
    Fred Hutchinson Cancer Research Center
    1100 Fairview Ave. N, M1-B514
    P.O. Box 19024
    Seattle, WA 98109-1024


    E-mail: hpages at fhcrc.org
    Phone: (206) 667-5791
    Fax: (206) 667-1319
  • Tengfei Yin at Sep 27, 2012 at 10:08 pm

    On Thu, Sep 27, 2012 at 4:48 PM, Hervé Pagès wrote:

    Tengfei,

    On 09/27/2012 01:05 PM, Tengfei Yin wrote:



    On Thu, Sep 27, 2012 at 2:42 PM, Hervé Pagès <hpages@fhcrc.org
    wrote:

    Hi Tengfei,

    Yes, as Dan said, that should work. Make sure you indent the Makefile
    properly though (normally with a tab), or it won't work:

    ------------------------------**__----------------------------**
    --__-----------


    PDFS= ggbio.pdf

    all: $(PDFS)

    clean:
    rm -f *.tex *.bbl *.blg *.aux *.out *.log *.spl
    *tikzDictionary

    %.pdf: %.Rnw
    $(R_HOME)/bin/Rscript -e "library(knitr); knit2pdf('$*.Rnw')"
    ------------------------------**__----------------------------**
    --__-----------


    Also note the use of a regexpr in the call to knit2pdf() so that all
    Sweave files in the folder will be processed.

    I would suggest 3 more things:

    1. Add *.toc to the rm command above.

    2. Don't forget to add knitr to the Suggests field of your package.

    3. If you've not done it already, add library(knitr) right before
    the
    knit_hooks$... line in the set-options code chunk in each of
    your
    Rnw files, so that people can still run Sweave() on them if they
    want.

    Cheers,
    H.

    Hi Hervé,

    Thanks a lot for your suggestion, I haven't done that yet, so I could
    make all those changes.
    Potential issues is that(actually as Martin just mentioned), if my Rnw
    won't be running through sweave(sweave first run on my Rnw) which
    because knitr-specified tag is included in my Rnw file, and Sweave won't
    recognize, for example, may be tag, fig.cap = " with quotes", there is
    no such tag and I guess I cannot use quotes, I guess I am hitting a
    potential problem like that, one solution could be that I have to put a
    fake Rnw first, then remove fake vignette and run knitr on real Rnw file
    somewhere and copy it to the right location to replace the fake
    vignette...

    I am experimenting on my machine now... hope that would work, I heard
    from knitr designer that Rcpp did similar things like that.
    Note that the above Makefile is exactly (except for the package name
    itself) the file used in the knitr package (which vignettes are of
    course generated with knitr).

    All the details here:

    http://yihui.name/knitr/demo/**vignette/<http://yihui.name/knitr/demo/vignette/>

    The above document also covers the issue of "vignettes having to
    go through Sweave first anyway", and, as you figured it out, it
    seems that the workaround is required only if the syntax of your
    vignette is not compatible with Sweave. And yes the workaround
    involves putting a fake vignette first and do other kind of dark
    voodoo.

    BTW I'm assuming you have a good reason to not use a Sweave-compatible
    syntax, otherwise maybe you could reconsider, as that would make
    things much easier (and you already get some nice improvements to
    the rendering of your vignette, when using knitr in Sweave-compatible
    mode).
    Exactly, I am going to give up to do the dark voodoo...even though I came
    up with a solution, but not elegant at all

    looks like R CMD INSTALL run sweave again on my real Rnw to stangle the R
    file, so in my make file I have to copy a sweavable version of my real Rnw
    file in the right place, then in this case, the pdf and R code are
    consistency, but Rnw file are not really, it's just sweavable.

    At first I hope I can write a Rnw file with knitr without considering the
    compatibility with Sweave, but I guess that's too tricky, you are right, I
    already get most I need from knitr, and I can just tweak it to be
    compatible with sweave, and use above Makefile to get what I need without
    spending too much time hacking at those stuff.

    Thanks a lot.

    Tengfei


    Cheers,
    H.



    Tengfei




    On 09/27/2012 08:08 AM, Dan Tenenbaum wrote:

    On Wed, Sep 26, 2012 at 11:41 PM, Tengfei Yin
    wrote:

    Dear maintainers and developers,

    I am wondering, is there a way to use knitr to built my
    vignette, I am
    trying to write a Makefile under my inst/doc, something like

    # Makefile to use knitr for package vignettes
    # put all PDF targets here, separated by spaces
    PDFS= ggbio.pdf
    all: $(PDFS)
    clean:
    rm -f *.tex *.bbl *.blg *.aux *.out *.log *.spl
    *tikzDictionary
    %.pdf: %.Rnw
    $(R_HOME)/bin/Rscript -e "library(knitr);
    knit2pdf('ggbio.Rnw')"

    Then I realize the bioc maintained two branch, released and
    development, so
    the R version it used to check each branch must be
    different, I don't
    really know how to specify those in my Makefile, especially
    after next
    Monday, the devel-branch become released version
    automatically, there must
    be a problem if I set up a fixed point to some */bin/Rscript?

    I don't really know how it works with bioconductor, the
    example above
    should work for cran, but I guess things are very different
    between cran
    and bioc.



    If you use "$(R_HOME)/bin/R" in your Makefile, as you do, the
    correct
    R will be used.
    Dan



    thanks a lot!

    Tengfei



    --
    Tengfei Yin
    MCDB PhD student
    1620 Howe Hall, 2274,
    Iowa State University
    Ames, IA,50011-2274

    [[alternative HTML version deleted]]

    ______________________________**___________________
    bioc-devel@r-project.org <mailto:Bioc-devel@r-project.**org<Bioc-devel@r-project.org>
    mailing list
    https://stat.ethz.ch/mailman/_**_listinfo/bioc-devel<https://stat.ethz.ch/mailman/__listinfo/bioc-devel>
    <https://stat.ethz.ch/mailman/**listinfo/bioc-devel<https://stat.ethz.ch/mailman/listinfo/bioc-devel>

    ______________________________**___________________
    bioc-devel@r-project.org <mailto:Bioc-devel@r-project.**org<Bioc-devel@r-project.org>
    mailing list
    https://stat.ethz.ch/mailman/_**_listinfo/bioc-devel<https://stat.ethz.ch/mailman/__listinfo/bioc-devel>
    <https://stat.ethz.ch/mailman/**listinfo/bioc-devel<https://stat.ethz.ch/mailman/listinfo/bioc-devel>

    --
    Hervé Pagès

    Program in Computational Biology
    Division of Public Health Sciences
    Fred Hutchinson Cancer Research Center
    1100 Fairview Ave. N, M1-B514
    P.O. Box 19024
    Seattle, WA 98109-1024

    E-mail: hpages@fhcrc.org > Phone: (206) 667-5791 <tel:%28206%29%20667-5791>
    Fax: (206) 667-1319 <tel:%28206%29%20667-1319>




    --
    Tengfei Yin
    MCDB PhD student
    1620 Howe Hall, 2274,
    Iowa State University
    Ames, IA,50011-2274


    --
    Hervé Pagès

    Program in Computational Biology
    Division of Public Health Sciences
    Fred Hutchinson Cancer Research Center
    1100 Fairview Ave. N, M1-B514
    P.O. Box 19024
    Seattle, WA 98109-1024

    E-mail: hpages@fhcrc.org
    Phone: (206) 667-5791
    Fax: (206) 667-1319


    --
    Tengfei Yin
    MCDB PhD student
    1620 Howe Hall, 2274,
    Iowa State University
    Ames, IA,50011-2274
  • Tengfei Yin at Oct 5, 2012 at 4:52 pm
    Hi

    Here is a following up question about knitr used in Bioconductor, please
    check the released version here

    http://www.bioconductor.org/packages/2.11/bioc/html/ggbio.html

    many of them are just pdf figures, only one of them is the vignette, but I
    set knitr like this

    opts_chunk$set(fig.path='./figures/ggbio-', fig.align='center',
    fig.show='asis')

    so it should put all the figure under ./figures subdirectory. I guess it's
    because when sweave running first time, it's produce some graphics and not
    removed when building the package?

    Is there a way to remove those pdf which are not vignettes under /inst/doc,
    and also remove extra pdf under ./figures subdirectory, this will make
    package too large.

    I am putting something like
    %.pdf: %.Rnw
    rm -f *.pdf
    $(R_HOME)/bin/Rscript -e "library(knitr); knit2pdf('$*.Rnw')"

    it caused error in windows built like

    rm -f *.pdf
    rm: cannot remove `Rplots.pdf': Device or resource busy
    make: *** [ggbio.pdf] Error 1
    Error in tools::buildVignettes(dir = ".") : running 'make' failed
    Execution halted


    Thanks

    Tengfei





    On Thu, Sep 27, 2012 at 5:08 PM, Tengfei Yin wrote:


    On Thu, Sep 27, 2012 at 4:48 PM, Hervé Pagès wrote:

    Tengfei,

    On 09/27/2012 01:05 PM, Tengfei Yin wrote:



    On Thu, Sep 27, 2012 at 2:42 PM, Hervé Pagès <hpages@fhcrc.org
    wrote:

    Hi Tengfei,

    Yes, as Dan said, that should work. Make sure you indent the Makefile
    properly though (normally with a tab), or it won't work:

    ------------------------------**__----------------------------**
    --__-----------


    PDFS= ggbio.pdf

    all: $(PDFS)

    clean:
    rm -f *.tex *.bbl *.blg *.aux *.out *.log *.spl
    *tikzDictionary

    %.pdf: %.Rnw
    $(R_HOME)/bin/Rscript -e "library(knitr);
    knit2pdf('$*.Rnw')"
    ------------------------------**__----------------------------**
    --__-----------


    Also note the use of a regexpr in the call to knit2pdf() so that all
    Sweave files in the folder will be processed.

    I would suggest 3 more things:

    1. Add *.toc to the rm command above.

    2. Don't forget to add knitr to the Suggests field of your
    package.

    3. If you've not done it already, add library(knitr) right before
    the
    knit_hooks$... line in the set-options code chunk in each of
    your
    Rnw files, so that people can still run Sweave() on them if
    they
    want.

    Cheers,
    H.

    Hi Hervé,

    Thanks a lot for your suggestion, I haven't done that yet, so I could
    make all those changes.
    Potential issues is that(actually as Martin just mentioned), if my Rnw
    won't be running through sweave(sweave first run on my Rnw) which
    because knitr-specified tag is included in my Rnw file, and Sweave won't
    recognize, for example, may be tag, fig.cap = " with quotes", there is
    no such tag and I guess I cannot use quotes, I guess I am hitting a
    potential problem like that, one solution could be that I have to put a
    fake Rnw first, then remove fake vignette and run knitr on real Rnw file
    somewhere and copy it to the right location to replace the fake
    vignette...

    I am experimenting on my machine now... hope that would work, I heard
    from knitr designer that Rcpp did similar things like that.
    Note that the above Makefile is exactly (except for the package name
    itself) the file used in the knitr package (which vignettes are of
    course generated with knitr).

    All the details here:

    http://yihui.name/knitr/demo/**vignette/<http://yihui.name/knitr/demo/vignette/>

    The above document also covers the issue of "vignettes having to
    go through Sweave first anyway", and, as you figured it out, it
    seems that the workaround is required only if the syntax of your
    vignette is not compatible with Sweave. And yes the workaround
    involves putting a fake vignette first and do other kind of dark
    voodoo.

    BTW I'm assuming you have a good reason to not use a Sweave-compatible
    syntax, otherwise maybe you could reconsider, as that would make
    things much easier (and you already get some nice improvements to
    the rendering of your vignette, when using knitr in Sweave-compatible
    mode).
    Exactly, I am going to give up to do the dark voodoo...even though I came
    up with a solution, but not elegant at all

    looks like R CMD INSTALL run sweave again on my real Rnw to stangle the R
    file, so in my make file I have to copy a sweavable version of my real Rnw
    file in the right place, then in this case, the pdf and R code are
    consistency, but Rnw file are not really, it's just sweavable.

    At first I hope I can write a Rnw file with knitr without considering the
    compatibility with Sweave, but I guess that's too tricky, you are right, I
    already get most I need from knitr, and I can just tweak it to be
    compatible with sweave, and use above Makefile to get what I need without
    spending too much time hacking at those stuff.

    Thanks a lot.

    Tengfei


    Cheers,
    H.



    Tengfei




    On 09/27/2012 08:08 AM, Dan Tenenbaum wrote:

    On Wed, Sep 26, 2012 at 11:41 PM, Tengfei Yin
    wrote:

    Dear maintainers and developers,

    I am wondering, is there a way to use knitr to built my
    vignette, I am
    trying to write a Makefile under my inst/doc, something like

    # Makefile to use knitr for package vignettes
    # put all PDF targets here, separated by spaces
    PDFS= ggbio.pdf
    all: $(PDFS)
    clean:
    rm -f *.tex *.bbl *.blg *.aux *.out *.log *.spl
    *tikzDictionary
    %.pdf: %.Rnw
    $(R_HOME)/bin/Rscript -e "library(knitr);
    knit2pdf('ggbio.Rnw')"

    Then I realize the bioc maintained two branch, released and
    development, so
    the R version it used to check each branch must be
    different, I don't
    really know how to specify those in my Makefile, especially
    after next
    Monday, the devel-branch become released version
    automatically, there must
    be a problem if I set up a fixed point to some */bin/Rscript?

    I don't really know how it works with bioconductor, the
    example above
    should work for cran, but I guess things are very different
    between cran
    and bioc.



    If you use "$(R_HOME)/bin/R" in your Makefile, as you do, the
    correct
    R will be used.
    Dan



    thanks a lot!

    Tengfei



    --
    Tengfei Yin
    MCDB PhD student
    1620 Howe Hall, 2274,
    Iowa State University
    Ames, IA,50011-2274

    [[alternative HTML version deleted]]

    ______________________________**___________________
    bioc-devel@r-project.org <mailto:Bioc-devel@r-project.**org<Bioc-devel@r-project.org>
    mailing list
    https://stat.ethz.ch/mailman/_**_listinfo/bioc-devel<https://stat.ethz.ch/mailman/__listinfo/bioc-devel>
    <https://stat.ethz.ch/mailman/**listinfo/bioc-devel<https://stat.ethz.ch/mailman/listinfo/bioc-devel>

    ______________________________**___________________
    bioc-devel@r-project.org <mailto:Bioc-devel@r-project.**org<Bioc-devel@r-project.org>
    mailing list
    https://stat.ethz.ch/mailman/_**_listinfo/bioc-devel<https://stat.ethz.ch/mailman/__listinfo/bioc-devel>
    <https://stat.ethz.ch/mailman/**listinfo/bioc-devel<https://stat.ethz.ch/mailman/listinfo/bioc-devel>

    --
    Hervé Pagès

    Program in Computational Biology
    Division of Public Health Sciences
    Fred Hutchinson Cancer Research Center
    1100 Fairview Ave. N, M1-B514
    P.O. Box 19024
    Seattle, WA 98109-1024

    E-mail: hpages@fhcrc.org >> Phone: (206) 667-5791 <tel:%28206%29%20667-5791>
    Fax: (206) 667-1319 <tel:%28206%29%20667-1319>




    --
    Tengfei Yin
    MCDB PhD student
    1620 Howe Hall, 2274,
    Iowa State University
    Ames, IA,50011-2274


    --
    Hervé Pagès

    Program in Computational Biology
    Division of Public Health Sciences
    Fred Hutchinson Cancer Research Center
    1100 Fairview Ave. N, M1-B514
    P.O. Box 19024
    Seattle, WA 98109-1024

    E-mail: hpages@fhcrc.org
    Phone: (206) 667-5791
    Fax: (206) 667-1319


    --
    Tengfei Yin
    MCDB PhD student
    1620 Howe Hall, 2274,
    Iowa State University
    Ames, IA,50011-2274



    --
    Tengfei Yin
    MCDB PhD student
    1620 Howe Hall, 2274,
    Iowa State University
    Ames, IA,50011-2274
  • Dan Tenenbaum at Oct 6, 2012 at 7:27 pm

    On Fri, Oct 5, 2012 at 9:52 AM, Tengfei Yin wrote:
    Hi

    Here is a following up question about knitr used in Bioconductor, please
    check the released version here

    http://www.bioconductor.org/packages/2.11/bioc/html/ggbio.html

    many of them are just pdf figures, only one of them is the vignette, but I
    set knitr like this

    opts_chunk$set(fig.path='./figures/ggbio-', fig.align='center',
    fig.show='asis')

    so it should put all the figure under ./figures subdirectory. I guess it's
    because when sweave running first time, it's produce some graphics and not
    removed when building the package?

    Is there a way to remove those pdf which are not vignettes under /inst/doc,
    and also remove extra pdf under ./figures subdirectory, this will make
    package too large.

    I don't think there's a way to keep those files out of the source
    tarball, which should contain in it everything needed to build the
    package, even if it already contains a build vignette. However, these
    files will not show up in either the installed package or the mac and
    windows binary package.



    I am putting something like
    %.pdf: %.Rnw
    rm -f *.pdf
    $(R_HOME)/bin/Rscript -e "library(knitr); knit2pdf('$*.Rnw')"

    it caused error in windows built like

    rm -f *.pdf
    rm: cannot remove `Rplots.pdf': Device or resource busy
    make: *** [ggbio.pdf] Error 1
    Error in tools::buildVignettes(dir = ".") : running 'make' failed
    Execution halted

    This answer comes from Martin Morgan. I tested it on the 2.11 windows
    build machine and it works. I didn't commit the change.


    The Makefile clean: target needs to make the inst/doc directory look
    like it should when R CMD build finishes, so




    PDFS= ggbio.pdf


    all: $(PDFS)


    clean:
    rm -f *.tex *.bbl *.blg *.aux *.out *.log *.spl *tikzDictionary *.toc
    rm -rf figures Makefile knit.sh


    %.pdf: %.Rnw
    "$(R_HOME)"/bin/Rscript -e "library(knitr); knit2pdf('$*.Rnw')"




    The following is more of a hack, but... you can minimize unwanted
    'Sweave' processing by setting \SweaveOpts{evalúLSE} in the LaTeX
    preamble. This means that chunks are not evaluated in the 'Sweave'
    pass (unless they explicitly have eval=TRUE, which they usually
    don't). On the other hand opts_chunk$set(eval=TRUE) restores the
    default but only in knitr. There will not be any left-over Rplot.pdf.
    I'm assuming that knitr respects local chunk options, so
    <<evalúLSE>>= would still suppress chunk evaluation even in knitr.


    Index: ggbio.Rnw
    ==================================================================--- ggbio.Rnw (revision 70240)
    +++ ggbio.Rnw (working copy)
    @@ -63,6 +63,8 @@
    \author{Tengfei Yin}
    \date{\today}


    +\SweaveOpts{evalúLSE}
    +
    \begin{document}
    % \setkeys{Gin}{width=0.6\textwidth}
    \maketitle
    @@ -70,10 +72,11 @@
    \tableofcontents
    \newpage


    -<<setup, includeúLSE, cacheúLSE>>+<<setup, includeúLSE, cacheúLSE, eval=TRUE>> library(knitr)
    opts_chunk$set(fig.path='./figures/ggbio-',


    - fig.align='center', fig.show='asis')
    + fig.align='center', fig.show='asis',
    + eval=TRUE)
    options(replace.assign=TRUE,width�)


    Thanks,
    Dan





    Thanks

    Tengfei





    On Thu, Sep 27, 2012 at 5:08 PM, Tengfei Yin wrote:


    On Thu, Sep 27, 2012 at 4:48 PM, Herv? Pag?s wrote:

    Tengfei,

    On 09/27/2012 01:05 PM, Tengfei Yin wrote:



    On Thu, Sep 27, 2012 at 2:42 PM, Herv? Pag?s <hpages at fhcrc.org
    wrote:

    Hi Tengfei,

    Yes, as Dan said, that should work. Make sure you indent the
    Makefile
    properly though (normally with a tab), or it won't work:


    ------------------------------__------------------------------__-----------


    PDFS= ggbio.pdf

    all: $(PDFS)

    clean:
    rm -f *.tex *.bbl *.blg *.aux *.out *.log *.spl
    *tikzDictionary

    %.pdf: %.Rnw
    $(R_HOME)/bin/Rscript -e "library(knitr);
    knit2pdf('$*.Rnw')"

    ------------------------------__------------------------------__-----------


    Also note the use of a regexpr in the call to knit2pdf() so that all
    Sweave files in the folder will be processed.

    I would suggest 3 more things:

    1. Add *.toc to the rm command above.

    2. Don't forget to add knitr to the Suggests field of your
    package.

    3. If you've not done it already, add library(knitr) right before
    the
    knit_hooks$... line in the set-options code chunk in each of
    your
    Rnw files, so that people can still run Sweave() on them if
    they
    want.

    Cheers,
    H.

    Hi Herv?,

    Thanks a lot for your suggestion, I haven't done that yet, so I could
    make all those changes.
    Potential issues is that(actually as Martin just mentioned), if my Rnw
    won't be running through sweave(sweave first run on my Rnw) which
    because knitr-specified tag is included in my Rnw file, and Sweave won't
    recognize, for example, may be tag, fig.cap = " with quotes", there is
    no such tag and I guess I cannot use quotes, I guess I am hitting a
    potential problem like that, one solution could be that I have to put a
    fake Rnw first, then remove fake vignette and run knitr on real Rnw file
    somewhere and copy it to the right location to replace the fake
    vignette...

    I am experimenting on my machine now... hope that would work, I heard
    from knitr designer that Rcpp did similar things like that.

    Note that the above Makefile is exactly (except for the package name
    itself) the file used in the knitr package (which vignettes are of
    course generated with knitr).

    All the details here:

    http://yihui.name/knitr/demo/vignette/

    The above document also covers the issue of "vignettes having to
    go through Sweave first anyway", and, as you figured it out, it
    seems that the workaround is required only if the syntax of your
    vignette is not compatible with Sweave. And yes the workaround
    involves putting a fake vignette first and do other kind of dark
    voodoo.

    BTW I'm assuming you have a good reason to not use a Sweave-compatible
    syntax, otherwise maybe you could reconsider, as that would make
    things much easier (and you already get some nice improvements to
    the rendering of your vignette, when using knitr in Sweave-compatible
    mode).

    Exactly, I am going to give up to do the dark voodoo...even though I came
    up with a solution, but not elegant at all

    looks like R CMD INSTALL run sweave again on my real Rnw to stangle the R
    file, so in my make file I have to copy a sweavable version of my real Rnw
    file in the right place, then in this case, the pdf and R code are
    consistency, but Rnw file are not really, it's just sweavable.

    At first I hope I can write a Rnw file with knitr without considering the
    compatibility with Sweave, but I guess that's too tricky, you are right, I
    already get most I need from knitr, and I can just tweak it to be compatible
    with sweave, and use above Makefile to get what I need without spending too
    much time hacking at those stuff.

    Thanks a lot.

    Tengfei

    Cheers,
    H.


    Tengfei




    On 09/27/2012 08:08 AM, Dan Tenenbaum wrote:

    On Wed, Sep 26, 2012 at 11:41 PM, Tengfei Yin
    <yintengfei at gmail.com wrote:

    Dear maintainers and developers,

    I am wondering, is there a way to use knitr to built my
    vignette, I am
    trying to write a Makefile under my inst/doc, something like

    # Makefile to use knitr for package vignettes
    # put all PDF targets here, separated by spaces
    PDFS= ggbio.pdf
    all: $(PDFS)
    clean:
    rm -f *.tex *.bbl *.blg *.aux *.out *.log *.spl
    *tikzDictionary
    %.pdf: %.Rnw
    $(R_HOME)/bin/Rscript -e "library(knitr);
    knit2pdf('ggbio.Rnw')"

    Then I realize the bioc maintained two branch, released and
    development, so
    the R version it used to check each branch must be
    different, I don't
    really know how to specify those in my Makefile, especially
    after next
    Monday, the devel-branch become released version
    automatically, there must
    be a problem if I set up a fixed point to some
    */bin/Rscript?

    I don't really know how it works with bioconductor, the
    example above
    should work for cran, but I guess things are very different
    between cran
    and bioc.



    If you use "$(R_HOME)/bin/R" in your Makefile, as you do, the
    correct
    R will be used.
    Dan



    thanks a lot!

    Tengfei



    --
    Tengfei Yin
    MCDB PhD student
    1620 Howe Hall, 2274,
    Iowa State University
    Ames, IA,50011-2274

    [[alternative HTML version deleted]]

    _________________________________________________
    Bioc-devel at r-project.org <mailto:bioc-devel@r-project.org>
    mailing list
    https://stat.ethz.ch/mailman/__listinfo/bioc-devel
    <https://stat.ethz.ch/mailman/listinfo/bioc-devel>


    _________________________________________________
    Bioc-devel at r-project.org <mailto:bioc-devel@r-project.org>
    mailing list
    https://stat.ethz.ch/mailman/__listinfo/bioc-devel
    <https://stat.ethz.ch/mailman/listinfo/bioc-devel>


    --
    Herv? Pag?s

    Program in Computational Biology
    Division of Public Health Sciences
    Fred Hutchinson Cancer Research Center
    1100 Fairview Ave. N, M1-B514
    P.O. Box 19024
    Seattle, WA 98109-1024

    E-mail: hpages at fhcrc.org <mailto:hpages@fhcrc.org>
    Phone: (206) 667-5791 <tel:%28206%29%20667-5791>
    Fax: (206) 667-1319 <tel:%28206%29%20667-1319>




    --
    Tengfei Yin
    MCDB PhD student
    1620 Howe Hall, 2274,
    Iowa State University
    Ames, IA,50011-2274

    --
    Herv? Pag?s

    Program in Computational Biology
    Division of Public Health Sciences
    Fred Hutchinson Cancer Research Center
    1100 Fairview Ave. N, M1-B514
    P.O. Box 19024
    Seattle, WA 98109-1024

    E-mail: hpages at fhcrc.org
    Phone: (206) 667-5791
    Fax: (206) 667-1319



    --
    Tengfei Yin
    MCDB PhD student
    1620 Howe Hall, 2274,
    Iowa State University
    Ames, IA,50011-2274



    --
    Tengfei Yin
    MCDB PhD student
    1620 Howe Hall, 2274,
    Iowa State University
    Ames, IA,50011-2274

  • Dan Tenenbaum at Oct 6, 2012 at 7:34 pm

    On Sat, Oct 6, 2012 at 12:27 PM, Dan Tenenbaum wrote:
    On Fri, Oct 5, 2012 at 9:52 AM, Tengfei Yin wrote:
    Hi

    Here is a following up question about knitr used in Bioconductor, please
    check the released version here

    http://www.bioconductor.org/packages/2.11/bioc/html/ggbio.html

    many of them are just pdf figures, only one of them is the vignette, but I
    set knitr like this

    opts_chunk$set(fig.path='./figures/ggbio-', fig.align='center',
    fig.show='asis')

    so it should put all the figure under ./figures subdirectory. I guess it's
    because when sweave running first time, it's produce some graphics and not
    removed when building the package?

    Is there a way to remove those pdf which are not vignettes under /inst/doc,
    and also remove extra pdf under ./figures subdirectory, this will make
    package too large.
    I don't think there's a way to keep those files out of the source
    tarball, which should contain in it everything needed to build the
    package, even if it already contains a build vignette. However, these
    files will not show up in either the installed package or the mac and
    windows binary package.

    Let me correct myself on this. The files will show up in the installed
    package and binary packages, but not if you add a file called
    .Rinstignore to the top level directory of your package, with the
    contents:


    inst/doc/figures


    This is documented in the "writing extensions" manual.
    Dan



    I am putting something like
    %.pdf: %.Rnw
    rm -f *.pdf
    $(R_HOME)/bin/Rscript -e "library(knitr); knit2pdf('$*.Rnw')"

    it caused error in windows built like

    rm -f *.pdf
    rm: cannot remove `Rplots.pdf': Device or resource busy
    make: *** [ggbio.pdf] Error 1
    Error in tools::buildVignettes(dir = ".") : running 'make' failed
    Execution halted
    This answer comes from Martin Morgan. I tested it on the 2.11 windows
    build machine and it works. I didn't commit the change.

    The Makefile clean: target needs to make the inst/doc directory look
    like it should when R CMD build finishes, so


    PDFS= ggbio.pdf

    all: $(PDFS)

    clean:
    rm -f *.tex *.bbl *.blg *.aux *.out *.log *.spl *tikzDictionary *.toc
    rm -rf figures Makefile knit.sh

    %.pdf: %.Rnw
    "$(R_HOME)"/bin/Rscript -e "library(knitr); knit2pdf('$*.Rnw')"


    The following is more of a hack, but... you can minimize unwanted
    'Sweave' processing by setting \SweaveOpts{evalúLSE} in the LaTeX
    preamble. This means that chunks are not evaluated in the 'Sweave'
    pass (unless they explicitly have eval=TRUE, which they usually
    don't). On the other hand opts_chunk$set(eval=TRUE) restores the
    default but only in knitr. There will not be any left-over Rplot.pdf.
    I'm assuming that knitr respects local chunk options, so
    <<evalúLSE>>= would still suppress chunk evaluation even in knitr.

    Index: ggbio.Rnw
    ==================================================================> --- ggbio.Rnw (revision 70240)
    +++ ggbio.Rnw (working copy)
    @@ -63,6 +63,8 @@
    \author{Tengfei Yin}
    \date{\today}

    +\SweaveOpts{evalúLSE}
    +
    \begin{document}
    % \setkeys{Gin}{width=0.6\textwidth}
    \maketitle
    @@ -70,10 +72,11 @@
    \tableofcontents
    \newpage

    -<<setup, includeúLSE, cacheúLSE>>> +<<setup, includeúLSE, cacheúLSE, eval=TRUE>>> library(knitr)
    opts_chunk$set(fig.path='./figures/ggbio-',

    - fig.align='center', fig.show='asis')
    + fig.align='center', fig.show='asis',
    + eval=TRUE)
    options(replace.assign=TRUE,width�)

    Thanks,
    Dan


    Thanks

    Tengfei





    On Thu, Sep 27, 2012 at 5:08 PM, Tengfei Yin wrote:


    On Thu, Sep 27, 2012 at 4:48 PM, Herv? Pag?s wrote:

    Tengfei,

    On 09/27/2012 01:05 PM, Tengfei Yin wrote:



    On Thu, Sep 27, 2012 at 2:42 PM, Herv? Pag?s <hpages at fhcrc.org
    wrote:

    Hi Tengfei,

    Yes, as Dan said, that should work. Make sure you indent the
    Makefile
    properly though (normally with a tab), or it won't work:


    ------------------------------__------------------------------__-----------


    PDFS= ggbio.pdf

    all: $(PDFS)

    clean:
    rm -f *.tex *.bbl *.blg *.aux *.out *.log *.spl
    *tikzDictionary

    %.pdf: %.Rnw
    $(R_HOME)/bin/Rscript -e "library(knitr);
    knit2pdf('$*.Rnw')"

    ------------------------------__------------------------------__-----------


    Also note the use of a regexpr in the call to knit2pdf() so that all
    Sweave files in the folder will be processed.

    I would suggest 3 more things:

    1. Add *.toc to the rm command above.

    2. Don't forget to add knitr to the Suggests field of your
    package.

    3. If you've not done it already, add library(knitr) right before
    the
    knit_hooks$... line in the set-options code chunk in each of
    your
    Rnw files, so that people can still run Sweave() on them if
    they
    want.

    Cheers,
    H.

    Hi Herv?,

    Thanks a lot for your suggestion, I haven't done that yet, so I could
    make all those changes.
    Potential issues is that(actually as Martin just mentioned), if my Rnw
    won't be running through sweave(sweave first run on my Rnw) which
    because knitr-specified tag is included in my Rnw file, and Sweave won't
    recognize, for example, may be tag, fig.cap = " with quotes", there is
    no such tag and I guess I cannot use quotes, I guess I am hitting a
    potential problem like that, one solution could be that I have to put a
    fake Rnw first, then remove fake vignette and run knitr on real Rnw file
    somewhere and copy it to the right location to replace the fake
    vignette...

    I am experimenting on my machine now... hope that would work, I heard
    from knitr designer that Rcpp did similar things like that.

    Note that the above Makefile is exactly (except for the package name
    itself) the file used in the knitr package (which vignettes are of
    course generated with knitr).

    All the details here:

    http://yihui.name/knitr/demo/vignette/

    The above document also covers the issue of "vignettes having to
    go through Sweave first anyway", and, as you figured it out, it
    seems that the workaround is required only if the syntax of your
    vignette is not compatible with Sweave. And yes the workaround
    involves putting a fake vignette first and do other kind of dark
    voodoo.

    BTW I'm assuming you have a good reason to not use a Sweave-compatible
    syntax, otherwise maybe you could reconsider, as that would make
    things much easier (and you already get some nice improvements to
    the rendering of your vignette, when using knitr in Sweave-compatible
    mode).

    Exactly, I am going to give up to do the dark voodoo...even though I came
    up with a solution, but not elegant at all

    looks like R CMD INSTALL run sweave again on my real Rnw to stangle the R
    file, so in my make file I have to copy a sweavable version of my real Rnw
    file in the right place, then in this case, the pdf and R code are
    consistency, but Rnw file are not really, it's just sweavable.

    At first I hope I can write a Rnw file with knitr without considering the
    compatibility with Sweave, but I guess that's too tricky, you are right, I
    already get most I need from knitr, and I can just tweak it to be compatible
    with sweave, and use above Makefile to get what I need without spending too
    much time hacking at those stuff.

    Thanks a lot.

    Tengfei

    Cheers,
    H.


    Tengfei




    On 09/27/2012 08:08 AM, Dan Tenenbaum wrote:

    On Wed, Sep 26, 2012 at 11:41 PM, Tengfei Yin
    <yintengfei at gmail.com wrote:

    Dear maintainers and developers,

    I am wondering, is there a way to use knitr to built my
    vignette, I am
    trying to write a Makefile under my inst/doc, something like

    # Makefile to use knitr for package vignettes
    # put all PDF targets here, separated by spaces
    PDFS= ggbio.pdf
    all: $(PDFS)
    clean:
    rm -f *.tex *.bbl *.blg *.aux *.out *.log *.spl
    *tikzDictionary
    %.pdf: %.Rnw
    $(R_HOME)/bin/Rscript -e "library(knitr);
    knit2pdf('ggbio.Rnw')"

    Then I realize the bioc maintained two branch, released and
    development, so
    the R version it used to check each branch must be
    different, I don't
    really know how to specify those in my Makefile, especially
    after next
    Monday, the devel-branch become released version
    automatically, there must
    be a problem if I set up a fixed point to some
    */bin/Rscript?

    I don't really know how it works with bioconductor, the
    example above
    should work for cran, but I guess things are very different
    between cran
    and bioc.



    If you use "$(R_HOME)/bin/R" in your Makefile, as you do, the
    correct
    R will be used.
    Dan



    thanks a lot!

    Tengfei



    --
    Tengfei Yin
    MCDB PhD student
    1620 Howe Hall, 2274,
    Iowa State University
    Ames, IA,50011-2274

    [[alternative HTML version deleted]]

    _________________________________________________
    Bioc-devel at r-project.org <mailto:bioc-devel@r-project.org>
    mailing list
    https://stat.ethz.ch/mailman/__listinfo/bioc-devel
    <https://stat.ethz.ch/mailman/listinfo/bioc-devel>


    _________________________________________________
    Bioc-devel at r-project.org <mailto:bioc-devel@r-project.org>
    mailing list
    https://stat.ethz.ch/mailman/__listinfo/bioc-devel
    <https://stat.ethz.ch/mailman/listinfo/bioc-devel>


    --
    Herv? Pag?s

    Program in Computational Biology
    Division of Public Health Sciences
    Fred Hutchinson Cancer Research Center
    1100 Fairview Ave. N, M1-B514
    P.O. Box 19024
    Seattle, WA 98109-1024

    E-mail: hpages at fhcrc.org <mailto:hpages@fhcrc.org>
    Phone: (206) 667-5791 <tel:%28206%29%20667-5791>
    Fax: (206) 667-1319 <tel:%28206%29%20667-1319>




    --
    Tengfei Yin
    MCDB PhD student
    1620 Howe Hall, 2274,
    Iowa State University
    Ames, IA,50011-2274

    --
    Herv? Pag?s

    Program in Computational Biology
    Division of Public Health Sciences
    Fred Hutchinson Cancer Research Center
    1100 Fairview Ave. N, M1-B514
    P.O. Box 19024
    Seattle, WA 98109-1024

    E-mail: hpages at fhcrc.org
    Phone: (206) 667-5791
    Fax: (206) 667-1319



    --
    Tengfei Yin
    MCDB PhD student
    1620 Howe Hall, 2274,
    Iowa State University
    Ames, IA,50011-2274



    --
    Tengfei Yin
    MCDB PhD student
    1620 Howe Hall, 2274,
    Iowa State University
    Ames, IA,50011-2274

  • Tengfei Yin at Oct 12, 2012 at 6:39 pm
    Hi Dan,

    Sorry for the late reply, your suggestions about settings in Sweave and
    knitr works like a charm for me, thanks a lot!
    btw, I also added a .Rbuildignore too.

    Thanks again!

    Tengfei
    On Sat, Oct 6, 2012 at 2:34 PM, Dan Tenenbaum wrote:
    On Sat, Oct 6, 2012 at 12:27 PM, Dan Tenenbaum wrote:
    On Fri, Oct 5, 2012 at 9:52 AM, Tengfei Yin wrote:
    Hi

    Here is a following up question about knitr used in Bioconductor,
    please
    check the released version here

    http://www.bioconductor.org/packages/2.11/bioc/html/ggbio.html

    many of them are just pdf figures, only one of them is the vignette,
    but I
    set knitr like this

    opts_chunk$set(fig.path='./figures/ggbio-', fig.align='center',
    fig.show='asis')

    so it should put all the figure under ./figures subdirectory. I guess
    it's
    because when sweave running first time, it's produce some graphics and
    not
    removed when building the package?

    Is there a way to remove those pdf which are not vignettes under
    /inst/doc,
    and also remove extra pdf under ./figures subdirectory, this will make
    package too large.
    I don't think there's a way to keep those files out of the source
    tarball, which should contain in it everything needed to build the
    package, even if it already contains a build vignette. However, these
    files will not show up in either the installed package or the mac and
    windows binary package.
    Let me correct myself on this. The files will show up in the installed
    package and binary packages, but not if you add a file called
    .Rinstignore to the top level directory of your package, with the
    contents:

    inst/doc/figures

    This is documented in the "writing extensions" manual.
    Dan

    I am putting something like
    %.pdf: %.Rnw
    rm -f *.pdf
    $(R_HOME)/bin/Rscript -e "library(knitr); knit2pdf('$*.Rnw')"

    it caused error in windows built like

    rm -f *.pdf
    rm: cannot remove `Rplots.pdf': Device or resource busy
    make: *** [ggbio.pdf] Error 1
    Error in tools::buildVignettes(dir = ".") : running 'make' failed
    Execution halted
    This answer comes from Martin Morgan. I tested it on the 2.11 windows
    build machine and it works. I didn't commit the change.

    The Makefile clean: target needs to make the inst/doc directory look
    like it should when R CMD build finishes, so


    PDFS= ggbio.pdf

    all: $(PDFS)

    clean:
    rm -f *.tex *.bbl *.blg *.aux *.out *.log *.spl *tikzDictionary *.toc
    rm -rf figures Makefile knit.sh

    %.pdf: %.Rnw
    "$(R_HOME)"/bin/Rscript -e "library(knitr); knit2pdf('$*.Rnw')"


    The following is more of a hack, but... you can minimize unwanted
    'Sweave' processing by setting \SweaveOpts{eval=FALSE} in the LaTeX
    preamble. This means that chunks are not evaluated in the 'Sweave'
    pass (unless they explicitly have eval=TRUE, which they usually
    don't). On the other hand opts_chunk$set(eval=TRUE) restores the
    default but only in knitr. There will not be any left-over Rplot.pdf.
    I'm assuming that knitr respects local chunk options, so
    <<eval=FALSE>>= would still suppress chunk evaluation even in knitr.

    Index: ggbio.Rnw
    ===================================================================
    --- ggbio.Rnw (revision 70240)
    +++ ggbio.Rnw (working copy)
    @@ -63,6 +63,8 @@
    \author{Tengfei Yin}
    \date{\today}

    +\SweaveOpts{eval=FALSE}
    +
    \begin{document}
    % \setkeys{Gin}{width=0.6\textwidth}
    \maketitle
    @@ -70,10 +72,11 @@
    \tableofcontents
    \newpage

    -<<setup, include=FALSE, cache=FALSE>>=
    +<<setup, include=FALSE, cache=FALSE, eval=TRUE>>=
    library(knitr)
    opts_chunk$set(fig.path='./figures/ggbio-',

    - fig.align='center', fig.show='asis')
    + fig.align='center', fig.show='asis',
    + eval=TRUE)
    options(replace.assign=TRUE,width=90)

    Thanks,
    Dan


    Thanks

    Tengfei





    On Thu, Sep 27, 2012 at 5:08 PM, Tengfei Yin wrote:


    On Thu, Sep 27, 2012 at 4:48 PM, Hervé Pagès wrote:

    Tengfei,

    On 09/27/2012 01:05 PM, Tengfei Yin wrote:



    On Thu, Sep 27, 2012 at 2:42 PM, Hervé Pagès <hpages@fhcrc.org
    wrote:

    Hi Tengfei,

    Yes, as Dan said, that should work. Make sure you indent the
    Makefile
    properly though (normally with a tab), or it won't work:

    ------------------------------__------------------------------__-----------

    PDFS= ggbio.pdf

    all: $(PDFS)

    clean:
    rm -f *.tex *.bbl *.blg *.aux *.out *.log *.spl
    *tikzDictionary

    %.pdf: %.Rnw
    $(R_HOME)/bin/Rscript -e "library(knitr);
    knit2pdf('$*.Rnw')"
    ------------------------------__------------------------------__-----------

    Also note the use of a regexpr in the call to knit2pdf() so that
    all
    Sweave files in the folder will be processed.

    I would suggest 3 more things:

    1. Add *.toc to the rm command above.

    2. Don't forget to add knitr to the Suggests field of your
    package.

    3. If you've not done it already, add library(knitr) right
    before
    the
    knit_hooks$... line in the set-options code chunk in each
    of
    your
    Rnw files, so that people can still run Sweave() on them if
    they
    want.

    Cheers,
    H.

    Hi Hervé,

    Thanks a lot for your suggestion, I haven't done that yet, so I could
    make all those changes.
    Potential issues is that(actually as Martin just mentioned), if my
    Rnw
    won't be running through sweave(sweave first run on my Rnw) which
    because knitr-specified tag is included in my Rnw file, and Sweave
    won't
    recognize, for example, may be tag, fig.cap = " with quotes", there
    is
    no such tag and I guess I cannot use quotes, I guess I am hitting a
    potential problem like that, one solution could be that I have to
    put a
    fake Rnw first, then remove fake vignette and run knitr on real Rnw
    file
    somewhere and copy it to the right location to replace the fake
    vignette...

    I am experimenting on my machine now... hope that would work, I heard
    from knitr designer that Rcpp did similar things like that.

    Note that the above Makefile is exactly (except for the package name
    itself) the file used in the knitr package (which vignettes are of
    course generated with knitr).

    All the details here:

    http://yihui.name/knitr/demo/vignette/

    The above document also covers the issue of "vignettes having to
    go through Sweave first anyway", and, as you figured it out, it
    seems that the workaround is required only if the syntax of your
    vignette is not compatible with Sweave. And yes the workaround
    involves putting a fake vignette first and do other kind of dark
    voodoo.

    BTW I'm assuming you have a good reason to not use a Sweave-compatible
    syntax, otherwise maybe you could reconsider, as that would make
    things much easier (and you already get some nice improvements to
    the rendering of your vignette, when using knitr in Sweave-compatible
    mode).

    Exactly, I am going to give up to do the dark voodoo...even though I
    came
    up with a solution, but not elegant at all

    looks like R CMD INSTALL run sweave again on my real Rnw to stangle
    the R
    file, so in my make file I have to copy a sweavable version of my real
    Rnw
    file in the right place, then in this case, the pdf and R code are
    consistency, but Rnw file are not really, it's just sweavable.

    At first I hope I can write a Rnw file with knitr without considering
    the
    compatibility with Sweave, but I guess that's too tricky, you are
    right, I
    already get most I need from knitr, and I can just tweak it to be
    compatible
    with sweave, and use above Makefile to get what I need without
    spending too
    much time hacking at those stuff.

    Thanks a lot.

    Tengfei

    Cheers,
    H.


    Tengfei




    On 09/27/2012 08:08 AM, Dan Tenenbaum wrote:

    On Wed, Sep 26, 2012 at 11:41 PM, Tengfei Yin
    wrote:

    Dear maintainers and developers,

    I am wondering, is there a way to use knitr to built my
    vignette, I am
    trying to write a Makefile under my inst/doc, something
    like
    # Makefile to use knitr for package vignettes
    # put all PDF targets here, separated by spaces
    PDFS= ggbio.pdf
    all: $(PDFS)
    clean:
    rm -f *.tex *.bbl *.blg *.aux *.out *.log *.spl
    *tikzDictionary
    %.pdf: %.Rnw
    $(R_HOME)/bin/Rscript -e "library(knitr);
    knit2pdf('ggbio.Rnw')"

    Then I realize the bioc maintained two branch, released
    and
    development, so
    the R version it used to check each branch must be
    different, I don't
    really know how to specify those in my Makefile,
    especially
    after next
    Monday, the devel-branch become released version
    automatically, there must
    be a problem if I set up a fixed point to some
    */bin/Rscript?

    I don't really know how it works with bioconductor, the
    example above
    should work for cran, but I guess things are very
    different
    between cran
    and bioc.



    If you use "$(R_HOME)/bin/R" in your Makefile, as you do, the
    correct
    R will be used.
    Dan



    thanks a lot!

    Tengfei



    --
    Tengfei Yin
    MCDB PhD student
    1620 Howe Hall, 2274,
    Iowa State University
    Ames, IA,50011-2274

    [[alternative HTML version deleted]]

    _________________________________________________
    bioc-devel@r-project.org <mailto:
    bioc-devel@r-project.org>
    mailing list
    https://stat.ethz.ch/mailman/__listinfo/bioc-devel
    <https://stat.ethz.ch/mailman/listinfo/bioc-devel>


    _________________________________________________
    bioc-devel@r-project.org >>>>> mailing list
    https://stat.ethz.ch/mailman/__listinfo/bioc-devel
    <https://stat.ethz.ch/mailman/listinfo/bioc-devel>


    --
    Hervé Pagès

    Program in Computational Biology
    Division of Public Health Sciences
    Fred Hutchinson Cancer Research Center
    1100 Fairview Ave. N, M1-B514
    P.O. Box 19024
    Seattle, WA 98109-1024

    E-mail: hpages@fhcrc.org >>>>> Phone: (206) 667-5791 <tel:%28206%29%20667-5791>
    Fax: (206) 667-1319 <tel:%28206%29%20667-1319>




    --
    Tengfei Yin
    MCDB PhD student
    1620 Howe Hall, 2274,
    Iowa State University
    Ames, IA,50011-2274

    --
    Hervé Pagès

    Program in Computational Biology
    Division of Public Health Sciences
    Fred Hutchinson Cancer Research Center
    1100 Fairview Ave. N, M1-B514
    P.O. Box 19024
    Seattle, WA 98109-1024

    E-mail: hpages@fhcrc.org
    Phone: (206) 667-5791
    Fax: (206) 667-1319



    --
    Tengfei Yin
    MCDB PhD student
    1620 Howe Hall, 2274,
    Iowa State University
    Ames, IA,50011-2274



    --
    Tengfei Yin
    MCDB PhD student
    1620 Howe Hall, 2274,
    Iowa State University
    Ames, IA,50011-2274



    --
    Tengfei Yin
    MCDB PhD student
    1620 Howe Hall, 2274,
    Iowa State University
    Ames, IA,50011-2274

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
groupbioc-devel @
categoriesr
postedSep 27, '12 at 6:41a
activeOct 12, '12 at 6:39p
posts13
users4
websitebioconductor.org
irc#r

People

Translate

site design / logo © 2022 Grokbase