7.7. Increase your software visibility

pasteur policy about code visibility and sustainability

Once your software/script is coded, it is important to make it more visible, citable and eventually distribute your code.

7.7.1. Citable

Of course a good way to increase the visibility of your code is to publish it in scientific journal. But after that do not forget to display to the user software how to cite it. It's usually done in help message and/or in --version output and/or at the beginning of the messages on the standard output.

But not all development can be publish in journal. It does not mean that your script should not be citable in other paper. your code source is a research product as scientific paper or data. So it should be citable.

7.7.1.1. HAL pasteur

HALis an open archive containing documents, studies and data from scientific research and enabling anyone to access them freely and without restrictions.

The current deposit functionality allows only one archive in zip or tar.gz format to be deposited. It is thus not possible to archive the whole development history, but just a folder containing the source files at a specific time.

In practice go to HAL-Pasteur: https://hal-pasteur.archives-ouvertes.fr/ . Then follow the instructions in the user guide(examples are given for HAL-INRIA, but HAL-Pasteur has the same features)

7.7.1.2. Software heritage

The long term goal of the Software Heritage initiative is to collect all publicly available software in source code form together with its development history, replicate it massively to ensure its preservation, and share it with everyone who needs it. The Software Heritage archive is growing over time as we crawl new source code from software projects and development forges

Once deposited in HAL, the source code of your software can be transferred to Software Heritage automatically, if it has a free licence and is not embargoed.

software heritage forges software heritage size over year

check if your code is already archived

software heritage msf projects

get a link to your project

software heritage get link for a project

or a file or part of file.

The links are unique and stable over time so the permalink can be used as citation in other software.

software heritage link lines

How to register your code if it's not already archived in SWH

software heritage save your code

The code must be accessible github/gitlab.pasteur.fr in Open Source and not embargoed

7.7.2. Distributed

7.7.2.1. package

Uou can package your software. there is lot of package systems

  • dedicated to a language: pypi, cran, ...

  • dedicated to a distribution: debian/ubunut, centos, gentoo ,...

  • dedicated to a thematic: bioconda, ...

7.7.2.1.1. pypi

pypi macsyfinder page

beware pypi is overprotective withe version number. If you upload a package you cannot reuse the same version for an other package. Even you delete the package. So I advise you to use https://test.pypi.org/ before uploading in official pypi and use release candidate versioning. Pypi test is totally separted than Pypi so you have an other account and so on. To push a package on pypi/test.pypi use the twine.

7.7.2.2. Containers

7.7.2.2.1. docker hub

To register a docker container on the docker hub you have to create an account then push the container

docker login docker push

It's a good practice to create an organization for your unit and create a repo for each container.

docker hub

docker hub have some limitations. It is

  • not structured

  • not curated

  • not domain centric

7.7.2.2.2. singularity

Unfortunately the singularity hub is not maintained anymore. It exists a solution hosted by sylabs.io : https://cloud.sylabs.io/library but it's limited in size for free account.

7.7.3. Increase Visibility

Register your software in catalogue

7.7.3.1. biotools

bio.tools is a registry of bioinformatics services. This resource is maintain by elixir

bio.tools register software and database and use the edam ontology to help to retrieve theses resources. software are classified by their topic, their operations, the type of input and output data.

bio tools

for instance I can search by topics, here functional genomics, I found all software in that topic.

functional genomics request in bio tools