How to make software more robust?


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:


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.

Upgrade your search experience


High throughput technologies are generating increasingly vast amounts of biological data streams. Thousands of new bioinformatics tools have been designed for their management and analysis. Finding the appropriate program for a specific need is typically a challenging and time-consuming task.

Find the right answer for your biological data analysis

OMICtools addresses this challenge and empowers you to locate and access information for more than 17,000 software tools and databases in a single place. Manually curated and updated, OMICtools resources are methodically organized in a didactic hierarchical classification. The number of available tools is constantly growing. From more than 1,100 categories, you can easily retrieve a relevant list of tools which precisely relate to a specific step of data analysis for the biotechnology you are using. To better meet the needs of our users, OMICtools launched a powerful customized search engine in December 2016.

Now you can directly type in your biological question and get the computational answer.

OMICtools has an interactive query interface offering a user-friendly method to find the tools you need, whatever your level of expertise in bioinformatics. The OMICtools search engine has been optimized for speed, precision and recall performances. It rapidly identifies a list of relevant tools matching your query, no matter whether you use precise vocabulary from a specific field or a common expression.

You can search the OMICtools website the same way you search on Google – type a few keywords, and let the search engine handle the rest. If you want to narrow down your results, just add a word or two to your search terms. What’s more, once you find a tool that interests you, we systematically propose related tools that are potentially of interest to perform your data analysis. OMICtools seeks to understand query intent and deliver our users the best-adapted results to answer their question quickly. The new search engine responds to this need, reducing the inherent ambiguity of scientific language and more precisely articulating information-seeking intent.

OMICtools enhances its search retrieval quality

We have developed a tool ranking system to facilitate your navigation of potential tools for your analyses. When you submit a request, the resulting list of tools is organized according to this ranking. Our methodology to calculate a “tool score” is based not only on the query-term proximity but also includes several practical and social metrics.

Tool ranking weights are attributed to several parameters, with the tool’s domains of application being the primary parameter, as per its classification in OMICtools. Parameters relating to availability and quality of the tool’s website are also key; these include functional links, documentation, support, tutorials, maintenance, etc. Our ranking calculation also takes into account the number and quality of associated publications. As a community search platform, we promote social interactions with bioinformatics tools, so OMICtools users’ ratings, reviews and comments also impact ranking.

Filters will soon be proposed to make your search more precise. You will have the option to select tools according to your level of computer skills, the type of biotechnology, your operating system, resource type, software type, programing languages, stability, interface, restrictions for use, license, parallelization and database management system.

Because all too often the most used tools are the first tools developed but are not necessarily the best ones available, our ranking strategy has been designed to emphasize tool quality, allowing new effective and promising tools to be highlighted. And as you can guess, the more well-known a tool is, the more likely it is to be retrievable. With our ranking system, relevance, usability, and popularity come together!