Producible research. Again, we are in the enjoyable situation of having
Producible research. Again, we are in the enjoyable situation of having a paradigm and tools that can serve two purposes.Responding to user needsThe success of any software project rests on its ability to both provide solutions to the problems it is addressing and to attract a user community. Perhaps the most effective way of addressing user needs is through an e-mail help list and one was set up as soon as the project became active. In addition it is important to keep a searchable archive available so that the system itself has a memory and new users can be referred there for answers to common questions. It is also important that members of the project deal with bug reports and feature requests through this public forum as it both broadcasts their intentions and provides a public record of the discussion. Our mailing list (mailto:[email protected]) has been successful: there are approximately 800 subscribers and about 3,000 email messages per year. Attracting a user community itself requires a method of distributing the software and providing sufficient training materials to allow potential users to explore the system and determine whether it is sufficient for their purposes. An alternate approach would be to develop a graphical user interface (GUI) that made Actinomycin IV biological activity interactions with the system sufficiently selfexplanatory that documentation was not needed. We note that this solution is generally more applicable to cases where the underlying software tasks are well defined and well known. In the present case, the software requirements (as well as the statistical and biological requirements) are constantly evolving. R is primarily command-line oriented and we have chosen to follow that paradigm at least for the first few years of development. We would of course welcome andOther open-source bioinformatics software projectsThe Open Bioinformatics Foundation supports projects similar to Bioconductor that are nominally rooted in specific programming languages. BioPerl [42], BioPython [43] and BioJava [44] are prominent examples of open-source language-based bioinformatics projects. The intentions and design methodologies of the BioPerl project have been lucidly described by Stajich and colleagues [45].BioPerlIn this section we consider commonalities and differences between BioPerl and Bioconductor. Both projects have commitments to open source distribution and to communitybased development, with an identified core of developers performing primary design and maintenance tasks for the project. Both projects use object-oriented programming methodology, with the intention of abstracting key structural and functional features of computational workflows in bioinformatics and defining stable application programmingGenome Biology 2004, PubMed ID:https://www.ncbi.nlm.nih.gov/pubmed/25636517 5:Rhttp://genomebiology.com/2004/5/10/RGenome Biology 2004,Volume 5, Issue 10, Article RGentleman et al. R80.interfaces (API) that hide implementation details from those who do not need to know them. The toolkits are based on highly portable programming languages. These languages have extensive software resources developed for non-bioinformatic purposes. The repositories for R (Comprehensive R Archive Network, CRAN) and Perl (Comprehensive Perl Archive Network, CPAN) provide mirrored WWW access to structured collections of software modules and documents for a wide variety of workflow elements. Development methodologies targeted at software reuse can realize large gains in productivity by establishing interfaces.