OMICtools uses code versioning to enhance tool traceability

versioning-feature-omictools

Software tools on the Web evolve over time, with developers adding or removing features to improve their product, making code versioning an essential aspect of sustainable software development. Reliable code versioning allows developers to automatically track their work and revert to previous versions when needed.

Discover here how OMICtools can help you facilitate the traceability of your tool – and learn how to successfully upload your work in a community-controlled repository.

Benefits of version control

  • Provides a mechanism to keep track of code changes
  • Allows you to track the history of changes, work on the same code files, and merge code from different branches
  • Shows conflicts on code merges, allowing you to resolve them quickly

Following the FAIR data principles

The FAIR system provides recommendations for scientific data management and stewardship. OMICtools applies the FAIR guidelines to bioinformatics tools, by making them easily Findable, Accessible, Interoperable and Reusable.

  • Findability: Software and code versions are easy to find with the OMICtools advanced search engine. We continuously collect and update information from original articles, websites and repositories to make available the latest bioinformatics tools.
  • Accessibility: OMICtools ensures ongoing access to software tools, contributing to make knowledge and support available for users. Clear and accessible relevant information as well as a direct link to the original source are provided for each tool. We also provide metadata about the tool maintenance and use (name and email of the tool developer, forum and feedbacks from the biomedical community).
  • Interoperability: As far as possible, we record all tools which can be combined with other datasets by either users or computer systems. Maintainability of software is only one of the quality dimensions. Each tool on the OMICtools website also has a unique Research Resource Identifier (RRID), developed under the Resource Identification Initiative, which is transferred to the Neuroscience Information Framework (NIF) registry.
  • Reusability: OMICtools keeps a complete history of code versions so that they can be easily accessed and/or downloaded. This long-term software archive allows all users easy access to a previous version. 

Uploading and versioning your source code

If you want to version your source code, you can get started by finding your tool in the OMICtools repository using the search engine. Once you find it, click the upload version button and follow the instructions. All you need to do is indicate the version of the source code, the operating system and architecture, and add the publication  linked to the code. It’s as quick and easy as that – and of course you can contact us with any questions.

Once your code is uploaded, the programmatic access to DataCite’s API automatically generates the corresponding DOI. This unique identifier is defined by the International DOI Foundation and assigned by OMICtools to allow precision long-term preservation of your tool. If a DOI has already been attributed for your code version, you can let us know and it will be directly imported from the software platform you used. The DOI and files can’t be modified later.

omictools-versioning-and-DOI

This control repository service is designed to facilitate the development, maintenance and follow-up of bioinformatic tools by the designers themselves.

omictools-distribution
An overview of the variety of distribution channels of the tools

Remember that each published source code version is registered with a unique DOI which provides a permanent identification of your resource, even if material is moved or rearranged. Hence OMICtools, not only supports scientists in the analysis and understanding of biological datasets, but also improves the precision of citing bioinformatics methods used to produce and reproduce results, thereby promoting the quality of scientific publications in accordance with the FAIR guiding principles for scientific data management.

Want to share your thoughts? Offer your feedback. Tell us if you’re satisfied and what you think can be improved.

How to make software more robust?

bioinformatics-software-design

Scientific quality and reproducibility rely on the traceability of the experimental data, statistical methods and bioinformatics tools used to generate results. Being unable to replicate and validate scientific results is unfortunately very common. This reproducibility crisis as named by Monya Baker considerably slows down the research progress and affects all of the fields including chemistry, biology and medicine.

Best practices are crucially needed today to improve reproducibility of data analysis and hence to make software robust enough to be run by any user.

Indeed, most of the software tools used to produce scientific results and publications are prototypes and lack robustness. Usually designed and run by a single person in a specific computing environment, codes may be very difficult to be used by other persons to analyze their data and are too often abandoned after publication. Last month, Morgan Taschuk and Greg Wilson published Ten simples rules for making research software more robust providing a quick guide for mastering the key challenge of robustness in software engineering.

What is a “robust” software?

The authors define robust software as a “software that works for people other than the original author and on machines other than its creator’s.” And this mean that “it can be installed on more than one computer with relative ease, it works consistently as advertised, and it can be integrated with other tools.”

Increasing software robustness is a key question for software developers and all users who want to produce replicable and reproducible results and publish their work.Improving software robustness would only take the effort to follow these ten simple rules summarized in the list below:

1. Use version control

2. Document your code and usage

3. Make common operations easy to control

4. Version your releases

5. Reuse software (within reason)

6. Rely on build tools and package managers for installation

7. Do not require root or other special privileges to install or run

8. Eliminate hard-coded paths

9. Include a small test set that can be run to ensure the software is actually working

10. Produce identical results when given identical inputs

How OMICtools promotes software quality and traceability

OMICtools has developed several strategies to promote better quality of bioinformatics resources and reproducibility of computational analysis.

First, OMICtools promotes the citation of bioinformatics resources and exact code version identification for reproducibility and traceability of biological data analysis.

OMICtools brings together thousands of software in a single place where any user can find all the relevant information to choose and use the program he needs. Our search engine offer an easy way to get the list of tools dedicated to a specific question and analysis function. Moreover, citations and references are specified for each tool as well as the successive program versions and obsolete links to facilitate the survey of bioinformatics tools

Secondly, OMICtools is a collaborative repository platform that facilitates the development, maintenance and follow-up of bioinformatic tools by programmers themselves.

Software developers can directly upload their source codes into the OMICtools server so the community can easily locate them. In addition to the research resource identifier (RRID) which is attributed for each of OMICtools resource, each published source code version get a unique digital object identifier (DOI). Attributing DOI provides an interoperable exchange with other digital resources and a persistent identification, even if material is moved or rearranged. Software developers indicate the version of the source code, the operating system and architecture, as well as the publication, to link the code and program access to DataCite’s API which automatically generates the corresponding DOI.  They can modify and update their own project by providing their new code versions. Moreover, OMICtools is implementing a dedicated GitLab service. On their GitLab page, programmers will be able to modify and update their own projects and work together to test, build, consolidate and deploy their codes.

App developers, here’re three good reasons to upload your code versions on OMICtools repository platform:

omictools-for-software-developers

Based on the recent papers:

(Taschuk and Wilson, 2017) Ten simple rules for making research software more robust. PLoS Computational Biology.

(Baker, 2016) 1,500 scientists lift the lid on reproducibility. Nature.