R CMD check WARNINGS and NOTES

Issue #183 resolved
Barry Grant created an issue

Some new warnings and notes are appearing due to recent commits, (see below...)

I mention again that we should try to push a new (tidy) version to CRAN soon. We have made lots of important changes recently that others will benefit from. We don't need big new functionality necessary to push updates.

<cut>
* checking dependencies in R code ... WARNING
'::' or ':::' import not declared from:ggplot2'loadNamespace' or 'requireNamespace' call not declared from:ggplot2See the information on DESCRIPTION files in the chapterCreating R
packagesof theWriting R Extensionsmanual.
* checking S3 generic/method consistency ... WARNING
cmap:
  function(...)
cmap.filter:
  function(cm, cutoff.sims)

See sectionGeneric functions and methodsof theWriting R
Extensionsmanual.
<cut>
* checking R code for possible problems ... NOTE
cnapath : <anonymous>: no visible global function definition for%--%plot.cmap: no visible binding for global variablexysummary.cnapath: no visible binding for global variableLengthsummary.cnapath: no visible binding for global variableStatesummary.cnapath: no visible binding for global variablebwsummary.cnapath: no visible binding for global variable..density..summary.cnapath: no visible binding for global variableNodesummary.cnapath: no visible binding for global variable..count..* checking Rd files ... OK
* checking Rd metadata ... OK
* checking Rd cross-references ... WARNING
Missing link or links in documentation object 'bounds.sse.Rd':pdb2sse()See the information in section 'Cross-references' of the 'Writing R
Extensions' manual.

<cut>
* checking Rd \usage sections ... NOTE
S3 methods shown with full name in documentation object 'cmap.filter':cmap.filterS3 methods shown with full name in documentation object 'plot.bio3d':plot.bio3dThe \usage entries for S3 methods should use the \method markup and not
their full name.
See the chapterWriting R documentation filesin theWriting R
Extensionsmanual.
<cut>
* checking package vignettes ininst/doc... WARNING
Package vignette without corresponding PDF/HTML:bio3d_vignettes.Rmd* checking running R code from vignettes ...bio3d_vignettes.RmdusingUTF-8... OK
 OK
* checking re-building of vignette outputs ... OK
* checking PDF version of manual ... OK
* DONE

WARNING: There were 4 warnings.
NOTE: There were 2 notes.

