Thank you very much. I do realize that S4 is popular on BioC and seems like I need to modify part of my package. Always good to learn new things:)
I am developing an R package and I plan to eventually upload it to BioConductor. However, after I went over the guidelines, I realized that it seems to be more restricted comparing with the requirement from CRAN. I followed the book: "R Package" by Hadley Wickham, but I believe this book is designed to help people submit CRAN packages, not too specifically for BioConductor.
Therefore I wonder if there is any special issue I should pay additional attention here. Especially formats I guess.
Thank you.
3 answers
I have a package at Bioconductor and I really appreciated the support during the initial review, where I was asked some improvements of quality that were not too demanding, but still made me learn more about S4 classes. I find the 6-month release schedule to be a good regular reminder, and in the worst case there is now a procedure to retire packages. New packages can be submitted through GitHub, and it is possible to push updates via a nice Git-Svn bridge. Lastly, the use of Bioconductor's base S4 classes is not mandatory (but of course comes naturally once one gets more experienced). Altogether, Bioconductor is a brilliant platform and it is worth the effort aiming for it.
I have a package at Bioconductor. As a developer you should know:
- Make sure your code is 80 characters wide
- Don't use S3. Bioconductor reviewers will look at your source code.
- Go through much tougher review process than CRAN (but nothing compares to submitting a paper)
- You must have a vignette. This is not the case for CRAN.
Bioconductor packages are usually better than CRAN packages on average, and more user-friendly. As a user, a vignette really helps.
Advantages of Bioconductor:
- Your package will be announced on Twitter by core Bioconductor members. This is a __big-plus__ because they have huge number of followers interested in Bioinformatics.
- Your package will be listed on Bioconductor website. This is useful because that's where Bioinformaticians go.
- You have professional community support
- My paper on my package was submitted and accepted by a respectful journal. The reviewers wrote they trusted the software because it was in Bioconductor.
Disadvantages of Bioconductor:
- Release schedule is 6-months, this is very annoying. Although you can modify the release branch.
Thank you so much for the thorough information, especially that you pointed out a few differences. Any guidelines besides the ones available on BioC you would recommend please?
I can't think of any. If you are aiming for bioinformatics, I see no reason why you wouldn't try Bioconductor.
Since you mention release schedule is a problem, how much work do you have to do for that? As long as the package still works with the new BioC, it should be fine, right?
I would like to release anytime I am ready for the next release. Unfortunately this doesn't work for Bioconductor.
Really? I've seen BioC packages updated every few days.
I'm pretty sure Bioconductor has 6-months release cycle. Are you talking about devel branch? The devel branch can be updated anytime, but it's not what a user would access.
Release cycles are every 6 months. Only bug fixes are accepted for the current release, new features have to go for the devel branch (next release). This is to ensure a stable environment and promote reproducible research. Might have some disadvantages but it certainly has benefits IMO. Disclaimer: I have some BioC packages and use BioC regularly.
Thanks for clarifying. The updates I saw may have been only bug fixes.
In addition to all the good reasons and other issues mentioned in the other answers, I would point out to two resources that have not been explicitly mentioned so far. One is the developers corner in the bioconductor site, and inside it, the package guidelines.
The developers site centralizes all the information regarding package development and includes the release schedule, access to build reports, the new package primer and much more.
In the guidelines many issues regarding the development of Bioconductor packages are discussed in detail. There is special mention about the issue of having packages both in CRAN and in Bioconductor (something not recommended). Also, it is advised that authors having questions about Bioconductor package development ask them in the Bioconductor development list (bioc-devel).
Thank you! I have been learning a lot from this website. Glad you pointed it out:)
Log in to answer this question.
A more appropriate place for this thread would probably be Bioconductor Support.
Good luck with your package!
Thank you! Indeed I should have checked that out.
For what it's worth, there's kind of a hierarchy of package quality, with bioconductor packages on the top and CRAN below it (random github packages are at the bottom).
Thanks. That is good to know.