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.


check if your code is already archived

get a link to your 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.

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

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¶

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 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.

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