Comments (49)

  1. Xinqiu Yao

    Thanks for checking! I agree with you that we should push recent updates to CRAN as soon as possible. I will try to solve these warning/note issues, especially the one related to plot.cnapath() (replacing ggplot2 with lattice etc).

    Another thing we should check is the To-do list. I guess there are tasks that we could complete soon. And if so, maybe it is better to include those in the new version, too. What do you think?

  2. Lars Skjærven

    Could be nice perhaps. The idea is that you will check every time you push? Will it work on bitbucket? (You can basically set Travis CI to run R CMD check for you every time you push code to GitHub).

  3. Xinqiu Yao

    Auto check every time we push is good for a better control of the development tree. I am just wondering: Does it cause longer time to push?

  4. Barry Grant reporter

    I have not tried it yet but I think it is relatively easy with github and that the tests are not run on github itself but on a virtual machine elsewhere (so no slowdown will be apparent). The Travis CI website only allows github sign ins as far as I can tell so to use this one we would have to mirror to guthub. This is annoying given the infrastructure we have here. Perhaps this is something to keep an eye on rather than delve in just yet.

    On a related note the wiki ToDo page is getting a bit unwieldily. Suggestions for improvements would be helpful.

  5. Lars Skjærven

    ToDo: I tried to rearrange earlier today the tasks that should go into version 2.2, and those tasks that should go to version 2.3. All the junk is thus in the beginning (version 2.3), and should be cleaned. The tasks for version 2.2 seems tidy and nice, right? that was my goal at least

  6. Barry Grant reporter

    Yes thanks Lars, I also followed on and tidied a bit more just now.

    I was thinking more of something better than a plane wiki page listing that would allow better ranking of rows/items by assigned person and pirotery (col) - which sounds a lot like the issues tracker 'task' items. Should this perhaps be the place for this ToDo list going forward?

  7. Lars Skjærven

    Hmm.. possibly. That would make awfully many entries in the issue tracker, wouldn't it? The issue tracker system doesn't provide a very satisfying way of filtering and sorting the issues either.

    We should anyway keep a wiki page on what's done in which we should update as new improvements are being added.

  8. Barry Grant reporter

    Thanks Xinqiu, those features would all be nice to have and are essentially what I am after. Lars's point of keeping it separate from the bug reports is also to be considered though.

    I can see advantages and disadvantages both ways. Really the issue tacker is not the place for a mailing list type of user discourse - although we are using it as such for now. Maybe this is not that critical to separate if we only have 10s of ToDos and a similar number of periodic user filled issues???

    side note: I have fixed up the new PDB vignette again. I think it looks ready for release to the wild now. Have a look please and comment on appropriate commit if necessary. I am going to mark this as done in our unloved ToDo list. Thanks!

  9. Xinqiu Yao

    Thanks! With the component feature we can easily group issues and sort/filter issues by a combination of e.g. "Open", "Component" (for example Todo), "Assignee", etc. Also, we can assign each issue a version number and so clearly show which are going to next release and which are for future. See a couple test examples I created just now!

    A plain wiki page has of course its own advantage such as more flexibilities. However, we sometimes need to synchronize issues and Todo list that we could easily forget.

    Maybe a good practice is we keep current style for next release and keep playing and testing the features of issue tracker for future moving.

    What do you think?

  10. Barry Grant reporter

    I like it and think it could work well. How did you define the "ToDo" component etc. i.e. where do yo set these up so they are selectable when you create an new issue?

  11. Barry Grant reporter

    I also note here two NOTES on CRAN for the current 2.1.3 version

    checking dependencies in R code ... NOTE
    'library' or 'require' call tobigmemoryin package code.
    Please use :: or requireNamespace() instead.
    See section 'Suggested packages' in the 'Writing R Extensions' manual.
    
    
    checking S3 generic/method consistency ... NOTE
    Found the following apparent S3 methods exported but not registered:
    atom2ele.default atom2ele.pdb atom2mass.default atom2mass.pdb
    bhattacharyya.array bhattacharyya.enma bhattacharyya.matrix
    bhattacharyya.nma bhattacharyya.pca cna.dccm cna.ensmb
    covsoverlap.enma covsoverlap.nma dccm.enma dccm.nma dccm.pca dccm.xyz
    identify.cna mktrj.enma mktrj.nma mktrj.pca nma.pdb nma.pdbs
    pca.array pca.pdbs pca.tor pca.xyz plot.bio3d plot.blast plot.cna
    plot.core plot.dccm plot.dccm2 plot.dmat plot.enma plot.fasta
    plot.hmmer plot.nma plot.pca plot.pca.loadings plot.pca.score
    plot.pca.scree plot.rmsip print.cna print.core print.enma print.fasta
    print.nma print.pca print.pdb print.rle2 print.select print.sse
    print.xyz rmsip.default rmsip.enma sip.default sip.enma sip.nma
    summary.cna summary.pdb
    See sectionRegistering S3 methodsin theWriting R Extensionsmanual.
    
  12. Barry Grant reporter

    Test failures:

      Runningtestthat.R[13s/13s]
     ERROR
    Running the tests intests/testthat.Rfailed.
    Last 13 lines of output:
      Error: Test failures
      In addition: Warning messages:
      1: In rmsd(pdbs) : No indices provided, using the 313 non NA positions
    
      2: In rmsd(xyz[, gaps$f.inds]) :
        No indices provided, using the 313 non NA positions
    
      3: In rmsd(pdbs, fit = TRUE) :
        No indices provided, using the 313 non NA positions
    
      4: In aa2mass(pdb = c("LYS", "VAL", "PHE", "GLY", "ARG", "CYS", "GLU",  :
        duplicate residue name(s) provided
      Execution halted
    Error: Command failed (1)
    

    Plus other NOTES and WARNINGS

    * checking dependencies in R code ... NOTE
    Missing or unexported objects:bio3d::aa.index’ ‘bio3d::aa.table’ ‘bio3d::sdENMSee the information on DESCRIPTION files in the chapterCreating R
    packagesof theWriting R Extensionsmanual.
    
    
    * checking R code for possible problems ... NOTE
    plot.cmap: no visible binding for global variablexy# This is not an S3 - still to be fixed
    * checking S3 generic/method consistency ... WARNING
    cmap:
      function(...)
    cmap.filter:
      function(cm, cutoff.sims)
    
    See sectionGeneric functions and methodsof theWriting R
    
    
    # Already fixed
    * checking Rd line widths ... NOTE
    Rd file 'as.pdb.Rd':
      \usage lines wider than 90 characters:
                            alt = NULL, o = NULL, b = NULL, segid = NULL, elesy = NULL, charge = NULL,
    
    Rd file 'combine.select.Rd':
      \examples lines wider than 100 characters:
         # More than two selections: return side-chain atoms (but not C-beta) with residue number from 46 to 50
    
    These lines will be truncated in the PDF manual.
    
    
    # Already fixed
    * checking Rd cross-references ... WARNING
    Missing link or links in documentation object 'bounds.sse.Rd':pdb2sse()# These are also not S3 - still to be fixed
    * checking Rd \usage sections ... NOTE
    S3 methods shown with full name in documentation object 'cmap.filter':cmap.filterS3 methods shown with full name in documentation object 'dccm.filter':dccm.filterS3 methods shown with full name in documentation object 'plot.bio3d':plot.bio3dThe \usage entries for S3 methods should use the \method markup and not
    their full name.
    
  13. Barry Grant reporter

    The test log states:

    Testing vector functions : ....
    
    
    1. Failure(@test-clean.pdb.R#10): clean.pdb() does nothing for 'clean' pdb by default
    substr(npdb$clean.log, 1, 13) not equal to "PDB is clean!"
    Lengths (1, 0) differ (string compare on first 0)
    
    2. Failure(@test-clean.pdb.R#84): clean.pdb() relabels chains properly (fix.chain = TRUE)
    pdb0 not equal to npdb
    Length mismatch: comparison on first 7 components
    
    Error: Test failures
    
  14. Xinqiu Yao

    The error related to the most recent update of the function 'clean.pdb'. I forgot updating test function accordingly. Sorry for that.. Will be fixed soon

  15. Lars Skjærven

    We've discussed this before, but I'm not sure if we reached a conclusion. Functions such as filter.cmap and filter.pdbs, should we rename these to subset.cmap, subset.pdbs to match the base s3 function subset ? Perhaps filter makes more sense than subset for matrices where you dont chop off rows or columns, but apply a cutoff filter. But then we should be consistent with using filter.class (we have now ide.filter, rmsd.filter).

    Perhaps: filter.dccm, filter.cmap, filter.rmsd. filter.ide since we're there filtering matrices with some sort of cutoff, and then use subset.pdbs or trim.pdbs for filter.pdbs (since it chops off)?

  16. Barry Grant reporter

    These are good points. We need to rename these and aim for consistency as Lars mentions.

    I am regretting the /dot name convention we adopted many years ago when emacs-ESS was my favorite editor. ESS would convert any underscore to assignment rows (hence the lack of underscores in the code of all early functions).

    I am however reluctant to change lots of functions arguments (and names) for this v2.2 release as it may well break backward compatibility of peoples scripts. What are the minimum edits we need for this fix?

  17. Xinqiu Yao

    I don't want to change so many function names either, but unfortunately we have a bunch of functions having names like ACTION.filter. Can we cheat R CMD check by modifying Rd files of these function to make them "look like" S3 method?

  18. Xinqiu Yao

    With recent updates, most warnings/notes have been removed. However, we still got 1 warning and 1 note. (I used latest R-patched and command R CMD check --as-cran):

    # This is related to function names we discussed above. 
    # We could leave them for now and if CRAN complains, we can just modify Rd files rather than change function names
    * checking Rd \usage sections ... NOTE
    S3 methods shown with full name in documentation object 'cmap.filter':cmap.filterS3 methods shown with full name in documentation object 'dccm.filter':dccm.filterS3 methods shown with full name in documentation object 'plot.bio3d':plot.bio3dThe \usage entries for S3 methods should use the \method markup and not
    their full name.
    See the chapterWriting R documentation filesin theWriting R
    Extensionsmanual.
    
    # This one is really annoying. The line numbers don't make any sense actually... 
    # I spent a lot time but still couldn't spot the problem. Can anyone help me?
    * checking for unstated dependencies in examples ... WARNING
    Warning: parse error in file 'bio3d-Ex.R':
    1252:1: unexpected symbol
    1251: 
    1252: cleanEx
          ^
    
  19. Barry Grant reporter

    Great, well done tracking this one down. The problems we had with this again highlight the need for some form of automated build testing upon each commit...

  20. Xinqiu Yao

    Right. I am checking a software called "Jenkins", which could do the job. And it works with bitbucket. The only problem is that we need host the program on our own server (I didn't find any public site providing the service).

  21. Barry Grant reporter

    We also need to update the bio3d/inst/staticdocs/index.r function listings for the html docs and then select the biggest and best to mention in the NEWS file.

    It turns out there are more than a 100 functions not currently linked to from the old index.r listings. Many of these don't need listing but we do need to decide on which ones to include. I have put in bold the ones I think are most notable and worthy of including in index.html

    > y <- lbio3d()
    > y[!(y %in% x)]
      **[1,] "aa.table"**
      [2,] "aa321"
      [3,] "amsm.xyz"
      **[4,] "as.fasta"**
      **[5,] "as.pdb"**
      [6,] "as.pdb.default"
      [7,] "as.pdb.mol2"
      [8,] "as.pdb.prmtop"
      **[9,] "as.select"**
     **[10,] "as.xyz"**
     [11,] "atom.select.pdb"
     [12,] "atom.select.prmtop"
     [13,] "atom2ele.default"
     [14,] "atom2ele.pdb"
     [15,] "atom2mass.default"
     [16,] "atom2mass.pdb"
     **[17,] "basename.pdb"**
     [18,] "bhattacharyya.array"
     [19,] "bhattacharyya.enma"
     [20,] "bhattacharyya.matrix"
     [21,] "bhattacharyya.nma"
     [22,] "bhattacharyya.pca"
     **[23,] "biounit"**
    ** [24,] "bounds.sse"**
     **[25,] "build.hessian"**
     **[26,] "cat.pdb"**
     **[27,] "check.utility"**
     **[28,] "clean.pdb"**
     [29,] "cmap.default"
     [30,] "cmap.pdb"
     [31,] "cmap.xyz"
     [32,] "cna.dccm"
     [33,] "cna.ensmb"
     **[34,] "cnapath"**
     [35,] "com.pdb"
     [36,] "com.xyz"
    ** [37,] "combine.select"** --
     [38,] "core.find.default"
     [39,] "core.find.pdb"
     [40,] "core.find.pdbs"
     [41,] "cov.enma"
     **[42,] "cov2dccm"**
     [43,] "covsoverlap.enma"
     [44,] "covsoverlap.nma"
     [45,] "dm.pdb"
     [46,] "dm.xyz"
     [47,] "dssp.pdb"
     **[48,] "dssp.xyz"**
     [49,] "ff.anm"
     [50,] "ff.calpha"
     [51,] "ff.calphax"
     [52,] "ff.pfanm"
     [53,] "ff.reach"
     [54,] "ff.sdenm"
     [55,] "geostas.default" ---
     [56,] "geostas.enma"
     [57,] "geostas.nma"
     [58,] "geostas.pdb"
     [59,] "geostas.pdbs"
     [60,] "geostas.xyz"
     **[61,] "get.blast"**
     [62,] "hivp" ???
     **[63,] "is.pdbs"**
     [64,] "kinesin" ???
     **[65,] "mono.colors"**
     **[66,] "pdb2sse"**
     [67,] "pdbfit.pdb" ---
     [68,] "pdbfit.pdbs"
     **[69,] "plot.cmap"**
     **[70,] "plot.fluct"**
     **[71,] "plot.geostas"**
     [72,] "plot.pca.score" ---
     [73,] "plot.pca.scree"
     *[74,] "print.cnapath"
     *[75,] "print.enma"
     *[76,] "print.geostas"
     *[77,] "print.mol2"
     *[78,] "print.nma"
     *[79,] "print.pca"
     *[80,] "print.pdb"
     *[81,] "print.prmtop"
     *[82,] "print.rle2"
     *[83,] "print.select"
     *[84,] "print.sse"
     **[85,] "read.crd.amber"**
     **[86,] "read.crd.charmm"**
     **[87,] "read.prmtop"**
     [88,] "rmsip.default"
     [89,] "rmsip.enma"
     [90,] "rot.lsq"
     [91,] "sip.default"
     [92,] "sip.enma"
     [93,] "sip.nma"
     [94,] "stride"
     [95,] "summary.cna"
     [96,] "summary.cnapath"
     [97,] "summary.pdb"
     [98,] "transducin"
     **[99,] "var.pdbs"**
    **[100,] "view.cnapath"**
    **[101,] "xyz2atom"**
    [102,] "xyz2z.pca"
    [103,] "z2xyz.pca"
    
    
    > x[!(x %in% y)]
    [1] "combine.sel"   "aa.mass"       "dssp.trj"      "aa.mass"
    [5] "combine.sel"   "bio3d-package"
    

    I have added these now to index.r and will comment on them in NEWS

  22. Xinqiu Yao

    Hi guys,

    With recent bugfix/update, we have passed all basic and extensive checking, except for the only NOTE related to S3 method documentation:

    * checking Rd \usage sections ... NOTE
    S3 methods shown with full name in documentation object 'cmap.filter':cmap.filterS3 methods shown with full name in documentation object 'dccm.filter':dccm.filterS3 methods shown with full name in documentation object 'plot.bio3d':plot.bio3d

    I still doubt CRAN will be happy with this note. As Barry suggested, we could rename plot.bio3d() to plotb3(). What do others think? Also suggestion on name changing for XX.filter (including dccm.filter, cmap.filter, ide.filter, pdbs.filter, rmsd.filter) is highly welcomed. Thanks!

  23. Barry Grant reporter

    I have pushed a commit to fix the plot.bio3d() report of S3 miss documentation.

    Basically, this 'fix' commit creates a new function plotb3(), which does all the work of plot.bio3d(). Now plot.bio3d() just calls this new plotb3().

    I wanted to keep plot.bio3d() around so we are backward compatible for now. This means we do not have to change tones of Rd example sections and all the vignettes and demos (not to mention our own work scripts). The disadvantage is that plot.bio3d() will appear only as plot() in the Rd file but this is the best we can do of now I think.

  24. Lars Skjærven

    I'm suggesting to rename all the filter functions to:

    • dccm.filter --> filter.dccm()
    • rmsd.filter --> filter.rmsd()
    • ide.filter --> filter.identity()
    • cmap.filter --> filter.cmap()
    • pdbs.filter --> trim.pdbs()
  25. Xinqiu Yao

    I am okay to these changes, too. The thing we should note is that there is a filter() function in stats package. It might become generic in future and then we will face the same problem as we have now for plot.bio3d(), although it seems more acceptable that filter.dccm is a S3 method of filter() for 'dccm' class.

  26. Lars Skjærven

    since the filter function is not generic it wont be a problem. give me a few more minutes and I'll push my suggestion

  27. Barry Grant reporter

    Great stuff.

    On R-devel I get 1 NOTE

    * checking R code for possible problems ... NOTE
    nma.pdbs: no visible binding for global variableaa.table

    and the reminder to upload the new vignette to the website.

    Found the following (possibly) invalid URLs:
      URL: http://thegrantlab.org/bio3d/phocadownload/vignettes/Bio3D_pdb.pdf
        From: inst/doc/bio3d_vignettes.html
              README.md
        Status: 404
        Message: Not Found
      URL: http://thegrantlab.org/bio3d/tutorials/pdb-bio3d
        From: inst/doc/bio3d_vignettes.html
              README.md
        Status: 404
        Message: Not Found
    
  28. Xinqiu Yao

    I think this is related to the use of so-called internal data. An instruction on how to use it can be found from this website, which suggest put all .rda under 'R/sysdata.rda'. The "disadvantage" is those data will not be exported (should they?) and no need for documentation.

    If we want those data available to users, too, we should keep current style and just add "bio3d::aa.table" at corresponding positions to avoid the NOTE.

    Btw, thanks a lot for those updates for function name changing. It is very helpful!

  29. Lars Skjærven

    Added bio3d::aa.table in nma.pdbs like we also do elsewhere. I think this is fine...

    I uploaded the PDF file for the new vignette

  30. Barry Grant reporter

    Thanks Lars. The link on this page is broken currently:

    http://thegrantlab.org/bio3d/tutorials

    (It points to http://thegrantlab.org/bio3d/structure-analysis rather than http://thegrantlab.org/bio3d/tutorials/structure-analysis )

    Also the "getting started" html table row/link would still be good to have listed on the tutorials page. It used to point the 'user guid' page and had a nice description.

    The HTML and PDF links need to match those in bio3d/vignettes/bio3d_vignettes.Rmd and wherever the statidocs pulls them from.

  31. Log in to comment